| Current Path : /home/w/u/e/wuectly/www/03cbe/ |
| Current File : /home/w/u/e/wuectly/www/03cbe/installer.tar |
jce/services/provider.php 0000604 00000002372 15245530303 0011473 0 ustar 00 <?php
/**
* @package JCE
* @subpackage Installer.Jce
*
* @copyright Copyright (C) 2005 - 2023 Open Source Matters, Inc. All rights reserved
* @copyright Copyright (C) 2023 - 2024 Ryan Demmer. All rights reserved
* @license GNU General Public License version 2 or later; see LICENSE.txt
*/
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\Jce\Extension\Jce;
return new class() implements ServiceProviderInterface
{
public function register(Container $container)
{
$container->set(
PluginInterface::class,
function (Container $container) {
$dispatcher = $container->get(DispatcherInterface::class);
$plugin = new Jce(
$dispatcher,
(array) PluginHelper::getPlugin('installer', 'jce')
);
$plugin->setApplication(Factory::getApplication());
$plugin->setDatabase($container->get(DatabaseInterface::class));
return $plugin;
}
);
}
}; jce/src/Extension/Jce.php 0000604 00000004741 15245530303 0011264 0 ustar 00 <?php
/**
* @package JCE
* @subpackage Installer.Jce
*
* @copyright Copyright (C) 2005 - 2023 Open Source Matters, Inc. All rights reserved
* @copyright Copyright (C) 2023 - 2024 Ryan Demmer. All rights reserved
* @license GNU General Public License version 2 or later; see LICENSE.txt
*/
namespace Joomla\Plugin\Installer\Jce\Extension;
\defined('_JEXEC') or die;
use Joomla\CMS\Component\ComponentHelper;
use Joomla\CMS\Plugin\CMSPlugin;
use Joomla\Database\DatabaseAwareTrait;
use Joomla\Plugin\Installer\Jce\PluginTraits\EventsTrait;
class Jce extends CMSPlugin
{
use EventsTrait;
use DatabaseAwareTrait;
/**
* Affects constructor behavior. If true, language files will be loaded automatically.
*
* @var boolean
*/
protected $autoloadLanguage = true;
private function getDownloadKeyFromUpdateSites()
{
$db = $this->getDatabase();
$query = $db->getQuery(true)
->select('package_id')
->from('#__extensions')
->where('element = ' . $db->quote('com_jce'));
$db->setQuery($query);
$packageId = $db->loadResult();
if (is_null($packageId)) {
return null;
}
$query = $db->getQuery(true)
->select($db->quoteName('update_sites.extra_query'))
->from($db->quoteName('#__update_sites', 'update_sites'))
->join(
'INNER',
$db->quoteName('#__update_sites_extensions', 'update_sites_extensions') . ' ON ' . $db->quoteName('update_sites_extensions.update_site_id') . ' = ' . $db->quoteName('update_sites.update_site_id')
)
->where($db->quoteName('update_sites_extensions.extension_id') . ' = ' . (int) $packageId);
$db->setQuery($query);
$result = $db->loadResult();
if ($result) {
// Parse the `extra_query` to extract the key value
parse_str($result, $parsedQuery);
if (isset($parsedQuery['key'])) {
return $parsedQuery['key'];
}
}
return null;
}
/**
* Get the download key from the update sites table.
*
* @return string|null The download key or null if not found
*/
public function getDownloadKey()
{
// get the key directly from the update sites table, eg: when updating a plugin
$key = $this->getDownloadKeyFromUpdateSites();
// Return the key or null if not found
return $key;
}
}
jce/src/PluginTraits/EventsTrait.php 0000604 00000007555 15245530303 0013512 0 ustar 00 <?php
/**
* @package JCE
* @subpackage Installer.Jce
*
* @copyright Copyright (C) 2005 - 2023 Open Source Matters, Inc. All rights reserved
* @copyright Copyright (C) 2023 - 2024 Ryan Demmer. All rights reserved
* @license GNU General Public License version 2 or later; see LICENSE.txt
*/
namespace Joomla\Plugin\Installer\Jce\PluginTraits;
defined('_JEXEC') or die;
use Joomla\CMS\Factory;
use Joomla\CMS\Http\HttpFactory;
use Joomla\CMS\Language\Text;
use Joomla\CMS\Uri\Uri;
/**
* JCE Installer Events Trait
*
* @since 2.9.73
*/
trait EventsTrait
{
private function checkIfKeyRequired($query)
{
// get the file name from the url without the xml extension
$file = isset($query['file']) ? $query['file'] : '';
if (empty($file)) {
return false;
}
// jce pro requires a key
if (strpos($file, 'pkg_jce_pro_') !== false) {
return true;
}
// jce core does not require a key
if (strpos($file, 'pkg_jce_') !== false) {
return false;
}
// jce plugins require a key
if (strpos($file, 'plg_jce_') !== false) {
return true;
}
// mediabox does not require a key
if (strpos($file, 'plg_system_jcemediabox') !== false) {
return false;
}
return false;
}
/**
* Handle adding credentials to package download request.
*
* @param string $url url from which package is going to be downloaded
* @param array $headers headers to be sent along the download request (key => value format)
*
* @return bool true if credentials have been added to request or not our business, false otherwise (credentials not set by user)
*
* @since 3.0
*/
public function onInstallerBeforePackageDownload(&$url, &$headers)
{
$app = Factory::getApplication();
$uri = Uri::getInstance($url);
$host = $uri->getHost();
if ($host !== 'www.joomlacontenteditor.net') {
return true;
}
// check if the key has already been set via the dlid field. This will only be available in Joomla 4.x and later
$key = $uri->getVar('key', '');
// get the key from the component params or Update Sites (in the case of plugin updates)
if (empty($key)) {
$key = $this->getDownloadKey();
}
// if no key is set...
if (empty($key)) {
$query = $uri->getQuery(true);
// if we are attempting to update JCE Pro or JCE Plugins, display a notice message
if ($this->checkIfKeyRequired($query) === true) {
$app->enqueueMessage(Text::_('PLG_INSTALLER_JCE_KEY_WARNING'), 'notice');
return true;
}
}
// Append the subscription key to the download URL if it exists
if (!empty($key)) {
$uri->setVar('key', $key);
}
// create the url string
$url = $uri->toString();
// check validity of the key and display a message if it is invalid / expired
try {
$tmpUri = clone $uri;
$tmpUri->setVar('task', 'update.validate');
$tmpUrl = $tmpUri->toString();
$response = HttpFactory::getHttp()->get($tmpUrl, array());
} catch (\RuntimeException $exception) {
$app->enqueueMessage($exception->getMessage(), 'notice');
return true;
}
// invalid key, display a notice message
if (403 == $response->code || 401 == $response->code) {
$app->enqueueMessage(Text::_('PLG_INSTALLER_JCE_KEY_INVALID'), 'notice');
}
// update limit exceeded
if (498 === $response->code) {
$app->enqueueMessage(Text::_('PLG_INSTALLER_JCE_KEY_LIMIT'), 'notice');
}
return true;
}
} jce/jce.xml 0000604 00000002003 15245530303 0006557 0 ustar 00 <?xml version="1.0" encoding="utf-8"?>
<extension type="plugin" group="installer" method="upgrade">
<name>plg_installer_jce</name>
<version>2.9.99.2</version>
<creationDate>22-04-2026</creationDate>
<author>Ryan Demmer</author>
<authorEmail>info@joomlacontenteditor.net</authorEmail>
<authorUrl>http://www.joomlacontenteditor.net</authorUrl>
<copyright>Copyright (C) 2006 - 2026 Ryan Demmer. All rights reserved</copyright>
<license>GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html</license>
<description>PLG_INSTALLER_JCE_XML_DESCRIPTION</description>
<namespace path="src">Joomla\Plugin\Installer\Jce</namespace>
<files folder="plugins/installer/jce">
<filename plugin="jce">jce.php</filename>
<folder>services</folder>
<folder>src</folder>
</files>
<languages folder="administrator/language/en-GB">
<language tag="en-GB">en-GB.plg_installer_jce.ini</language>
<language tag="en-GB">en-GB.plg_installer_jce.sys.ini</language>
</languages>
</extension>
jce/jce.php 0000604 00000002434 15245530303 0006556 0 ustar 00 <?php
/**
* @package JCE
* @subpackage Installer.Jce
*
* @copyright Copyright (C) 2005 - 2023 Open Source Matters, Inc. All rights reserved
* @copyright Copyright (C) 2023 - 2024 Ryan Demmer. All rights reserved
* @license GNU General Public License version 2 or later; see LICENSE.txt
*/
\defined('_JEXEC') or die;
JLoader::registerNamespace('Joomla\\Plugin\\Installer\\Jce', JPATH_PLUGINS . '/installer/jce/src', false, false, 'psr4');
use Joomla\CMS\Component\ComponentHelper;
use Joomla\CMS\Plugin\CMSPlugin;
use Joomla\Plugin\Installer\Jce\PluginTraits\EventsTrait;
/**
* Handle commercial extension update authorization.
*
* @since 2.6
*/
class plgInstallerJce extends CMSPlugin
{
use EventsTrait;
/**
* Affects constructor behavior. If true, language files will be loaded automatically.
*
* @var boolean
*/
protected $autoloadLanguage = true;
/**
* Get the download key from the component params or the dlid field.
*
* @return string The download key
*/
public function getDownloadKey()
{
$component = ComponentHelper::getComponent('com_jce');
// get key from component params in Joomla 3.x
$key = $component->params->get('updates_key', '');
return $key;
}
}
urlinstaller/tmpl/default.php 0000604 00000002141 15245530303 0012367 0 ustar 00 <?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;
JHtml::_('bootstrap.tooltip');
JFactory::getDocument()->addScriptDeclaration('
Joomla.submitbuttonurl = function()
{
var form = document.getElementById("adminForm");
JoomlaInstaller.showLoading();
form.installtype.value = "url"
form.submit();
};
');
?>
<legend><?php echo JText::_('PLG_INSTALLER_URLINSTALLER_TEXT'); ?></legend>
<div class="control-group">
<label for="install_url" class="control-label"><?php echo JText::_('PLG_INSTALLER_URLINSTALLER_TEXT'); ?></label>
<div class="controls">
<input type="text" id="install_url" name="install_url" class="span5 input_box" size="70" placeholder="https://"/>
</div>
</div>
<div class="form-actions">
<input type="button" class="btn btn-primary" id="installbutton_url"
value="<?php echo JText::_('PLG_INSTALLER_URLINSTALLER_BUTTON'); ?>" onclick="Joomla.submitbuttonurl()" />
</div>
urlinstaller/urlinstaller.php 0000604 00000001726 15245530303 0012517 0 ustar 00 <?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;
/**
* UrlFolderInstaller Plugin.
*
* @since 3.6.0
*/
class PlgInstallerUrlInstaller extends JPlugin
{
/**
* Load the language file on instantiation.
*
* @var boolean
* @since 3.6.0
*/
protected $autoloadLanguage = true;
/**
* Textfield or Form of the Plugin.
*
* @return array Returns an array with the tab information
*
* @since 3.6.0
*/
public function onInstallerAddInstallationTab()
{
$tab = array();
$tab['name'] = 'url';
$tab['label'] = JText::_('PLG_INSTALLER_URLINSTALLER_TEXT');
// Render the input
ob_start();
include JPluginHelper::getLayoutPath('installer', 'urlinstaller');
$tab['content'] = ob_get_clean();
return $tab;
}
}
urlinstaller/urlinstaller.xml 0000604 00000001454 15245530303 0012526 0 ustar 00 <?xml version="1.0" encoding="utf-8"?>
<extension version="3.6" type="plugin" group="installer">
<name>PLG_INSTALLER_URLINSTALLER</name>
<author>Joomla! Project</author>
<creationDate>May 2016</creationDate>
<copyright>(C) 2016 Open Source Matters, Inc.</copyright>
<license>GNU General Public License version 2 or later; see LICENSE.txt</license>
<authorEmail>admin@joomla.org</authorEmail>
<authorUrl>www.joomla.org</authorUrl>
<version>3.6.0</version>
<description>PLG_INSTALLER_URLINSTALLER_PLUGIN_XML_DESCRIPTION</description>
<files>
<filename plugin="urlinstaller">urlinstaller.php</filename>
</files>
<languages>
<language tag="en-GB">en-GB.plg_installer_urlinstaller.ini</language>
<language tag="en-GB">en-GB.plg_installer_urlinstaller.sys.ini</language>
</languages>
</extension>
packageinstaller/packageinstaller.xml 0000604 00000001504 15245530303 0014104 0 ustar 00 <?xml version="1.0" encoding="utf-8"?>
<extension version="3.6" type="plugin" group="installer">
<name>plg_installer_packageinstaller</name>
<author>Joomla! Project</author>
<creationDate>May 2016</creationDate>
<copyright>(C) 2016 Open Source Matters, Inc.</copyright>
<license>GNU General Public License version 2 or later; see LICENSE.txt</license>
<authorEmail>admin@joomla.org</authorEmail>
<authorUrl>www.joomla.org</authorUrl>
<version>3.6.0</version>
<description>PLG_INSTALLER_PACKAGEINSTALLER_PLUGIN_XML_DESCRIPTION</description>
<files>
<filename plugin="packageinstaller">packageinstaller.php</filename>
</files>
<languages>
<language tag="en-GB">en-GB.plg_installer_packageinstaller.ini</language>
<language tag="en-GB">en-GB.plg_installer_packageinstaller.sys.ini</language>
</languages>
</extension>
packageinstaller/packageinstaller.php 0000604 00000001770 15245530303 0014100 0 ustar 00 <?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;
/**
* PackageInstaller Plugin.
*
* @since 3.6.0
*/
class PlgInstallerPackageInstaller extends JPlugin
{
/**
* Load the language file on instantiation.
*
* @var boolean
* @since 3.6.0
*/
protected $autoloadLanguage = true;
/**
* Textfield or Form of the Plugin.
*
* @return array Returns an array with the tab information
*
* @since 3.6.0
*/
public function onInstallerAddInstallationTab()
{
$tab = array();
$tab['name'] = 'package';
$tab['label'] = JText::_('PLG_INSTALLER_PACKAGEINSTALLER_UPLOAD_PACKAGE_FILE');
// Render the input
ob_start();
include JPluginHelper::getLayoutPath('installer', 'packageinstaller');
$tab['content'] = ob_get_clean();
return $tab;
}
}
packageinstaller/tmpl/default.php 0000604 00000022161 15245530303 0013164 0 ustar 00 <?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;
JHtml::_('bootstrap.tooltip');
JHtml::_('jquery.token');
JText::script('PLG_INSTALLER_PACKAGEINSTALLER_UPLOAD_ERROR_UNKNOWN');
JText::script('PLG_INSTALLER_PACKAGEINSTALLER_UPLOAD_ERROR_EMPTY');
JText::script('COM_INSTALLER_MSG_WARNINGS_UPLOADFILETOOBIG');
JFactory::getDocument()->addScriptDeclaration('
Joomla.submitbuttonpackage = function()
{
var form = document.getElementById("adminForm");
// do field validation
if (form.install_package.value == "")
{
alert("' . JText::_('PLG_INSTALLER_PACKAGEINSTALLER_NO_PACKAGE', true) . '");
}
else if (form.install_package.files[0].size > form.max_upload_size.value)
{
alert("' . JText::_('COM_INSTALLER_MSG_WARNINGS_UPLOADFILETOOBIG', true) . '");
}
else
{
JoomlaInstaller.showLoading();
form.installtype.value = "upload"
form.submit();
}
};
');
// Drag and Drop installation scripts
$token = JSession::getFormToken();
$return = JFactory::getApplication()->input->getBase64('return');
// Drag-drop installation
JFactory::getDocument()->addScriptDeclaration(
<<<JS
jQuery(document).ready(function($) {
if (typeof FormData === 'undefined') {
$('#legacy-uploader').show();
$('#uploader-wrapper').hide();
return;
}
var uploading = false;
var dragZone = $('#dragarea');
var fileInput = $('#install_package');
var fileSizeMax = $('#max_upload_size').val();
var button = $('#select-file-button');
var url = 'index.php?option=com_installer&task=install.ajax_upload';
var returnUrl = $('#installer-return').val();
var actions = $('.upload-actions');
var progress = $('.upload-progress');
var progressBar = progress.find('.bar');
var percentage = progress.find('.uploading-number');
if (returnUrl) {
url += '&return=' + returnUrl;
}
button.on('click', function(e) {
fileInput.click();
});
fileInput.on('change', function (e) {
if (uploading) {
return;
}
Joomla.submitbuttonpackage();
});
dragZone.on('dragenter', function(e) {
e.preventDefault();
e.stopPropagation();
dragZone.addClass('hover');
return false;
});
// Notify user when file is over the drop area
dragZone.on('dragover', function(e) {
e.preventDefault();
e.stopPropagation();
dragZone.addClass('hover');
return false;
});
dragZone.on('dragleave', function(e) {
e.preventDefault();
e.stopPropagation();
dragZone.removeClass('hover');
return false;
});
dragZone.on('drop', function(e) {
e.preventDefault();
e.stopPropagation();
dragZone.removeClass('hover');
if (uploading) {
return;
}
var files = e.originalEvent.target.files || e.originalEvent.dataTransfer.files;
if (!files.length) {
return;
}
var file = files[0];
var data = new FormData;
if (file.size > fileSizeMax) {
alert(Joomla.JText._('COM_INSTALLER_MSG_WARNINGS_UPLOADFILETOOBIG'), true);
return;
}
data.append('install_package', file);
data.append('installtype', 'upload');
dragZone.attr('data-state', 'uploading');
uploading = true;
$.ajax({
url: url,
data: data,
type: 'post',
processData: false,
cache: false,
contentType: false,
xhr: function () {
var xhr = new window.XMLHttpRequest();
progressBar.css('width', 0);
progressBar.attr('aria-valuenow', 0);
percentage.text(0);
// Upload progress
xhr.upload.addEventListener("progress", function (evt) {
if (evt.lengthComputable) {
var percentComplete = evt.loaded / evt.total;
var number = Math.round(percentComplete * 100);
progressBar.css('width', number + '%');
progressBar.attr('aria-valuenow', number);
percentage.text(number);
if (number === 100) {
dragZone.attr('data-state', 'installing');
}
}
}, false);
return xhr;
}
})
.done(function (res) {
// Handle extension fatal error
if (!res || (!res.success && !res.data)) {
showError(res);
return;
}
// Always redirect that can show message queue from session
if (res.data.redirect) {
location.href = res.data.redirect;
} else {
location.href = 'index.php?option=com_installer&view=install';
}
}).error(function (error) {
uploading = false;
if (error.status === 200) {
var res = error.responseText || error.responseJSON;
showError(res);
} else {
showError(error.statusText);
}
});
function showError(res) {
dragZone.attr('data-state', 'pending');
var message = Joomla.JText._('PLG_INSTALLER_PACKAGEINSTALLER_UPLOAD_ERROR_UNKNOWN');
if (res == null) {
message = Joomla.JText._('PLG_INSTALLER_PACKAGEINSTALLER_UPLOAD_ERROR_EMPTY');
} else if (typeof res === 'string') {
// Let's remove unnecessary HTML
message = res.replace(/(<([^>]+)>|\s+)/g, ' ');
} else if (res.message) {
message = res.message;
}
Joomla.renderMessages({error: [message]});
}
});
});
JS
);
JFactory::getDocument()->addStyleDeclaration(
<<<CSS
#dragarea {
background-color: #fafbfc;
border: 1px dashed #999;
box-sizing: border-box;
padding: 5% 0;
transition: all 0.2s ease 0s;
width: 100%;
}
#dragarea p.lead {
color: #999;
}
#upload-icon {
font-size: 48px;
width: auto;
height: auto;
margin: 0;
line-height: 175%;
color: #999;
transition: all .2s;
}
#dragarea.hover {
border-color: #666;
background-color: #eee;
}
#dragarea.hover #upload-icon,
#dragarea p.lead {
color: #666;
}
.upload-progress, .install-progress {
width: 50%;
margin: 5px auto;
}
/* Default transition (.3s) is too slow, progress will not run to 100% */
.upload-progress .progress .bar {
-webkit-transition: width .1s;
-moz-transition: width .1s;
-o-transition: width .1s;
transition: width .1s;
}
#dragarea[data-state=pending] .upload-progress {
display: none;
}
#dragarea[data-state=pending] .install-progress {
display: none;
}
#dragarea[data-state=uploading] .install-progress {
display: none;
}
#dragarea[data-state=uploading] .upload-actions {
display: none;
}
#dragarea[data-state=installing] .upload-progress {
display: none;
}
#dragarea[data-state=installing] .upload-actions {
display: none;
}
CSS
);
$maxSizeBytes = JFilesystemHelper::fileUploadMaxSize(false);
$maxSize = JHtml::_('number.bytes', $maxSizeBytes);
?>
<legend><?php echo JText::_('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 class="upload-progress">
<div class="progress progress-striped active">
<div class="bar bar-success"
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 JText::_('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 progress-striped active">
<div class="bar" style="width: 100%;"></div>
</div>
<p class="lead">
<span class="installing-text">
<?php echo JText::_('PLG_INSTALLER_PACKAGEINSTALLER_INSTALLING'); ?>
</span>
</p>
</div>
<div class="upload-actions">
<p class="lead">
<?php echo JText::_('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 JText::_('PLG_INSTALLER_PACKAGEINSTALLER_SELECT_FILE'); ?>
</button>
</p>
<p>
<?php echo JText::sprintf('JGLOBAL_MAXIMUM_UPLOAD_SIZE_LIMIT', $maxSize); ?>
</p>
</div>
</div>
</div>
</div>
<div id="legacy-uploader" style="display: none;">
<div class="control-group">
<label for="install_package" class="control-label"><?php echo JText::_('PLG_INSTALLER_PACKAGEINSTALLER_EXTENSION_PACKAGE_FILE'); ?></label>
<div class="controls">
<input class="input_box" id="install_package" name="install_package" type="file" size="57" />
<input id="max_upload_size" name="max_upload_size" type="hidden" value="<?php echo $maxSizeBytes; ?>" /><br>
<?php echo JText::sprintf('JGLOBAL_MAXIMUM_UPLOAD_SIZE_LIMIT', $maxSize); ?>
</div>
</div>
<div class="form-actions">
<button class="btn btn-primary" type="button" id="installbutton_package" onclick="Joomla.submitbuttonpackage()">
<?php echo JText::_('PLG_INSTALLER_PACKAGEINSTALLER_UPLOAD_AND_INSTALL'); ?>
</button>
</div>
<input id="installer-return" name="return" type="hidden" value="<?php echo $return; ?>" />
<input id="installer-token" name="return" type="hidden" value="<?php echo $token; ?>" />
</div>
folderinstaller/tmpl/default.php 0000604 00000002665 15245530303 0013053 0 ustar 00 <?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;
JHtml::_('bootstrap.tooltip');
$app = JFactory::getApplication('administrator');
JFactory::getDocument()->addScriptDeclaration('
Joomla.submitbuttonfolder = function()
{
var form = document.getElementById("adminForm");
// do field validation
if (form.install_directory.value == "")
{
alert("' . JText::_('PLG_INSTALLER_FOLDERINSTALLER_NO_INSTALL_PATH', true) . '");
}
else
{
JoomlaInstaller.showLoading();
form.installtype.value = "folder"
form.submit();
}
};
');
?>
<legend><?php echo JText::_('PLG_INSTALLER_FOLDERINSTALLER_TEXT'); ?></legend>
<div class="control-group">
<label for="install_directory" class="control-label"><?php echo JText::_('PLG_INSTALLER_FOLDERINSTALLER_TEXT'); ?></label>
<div class="controls">
<input type="text" id="install_directory" name="install_directory" class="span5 input_box" size="70"
value="<?php echo $app->input->get('install_directory', $app->get('tmp_path')); ?>" />
</div>
</div>
<div class="form-actions">
<input type="button" class="btn btn-primary" id="installbutton_directory"
value="<?php echo JText::_('PLG_INSTALLER_FOLDERINSTALLER_BUTTON'); ?>" onclick="Joomla.submitbuttonfolder()" />
</div>
folderinstaller/folderinstaller.php 0000604 00000001742 15245530303 0013637 0 ustar 00 <?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;
/**
* FolderInstaller Plugin.
*
* @since 3.6.0
*/
class PlgInstallerFolderInstaller extends JPlugin
{
/**
* Load the language file on instantiation.
*
* @var boolean
* @since 3.6.0
*/
protected $autoloadLanguage = true;
/**
* Textfield or Form of the Plugin.
*
* @return array Returns an array with the tab information
*
* @since 3.6.0
*/
public function onInstallerAddInstallationTab()
{
$tab = array();
$tab['name'] = 'folder';
$tab['label'] = JText::_('PLG_INSTALLER_FOLDERINSTALLER_TEXT');
// Render the input
ob_start();
include JPluginHelper::getLayoutPath('installer', 'folderinstaller');
$tab['content'] = ob_get_clean();
return $tab;
}
}
folderinstaller/folderinstaller.xml 0000604 00000001476 15245530303 0013654 0 ustar 00 <?xml version="1.0" encoding="utf-8"?>
<extension version="3.6" type="plugin" group="installer">
<name>PLG_INSTALLER_FOLDERINSTALLER</name>
<author>Joomla! Project</author>
<creationDate>May 2016</creationDate>
<copyright>(C) 2016 Open Source Matters, Inc.</copyright>
<license>GNU General Public License version 2 or later; see LICENSE.txt</license>
<authorEmail>admin@joomla.org</authorEmail>
<authorUrl>www.joomla.org</authorUrl>
<version>3.6.0</version>
<description>PLG_INSTALLER_FOLDERINSTALLER_PLUGIN_XML_DESCRIPTION</description>
<files>
<filename plugin="folderinstaller">folderinstaller.php</filename>
</files>
<languages>
<language tag="en-GB">en-GB.plg_installer_folderinstaller.ini</language>
<language tag="en-GB">en-GB.plg_installer_folderinstaller.sys.ini</language>
</languages>
</extension>