uawdijnntqw1x1x1
IP : 216.73.216.84
Hostname : webm003.cluster107.gra.hosting.ovh.net
Kernel : Linux webm003.cluster107.gra.hosting.ovh.net 5.15.167-ovh-vps-grsec-zfs-classid #1 SMP Tue Sep 17 08:14:20 UTC 2024 x86_64
Disable Function : _dyuweyrj4,_dyuweyrj4r,dl
OS : Linux
PATH:
/
home
/
opticamezl
/
www
/
newok
/
07d6c
/
..
/
c9989
/
..
/
.
/
modules
/
mod_search
/
..
/
..
/
07d6c
/
..
/
quickicon.tar
/
/
downloadkey/downloadkey.xml000064400000002252151664165070012142 0ustar00<?xml version="1.0" encoding="UTF-8"?> <extension type="plugin" group="quickicon" method="upgrade"> <name>plg_quickicon_downloadkey</name> <author>Joomla! Project</author> <creationDate>2019-10</creationDate> <copyright>(C) 2019 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>4.0.0</version> <description>PLG_QUICKICON_DOWNLOADKEY_XML_DESCRIPTION</description> <namespace path="src">Joomla\Plugin\Quickicon\Downloadkey</namespace> <files> <folder plugin="downloadkey">services</folder> <folder>src</folder> </files> <languages> <language tag="en-GB">language/en-GB/plg_quickicon_downloadkey.ini</language> <language tag="en-GB">language/en-GB/plg_quickicon_downloadkey.sys.ini</language> </languages> <config> <fields name="params"> <fieldset name="basic"> <field name="context" type="text" label="PLG_QUICKICON_DOWNLOADKEY_GROUP_LABEL" description="PLG_QUICKICON_DOWNLOADKEY_GROUP_DESC" default="update_quickicon" /> </fieldset> </fields> </config> </extension> downloadkey/services/provider.php000064400000002501151664165070013263 0ustar00<?php /** * @package Joomla.Plugin * @subpackage Quickicon.downloadkey * * @copyright (C) 2022 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\Extension\PluginInterface; use Joomla\CMS\Factory; use Joomla\CMS\Plugin\PluginHelper; use Joomla\DI\Container; use Joomla\DI\ServiceProviderInterface; use Joomla\Event\DispatcherInterface; use Joomla\Plugin\Quickicon\Downloadkey\Extension\Downloadkey; return new class () implements ServiceProviderInterface { /** * Registers the service provider with a DI container. * * @param Container $container The DI container. * * @return void * * @since 4.3.0 */ public function register(Container $container) { $container->set( PluginInterface::class, function (Container $container) { $dispatcher = $container->get(DispatcherInterface::class); $plugin = new Downloadkey( $dispatcher, (array) PluginHelper::getPlugin('quickicon', 'downloadkey') ); $plugin->setApplication(Factory::getApplication()); return $plugin; } ); } }; downloadkey/src/Extension/Downloadkey.php000064400000010643151664165070014637 0ustar00<?php /** * @package Joomla.Plugin * @subpackage Quickicon.downloadkey * * @copyright (C) 2019 Open Source Matters, Inc. <https://www.joomla.org> * @license GNU General Public License version 2 or later; see LICENSE.txt */ namespace Joomla\Plugin\Quickicon\Downloadkey\Extension; use Joomla\CMS\Language\Text; use Joomla\CMS\Plugin\CMSPlugin; use Joomla\Component\Installer\Administrator\Helper\InstallerHelper as ComInstallerHelper; use Joomla\Event\SubscriberInterface; use Joomla\Module\Quickicon\Administrator\Event\QuickIconsEvent; // phpcs:disable PSR1.Files.SideEffects \defined('_JEXEC') or die; // phpcs:enable PSR1.Files.SideEffects /** * Joomla! update notification plugin * * @since 4.0.0 */ final class Downloadkey extends CMSPlugin implements SubscriberInterface { /** * Load the language file on instantiation. * * @var boolean * @since 4.0.0 */ protected $autoloadLanguage = true; /** * Returns an array of events this subscriber will listen to. * * @return array * * @since 4.3.0 */ public static function getSubscribedEvents(): array { return [ 'onGetIcons' => 'onGetIcons', ]; } /** * Returns an icon definition for an icon which looks for extensions updates * via AJAX and displays a notification when such updates are found. * * @param QuickIconsEvent $event The event object * * @return void * * @since 4.0.0 */ public function onGetIcons(QuickIconsEvent $event): void { $context = $event->getContext(); if ( $context !== $this->params->get('context', 'update_quickicon') || !$this->getApplication()->getIdentity()->authorise('core.manage', 'com_installer') ) { return; } $info = $this->getMissingDownloadKeyInfo(); // No extensions need a download key. The icon is not rendered. if (!$info['supported']) { return; } $iconDefinition = [ 'link' => 'index.php?option=com_installer&view=updatesites&filter[supported]=1', 'image' => 'icon-key', 'icon' => '', 'text' => Text::_('PLG_QUICKICON_DOWNLOADKEY_OK'), 'class' => 'success', 'id' => 'plg_quickicon_downloadkey', 'group' => 'MOD_QUICKICON_MAINTENANCE', ]; if ($info['missing'] !== 0) { $iconDefinition = array_merge( $iconDefinition, [ 'link' => 'index.php?option=com_installer&view=updatesites&filter[supported]=-1', 'text' => Text::plural('PLG_QUICKICON_DOWNLOADKEY_N_MISSING', $info['missing']), 'class' => 'danger', ] ); } // Add the icon to the result array $result = $event->getArgument('result', []); $result[] = [ $iconDefinition, ]; $event->setArgument('result', $result); } /** * Gets the information about update sites requiring but missing a download key. * * The return array has two keys: * - supported Number of update sites supporting Download Key * - missing Number of update sites missing a Download Key * * If 'supported' is zero you do not need to provide any download keys. All your extensions are free downloads. * * If 'supported' is non-zero and 'missing' is zero you have entered a download key for all paid extensions. * * If 'supported' is non-zero and 'missing' is also non-zero you need to enter one or more download keys. * * @return array * @since 4.0.0 */ private function getMissingDownloadKeyInfo(): array { $ret = [ 'supported' => 0, 'missing' => 0, ]; if (!class_exists('Joomla\Component\Installer\Administrator\Helper\InstallerHelper')) { require_once JPATH_ADMINISTRATOR . '/components/com_installer/Helper/InstallerHelper.php'; } $supported = ComInstallerHelper::getDownloadKeySupportedSites(true); $ret['supported'] = count($supported); if ($ret['supported'] === 0) { return $ret; } $missing = ComInstallerHelper::getDownloadKeyExistsSites(false, true); $ret['missing'] = count($missing); return $ret; } } extensionupdate/src/Extension/Extensionupdate.php000064400000007140151664165070016433 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 */ namespace Joomla\Plugin\Quickicon\Extensionupdate\Extension; use Joomla\CMS\Extension\ExtensionHelper; use Joomla\CMS\Language\Text; use Joomla\CMS\Plugin\CMSPlugin; use Joomla\CMS\Session\Session; use Joomla\CMS\Uri\Uri; use Joomla\Event\SubscriberInterface; use Joomla\Module\Quickicon\Administrator\Event\QuickIconsEvent; // phpcs:disable PSR1.Files.SideEffects \defined('_JEXEC') or die; // phpcs:enable PSR1.Files.SideEffects /** * Joomla! update notification plugin * * @since 2.5 */ final class Extensionupdate extends CMSPlugin implements SubscriberInterface { /** * Load the language file on instantiation. * * @var boolean * @since 3.1 */ protected $autoloadLanguage = true; /** * Returns an array of events this subscriber will listen to. * * @return array * * @since 4.3.0 */ public static function getSubscribedEvents(): array { return [ 'onGetIcons' => 'onGetIcons', ]; } /** * Returns an icon definition for an icon which looks for extensions updates * via AJAX and displays a notification when such updates are found. * * @param QuickIconsEvent $event The event object * * @return void * * @since 2.5 */ public function onGetIcons(QuickIconsEvent $event): void { $context = $event->getContext(); if ( $context !== $this->params->get('context', 'update_quickicon') || !$this->getApplication()->getIdentity()->authorise('core.manage', 'com_installer') ) { return; } $token = Session::getFormToken() . '=1'; $options = [ 'url' => Uri::base() . 'index.php?option=com_installer&view=update&task=update.find&' . $token, 'ajaxUrl' => Uri::base() . 'index.php?option=com_installer&view=update&task=update.ajax&' . $token . '&cache_timeout=3600&eid=0&skip=' . ExtensionHelper::getExtensionRecord('joomla', 'file')->extension_id, ]; $this->getApplication()->getDocument()->addScriptOptions('js-extensions-update', $options); Text::script('PLG_QUICKICON_EXTENSIONUPDATE_UPTODATE'); Text::script('PLG_QUICKICON_EXTENSIONUPDATE_UPDATEFOUND'); Text::script('PLG_QUICKICON_EXTENSIONUPDATE_ERROR'); Text::script('MESSAGE'); Text::script('ERROR'); Text::script('INFO'); Text::script('WARNING'); $this->getApplication()->getDocument()->getWebAssetManager() ->registerAndUseScript( 'plg_quickicon_extensionupdate', 'plg_quickicon_extensionupdate/extensionupdatecheck.min.js', [], ['defer' => true], ['core'] ); // Add the icon to the result array $result = $event->getArgument('result', []); $result[] = [ [ 'link' => 'index.php?option=com_installer&view=update&task=update.find&' . $token, 'image' => 'icon-star', 'icon' => '', 'text' => $this->getApplication()->getLanguage()->_('PLG_QUICKICON_EXTENSIONUPDATE_CHECKING'), 'id' => 'plg_quickicon_extensionupdate', 'group' => 'MOD_QUICKICON_MAINTENANCE', ], ]; $event->setArgument('result', $result); } } extensionupdate/index.html000060400000000037151664165070011767 0ustar00<!DOCTYPE html><title></title> extensionupdate/services/provider.php000064400000002525151664165070014170 0ustar00<?php /** * @package Joomla.Plugin * @subpackage Quickicon.extensionupdate * * @copyright (C) 2022 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\Extension\PluginInterface; use Joomla\CMS\Factory; use Joomla\CMS\Plugin\PluginHelper; use Joomla\DI\Container; use Joomla\DI\ServiceProviderInterface; use Joomla\Event\DispatcherInterface; use Joomla\Plugin\Quickicon\Extensionupdate\Extension\Extensionupdate; return new class () implements ServiceProviderInterface { /** * Registers the service provider with a DI container. * * @param Container $container The DI container. * * @return void * * @since 4.3.0 */ public function register(Container $container) { $container->set( PluginInterface::class, function (Container $container) { $dispatcher = $container->get(DispatcherInterface::class); $plugin = new Extensionupdate( $dispatcher, (array) PluginHelper::getPlugin('quickicon', 'extensionupdate') ); $plugin->setApplication(Factory::getApplication()); return $plugin; } ); } }; extensionupdate/extensionupdate.xml000064400000002312151664165070013735 0ustar00<?xml version="1.0" encoding="UTF-8"?> <extension type="plugin" group="quickicon" method="upgrade"> <name>plg_quickicon_extensionupdate</name> <author>Joomla! Project</author> <creationDate>2011-08</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> <namespace path="src">Joomla\Plugin\Quickicon\Extensionupdate</namespace> <files> <folder plugin="extensionupdate">services</folder> <folder>src</folder> </files> <languages> <language tag="en-GB">language/en-GB/plg_quickicon_extensionupdate.ini</language> <language tag="en-GB">language/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="update_quickicon" /> </fieldset> </fields> </config> </extension> phpversioncheck/services/provider.php000064400000002525151664165070014144 0ustar00<?php /** * @package Joomla.Plugin * @subpackage Quickicon.phpversioncheck * * @copyright (C) 2022 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\Extension\PluginInterface; use Joomla\CMS\Factory; use Joomla\CMS\Plugin\PluginHelper; use Joomla\DI\Container; use Joomla\DI\ServiceProviderInterface; use Joomla\Event\DispatcherInterface; use Joomla\Plugin\Quickicon\PhpVersionCheck\Extension\PhpVersionCheck; return new class () implements ServiceProviderInterface { /** * Registers the service provider with a DI container. * * @param Container $container The DI container. * * @return void * * @since 4.3.0 */ public function register(Container $container) { $container->set( PluginInterface::class, function (Container $container) { $dispatcher = $container->get(DispatcherInterface::class); $plugin = new PhpVersionCheck( $dispatcher, (array) PluginHelper::getPlugin('quickicon', 'phpversioncheck') ); $plugin->setApplication(Factory::getApplication()); return $plugin; } ); } }; phpversioncheck/src/Extension/PhpVersionCheck.php000064400000017336151664165070016273 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 */ namespace Joomla\Plugin\Quickicon\PhpVersionCheck\Extension; use Joomla\CMS\Date\Date; use Joomla\CMS\Language\Text; use Joomla\CMS\Plugin\CMSPlugin; use Joomla\Event\SubscriberInterface; use Joomla\Module\Quickicon\Administrator\Event\QuickIconsEvent; // phpcs:disable PSR1.Files.SideEffects \defined('_JEXEC') or die; // phpcs:enable PSR1.Files.SideEffects /** * Plugin to check the PHP version and display a warning about its support status * * @since 3.7.0 */ final class PhpVersionCheck extends CMSPlugin implements SubscriberInterface { /** * Constant representing the active PHP version being fully supported * * @var integer * @since 3.7.0 */ public const PHP_SUPPORTED = 0; /** * Constant representing the active PHP version receiving security support only * * @var integer * @since 3.7.0 */ public const PHP_SECURITY_ONLY = 1; /** * Constant representing the active PHP version being unsupported * * @var integer * @since 3.7.0 */ public const PHP_UNSUPPORTED = 2; /** * Load plugin language files automatically * * @var boolean * @since 3.7.0 */ protected $autoloadLanguage = true; /** * Returns an array of events this subscriber will listen to. * * @return array * * @since 4.3.0 */ public static function getSubscribedEvents(): array { return [ 'onGetIcons' => 'onGetIcons', ]; } /** * Check the PHP version after the admin component has been dispatched. * * @param QuickIconsEvent $event The event object * * @return void * * @since 3.7.0 */ public function onGetIcons(QuickIconsEvent $event): void { 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->getApplication()->enqueueMessage($supportStatus['message'], 'warning'); break; case self::PHP_UNSUPPORTED: $this->getApplication()->enqueueMessage($supportStatus['message'], 'danger'); 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 = [ '7.2' => [ 'security' => '2019-11-30', 'eos' => '2020-11-30', ], '7.3' => [ 'security' => '2020-12-06', 'eos' => '2021-12-06', ], '7.4' => [ 'security' => '2021-11-28', 'eos' => '2022-11-28', ], '8.0' => [ 'security' => '2022-11-26', 'eos' => '2023-11-26', ], '8.1' => [ 'security' => '2023-11-25', 'eos' => '2025-12-31', ], '8.2' => [ 'security' => '2024-12-31', 'eos' => '2026-12-31', ], '8.3' => [ 'security' => '2025-12-31', 'eos' => '2027-12-31', ], ]; // Fill our return array with default values $supportStatus = [ 'status' => self::PHP_SUPPORTED, 'message' => null, ]; // Check the PHP version's support status using the minor version $activePhpVersion = PHP_MAJOR_VERSION . '.' . PHP_MINOR_VERSION; // Handle non standard strings like PHP 7.2.34-8+ubuntu18.04.1+deb.sury.org+1 $phpVersion = preg_split('/-/', PHP_VERSION)[0]; // Do we have the PHP version's data? if (isset($phpSupportData[$activePhpVersion])) { // First check if the version has reached end of support $today = new Date(); $phpEndOfSupport = new Date($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 Date($versionData['eos']); if (version_compare($version, $activePhpVersion, 'ge') && ($today < $versionEndOfSupport)) { $supportStatus['status'] = self::PHP_UNSUPPORTED; $supportStatus['message'] = Text::sprintf( 'PLG_QUICKICON_PHPVERSIONCHECK_UNSUPPORTED', $phpVersion, $version, $versionEndOfSupport->format(Text::_('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'] = Text::sprintf( 'PLG_QUICKICON_PHPVERSIONCHECK_UNSUPPORTED_JOOMLA_OUTDATED', $phpVersion ); 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'] = Text::sprintf( 'PLG_QUICKICON_PHPVERSIONCHECK_SECURITY_ONLY', $phpVersion, $phpEndOfSupport->format(Text::_('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->getApplication()->isClient('administrator')) { return false; } // Only if authenticated if ($this->getApplication()->getIdentity()->guest) { return false; } // Only on HTML documents if ($this->getApplication()->getDocument()->getType() !== 'html') { return false; } // Only on full page requests if ($this->getApplication()->getInput()->getCmd('tmpl', 'index') === 'component') { return false; } // Only to com_cpanel if ($this->getApplication()->getInput()->get('option') !== 'com_cpanel') { return false; } return true; } } phpversioncheck/phpversioncheck.xml000064400000001634151664165070013673 0ustar00<?xml version="1.0" encoding="UTF-8"?> <extension type="plugin" group="quickicon" method="upgrade"> <name>plg_quickicon_phpversioncheck</name> <author>Joomla! Project</author> <creationDate>2016-08</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> <namespace path="src">Joomla\Plugin\Quickicon\PhpVersionCheck</namespace> <files> <folder plugin="phpversioncheck">services</folder> <folder>src</folder> </files> <languages> <language tag="en-GB">language/en-GB/plg_quickicon_phpversioncheck.ini</language> <language tag="en-GB">language/en-GB/plg_quickicon_phpversioncheck.sys.ini</language> </languages> </extension> privacycheck/privacycheck.xml000064400000002262151664165070012431 0ustar00<?xml version="1.0" encoding="UTF-8"?> <extension type="plugin" group="quickicon" method="upgrade"> <name>plg_quickicon_privacycheck</name> <author>Joomla! Project</author> <creationDate>2018-06</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> <namespace path="src">Joomla\Plugin\Quickicon\PrivacyCheck</namespace> <files> <folder plugin="privacycheck">services</folder> <folder>src</folder> </files> <languages> <language tag="en-GB">language/en-GB/plg_quickicon_privacycheck.ini</language> <language tag="en-GB">language/en-GB/plg_quickicon_privacycheck.sys.ini</language> </languages> <config> <fields name="params"> <fieldset name="basic"> <field name="context" type="text" label="PLG_QUICKICON_PRIVACYCHECK_GROUP_LABEL" description="PLG_QUICKICON_PRIVACYCHECK_GROUP_DESC" default="update_quickicon" /> </fieldset> </fields> </config> </extension> privacycheck/services/provider.php000064400000002506151664165070013423 0ustar00<?php /** * @package Joomla.Plugin * @subpackage Quickicon.privacycheck * * @copyright (C) 2022 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\Extension\PluginInterface; use Joomla\CMS\Factory; use Joomla\CMS\Plugin\PluginHelper; use Joomla\DI\Container; use Joomla\DI\ServiceProviderInterface; use Joomla\Event\DispatcherInterface; use Joomla\Plugin\Quickicon\PrivacyCheck\Extension\PrivacyCheck; return new class () implements ServiceProviderInterface { /** * Registers the service provider with a DI container. * * @param Container $container The DI container. * * @return void * * @since 4.3.0 */ public function register(Container $container) { $container->set( PluginInterface::class, function (Container $container) { $dispatcher = $container->get(DispatcherInterface::class); $plugin = new PrivacyCheck( $dispatcher, (array) PluginHelper::getPlugin('quickicon', 'privacycheck') ); $plugin->setApplication(Factory::getApplication()); return $plugin; } ); } }; privacycheck/src/Extension/PrivacyCheck.php000064400000007460151664165070015070 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 */ namespace Joomla\Plugin\Quickicon\PrivacyCheck\Extension; use Joomla\CMS\Component\ComponentHelper; use Joomla\CMS\Plugin\CMSPlugin; use Joomla\CMS\Session\Session; use Joomla\CMS\Uri\Uri; use Joomla\Event\SubscriberInterface; use Joomla\Module\Quickicon\Administrator\Event\QuickIconsEvent; // phpcs:disable PSR1.Files.SideEffects \defined('_JEXEC') or die; // phpcs:enable PSR1.Files.SideEffects /** * Plugin to check privacy requests older than 14 days * * @since 3.9.0 */ final class PrivacyCheck extends CMSPlugin implements SubscriberInterface { /** * Load plugin language files automatically * * @var boolean * @since 3.9.0 */ protected $autoloadLanguage = true; /** * Returns an array of events this subscriber will listen to. * * @return array * * @since 4.3.0 */ public static function getSubscribedEvents(): array { return [ 'onGetIcons' => 'onGetIcons', ]; } /** * Check privacy requests older than 14 days. * * @param QuickIconsEvent $event The event object * * @return void * * @since 3.9.0 */ public function onGetIcons(QuickIconsEvent $event): void { $context = $event->getContext(); if ( $context !== $this->params->get('context', 'update_quickicon') || !$this->getApplication()->getIdentity()->authorise('core.admin', 'com_privacy') || !ComponentHelper::isEnabled('com_privacy') ) { return; } $token = Session::getFormToken() . '=' . 1; $privacy = 'index.php?option=com_privacy'; $options = [ '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&format=json&' . $token, 'plg_quickicon_privacycheck_text' => [ "NOREQUEST" => $this->getApplication()->getLanguage()->_('PLG_QUICKICON_PRIVACYCHECK_NOREQUEST'), "REQUESTFOUND" => $this->getApplication()->getLanguage()->_('PLG_QUICKICON_PRIVACYCHECK_REQUESTFOUND'), "ERROR" => $this->getApplication()->getLanguage()->_('PLG_QUICKICON_PRIVACYCHECK_ERROR'), "REQUESTFOUND_MESSAGE" => $this->getApplication()->getLanguage()->_('PLG_QUICKICON_PRIVACYCHECK_REQUESTFOUND_MESSAGE'), "REQUESTFOUND_BUTTON" => $this->getApplication()->getLanguage()->_('PLG_QUICKICON_PRIVACYCHECK_REQUESTFOUND_BUTTON'), ], ]; $this->getApplication()->getDocument()->addScriptOptions('js-privacy-check', $options); $this->getApplication()->getDocument()->getWebAssetManager() ->registerAndUseScript('plg_quickicon_privacycheck', 'plg_quickicon_privacycheck/privacycheck.js', [], ['defer' => true], ['core']); // Add the icon to the result array $result = $event->getArgument('result', []); $result[] = [ [ 'link' => $privacy . '&view=requests&filter[status]=1&list[fullordering]=a.requested_at ASC', 'image' => 'icon-users', 'icon' => '', 'text' => $this->getApplication()->getLanguage()->_('PLG_QUICKICON_PRIVACYCHECK_CHECKING'), 'id' => 'plg_quickicon_privacycheck', 'group' => 'MOD_QUICKICON_USERS', ], ]; $event->setArgument('result', $result); } } joomlaupdate/src/Extension/Joomlaupdate.php000064400000010211151664165070015136 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 */ namespace Joomla\Plugin\Quickicon\Joomlaupdate\Extension; use Joomla\CMS\Document\Document; use Joomla\CMS\Language\Text; use Joomla\CMS\Plugin\CMSPlugin; use Joomla\CMS\Session\Session; use Joomla\CMS\Uri\Uri; use Joomla\Event\DispatcherInterface; use Joomla\Event\SubscriberInterface; use Joomla\Module\Quickicon\Administrator\Event\QuickIconsEvent; // phpcs:disable PSR1.Files.SideEffects \defined('_JEXEC') or die; // phpcs:enable PSR1.Files.SideEffects /** * Joomla! update notification plugin * * @since 2.5 */ class Joomlaupdate extends CMSPlugin implements SubscriberInterface { /** * Load the language file on instantiation. * * @var boolean * @since 3.1 */ protected $autoloadLanguage = true; /** * The document. * * @var Document * * @since 4.0.0 */ private $document; /** * Returns an array of events this subscriber will listen to. * * @return array * * @since 4.0.0 */ public static function getSubscribedEvents(): array { return [ 'onGetIcons' => 'getCoreUpdateNotification', ]; } /** * Constructor * * @param DispatcherInterface $subject The object to observe * @param Document $document The document * @param array $config An optional associative array of configuration settings. * Recognized key values include 'name', 'group', 'params', 'language' * (this list is not meant to be comprehensive). * * @since 4.0.0 */ public function __construct($subject, Document $document, $config = []) { parent::__construct($subject, $config); $this->document = $document; } /** * 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 QuickIconsEvent $event The event object * * @return void * * @since 4.0.0 */ public function getCoreUpdateNotification(QuickIconsEvent $event) { $context = $event->getContext(); if ( $context !== $this->params->get('context', 'update_quickicon') || !$this->getApplication()->getIdentity()->authorise('core.manage', 'com_joomlaupdate') ) { return; } Text::script('PLG_QUICKICON_JOOMLAUPDATE_ERROR'); Text::script('PLG_QUICKICON_JOOMLAUPDATE_UPDATEFOUND'); Text::script('PLG_QUICKICON_JOOMLAUPDATE_UPTODATE'); Text::script('MESSAGE'); Text::script('ERROR'); Text::script('INFO'); Text::script('WARNING'); $this->document->addScriptOptions( 'js-joomla-update', [ 'url' => Uri::base() . 'index.php?option=com_joomlaupdate', 'ajaxUrl' => Uri::base() . 'index.php?option=com_joomlaupdate&task=update.ajax&' . Session::getFormToken() . '=1', 'version' => JVERSION, ] ); $this->document->getWebAssetManager() ->registerAndUseScript('plg_quickicon_joomlaupdate', 'plg_quickicon_joomlaupdate/jupdatecheck.min.js', [], ['defer' => true], ['core']); // Add the icon to the result array $result = $event->getArgument('result', []); $result[] = [ [ 'link' => 'index.php?option=com_joomlaupdate', 'image' => 'icon-joomla', 'icon' => '', 'text' => Text::_('PLG_QUICKICON_JOOMLAUPDATE_CHECKING'), 'id' => 'plg_quickicon_joomlaupdate', 'group' => 'MOD_QUICKICON_MAINTENANCE', ], ]; $event->setArgument('result', $result); } } joomlaupdate/joomlaupdate.xml000064400000002262151664165070012453 0ustar00<?xml version="1.0" encoding="UTF-8"?> <extension type="plugin" group="quickicon" method="upgrade"> <name>plg_quickicon_joomlaupdate</name> <author>Joomla! Project</author> <creationDate>2011-08</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> <namespace path="src">Joomla\Plugin\Quickicon\Joomlaupdate</namespace> <files> <folder plugin="joomlaupdate">services</folder> <folder>src</folder> </files> <languages> <language tag="en-GB">language/en-GB/plg_quickicon_joomlaupdate.ini</language> <language tag="en-GB">language/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="update_quickicon" /> </fieldset> </fields> </config> </extension> joomlaupdate/services/provider.php000064400000002656151664165070013442 0ustar00<?php /** * @package Joomla.Plugin * @subpackage Quickicon.Joomlaupdate * * @copyright (C) 2019 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\Extension\PluginInterface; use Joomla\CMS\Factory; use Joomla\DI\Container; use Joomla\DI\ServiceProviderInterface; use Joomla\Event\DispatcherInterface; use Joomla\Plugin\Quickicon\Joomlaupdate\Extension\Joomlaupdate; return new class () implements ServiceProviderInterface { /** * Registers the service provider with a DI container. * * @param Container $container The DI container. * * @return void * * @since 4.0.0 */ public function register(Container $container) { $container->set( PluginInterface::class, function (Container $container) { // @Todo This needs to be changed to a proper factory $plugin = \Joomla\CMS\Plugin\PluginHelper::getPlugin('quickicon', 'joomlaupdate'); $plugin = new Joomlaupdate( $container->get(DispatcherInterface::class), Factory::getApplication()->getDocument(), (array) $plugin ); $plugin->setApplication(Factory::getApplication()); return $plugin; } ); } }; joomlaupdate/index.html000060400000000037151664165070011234 0ustar00<!DOCTYPE html><title></title> index.html000060400000000037151664165070006550 0ustar00<!DOCTYPE html><title></title> eos/src/Extension/Eos.php000064400000022357151664165070011360 0ustar00<?php /** * @package Joomla.Plugin * @subpackage Quickicon.eos * * @copyright (C) 2023 Open Source Matters, Inc. <https://www.joomla.org> * @license GNU General Public License version 2 or later; see LICENSE.txt */ namespace Joomla\Plugin\Quickicon\Eos\Extension; use Joomla\CMS\Access\Exception\NotAllowed; use Joomla\CMS\Application\CMSWebApplicationInterface; use Joomla\CMS\Factory; use Joomla\CMS\HTML\HTMLHelper; use Joomla\CMS\Plugin\CMSPlugin; use Joomla\Database\DatabaseAwareTrait; use Joomla\Event\SubscriberInterface; use Joomla\Module\Quickicon\Administrator\Event\QuickIconsEvent; // phpcs:disable PSR1.Files.SideEffects \defined('_JEXEC') or die; // phpcs:enable PSR1.Files.SideEffects /** * Joomla! end of support notification plugin * * @since 4.4.0 */ final class Eos extends CMSPlugin implements SubscriberInterface { use DatabaseAwareTrait; /** * The EOS date for 4.4. * * @var string * @since 4.4.0 */ private const EOS_DATE = '2025-10-17'; /** * Load the language file on instantiation. * * @var bool * @since 4.4.0 */ protected $autoloadLanguage = false; /** * Holding the current valid message to be shown. * * @var array * @since 4.4.0 */ private $currentMessage = []; /** * Are the messages initialized. * * @var bool * @since 4.4.0 */ private $messagesInitialized = false; /** * Returns an array of events this subscriber will listen to. * * @return array * * @since 4.4.0 */ public static function getSubscribedEvents(): array { return [ 'onGetIcons' => 'getEndOfServiceNotification', 'onAjaxEos' => 'onAjaxEos', ]; } /** * Check and show the alert. * * This method is called when the Quick Icons module is constructing its set * of icons. * * @param QuickIconsEvent $event The event object * * @return void * * @since 4.4.0 * * @throws \Exception */ public function getEndOfServiceNotification(QuickIconsEvent $event): void { $app = $this->getApplication(); if ( $event->getContext() !== $this->params->get('context', 'update_quickicon') || !$this->shouldDisplayMessage() || (!$this->messagesInitialized && $this->setMessage() == []) || !$app instanceof CMSWebApplicationInterface ) { return; } $this->loadLanguage(); // Show this only when not snoozed if ($this->params->get('last_snoozed_id', 0) < $this->currentMessage['id']) { // Build the message to be displayed in the cpanel $messageText = sprintf( $app->getLanguage()->_($this->currentMessage['messageText']), HTMLHelper::_('date', Eos::EOS_DATE, $app->getLanguage()->_('DATE_FORMAT_LC3')), $this->currentMessage['messageLink'] ); if ($this->currentMessage['snoozable']) { $messageText .= '<p><button class="btn btn-warning eosnotify-snooze-btn" type="button" >'; $messageText .= $app->getLanguage()->_('PLG_QUICKICON_EOS_SNOOZE_BUTTON') . '</button></p>'; } $app->enqueueMessage($messageText, $this->currentMessage['messageType']); } $app->getDocument()->getWebAssetManager() ->registerAndUseScript('plg_quickicon_eos.script', 'plg_quickicon_eos/snooze.js', [], ['type' => 'module']); } /** * Save the plugin parameters. * * @return bool * * @since 4.4.0 */ private function saveParams(): bool { $params = $this->params->toString('JSON'); $db = $this->getDatabase(); $query = $db->getQuery(true) ->update($db->quoteName('#__extensions')) ->set($db->quoteName('params') . ' = :params') ->where($db->quoteName('type') . ' = ' . $db->quote('plugin')) ->where($db->quoteName('folder') . ' = ' . $db->quote('quickicon')) ->where($db->quoteName('element') . ' = ' . $db->quote('eos')) ->bind(':params', $params); return $db->setQuery($query)->execute(); } /** * Determines if the message and quickicon should be displayed. * * @return bool * * @since 4.4.0 * * @throws \Exception */ private function shouldDisplayMessage(): bool { // Show only on administration part return $this->getApplication()->isClient('administrator') // Only show for HTML requests && $this->getApplication()->getDocument()->getType() === 'html' // Don't show in modal && $this->getApplication()->getInput()->getCmd('tmpl', 'index') !== 'component' // Only show in cpanel && $this->getApplication()->getInput()->get('option') === 'com_cpanel'; } /** * Return the texts to be displayed based on the time until we reach EOS. * * @param int $monthsUntilEOS The months until we reach EOS * @param int $inverted Have we surpassed the EOS date * * @return array An array with the message to be displayed or false * * @since 4.4.0 */ private function getMessageInfo(int $monthsUntilEOS, int $inverted): array { // The EOS date has passed - Support has ended if ($inverted === 1) { return [ 'id' => 5, 'messageText' => 'PLG_QUICKICON_EOS_MESSAGE_ERROR_SUPPORT_ENDED', 'messageType' => 'error', 'messageLink' => 'https://docs.joomla.org/Special:MyLanguage/Joomla_4.4.x_to_5.x_Planning_and_Upgrade_Step_by_Step', 'snoozable' => false, ]; } // The security support is ending in 6 months if ($monthsUntilEOS < 6) { return [ 'id' => 4, 'messageText' => 'PLG_QUICKICON_EOS_MESSAGE_WARNING_SUPPORT_ENDING', 'messageType' => 'warning', 'messageLink' => 'https://docs.joomla.org/Special:MyLanguage/Joomla_4.4.x_to_5.x_Planning_and_Upgrade_Step_by_Step', 'snoozable' => true, ]; } // We are in security only mode now, 12 month to go from now on if ($monthsUntilEOS < 12) { return [ 'id' => 3, 'messageText' => 'PLG_QUICKICON_EOS_MESSAGE_WARNING_SECURITY_ONLY', 'messageType' => 'warning', 'messageLink' => 'https://docs.joomla.org/Special:MyLanguage/Joomla_4.4.x_to_5.x_Planning_and_Upgrade_Step_by_Step', 'snoozable' => true, ]; } // We still have 16 month to go, lets remind our users about the pre upgrade checker if ($monthsUntilEOS < 16) { return [ 'id' => 2, 'messageText' => 'PLG_QUICKICON_EOS_MESSAGE_INFO_02', 'messageType' => 'info', 'messageLink' => 'https://docs.joomla.org/Special:MyLanguage/Pre-Update_Check', 'snoozable' => true, ]; } // Lets start our messages 2 month after the initial release, still 22 month to go if ($monthsUntilEOS < 22) { return [ 'id' => 1, 'messageText' => 'PLG_QUICKICON_EOS_MESSAGE_INFO_01', 'messageType' => 'info', 'messageLink' => 'https://joomla.org/5', 'snoozable' => true, ]; } return []; } /** * Check if current user is allowed to send the data. * * @return bool * * @since 4.4.0 * * @throws \Exception */ private function isAllowedUser(): bool { return $this->getApplication()->getIdentity()->authorise('core.login.admin'); } /** * User hit the snooze button. * * @return string * * @since 4.4.0 * * @throws Notallowed If user is not allowed * * @throws \Exception */ public function onAjaxEos(): string { // No messages yet so nothing to snooze if (!$this->messagesInitialized && $this->setMessage() == []) { return ''; } if (!$this->isAllowedUser()) { throw new Notallowed($this->getApplication()->getLanguage()->_('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 ''; } /** * Calculates how many days and selects correct message. * * @return array * * @since 4.4.0 */ private function setMessage(): array { $diff = Factory::getDate()->diff(Factory::getDate(Eos::EOS_DATE)); $message = $this->getMessageInfo(floor($diff->days / 30.417), $diff->invert); $this->currentMessage = $message; $this->messagesInitialized = true; return $message; } } eos/services/provider.php000064400000002666151664165070011545 0ustar00<?php /** * @package Joomla.Plugin * @subpackage Quickicon.eos * * @copyright (C) 2023 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\Extension\PluginInterface; use Joomla\CMS\Factory; use Joomla\CMS\Plugin\PluginHelper; use Joomla\Database\DatabaseInterface; use Joomla\DI\Container; use Joomla\DI\ServiceProviderInterface; use Joomla\Event\DispatcherInterface; use Joomla\Plugin\Quickicon\Eos\Extension\Eos; return new class () implements ServiceProviderInterface { /** * Registers the service provider with a DI container. * * @param Container $container The DI container. * * @return void * * @since 4.4.0 * * @throws Exception */ public function register(Container $container): void { $container->set( PluginInterface::class, function (Container $container) { $dispatcher = $container->get(DispatcherInterface::class); $plugin = new Eos( $dispatcher, (array) PluginHelper::getPlugin('quickicon', 'eos') ); $plugin->setApplication(Factory::getApplication()); $plugin->setDatabase($container->get(DatabaseInterface::class)); return $plugin; } ); } }; eos/eos.xml000064400000001771151664165070006663 0ustar00<?xml version="1.0" encoding="UTF-8"?> <extension type="plugin" group="quickicon" method="upgrade"> <name>plg_quickicon_eos</name> <author>Joomla! Project</author> <creationDate>2023-05</creationDate> <copyright>(C) 2023 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>4.4.0</version> <description>PLG_QUICKICON_EOS_XML_DESCRIPTION</description> <namespace path="src">Joomla\Plugin\Quickicon\Eos</namespace> <files> <folder plugin="eos">services</folder> <folder>src</folder> </files> <languages> <language tag="en-GB">language/en-GB/plg_quickicon_eos.ini</language> <language tag="en-GB">language/en-GB/plg_quickicon_eos.sys.ini</language> </languages> <config> <fields name="params"> <fieldset name="basic"> <field name="last_snoozed_id" type="hidden" /> </fieldset> </fields> </config> </extension> overridecheck/overridecheck.xml000064400000002272151664165070012736 0ustar00<?xml version="1.0" encoding="UTF-8"?> <extension type="plugin" group="quickicon" method="upgrade"> <name>plg_quickicon_overridecheck</name> <author>Joomla! Project</author> <creationDate>2018-06</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>4.0.0</version> <description>PLG_QUICKICON_OVERRIDECHECK_XML_DESCRIPTION</description> <namespace path="src">Joomla\Plugin\Quickicon\OverrideCheck</namespace> <files> <folder plugin="overridecheck">services</folder> <folder>src</folder> </files> <languages> <language tag="en-GB">language/en-GB/plg_quickicon_overridecheck.ini</language> <language tag="en-GB">language/en-GB/plg_quickicon_overridecheck.sys.ini</language> </languages> <config> <fields name="params"> <fieldset name="basic"> <field name="context" type="text" label="PLG_QUICKICON_OVERRIDECHECK_GROUP_LABEL" description="PLG_QUICKICON_OVERRIDECHECK_GROUP_DESC" default="update_quickicon" /> </fieldset> </fields> </config> </extension> overridecheck/src/Extension/OverrideCheck.php000064400000010277151664165070015374 0ustar00<?php /** * @package Joomla.Plugin * @subpackage Quickicon.overridecheck * * @copyright (C) 2018 Open Source Matters, Inc. <https://www.joomla.org> * @license GNU General Public License version 2 or later; see LICENSE.txt */ namespace Joomla\Plugin\Quickicon\OverrideCheck\Extension; use Joomla\CMS\Language\Text; use Joomla\CMS\Plugin\CMSPlugin; use Joomla\CMS\Session\Session; use Joomla\CMS\Uri\Uri; use Joomla\Database\DatabaseAwareTrait; use Joomla\Event\SubscriberInterface; use Joomla\Module\Quickicon\Administrator\Event\QuickIconsEvent; // phpcs:disable PSR1.Files.SideEffects \defined('_JEXEC') or die; // phpcs:enable PSR1.Files.SideEffects /** * Joomla! template override notification plugin * * @since 4.0.0 */ final class OverrideCheck extends CMSPlugin implements SubscriberInterface { use DatabaseAwareTrait; /** * Load the language file on instantiation. * * @var boolean * * @since 4.0.0 */ protected $autoloadLanguage = true; /** * Returns an array of events this subscriber will listen to. * * @return array * * @since 4.3.0 */ public static function getSubscribedEvents(): array { return [ 'onGetIcons' => 'onGetIcons', ]; } /** * Returns an icon definition for an icon which looks for overrides update * via AJAX and displays a notification when such overrides are updated. * * @param QuickIconsEvent $event The event object * * @return void * * @since 4.0.0 */ public function onGetIcons(QuickIconsEvent $event): void { $context = $event->getContext(); if ( $context !== $this->params->get('context', 'update_quickicon') || !$this->getApplication()->getIdentity()->authorise('core.manage', 'com_templates') ) { return; } $token = Session::getFormToken() . '=1'; $options = [ 'url' => Uri::base() . 'index.php?option=com_templates&view=templates', 'ajaxUrl' => Uri::base() . 'index.php?option=com_templates&view=templates&task=template.ajax&' . $token, 'pluginId' => $this->getOverridePluginId(), ]; $this->getApplication()->getDocument()->addScriptOptions('js-override-check', $options); Text::script('PLG_QUICKICON_OVERRIDECHECK_ERROR', true); Text::script('PLG_QUICKICON_OVERRIDECHECK_ERROR_ENABLE', true); Text::script('PLG_QUICKICON_OVERRIDECHECK_UPTODATE', true); Text::script('PLG_QUICKICON_OVERRIDECHECK_OVERRIDEFOUND', true); $this->getApplication()->getDocument()->getWebAssetManager() ->registerAndUseScript('plg_quickicon_overridecheck', 'plg_quickicon_overridecheck/overridecheck.js', [], ['defer' => true], ['core']); // Add the icon to the result array $result = $event->getArgument('result', []); $result[] = [ [ 'link' => 'index.php?option=com_templates&view=templates', 'image' => 'icon-file', 'icon' => '', 'text' => $this->getApplication()->getLanguage()->_('PLG_QUICKICON_OVERRIDECHECK_CHECKING'), 'id' => 'plg_quickicon_overridecheck', 'group' => 'MOD_QUICKICON_MAINTENANCE', ], ]; $event->setArgument('result', $result); } /** * Gets the installer override plugin extension id. * * @return integer The installer override plugin extension id. * * @since 4.0.0 */ private function getOverridePluginId() { $db = $this->getDatabase(); $query = $db->getQuery(true) ->select($db->quoteName('extension_id')) ->from($db->quoteName('#__extensions')) ->where($db->quoteName('folder') . ' = ' . $db->quote('installer')) ->where($db->quoteName('element') . ' = ' . $db->quote('override')); $db->setQuery($query); try { $result = (int) $db->loadResult(); } catch (\RuntimeException $e) { $this->getApplication()->enqueueMessage($e->getMessage(), 'error'); } return $result; } } overridecheck/services/provider.php000064400000002703151664165070013564 0ustar00<?php /** * @package Joomla.Plugin * @subpackage Quickicon.overridecheck * * @copyright (C) 2022 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\Extension\PluginInterface; use Joomla\CMS\Factory; use Joomla\CMS\Plugin\PluginHelper; use Joomla\Database\DatabaseInterface; use Joomla\DI\Container; use Joomla\DI\ServiceProviderInterface; use Joomla\Event\DispatcherInterface; use Joomla\Plugin\Quickicon\OverrideCheck\Extension\OverrideCheck; return new class () implements ServiceProviderInterface { /** * Registers the service provider with a DI container. * * @param Container $container The DI container. * * @return void * * @since 4.3.0 */ public function register(Container $container) { $container->set( PluginInterface::class, function (Container $container) { $dispatcher = $container->get(DispatcherInterface::class); $plugin = new OverrideCheck( $dispatcher, (array) PluginHelper::getPlugin('quickicon', 'overridecheck') ); $plugin->setApplication(Factory::getApplication()); $plugin->setDatabase($container->get(DatabaseInterface::class)); return $plugin; } ); } };
/home/opticamezl/www/newok/07d6c/../c9989/.././modules/mod_search/../../07d6c/../quickicon.tar