| Current Path : /home/w/u/e/wuectly/www/03cbe/ |
| Current File : /home/w/u/e/wuectly/www/03cbe/quickicon.tar |
privacycheck/privacycheck.xml 0000604 00000001465 15245561435 0012430 0 ustar 00 <?xml version="1.0" encoding="utf-8"?>
<extension version="3.9" type="plugin" group="quickicon" method="upgrade">
<name>plg_quickicon_privacycheck</name>
<author>Joomla! Project</author>
<creationDate>June 2018</creationDate>
<copyright>(C) 2018 Open Source Matters, Inc.</copyright>
<license>GNU General Public License version 2 or later; see LICENSE.txt</license>
<authorEmail>admin@joomla.org</authorEmail>
<authorUrl>www.joomla.org</authorUrl>
<version>3.9.0</version>
<description>PLG_QUICKICON_PRIVACYCHECK_XML_DESCRIPTION</description>
<files>
<filename plugin="privacycheck">privacycheck.php</filename>
</files>
<languages>
<language tag="en-GB">en-GB.plg_quickicon_privacycheck.ini</language>
<language tag="en-GB">en-GB.plg_quickicon_privacycheck.sys.ini</language>
</languages>
</extension>
privacycheck/privacycheck.php 0000604 00000004624 15245561435 0012417 0 ustar 00 <?php
/**
* @package Joomla.Plugin
* @subpackage Quickicon.privacycheck
*
* @copyright (C) 2018 Open Source Matters, Inc. <https://www.joomla.org>
* @license GNU General Public License version 2 or later; see LICENSE.txt
*/
defined('_JEXEC') or die;
use Joomla\CMS\Factory;
use Joomla\CMS\Language\Text;
use Joomla\CMS\Session\Session;
use Joomla\CMS\Uri\Uri;
/**
* Plugin to check privacy requests older than 14 days
*
* @since 3.9.0
*/
class PlgQuickiconPrivacyCheck extends JPlugin
{
/**
* Load plugin language files automatically
*
* @var boolean
* @since 3.9.0
*/
protected $autoloadLanguage = true;
/**
* Check privacy requests older than 14 days.
*
* @param string $context The calling context
*
* @return array A list of icon definition associative arrays
*
* @since 3.9.0
*/
public function onGetIcons($context)
{
if ($context !== $this->params->get('context', 'mod_quickicon') || !Factory::getUser()->authorise('core.admin'))
{
return;
}
JHtml::_('jquery.framework');
$token = Session::getFormToken() . '=' . 1;
$privacy = 'index.php?option=com_privacy';
$options = array(
'plg_quickicon_privacycheck_url' => Uri::base() . $privacy . '&view=requests&filter[status]=1&list[fullordering]=a.requested_at ASC',
'plg_quickicon_privacycheck_ajax_url' => Uri::base() . $privacy . '&task=getNumberUrgentRequests&' . $token,
'plg_quickicon_privacycheck_text' => array(
"NOREQUEST" => Text::_('PLG_QUICKICON_PRIVACYCHECK_NOREQUEST'),
"REQUESTFOUND" => Text::_('PLG_QUICKICON_PRIVACYCHECK_REQUESTFOUND'),
"REQUESTFOUND_MESSAGE" => Text::_('PLG_QUICKICON_PRIVACYCHECK_REQUESTFOUND_MESSAGE'),
"REQUESTFOUND_BUTTON" => Text::_('PLG_QUICKICON_PRIVACYCHECK_REQUESTFOUND_BUTTON'),
"ERROR" => Text::_('PLG_QUICKICON_PRIVACYCHECK_ERROR'),
)
);
Factory::getDocument()->addScriptOptions('js-privacy-check', $options);
JHtml::_('script', 'plg_quickicon_privacycheck/privacycheck.js', array('version' => 'auto', 'relative' => true));
return array(
array(
'link' => $privacy . '&view=requests&filter[status]=1&list[fullordering]=a.requested_at ASC',
'image' => 'users',
'icon' => 'header/icon-48-user.png',
'text' => Text::_('PLG_QUICKICON_PRIVACYCHECK_CHECKING'),
'id' => 'plg_quickicon_privacycheck',
'group' => 'MOD_QUICKICON_USERS'
)
);
}
}
joomlaupdate/joomlaupdate.php 0000604 00000006116 15245561435 0012437 0 ustar 00 <?php
/**
* @package Joomla.Plugin
* @subpackage Quickicon.Joomlaupdate
*
* @copyright (C) 2011 Open Source Matters, Inc. <https://www.joomla.org>
* @license GNU General Public License version 2 or later; see LICENSE.txt
*/
defined('_JEXEC') or die;
/**
* Joomla! update notification plugin
*
* @since 2.5
*/
class PlgQuickiconJoomlaupdate extends JPlugin
{
/**
* Load the language file on instantiation.
*
* @var boolean
* @since 3.1
*/
protected $autoloadLanguage = true;
/**
* This method is called when the Quick Icons module is constructing its set
* of icons. You can return an array which defines a single icon and it will
* be rendered right after the stock Quick Icons.
*
* @param string $context The calling context
*
* @return array A list of icon definition associative arrays, consisting of the
* keys link, image, text and access.
*
* @since 2.5
*/
public function onGetIcons($context)
{
if ($context !== $this->params->get('context', 'mod_quickicon') || !JFactory::getUser()->authorise('core.manage', 'com_joomlaupdate'))
{
return;
}
JHtml::_('jquery.framework');
$currentTemplate = JFactory::getApplication()->getTemplate();
$url = JUri::base() . 'index.php?option=com_joomlaupdate';
$ajaxUrl = JUri::base() . 'index.php?option=com_joomlaupdate&task=update.ajax&' . JSession::getFormToken() . '=1';
$script = array();
$script[] = 'var plg_quickicon_joomlaupdate_url = \'' . $url . '\';';
$script[] = 'var plg_quickicon_joomlaupdate_ajax_url = \'' . $ajaxUrl . '\';';
$script[] = 'var plg_quickicon_jupdatecheck_jversion = \'' . JVERSION . '\'';
$script[] = 'var plg_quickicon_joomlaupdate_text = {'
. '"UPTODATE" : "' . JText::_('PLG_QUICKICON_JOOMLAUPDATE_UPTODATE', true) . '",'
. '"UPDATEFOUND": "' . JText::_('PLG_QUICKICON_JOOMLAUPDATE_UPDATEFOUND', true) . '",'
. '"UPDATEFOUND_MESSAGE": "' . JText::_('PLG_QUICKICON_JOOMLAUPDATE_UPDATEFOUND_MESSAGE', true) . '",'
. '"UPDATEFOUND_BUTTON": "' . JText::_('PLG_QUICKICON_JOOMLAUPDATE_UPDATEFOUND_BUTTON', true) . '",'
. '"ERROR": "' . JText::_('PLG_QUICKICON_JOOMLAUPDATE_ERROR', true) . '",'
. '};';
$script[] = 'var plg_quickicon_joomlaupdate_img = {'
. '"UPTODATE" : "' . JUri::base(true) . '/templates/' . $currentTemplate . '/images/header/icon-48-jupdate-uptodate.png",'
. '"UPDATEFOUND": "' . JUri::base(true) . '/templates/' . $currentTemplate . '/images/header/icon-48-jupdate-updatefound.png",'
. '"ERROR": "' . JUri::base(true) . '/templates/' . $currentTemplate . '/images/header/icon-48-deny.png",'
. '};';
JFactory::getDocument()->addScriptDeclaration(implode("\n", $script));
JHtml::_('script', 'plg_quickicon_joomlaupdate/jupdatecheck.js', array('version' => 'auto', 'relative' => true));
return array(
array(
'link' => 'index.php?option=com_joomlaupdate',
'image' => 'joomla',
'icon' => 'header/icon-48-download.png',
'text' => JText::_('PLG_QUICKICON_JOOMLAUPDATE_CHECKING'),
'id' => 'plg_quickicon_joomlaupdate',
'group' => 'MOD_QUICKICON_MAINTENANCE'
)
);
}
}
joomlaupdate/joomlaupdate.xml 0000604 00000002134 15245561435 0012444 0 ustar 00 <?xml version="1.0" encoding="utf-8"?>
<extension version="3.1" type="plugin" group="quickicon" method="upgrade">
<name>plg_quickicon_joomlaupdate</name>
<author>Joomla! Project</author>
<creationDate>August 2011</creationDate>
<copyright>(C) 2011 Open Source Matters, Inc.</copyright>
<license>GNU General Public License version 2 or later; see LICENSE.txt</license>
<authorEmail>admin@joomla.org</authorEmail>
<authorUrl>www.joomla.org</authorUrl>
<version>3.0.0</version>
<description>PLG_QUICKICON_JOOMLAUPDATE_XML_DESCRIPTION</description>
<files>
<filename plugin="joomlaupdate">joomlaupdate.php</filename>
</files>
<languages>
<language tag="en-GB">en-GB.plg_quickicon_joomlaupdate.ini</language>
<language tag="en-GB">en-GB.plg_quickicon_joomlaupdate.sys.ini</language>
</languages>
<config>
<fields name="params">
<fieldset name="basic">
<field
name="context"
type="text"
label="PLG_QUICKICON_JOOMLAUPDATE_GROUP_LABEL"
description="PLG_QUICKICON_JOOMLAUPDATE_GROUP_DESC"
default="mod_quickicon"
/>
</fieldset>
</fields>
</config>
</extension>
phpversioncheck/phpversioncheck.php 0000604 00000013707 15245561435 0013661 0 ustar 00 <?php
/**
* @package Joomla.Plugin
* @subpackage Quickicon.phpversioncheck
*
* @copyright (C) 2016 Open Source Matters, Inc. <https://www.joomla.org>
* @license GNU General Public License version 2 or later; see LICENSE.txt
*/
defined('_JEXEC') or die;
/**
* Plugin to check the PHP version and display a warning about its support status
*
* @since 3.7.0
*/
class PlgQuickiconPhpVersionCheck extends JPlugin
{
/**
* Constant representing the active PHP version being fully supported
*
* @var integer
* @since 3.7.0
*/
const PHP_SUPPORTED = 0;
/**
* Constant representing the active PHP version receiving security support only
*
* @var integer
* @since 3.7.0
*/
const PHP_SECURITY_ONLY = 1;
/**
* Constant representing the active PHP version being unsupported
*
* @var integer
* @since 3.7.0
*/
const PHP_UNSUPPORTED = 2;
/**
* Application object.
*
* @var JApplicationCms
* @since 3.7.0
*/
protected $app;
/**
* Load plugin language files automatically
*
* @var boolean
* @since 3.7.0
*/
protected $autoloadLanguage = true;
/**
* Check the PHP version after the admin component has been dispatched.
*
* @param string $context The calling context
*
* @return void
*
* @since 3.7.0
*/
public function onGetIcons($context)
{
if (!$this->shouldDisplayMessage())
{
return;
}
$supportStatus = $this->getPhpSupport();
if ($supportStatus['status'] !== self::PHP_SUPPORTED)
{
// Enqueue the notification message; set a warning if receiving security support or "error" if unsupported
switch ($supportStatus['status'])
{
case self::PHP_SECURITY_ONLY:
$this->app->enqueueMessage($supportStatus['message'], 'warning');
break;
case self::PHP_UNSUPPORTED:
$this->app->enqueueMessage($supportStatus['message'], 'error');
break;
}
}
}
/**
* Gets PHP support status.
*
* @return array Array of PHP support data
*
* @since 3.7.0
* @note The dates used in this method should correspond to the dates given on PHP.net
* @link https://www.php.net/supported-versions.php
* @link https://www.php.net/eol.php
*/
private function getPhpSupport()
{
$phpSupportData = array(
'5.3' => array(
'security' => '2013-07-11',
'eos' => '2014-08-14',
),
'5.4' => array(
'security' => '2014-09-14',
'eos' => '2015-09-14',
),
'5.5' => array(
'security' => '2015-07-10',
'eos' => '2016-07-21',
),
'5.6' => array(
'security' => '2017-01-19',
'eos' => '2018-12-31',
),
'7.0' => array(
'security' => '2017-12-03',
'eos' => '2018-12-03',
),
'7.1' => array(
'security' => '2018-12-01',
'eos' => '2019-12-01',
),
'7.2' => array(
'security' => '2019-11-30',
'eos' => '2020-11-30',
),
'7.3' => array(
'security' => '2020-12-06',
'eos' => '2021-12-06',
),
'7.4' => array(
'security' => '2021-11-28',
'eos' => '2022-11-28',
),
'8.0' => array(
'security' => '2022-11-26',
'eos' => '2023-11-26',
),
'8.1' => array(
'security' => '2023-11-25',
'eos' => '2024-11-25',
),
);
// Fill our return array with default values
$supportStatus = array(
'status' => self::PHP_SUPPORTED,
'message' => null,
);
// Check the PHP version's support status using the minor version
$activePhpVersion = PHP_MAJOR_VERSION . '.' . PHP_MINOR_VERSION;
// Do we have the PHP version's data?
if (isset($phpSupportData[$activePhpVersion]))
{
// First check if the version has reached end of support
$today = new JDate;
$phpEndOfSupport = new JDate($phpSupportData[$activePhpVersion]['eos']);
if ($phpNotSupported = $today > $phpEndOfSupport)
{
/*
* Find the oldest PHP version still supported that is newer than the current version,
* this is our recommendation for users on unsupported platforms
*/
foreach ($phpSupportData as $version => $versionData)
{
$versionEndOfSupport = new JDate($versionData['eos']);
if (version_compare($version, $activePhpVersion, 'ge') && ($today < $versionEndOfSupport))
{
$supportStatus['status'] = self::PHP_UNSUPPORTED;
$supportStatus['message'] = JText::sprintf(
'PLG_QUICKICON_PHPVERSIONCHECK_UNSUPPORTED',
PHP_VERSION,
$version,
$versionEndOfSupport->format(JText::_('DATE_FORMAT_LC4'))
);
return $supportStatus;
}
}
// PHP version is not supported and we don't know of any supported versions.
$supportStatus['status'] = self::PHP_UNSUPPORTED;
$supportStatus['message'] = JText::sprintf('PLG_QUICKICON_PHPVERSIONCHECK_UNSUPPORTED_JOOMLA_OUTDATED', PHP_VERSION);
return $supportStatus;
}
// If the version is still supported, check if it has reached eol minus 3 month
$securityWarningDate = clone $phpEndOfSupport;
$securityWarningDate->sub(new DateInterval('P3M'));
if (!$phpNotSupported && $today > $securityWarningDate)
{
$supportStatus['status'] = self::PHP_SECURITY_ONLY;
$supportStatus['message'] = JText::sprintf(
'PLG_QUICKICON_PHPVERSIONCHECK_SECURITY_ONLY', PHP_VERSION, $phpEndOfSupport->format(JText::_('DATE_FORMAT_LC4'))
);
}
}
return $supportStatus;
}
/**
* Determines if the message should be displayed
*
* @return boolean
*
* @since 3.7.0
*/
private function shouldDisplayMessage()
{
// Only on admin app
if (!$this->app->isClient('administrator'))
{
return false;
}
// Only if authenticated
if (JFactory::getUser()->guest)
{
return false;
}
// Only on HTML documents
if ($this->app->getDocument()->getType() !== 'html')
{
return false;
}
// Only on full page requests
if ($this->app->input->getCmd('tmpl', 'index') === 'component')
{
return false;
}
// Only to com_cpanel
if ($this->app->input->get('option') !== 'com_cpanel')
{
return false;
}
return true;
}
}
phpversioncheck/phpversioncheck.xml 0000604 00000001511 15245561435 0013660 0 ustar 00 <?xml version="1.0" encoding="utf-8"?>
<extension version="3.7" type="plugin" group="quickicon" method="upgrade">
<name>plg_quickicon_phpversioncheck</name>
<author>Joomla! Project</author>
<creationDate>August 2016</creationDate>
<copyright>(C) 2016 Open Source Matters, Inc.</copyright>
<license>GNU General Public License version 2 or later; see LICENSE.txt</license>
<authorEmail>admin@joomla.org</authorEmail>
<authorUrl>www.joomla.org</authorUrl>
<version>3.7.0</version>
<description>PLG_QUICKICON_PHPVERSIONCHECK_XML_DESCRIPTION</description>
<files>
<filename plugin="phpversioncheck">phpversioncheck.php</filename>
</files>
<languages>
<language tag="en-GB">en-GB.plg_quickicon_phpversioncheck.ini</language>
<language tag="en-GB">en-GB.plg_quickicon_phpversioncheck.sys.ini</language>
</languages>
</extension>
eos310/eos310.php 0000604 00000025036 15245561435 0007315 0 ustar 00 <?php
/**
* @package Joomla.Plugin
* @subpackage Quickicon.eos310
*
* @copyright (C) 2021 Open Source Matters, Inc. <https://www.joomla.org>
* @license GNU General Public License version 2 or later; see LICENSE.txt
*/
defined('_JEXEC') or die;
use Joomla\CMS\Factory;
use Joomla\CMS\HTML\HTMLHelper;
use Joomla\CMS\Language\Text;
use Joomla\CMS\Plugin\CMSPlugin;
/**
* Joomla! end of support notification plugin
*
* @since 3.10.0
*/
class PlgQuickiconEos310 extends CMSPlugin
{
/**
* The EOS date for 3.10
*
* @var string
* @since 3.10.0
*/
const EOS_DATE = '2023-08-17';
/**
* Application object
*
* @var CMSApplication
* @since 3.10.0
*/
protected $app;
/**
* Database object
*
* @var DatabaseDriver
* @since 3.10.0
*/
protected $db;
/**
* Load the language file on instantiation.
*
* @var boolean
* @since 3.10.0
*/
protected $autoloadLanguage = true;
/**
* Holding the current valid message to be shown
*
* @var boolean
* @since 3.10.0
*/
private $currentMessage = false;
/**
* Constructor.
*
* @param object &$subject The object to observe.
* @param array $config An optional associative array of configuration settings.
*
* @since 3.10.0
*/
public function __construct(&$subject, $config)
{
parent::__construct($subject, $config);
$diff = Factory::getDate()->diff(Factory::getDate(static::EOS_DATE));
$monthsUntilEOS = floor($diff->days / 30.417);
$this->currentMessage = $this->getMessageInfo($monthsUntilEOS, $diff->invert);
}
/**
* Check and show the the alert and quickicon message
*
* @param string $context The calling context
*
* @return array|void A list of icon definition associative arrays, consisting of the
* keys link, image, text and access, or void.
*
* @since 3.10.0
*/
public function onGetIcons($context)
{
if (!$this->shouldDisplayMessage())
{
return;
}
// No messages yet
if (!$this->currentMessage)
{
return;
}
// Show this only when not snoozed
if ($this->params->get('last_snoozed_id', 0) < $this->currentMessage['id'])
{
// Load the snooze scripts.
HTMLHelper::_('jquery.framework');
HTMLHelper::_('script', 'plg_quickicon_eos310/snooze.js', array('version' => 'auto', 'relative' => true));
// Build the message to be displayed in the cpanel
$messageText = Text::sprintf(
$this->currentMessage['messageText'],
HTMLHelper::_('date', static::EOS_DATE, Text::_('DATE_FORMAT_LC3')),
$this->currentMessage['messageLink']
);
if ($this->currentMessage['snoozable'])
{
$messageText .=
'<p><button class="btn btn-warning eosnotify-snooze-btn" type="button">' .
Text::_('PLG_QUICKICON_EOS310_SNOOZE_BUTTON') .
'</button></p>';
}
$this->app->enqueueMessage(
$messageText,
$this->currentMessage['messageType']
);
}
// The message as quickicon
$messageTextQuickIcon = Text::sprintf(
$this->currentMessage['quickiconText'],
HTMLHelper::_(
'date',
static::EOS_DATE,
Text::_('DATE_FORMAT_LC3')
)
);
// The message as quickicon
return array(array(
'link' => $this->currentMessage['messageLink'],
'target' => '_blank',
'rel' => 'noopener noreferrer',
'image' => $this->currentMessage['image'],
'text' => $messageTextQuickIcon,
'id' => 'plg_quickicon_eos310',
'group' => $this->currentMessage['groupText'],
));
}
/**
* User hit the snooze button
*
* @return void
*
* @since 3.10.0
*
* @throws JAccessExceptionNotallowed If user is not allowed.
*/
public function onAjaxSnoozeEOS()
{
// No messages yet so nothing to snooze
if (!$this->currentMessage)
{
return;
}
if (!$this->isAllowedUser() || !$this->isAjaxRequest())
{
throw new JAccessExceptionNotallowed(Text::_('JGLOBAL_AUTH_ACCESS_DENIED'), 403);
}
// Make sure only snoozable messages can be snoozed
if ($this->currentMessage['snoozable'])
{
$this->params->set('last_snoozed_id', $this->currentMessage['id']);
$this->saveParams();
}
}
/**
* Return the texts to be displayed based on the time until we reach EOS
*
* @param integer $monthsUntilEOS The months until we reach EOS
* @param integer $inverted Have we surpassed the EOS date
*
* @return array|bool An array with the message to be displayed or false
*
* @since 3.10.0
*/
private function getMessageInfo($monthsUntilEOS, $inverted)
{
// The EOS date has passed - Support has ended
if ($inverted === 1)
{
return array(
'id' => 5,
'messageText' => 'PLG_QUICKICON_EOS310_MESSAGE_ERROR_SUPPORT_ENDED',
'quickiconText' => 'PLG_QUICKICON_EOS310_MESSAGE_ERROR_SUPPORT_ENDED_SHORT',
'messageType' => 'error',
'image' => 'minus-circle',
'messageLink' => 'https://docs.joomla.org/Special:MyLanguage/Planning_for_Mini-Migration_-_Joomla_3.10.x_to_4.x',
'groupText' => 'PLG_QUICKICON_EOS310_GROUPNAME_EOS',
'snoozable' => false,
);
}
// The security support is ending in 6 months
if ($monthsUntilEOS < 6)
{
return array(
'id' => 4,
'messageText' => 'PLG_QUICKICON_EOS310_MESSAGE_WARNING_SUPPORT_ENDING',
'quickiconText' => 'PLG_QUICKICON_EOS310_MESSAGE_WARNING_SUPPORT_ENDING_SHORT',
'messageType' => 'warning',
'image' => 'warning-circle',
'messageLink' => 'https://docs.joomla.org/Special:MyLanguage/Planning_for_Mini-Migration_-_Joomla_3.10.x_to_4.x',
'groupText' => 'PLG_QUICKICON_EOS310_GROUPNAME_WARNING',
'snoozable' => true,
);
}
// We are in security only mode now, 12 month to go from now on
if ($monthsUntilEOS < 12)
{
return array(
'id' => 3,
'messageText' => 'PLG_QUICKICON_EOS310_MESSAGE_WARNING_SECURITY_ONLY',
'quickiconText' => 'PLG_QUICKICON_EOS310_MESSAGE_WARNING_SECURITY_ONLY_SHORT',
'messageType' => 'warning',
'image' => 'warning-circle',
'messageLink' => 'https://docs.joomla.org/Special:MyLanguage/Planning_for_Mini-Migration_-_Joomla_3.10.x_to_4.x',
'groupText' => 'PLG_QUICKICON_EOS310_GROUPNAME_WARNING',
'snoozable' => true,
);
}
// We still have 16 month to go, lets remind our users about the pre upgrade checker
if ($monthsUntilEOS < 16)
{
return array(
'id' => 2,
'messageText' => 'PLG_QUICKICON_EOS310_MESSAGE_INFO_02',
'quickiconText' => 'PLG_QUICKICON_EOS310_MESSAGE_INFO_02_SHORT',
'messageType' => 'info',
'image' => 'info-circle',
'messageLink' => 'https://docs.joomla.org/Special:MyLanguage/Pre-Update_Check',
'groupText' => 'PLG_QUICKICON_EOS310_GROUPNAME_INFO',
'snoozable' => true,
);
}
// Lets start our messages 2 month after the initial release, still 22 month to go
if ($monthsUntilEOS < 22)
{
return array(
'id' => 1,
'messageText' => 'PLG_QUICKICON_EOS310_MESSAGE_INFO_01',
'quickiconText' => 'PLG_QUICKICON_EOS310_MESSAGE_INFO_01_SHORT',
'messageType' => 'info',
'image' => 'info-circle',
'messageLink' => 'https://www.joomla.org/4/#features',
'groupText' => 'PLG_QUICKICON_EOS310_GROUPNAME_INFO',
'snoozable' => true,
);
}
return false;
}
/**
* Determines if the message and quickicon should be displayed
*
* @return boolean
*
* @since 3.10.0
*/
private function shouldDisplayMessage()
{
// Only on admin app
if (!$this->app->isClient('administrator'))
{
return false;
}
// Only if authenticated
if (Factory::getUser()->guest)
{
return false;
}
// Only on HTML documents
if ($this->app->getDocument()->getType() !== 'html')
{
return false;
}
// Only on full page requests
if ($this->app->input->getCmd('tmpl', 'index') === 'component')
{
return false;
}
// Only to com_cpanel
if ($this->app->input->get('option') !== 'com_cpanel')
{
return false;
}
// Don't show anything in 4.0
if (version_compare(JVERSION, '4.0', '>='))
{
return false;
}
return true;
}
/**
* Check valid AJAX request
*
* @return boolean
*
* @since 3.10.0
*/
private function isAjaxRequest()
{
return strtolower($this->app->input->server->get('HTTP_X_REQUESTED_WITH', '')) === 'xmlhttprequest';
}
/**
* Check if current user is allowed to send the data
*
* @return boolean
*
* @since 3.10.0
*/
private function isAllowedUser()
{
return Factory::getUser()->authorise('core.login.admin');
}
/**
* Save the plugin parameters
*
* @return boolean
*
* @since 3.10.0
*/
private function saveParams()
{
$query = $this->db->getQuery(true)
->update($this->db->quoteName('#__extensions'))
->set($this->db->quoteName('params') . ' = ' . $this->db->quote($this->params->toString('JSON')))
->where($this->db->quoteName('type') . ' = ' . $this->db->quote('plugin'))
->where($this->db->quoteName('folder') . ' = ' . $this->db->quote('quickicon'))
->where($this->db->quoteName('element') . ' = ' . $this->db->quote('eos310'));
try
{
// Lock the tables to prevent multiple plugin executions causing a race condition
$this->db->lockTable('#__extensions');
}
catch (Exception $e)
{
// If we can't lock the tables it's too risky to continue execution
return false;
}
try
{
// Update the plugin parameters
$result = $this->db->setQuery($query)->execute();
$this->clearCacheGroups(array('com_plugins'), array(0, 1));
}
catch (Exception $exc)
{
// If we failed to execute
$this->db->unlockTables();
$result = false;
}
try
{
// Unlock the tables after writing
$this->db->unlockTables();
}
catch (Exception $e)
{
// If we can't lock the tables assume we have somehow failed
$result = false;
}
return $result;
}
/**
* Clears cache groups. We use it to clear the plugins cache after we update the last run timestamp.
*
* @param array $clearGroups The cache groups to clean
* @param array $cacheClients The cache clients (site, admin) to clean
*
* @return void
*
* @since 3.10.0
*/
private function clearCacheGroups(array $clearGroups, array $cacheClients = array(0, 1))
{
foreach ($clearGroups as $group)
{
foreach ($cacheClients as $client_id)
{
try
{
$options = array(
'defaultgroup' => $group,
'cachebase' => $client_id ? JPATH_ADMINISTRATOR . '/cache' : $this->app->get('cache_path', JPATH_SITE . '/cache')
);
$cache = JCache::getInstance('callback', $options);
$cache->clean();
}
catch (Exception $e)
{
// Ignore it
}
}
}
}
}
eos310/eos310.xml 0000604 00000001670 15245561435 0007324 0 ustar 00 <?xml version="1.0" encoding="utf-8"?>
<extension version="3.10" type="plugin" group="quickicon" method="upgrade">
<name>plg_quickicon_eos310</name>
<author>Joomla! Project</author>
<creationDate>June 2021</creationDate>
<copyright>(C) 2021 Open Source Matters, Inc.</copyright>
<license>GNU General Public License version 2 or later; see LICENSE.txt</license>
<authorEmail>admin@joomla.org</authorEmail>
<authorUrl>www.joomla.org</authorUrl>
<version>3.10.0</version>
<description>PLG_QUICKICON_EOS310_XML_DESCRIPTION</description>
<files>
<filename plugin="eos310">eos310.php</filename>
</files>
<languages>
<language tag="en-GB">en-GB.plg_quickicon_eos310.ini</language>
<language tag="en-GB">en-GB.plg_quickicon_eos310.sys.ini</language>
</languages>
<config>
<fields name="params">
<fieldset name="basic">
<field
name="last_snoozed_id"
type="hidden"
/>
</fieldset>
</fields>
</config>
</extension>
extensionupdate/extensionupdate.xml 0000604 00000002165 15245561435 0013736 0 ustar 00 <?xml version="1.0" encoding="utf-8"?>
<extension version="3.1" type="plugin" group="quickicon" method="upgrade">
<name>plg_quickicon_extensionupdate</name>
<author>Joomla! Project</author>
<creationDate>August 2011</creationDate>
<copyright>(C) 2011 Open Source Matters, Inc.</copyright>
<license>GNU General Public License version 2 or later; see LICENSE.txt</license>
<authorEmail>admin@joomla.org</authorEmail>
<authorUrl>www.joomla.org</authorUrl>
<version>3.0.0</version>
<description>PLG_QUICKICON_EXTENSIONUPDATE_XML_DESCRIPTION</description>
<files>
<filename plugin="extensionupdate">extensionupdate.php</filename>
</files>
<languages>
<language tag="en-GB">en-GB.plg_quickicon_extensionupdate.ini</language>
<language tag="en-GB">en-GB.plg_quickicon_extensionupdate.sys.ini</language>
</languages>
<config>
<fields name="params">
<fieldset name="basic">
<field
name="context"
type="text"
label="PLG_QUICKICON_EXTENSIONUPDATE_GROUP_LABEL"
description="PLG_QUICKICON_EXTENSIONUPDATE_GROUP_DESC"
default="mod_quickicon"
/>
</fieldset>
</fields>
</config>
</extension>
extensionupdate/extensionupdate.php 0000604 00000005161 15245561435 0013724 0 ustar 00 <?php
/**
* @package Joomla.Plugin
* @subpackage Quickicon.Extensionupdate
*
* @copyright (C) 2011 Open Source Matters, Inc. <https://www.joomla.org>
* @license GNU General Public License version 2 or later; see LICENSE.txt
*/
defined('_JEXEC') or die;
/**
* Joomla! update notification plugin
*
* @since 2.5
*/
class PlgQuickiconExtensionupdate extends JPlugin
{
/**
* Load the language file on instantiation.
*
* @var boolean
* @since 3.1
*/
protected $autoloadLanguage = true;
/**
* Returns an icon definition for an icon which looks for extensions updates
* via AJAX and displays a notification when such updates are found.
*
* @param string $context The calling context
*
* @return array A list of icon definition associative arrays, consisting of the
* keys link, image, text and access.
*
* @since 2.5
*/
public function onGetIcons($context)
{
if ($context !== $this->params->get('context', 'mod_quickicon') || !JFactory::getUser()->authorise('core.manage', 'com_installer'))
{
return;
}
JHtml::_('jquery.framework');
$token = JSession::getFormToken() . '=' . 1;
$url = JUri::base() . 'index.php?option=com_installer&view=update&task=update.find&' . $token;
$ajax_url = JUri::base() . 'index.php?option=com_installer&view=update&task=update.ajax&' . $token;
$script = array();
$script[] = 'var plg_quickicon_extensionupdate_url = \'' . $url . '\';';
$script[] = 'var plg_quickicon_extensionupdate_ajax_url = \'' . $ajax_url . '\';';
$script[] = 'var plg_quickicon_extensionupdate_text = {'
. '"UPTODATE" : "' . JText::_('PLG_QUICKICON_EXTENSIONUPDATE_UPTODATE', true) . '",'
. '"UPDATEFOUND": "' . JText::_('PLG_QUICKICON_EXTENSIONUPDATE_UPDATEFOUND', true) . '",'
. '"UPDATEFOUND_MESSAGE": "' . JText::_('PLG_QUICKICON_EXTENSIONUPDATE_UPDATEFOUND_MESSAGE', true) . '",'
. '"UPDATEFOUND_BUTTON": "' . JText::_('PLG_QUICKICON_EXTENSIONUPDATE_UPDATEFOUND_BUTTON', true) . '",'
. '"ERROR": "' . JText::_('PLG_QUICKICON_EXTENSIONUPDATE_ERROR', true) . '",'
. '};';
JFactory::getDocument()->addScriptDeclaration(implode("\n", $script));
JHtml::_('script', 'plg_quickicon_extensionupdate/extensionupdatecheck.js', array('version' => 'auto', 'relative' => true));
return array(
array(
'link' => 'index.php?option=com_installer&view=update&task=update.find&' . $token,
'image' => 'asterisk',
'icon' => 'header/icon-48-extension.png',
'text' => JText::_('PLG_QUICKICON_EXTENSIONUPDATE_CHECKING'),
'id' => 'plg_quickicon_extensionupdate',
'group' => 'MOD_QUICKICON_MAINTENANCE'
)
);
}
}
jce/jce.php 0000604 00000003430 15245561435 0006565 0 ustar 00 <?php
/**
* @copyright Copyright (c) 2009 - 2023 Ryan Demmer. All rights reserved
* @license GNU/GPL 2 or later - http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
* JCE is free software. This version may have been modified pursuant
* to the GNU General Public License, and as distributed it includes or
* is derivative of works licensed under the GNU General Public License or
* other free or open source software licenses
*/
defined('_JEXEC') or die;
use Joomla\CMS\Factory;
use Joomla\CMS\Component\ComponentHelper;
use Joomla\CMS\Plugin\CMSPlugin;
use Joomla\CMS\Language\Text;
/**
* JCE File Browser Quick Icon plugin.
*
* @since 2.1
*/
class plgQuickiconJce extends CMSPlugin
{
public function __construct(&$subject, $config)
{
parent::__construct($subject, $config);
$app = Factory::getApplication();
// only in Admin and only if the component is enabled
if ($app->getClientId() !== 1 || ComponentHelper::getComponent('com_jce', true)->enabled === false) {
return;
}
$this->loadLanguage();
}
public function onGetIcons($context)
{
if ($context != $this->params->get('context', 'mod_quickicon')) {
return;
}
$user = Factory::getUser();
if (!$user->authorise('jce.browser', 'com_jce')) {
return;
}
$language = Factory::getLanguage();
$language->load('com_jce', JPATH_ADMINISTRATOR);
return array(array(
'link' => 'index.php?option=com_jce&view=browser',
'image' => 'picture fa fa-image',
'access' => array('jce.browser', 'com_jce'),
'text' => Text::_('PLG_QUICKICON_JCE_TITLE'),
'id' => 'plg_quickicon_jce',
));
}
}
jce/jce.xml 0000604 00000001636 15245561435 0006604 0 ustar 00 <?xml version="1.0" encoding="utf-8"?>
<extension version="3.9" type="plugin" group="quickicon" method="upgrade">
<name>plg_quickicon_jce</name>
<version>2.9.99.2</version>
<creationDate>22-04-2026</creationDate>
<author>Ryan Demmer</author>
<authorEmail>info@joomlacontenteditor.net</authorEmail>
<authorUrl>http://www.joomlacontenteditor.net</authorUrl>
<copyright>Copyright (C) 2006 - 2026 Ryan Demmer. All rights reserved</copyright>
<license>GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html</license>
<description>PLG_QUICKICON_JCE_XML_DESCRIPTION</description>
<files folder="plugins/quickicon/jce">
<filename plugin="jce">jce.php</filename>
</files>
<languages folder="administrator/language/en-GB">
<language tag="en-GB">en-GB.plg_quickicon_jce.ini</language>
<language tag="en-GB">en-GB.plg_quickicon_jce.sys.ini</language>
</languages>
</extension>
akeebabackup/script.php 0000604 00000000760 15245561435 0011170 0 ustar 00 <?php
/**
* @package akeebabackup
* @copyright Copyright (c)2006-2023 Nicholas K. Dionysopoulos / Akeeba Ltd
* @license GNU General Public License version 3, or later
*/
use FOF40\InstallScript\Plugin;
defined('_JEXEC') || die;
// Load FOF if not already loaded
if (!defined('FOF40_INCLUDED') && !@include_once(JPATH_LIBRARIES . '/fof40/include.php'))
{
throw new RuntimeException('This extension requires FOF 4.');
}
class plgQuickiconAkeebabackupInstallerScript extends Plugin
{
}
akeebabackup/index.html 0000604 00000000352 15245561435 0011145 0 ustar 00 <!--~
~ @package akeebabackup
~ @copyright Copyright (c)2006-2023 Nicholas K. Dionysopoulos / Akeeba Ltd
~ @license GNU General Public License version 3, or later
-->
<html><head><title></title></head><body></body></html>