| Server IP : 46.105.57.169 / Your IP : 216.73.217.35 Web Server : Apache System : Linux webm002.cluster120.gra.hosting.ovh.net 6.18.42-ovh-vps-grsec-zfs+ #1 SMP PREEMPT_DYNAMIC Wed Aug 5 15:59:48 CEST 2026 x86_64 User : verseaumee ( 152031) PHP Version : 8.5.7 Disable Function : _dyuweyrj4,_dyuweyrj4r,dl MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : OFF | Pkexec : OFF Directory : /home/verseaumee/123click/assets/ |
Upload File : |
tmpl/default.php 0000644 00000003171 15075507330 0007664 0 ustar 00 <?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 id="jed-container" class="tab-pane">
<div class="well" id="web-loader">
<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>
tmpl/hathor.php 0000644 00000003701 15075507330 0007524 0 ustar 00 <?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.xml 0000644 00000002017 15075507330 0007766 0 ustar 00 <?xml version="1.0" encoding="utf-8"?>
<extension version="3.2" type="plugin" group="installer" method="upgrade">
<name>plg_installer_webinstaller</name>
<author>Joomla! Project</author>
<creationDate>28 April 2017</creationDate>
<copyright>Copyright (C) 2013 - 2019 Open Source Matters. All rights reserved.</copyright>
<license>http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL</license>
<authorEmail>admin@joomla.org</authorEmail>
<authorUrl>www.joomla.org</authorUrl>
<version>2.1.2</version>
<description>PLG_INSTALLER_WEBINSTALLER_XML_DESCRIPTION</description>
<files>
<folder>tmpl</folder>
<filename plugin="webinstaller">webinstaller.php</filename>
</files>
<media destination="plg_installer_webinstaller" folder="media">
<folder>css</folder>
<folder>js</folder>
</media>
<scriptfile>webinstaller.script.php</scriptfile>
<updateservers>
<server type="extension" priority="1" name="WebInstaller Update Site">https://appscdn.joomla.org/webapps/jedapps/webinstaller.xml</server>
</updateservers>
</extension>
webinstaller.php 0000644 00000014772 15075507330 0007770 0 ustar 00 <?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\Application\CMSApplication;
use Joomla\CMS\Factory;
use Joomla\CMS\Form\Rule\UrlRule;
use Joomla\CMS\HTML\HTMLHelper;
use Joomla\CMS\Installer\Installer;
use Joomla\CMS\Language\Text;
use Joomla\CMS\Plugin\CMSPlugin;
use Joomla\CMS\Plugin\PluginHelper;
use Joomla\CMS\Uri\Uri;
use Joomla\CMS\Version;
/**
* Support for the "Install from Web" tab
*
* @since 1.0
*/
class PlgInstallerWebinstaller extends CMSPlugin
{
/**
* The URL for the remote server.
*
* @var string
* @since 2.0
*/
const REMOTE_URL = 'https://appscdn.joomla.org/webapps/';
/**
* The application object.
*
* @var CMSApplication
* @since 2.0
*/
protected $app;
/**
* Affects constructor behavior. If true, language files will be loaded automatically.
*
* @var boolean
* @since 2.0
*/
protected $autoloadLanguage = true;
/**
* Flag tracking whether the Hathor admin template is in use
*
* @var boolean|null
* @since 1.0
* @deprecated Removed when the plugin is merged to 4.0
*/
private $_hathor = null;
/**
* The URL to install from
*
* @var string|null
* @since 1.0
*/
private $installfrom = null;
/**
* Event listener for the `onInstallerBeforeDisplay` event.
*
* @param boolean $showJedAndWebInstaller Flag indicating the install from web prompt should be displayed
*
* @return void
*
* @since 1.0
* @deprecated Removed when the plugin is merged to 4.0
*/
public function onInstallerBeforeDisplay(&$showJedAndWebInstaller)
{
$showJedAndWebInstaller = false;
}
/**
* Event listener for the `onInstallerAddInstallationTab` event.
*
* @return array Returns an array with the tab information
*
* @since 2.0
*/
public function onInstallerAddInstallationTab()
{
$tab = array(
'name' => 'web',
'label' => Text::_('COM_INSTALLER_INSTALL_FROM_WEB'),
);
// Render the input
ob_start();
include PluginHelper::getLayoutPath('installer', 'webinstaller', $this->isHathor() ? 'hathor' : 'default');
$tab['content'] = ob_get_clean();
return $tab;
}
/**
* Event listener for the `onBeforeCompileHead` event.
*
* @return void
*
* @since 2.0
* @deprecated Removed when the plugin is merged to 4.0
* @note This is required to ensure the plugin JS is appended after the tabs are initialized,
* logic would otherwise be in the `onInstallerAddInstallationTab` listener
*/
public function onBeforeCompileHead()
{
$installfrom = $this->getInstallFrom();
// Push language strings to the JavaScript store
Text::script('COM_INSTALLER_MSG_INSTALL_ENTER_A_URL');
Text::script('COM_INSTALLER_WEBINSTALLER_INSTALL_OBSOLETE');
Text::script('COM_INSTALLER_WEBINSTALLER_INSTALL_UPDATE_AVAILABLE');
Text::script('JLIB_INSTALLER_UPDATE');
Text::script('PLG_INSTALLER_WEBINSTALLER_CANNOT_INSTALL_EXTENSION_IN_PLUGIN');
Text::script('PLG_INSTALLER_WEBINSTALLER_REDIRECT_TO_EXTERNAL_SITE_TO_INSTALL');
HTMLHelper::_('bootstrap.framework');
HTMLHelper::_('script', 'plg_installer_webinstaller/client.min.js', array('version' => 'auto', 'relative' => true));
HTMLHelper::_('stylesheet', 'plg_installer_webinstaller/client.min.css', array('version' => 'auto', 'relative' => true));
$devLevel = Version::PATCH_VERSION;
$extraVer = Version::EXTRA_VERSION;
if (!empty($extraVer))
{
$devLevel .= '-' . $extraVer;
}
$installer = new Installer;
$manifest = $installer->isManifest(__DIR__ . '/webinstaller.xml');
$doc = Factory::getDocument();
$doc->addScriptOptions(
'plg_installer_webinstaller',
array(
'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(Factory::getLanguage()->getTag()),
// The below options are deprecated and removed when the plugin is merged to 4.0
'is_hathor' => $this->isHathor() ? 1 : 0,
'pv' => base64_encode($manifest->version),
)
);
$javascript = <<<JS
jQuery(document).ready(function () {
var ifwOptions = Joomla.getOptions('plg_installer_webinstaller', {});
var ifwLink = jQuery('#myTabTabs').find('li a[href="#web"]');
var ifwRelativeSelector = 'li';
if (ifwOptions.is_hathor) {
jQuery('#mywebinstaller').show();
ifwLink = jQuery('#mywebinstaller').find('a');
ifwRelativeSelector = 'a';
}
if (ifwOptions.installfromon) {
ifwLink.click();
}
if (!ifwOptions.is_hathor && ifwLink.closest('li').hasClass('active')) {
if (!Joomla.apps.loaded) {
Joomla.apps.initialize();
}
}
ifwLink.closest(ifwRelativeSelector).click(function (event) {
if (!Joomla.apps.loaded) {
Joomla.apps.initialize();
}
});
if (ifwOptions.installfrom_url !== '') {
ifwLink.closest(ifwRelativeSelector).click();
}
ifwLink.on('shown', function (e) {
if (!Joomla.apps.loaded) {
Joomla.apps.initialize();
}
});
});
JS;
$doc->addScriptDeclaration($javascript);
}
/**
* Internal check to determine if the Hathor admin template is in use
*
* @return boolean
*
* @since 1.0
* @deprecated Removed when the plugin is merged to 4.0
*/
private function isHathor()
{
if (is_null($this->_hathor))
{
$this->_hathor = strtolower($this->app->getTemplate()) === 'hathor';
}
return $this->_hathor;
}
/**
* Get the install from URL
*
* @return string
*
* @since 1.0
*/
private function getInstallFrom()
{
if ($this->installfrom === null)
{
$installfrom = base64_decode($this->app->input->getBase64('installfrom', ''));
$field = new SimpleXMLElement('<field></field>');
$rule = new UrlRule;
if ($rule->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;
}
}
webinstaller.script.php 0000644 00000011454 15075507330 0011265 0 ustar 00 <?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
}
}
}
}