uawdijnntqw1x1x1
IP : 216.73.216.231
Hostname : 213-108-241-110.cprapid.com
Kernel : Linux 213-108-241-110.cprapid.com 5.14.0-570.25.1.el9_6.x86_64 #1 SMP PREEMPT_DYNAMIC Wed Jul 9 04:57:09 EDT 2025 x86_64
Disable Function : None :)
OS : Linux
PATH:
/
home
/
digilove
/
public_html
/
f7525
/
..
/
libraries
/
..
/
41423
/
quickicon.tar
/
/
akeebabackup/akeebabackup.php000064400000031664152325744610012274 0ustar00<?php /** * @package akeebabackup * @copyright Copyright (c)2006-2023 Nicholas K. Dionysopoulos / Akeeba Ltd * @license GNU General Public License version 3, or later */ defined('_JEXEC') || die; // Old PHP version detected. EJECT! EJECT! EJECT! if (!version_compare(PHP_VERSION, '7.2.0', '>=')) { return; } // Make sure Akeeba Backup is installed if (!file_exists(JPATH_ADMINISTRATOR . '/components/com_akeeba')) { return; } use Akeeba\Backup\Admin\Model\Statistics; use Akeeba\Engine\Factory; use Akeeba\Engine\Platform; use FOF40\Container\Container; use FOF40\Date\Date; use FOF40\JoomlaAbstraction\CacheCleaner; use Joomla\CMS\Component\ComponentHelper; use Joomla\CMS\Factory as JFactory; use Joomla\CMS\Language\Text; use Joomla\CMS\Plugin\CMSPlugin; use Joomla\CMS\Uri\Uri; // Deactivate self $db = JFactory::getDbo(); $query = $db->getQuery(true) ->update($db->qn('#__extensions')) ->set($db->qn('enabled') . ' = ' . $db->q('0')) ->where($db->qn('element') . ' = ' . $db->q('akeebabackup')) ->where($db->qn('folder') . ' = ' . $db->q('quickicon')); $db->setQuery($query); $db->execute(); // Load FOF if not already loaded if (!defined('FOF40_INCLUDED') && !@include_once(JPATH_LIBRARIES . '/fof40/include.php')) { return; } CacheCleaner::clearPluginsCache(); // Timezone fix; avoids errors printed out by PHP 5.3.3+ (thanks Yannick!) if (function_exists('date_default_timezone_get') && function_exists('date_default_timezone_set')) { if (function_exists('error_reporting')) { $oldLevel = error_reporting(0); } $serverTimezone = @date_default_timezone_get(); if (empty($serverTimezone) || !is_string($serverTimezone)) { $serverTimezone = 'UTC'; } if (function_exists('error_reporting')) { error_reporting($oldLevel); } @date_default_timezone_set($serverTimezone); } /* * Hopefully, if we are still here, the site is running on at least PHP5. This means that * including the Akeeba Backup factory class will not throw a White Screen of Death, locking * the administrator out of the back-end. */ // Make sure Akeeba Backup is installed, or quit $akeeba_installed = @file_exists(JPATH_ADMINISTRATOR . '/components/com_akeeba/BackupEngine/Factory.php'); if (!$akeeba_installed) { return; } // Make sure Akeeba Backup is enabled if (!ComponentHelper::isEnabled('com_akeeba')) { return; } // Joomla! 1.6 or later - check ACLs (and not display when the site is bricked, // hopefully resulting in no stupid emails from users who think that somehow // Akeeba Backup crashed their site). It also not displays the button to people // who are not authorised to take backups - which makes perfect sense! $continueLoadingIcon = true; $user = JFactory::getUser(); if (!$user->authorise('akeeba.backup', 'com_akeeba')) { $continueLoadingIcon = false; } // Do we really, REALLY have Akeeba Engine? if ($continueLoadingIcon) { if (!defined('AKEEBAENGINE')) { define('AKEEBAENGINE', 1); // Required for accessing Akeeba Engine's factory class } try { @include_once JPATH_ADMINISTRATOR . '/components/com_akeeba/BackupEngine/Factory.php'; if (!class_exists('\Akeeba\Engine\Factory', false)) { $continueLoadingIcon = false; } } catch (Exception $e) { $continueLoadingIcon = false; } } // Enable self if we have to bail out if (!$continueLoadingIcon) { $db = JFactory::getDbo(); $query = $db->getQuery(true) ->update($db->qn('#__extensions')) ->set($db->qn('enabled') . ' = ' . $db->q('1')) ->where($db->qn('element') . ' = ' . $db->q('akeebabackup')) ->where($db->qn('folder') . ' = ' . $db->q('quickicon')); $db->setQuery($query); $db->execute(); CacheCleaner::clearPluginsCache(); return; } unset($continueLoadingIcon); /** * Akeeba Backup Notification plugin */ class plgQuickiconAkeebabackup extends CMSPlugin { /** * Constructor * * @param object $subject The object to observe * @param array $config An array that holds the plugin configuration * * @since 2.5 */ public function __construct(&$subject, $config) { /** * I know that this piece of code cannot possibly be executed since I have already returned BEFORE declaring * the class when eAccelerator is detected. However, eAccelerator is being dumb. It will return above BUT it * will also declare the class EVEN THOUGH according to how PHP works this part of the code should be * unreachable o_O Therefore I have to define this constant and exit the constructor when we have already * determined that this class MUST NOT be defined. */ if (defined('AKEEBA_EACCELERATOR_IS_SO_BORKED_IT_DOES_NOT_EVEN_RETURN')) { return; } parent::__construct($subject, $config); $this->loadLanguage(); } /** * 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|null A list of icon definition associative arrays, consisting of the * keys link, image, text and access. * * @throws Exception */ public function onGetIcons($context) { $container = Container::getInstance('com_akeeba'); $user = $container->platform->getUser(); $j4WarningJavascript = false; if (!$user->authorise('akeeba.backup', 'com_akeeba')) { return null; } /** * The context in which quickicons appear. There's a reason this is hardcoded now. * * Joomla 3. This is always mod_quickicon. Grouping is defined by the 'group' key of the returned array. This is * the sane way I personally wrote this feature when I contributed it to Joomla! 1.7. The whole point of the * 'context' was that you could have **extension specific** quick icon plugins. Think about how JCE shows icons * in its control panel. The incoming context determines which plugins to load, the returned group key * determines how the icons are grouped in the context. * * Joomla 4. The context defines the quick icon grouping. The 'group' key of the returned array is ignored. All * quick icon plugins which respond to the 'mod_quickicon' context are shown in the "Third party" backend * module. This is a nonsensical change. * * Unfortunately, this means that I have to remove the user-defined context option. The reason is that Joomla * renders plugin options based on a static XML file which is common for J3 and J4. However, the context has a * different meaning and requires a different setting for J3 and J4. I have to take the flexibility away from * the user and force a default context in J4 which puts our icon in Update Checks. * * Yes, I know that the Update Checks module is, at the very least, mislabeled. There are of course the updates * to Joomla and extensions but also privacy requests and overrides, the latter two not being updates in any * conceivable form and in any possible universe. Since this backend module is supposed to have everything I am * going to throw my backup check in there. At least my plugin shows "backup up-to-date" or "update needed" * which actually makes it FAR MORE RELEVANT in an "updates" area on the page than the friggin' privacy * requests! */ $configuredContext = version_compare(JVERSION, '3.999.999', 'gt') ? 'update_quickicon' : 'mod_quickicon'; /**/ if ( $context != $configuredContext || !JFactory::getUser()->authorise('core.manage', 'com_installer') ) { return null; } /**/ // Necessary defines for Akeeba Engine if (!defined('AKEEBAENGINE')) { define('AKEEBAENGINE', 1); define('AKEEBAROOT', $container->backEndPath . '/BackupEngine'); define('ALICEROOT', $container->backEndPath . '/AliceEngine'); // Make sure we have a profile set throughout the component's lifetime $profile_id = $container->platform->getSessionVar('profile', null, 'akeeba'); if (is_null($profile_id)) { $container->platform->setSessionVar('profile', 1, 'akeeba'); } // Load Akeeba Engine require_once $container->backEndPath . '/BackupEngine/Factory.php'; } Platform::addPlatform('joomla3x', JPATH_ADMINISTRATOR . '/components/com_akeeba/BackupPlatform/Joomla3x'); $url = Uri::base(); $url = rtrim($url, '/'); $profileId = (int) $this->params->get('profileid', 1); $token = $container->platform->getToken(true); if ($profileId <= 0) { $profileId = 1; } $isJoomla4 = version_compare(JVERSION, '3.999.999', 'gt'); $ret = [ 'link' => 'index.php?option=com_akeeba&view=Backup&autostart=1&returnurl=' . base64_encode($url) . '&profileid=' . $profileId . "&$token=1", 'image' => 'akeeba-black', 'text' => Text::_('PLG_QUICKICON_AKEEBABACKUP_OK'), 'id' => 'plg_quickicon_akeebabackup', 'group' => 'MOD_QUICKICON_MAINTENANCE', ]; if ($isJoomla4) { $ret['image'] = 'fa fa-akeeba-black'; } if ($this->params->get('enablewarning', 0) == 0) { // Process warnings $warning = false; $aeconfig = Factory::getConfiguration(); Platform::getInstance()->load_configuration(1); // Get latest non-SRP backup ID $filters = [ [ 'field' => 'tag', 'operand' => '<>', 'value' => 'restorepoint', ], ]; $ordering = [ 'by' => 'backupstart', 'order' => 'DESC', ]; /** @var Statistics $model */ $model = $container->factory->model('Statistics')->tmpInstance(); $list = $model->getStatisticsListWithMeta(false, $filters, $ordering); if (!empty($list)) { $record = (object) array_shift($list); } else { $record = null; } // Process "failed backup" warnings, if specified if ($this->params->get('warnfailed', 0) == 0) { if (!is_null($record)) { $warning = (($record->status == 'fail') || ($record->status == 'run')); } } // Process "stale backup" warnings, if specified if (is_null($record)) { $warning = true; } else { $maxperiod = $this->params->get('maxbackupperiod', 24); $lastBackupRaw = $record->backupstart; $lastBackupObject = new Date($lastBackupRaw); $lastBackup = $lastBackupObject->toUnix(); $maxBackup = time() - $maxperiod * 3600; if (!$warning) { $warning = ($lastBackup < $maxBackup); } } if ($warning) { $ret['image'] = 'akeeba-red'; $ret['text'] = Text::_('PLG_QUICKICON_AKEEBABACKUP_BACKUPREQUIRED'); if ($isJoomla4) { /** * Joomla! 4 is dumb. Quickicons cannot have a class. However, Joomla! itself uses a class on the icon * container to tell users when the update status is OK or there are updates required. Therefore we will * have to use some Javascript to achieve the same result. Grrrr... */ $j4WarningJavascript = true; $ret['image'] = 'fa fa-akeeba-red'; } else { $ret['text'] = '<span class="badge badge-important">' . $ret['text'] . '</span>'; } } } $inlineCSS = <<< CSS @font-face { font-family: "Akeeba Products for Quickicons"; font-style: normal; font-weight: normal; src: url("../media/com_akeeba/fonts/akeeba/Akeeba-Products.woff") format("woff"); } [class*=fa-akeeba-]:before { display: inline-block; font-family: 'Akeeba Products for Quickicons'; font-style: normal; font-weight: normal; line-height: 1; -webkit-font-smoothing: antialiased; position: relative; -moz-osx-font-smoothing: grayscale; } span.fa-akeeba-black:before, div.fa-akeeba-black:before { color: var(--success); background: transparent; } span.fa-akeeba-red:before, div.fa-akeeba-red:before { color: var(--danger); background: transparent; } span[class*=fa-akeeba]:before, div[class*=fa-akeeba]:before { content: 'B'; } .icon-akeeba-black { background-image: url("../media/com_akeeba/icons/akeebabackup-16-black.png"); width: 16px; height: 16px; } .icon-akeeba-red { background-image: url("../media/com_akeeba/icons/akeebabackup-16-red.png"); width: 16px; height: 16px; } .quick-icons .nav-list [class^="icon-akeeba-"], .quick-icons .nav-list [class*=" icon-akeeba-"] { margin-right: 7px; } .quick-icons .nav-list [class^="icon-akeeba-red"], .quick-icons .nav-list [class*=" icon-akeeba-red"] { margin-bottom: -4px; } CSS; JFactory::getApplication()->getDocument()->addStyleDeclaration($inlineCSS); if ($isJoomla4) { $myClass = $j4WarningJavascript ? 'danger' : 'success'; $inlineJS = <<< JS // ; Defense against third party broken Javascript document.addEventListener('DOMContentLoaded', function() { document.getElementById('plg_quickicon_akeebabackup').className = 'pulse $myClass'; }); JS; JFactory::getApplication()->getDocument()->addScriptDeclaration($inlineJS); } // Re-enable self $db = JFactory::getDbo(); $query = $db->getQuery(true) ->update($db->qn('#__extensions')) ->set($db->qn('enabled') . ' = ' . $db->q('1')) ->where($db->qn('element') . ' = ' . $db->q('akeebabackup')) ->where($db->qn('folder') . ' = ' . $db->q('quickicon')); $db->setQuery($query); $db->execute(); CacheCleaner::clearPluginsCache(); return [$ret]; } } akeebabackup/akeebabackup.xml000064400000005606152325744610012302 0ustar00<?xml version="1.0" encoding="utf-8"?> <!--~ ~ @package akeebabackup ~ @copyright Copyright (c)2006-2023 Nicholas K. Dionysopoulos / Akeeba Ltd ~ @license GNU General Public License version 3, or later --> <extension version="2.5" type="plugin" group="quickicon" method="upgrade"> <name>plg_quickicon_akeebabackup</name> <author>Nicholas K. Dionysopoulos</author> <authorEmail>nicholas@akeeba.com</authorEmail> <authorUrl>https://www.akeeba.com</authorUrl> <copyright>Copyright (c)2006-2023 Nicholas K. Dionysopoulos</copyright> <license>GNU General Public License version 3, or later</license> <creationDate>2023-08-07</creationDate> <version>8.3.3</version> <description>PLG_QUICKICON_AKEEBABACKUP_XML_DESCRIPTION</description> <files> <filename plugin="akeebabackup">akeebabackup.php</filename> <filename>index.html</filename> <filename>.htaccess</filename> <filename>web.config</filename> </files> <languages folder="language"> <language tag="en-GB">en-GB/en-GB.plg_quickicon_akeebabackup.ini</language> <language tag="en-GB">en-GB/en-GB.plg_quickicon_akeebabackup.sys.ini</language> </languages> <config addfieldpath="/administrator/components/com_akeeba/fields"> <fields name="params"> <fieldset name="basic"> <field name="enablewarning" type="fancyradio" label="PLG_QUICKICON_AKEEBABACKUP_LBL_WARNINGS" description="PLG_QUICKICON_AKEEBABACKUP_DESC_WARNINGS" default="1" class="btn-group btn-group-yesno" > <option value="0">JNO</option> <option value="1">JYES</option> </field> <field name="warnfailed" type="fancyradio" label="PLG_QUICKICON_AKEEBABACKUP_LBL_WARNFAILED" description="PLG_QUICKICON_AKEEBABACKUP_DESC_WARNFAILED" default="1" class="btn-group btn-group-yesno" showon="enablewarning:1" > <option value="0">JNO</option> <option value="1">JYES</option> </field> <field name="maxbackupperiod" type="number" label="PLG_QUICKICON_AKEEBABACKUP_LBL_PERIOD" description="PLG_QUICKICON_AKEEBABACKUP_DESC_PERIOD" min="1" max="87600" step="1" default="24"/> <field name="profileid" type="backupprofiles" default="1" label="PLG_QUICKICON_AKEEBABACKUP_PROFILE_LABEL" class="advancedSelect" description="PLG_QUICKICON_AKEEBABACKUP_PROFILE_DESC" /> </fieldset> </fields> </config> <scriptfile>script.php</scriptfile> </extension>akeebabackup/index.html000064400000000352152325744610011150 0ustar00<!--~ ~ @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>akeebabackup/script.php000064400000000760152325744610011173 0ustar00<?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/web.config000064400000001025152325744610011115 0ustar00<?xml version="1.0"?> <!-- This only works on IIS 7 or later. See https://www.iis.net/configreference/system.webserver/security/requestfiltering/fileextensions --> <configuration> <system.webServer> <security> <requestFiltering> <fileExtensions allowUnlisted="false" > <clear /> <add fileExtension=".html" allowed="true"/> </fileExtensions> </requestFiltering> </security> </system.webServer> </configuration>eos310/eos310.php000064400000025036152325744610007320 0ustar00<?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.xml000064400000001670152325744610007327 0ustar00<?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.php000064400000005161152325744610013727 0ustar00<?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' ) ); } } extensionupdate/extensionupdate.xml000064400000002165152325744610013741 0ustar00<?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/index.html000064400000000037152325744610011771 0ustar00<!DOCTYPE html><title></title> jce/jce.php000064400000003230152325744610006566 0ustar00<?php /** * @copyright Copyright (c) 2009-2021 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; /** * JCE File Browser Quick Icon plugin. * * @since 2.1 */ class plgQuickiconJce extends JPlugin { public function __construct(&$subject, $config) { parent::__construct($subject, $config); $app = JFactory::getApplication(); // only in Admin and only if the component is enabled if ($app->getClientId() !== 1 || JComponentHelper::getComponent('com_jce', true)->enabled === false) { return; } $this->loadLanguage(); } public function onGetIcons($context) { if ($context != $this->params->get('context', 'mod_quickicon')) { return; } $user = JFactory::getUser(); if (!$user->authorise('jce.browser', 'com_jce')) { return; } $language = JFactory::getLanguage(); $language->load('com_jce', JPATH_ADMINISTRATOR); return array(array( 'link' => 'index.php?option=com_jce&view=browser', 'image' => 'picture fas fa-image', 'access' => array('jce.browser', 'com_jce'), 'text' => JText::_('PLG_QUICKICON_JCE_TITLE'), 'id' => 'plg_quickicon_jce', )); } } jce/jce.xml000064400000001634152325744610006605 0ustar00<?xml version="1.0" encoding="utf-8"?> <extension version="3.8" type="plugin" group="quickicon" method="upgrade"> <name>plg_quickicon_jce</name> <version>2.9.21</version> <creationDate>30-03-2022</creationDate> <author>Ryan Demmer</author> <authorEmail>info@joomlacontenteditor.net</authorEmail> <authorUrl>http://www.joomlacontenteditor.net</authorUrl> <copyright>Copyright (C) 2006 - 2022 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> joomlaupdate/index.html000064400000000037152325744610011236 0ustar00<!DOCTYPE html><title></title> joomlaupdate/joomlaupdate.php000064400000006116152325744610012442 0ustar00<?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.xml000064400000002134152325744610012447 0ustar00<?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.php000064400000013707152325744610013664 0ustar00<?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.xml000064400000001511152325744610013663 0ustar00<?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> privacycheck/privacycheck.php000064400000004624152325744610012422 0ustar00<?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' ) ); } } privacycheck/privacycheck.xml000064400000001465152325744610012433 0ustar00<?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> index.html000064400000000037152325744610006552 0ustar00<!DOCTYPE html><title></title>
/home/digilove/public_html/f7525/../libraries/../41423/quickicon.tar