| 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 : |
packageinstaller/packageinstaller.xml 0000644 00000001545 15075155615 0014127 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>Copyright (C) 2005 - 2019 Open Source Matters. All rights reserved.</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 0000644 00000002005 15075155615 0014106 0 ustar 00 <?php
/**
* @package Joomla.Plugin
* @subpackage Installer.packageInstaller
*
* @copyright Copyright (C) 2005 - 2019 Open Source Matters, Inc. All rights reserved.
* @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 0000644 00000021050 15075155615 0013176 0 ustar 00 <?php
/**
* @package Joomla.Plugin
* @subpackage Installer.packageinstaller
*
* @copyright Copyright (C) 2005 - 2019 Open Source Matters, Inc. All rights reserved.
* @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');
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
{
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 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;
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
);
$maxSize = JFilesystemHelper::fileUploadMaxSize();
?>
<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" /><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>
urlinstaller/tmpl/default.php 0000644 00000002534 15075155615 0012413 0 ustar 00 <?php
/**
* @package Joomla.Plugin
* @subpackage Installer.urlinstaller
*
* @copyright Copyright (C) 2005 - 2019 Open Source Matters, Inc. All rights reserved.
* @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");
// do field validation
if (form.install_url.value == "" || form.install_url.value == "http://" || form.install_url.value == "https://") {
alert("' . JText::_('PLG_INSTALLER_URLINSTALLER_NO_URL', true) . '");
}
else
{
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.xml 0000644 00000001515 15075155615 0012542 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>Copyright (C) 2005 - 2019 Open Source Matters. All rights reserved.</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>
urlinstaller/urlinstaller.php 0000644 00000001743 15075155615 0012534 0 ustar 00 <?php
/**
* @package Joomla.Plugin
* @subpackage Installer.urlinstaller
*
* @copyright Copyright (C) 2005 - 2019 Open Source Matters, Inc. All rights reserved.
* @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;
}
}
jce/jce.xml 0000604 00000001620 15075155615 0006575 0 ustar 00 <?xml version="1.0" encoding="utf-8"?>
<extension version="3.1" type="plugin" group="installer" method="upgrade">
<name>plg_installer_jce</name>
<version>2.6.38</version>
<creationDate>14-03-2019</creationDate>
<author>Ryan Demmer</author>
<authorEmail>info@joomlacontenteditor.net</authorEmail>
<authorUrl>http://www.joomlacontenteditor.net</authorUrl>
<copyright>Copyright (C) 2006 - 2019 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>
<files folder="plugins/installer/jce">
<filename plugin="jce">jce.php</filename>
</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 00000003221 15075155615 0006563 0 ustar 00 <?php
/**
* @copyright Copyright (c)2016 Ryan Demmer
* @license GNU General Public License version 2, or later
*/
defined('_JEXEC') or die;
/**
* Handle commercial extension update authorization.
*
* @since 2.6
*/
class plgInstallerJce extends JPlugin
{
/**
* 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 = JFactory::getApplication();
$uri = JUri::getInstance($url);
$host = $uri->getHost();
if ($host !== 'www.joomlacontenteditor.net') {
return true;
}
// Get the subscription key
JLoader::import('joomla.application.component.helper');
$component = JComponentHelper::getComponent('com_jce');
$key = $component->params->get('updates_key', '');
if (empty($key) && strpos($url, 'pkg_jce_pro') !== false) {
$language = JFactory::getLanguage();
$language->load('plg_installer_jce', JPATH_ADMINISTRATOR);
$app->enqueueMessage(JText::_('PLG_INSTALLER_JCE_KEY_WARNING'), 'notice');
return true;
}
// Append the subscription key to the download URL
$uri->setVar('key', $key);
$url = $uri->toString();
return true;
}
}
folderinstaller/folderinstaller.php 0000644 00000001757 15075155615 0013663 0 ustar 00 <?php
/**
* @package Joomla.Plugin
* @subpackage Installer.folderInstaller
*
* @copyright Copyright (C) 2005 - 2019 Open Source Matters, Inc. All rights reserved.
* @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 0000644 00000001537 15075155615 0013670 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>Copyright (C) 2005 - 2019 Open Source Matters. All rights reserved.</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>
folderinstaller/tmpl/default.php 0000644 00000002702 15075155615 0013061 0 ustar 00 <?php
/**
* @package Joomla.Plugin
* @subpackage Installer.folderinstaller
*
* @copyright Copyright (C) 2005 - 2019 Open Source Matters, Inc. All rights reserved.
* @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>
webinstaller/css/index.html 0000604 00000000037 15075155615 0012032 0 ustar 00 <!DOCTYPE html><title></title>
webinstaller/css/client.min.css 0000604 00000013754 15075155615 0012621 0 ustar 00 .com-apps-container .label-jcommercial,.com-apps-container .badge-jcommercial{background-color:#f6c801;color:black;font-weight:normal;font-size:medium;vertical-align:bottom}.com-apps-container .label-jmodule,.com-apps-container .badge-jmodule{background-color:#e20a0a}.com-apps-container .label-jplugin,.com-apps-container .badge-jplugin{background-color:#57278e}.com-apps-container .label-jcomponent,.com-apps-container .badge-jcomponent{background-color:#1e9e33}.com-apps-container .label-jspecific,.com-apps-container .badge-jspecific{background-color:#d69b34}.com-apps-container .label-jtool,.com-apps-container .badge-jtool{background-color:#333333}.com-apps-container .label-jlanguage,.com-apps-container .badge-jlanguage{background-color:golden}.com-apps-container .icon-star,.com-apps-container .icon-star-2{color:#f6c801}.com-apps-container .icon-star-empty{color:#dcdcdc}.com-apps-container ul.item-type{margin:0px}.com-apps-container .jbadge{vertical-align:middle}.com-apps-container .full-item-container .control-group{margin:0px}.com-apps-container .full-item-container .control-label{padding:0px;margin:0px}.com-apps-container .full-item-container .controls{margin-left:100px}.com-apps-container .full-item-container .form-actions{padding-left:20px}.com-apps-container .item-info-container{margin-left:25px;line-height:25px}.com-apps-container .item-image{height:120px}.com-apps-container .item-description{height:100px;overflow:hidden}.com-apps-container .thumbnail{padding:16px 12px 16px 12px;cursor:pointer}.com-apps-container .grid-container .thumbnail:hover{background-color:#F2F2F2}.list-container .thumbnails .item{display:block;width:100%;margin-left:0;border-bottom:1px solid #ccc;margin-bottom:2px;display:inline-block;height:60px;overflow:hidden}.list-container{box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box}.list-container .thumbnails .item:hover{border-color:#185186}.list-container .thumbnails .item:hover h4 a,.list-container .thumbnails .item:hover .item-description{color:#33608f;text-decoration:none}.list-container .thumbnails .item h4{margin:0px}.list-container .thumbnails .item .item-header{text-align:left;margin:0px;margin-right:10px;min-height:34px;border-right:1px solid #ccc;box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box}.list-container .thumbnails .item .item-description{float:left;box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box}.list-container .thumbnails .item .item-header{width:22%}.list-container .thumbnails .item .item-icons{width:22%;float:right;border-left:1px solid #ccc;padding:0px}.list-container .thumbnails .item .item-description{width:50%;overflow:hidden}.list-container .thumbnails .thumbnail{padding:0px;height:100%;overflow:hidden}.com-apps-container .fader{position:absolute;background:-moz-linear-gradient(top, rgba(255,255,255,0) 70%, rgba(255,255,255,1) 95%);background:-webkit-gradient(linear, left top, left bottom, color-stop(70%,rgba(255,255,255,0)), color-stop(95%,rgba(255,255,255,1)));background:-webkit-linear-gradient(top, rgba(255,255,255,0) 70%,rgba(255,255,255,1) 95%);background:-o-linear-gradient(top, rgba(255,255,255,0) 70%,rgba(255,255,255,1) 95%);background:-ms-linear-gradient(top, rgba(255,255,255,0) 70%,rgba(255,255,255,1) 95%);background:linear-gradient(to bottom, rgba(255,255,255,0) 70%,rgba(255,255,255,1) 95%);filter:progid:DXImageTransform.Microsoft.gradient( startColorstr='#00ffffff', endColorstr='#ffffff',GradientType=0 );text-align:center;float:left;width:100%;height:100%;top:0px;left:0px;margin-top:5px}.com-apps-container .list-container .fader{position:absolute;background:-moz-linear-gradient(top, rgba(255,255,255,0) 0%, rgba(255,255,255,1) 25%);background:-webkit-gradient(linear, left top, left bottom, color-stop(0%,rgba(255,255,255,0)), color-stop(25%,rgba(255,255,255,1)));background:-webkit-linear-gradient(top, rgba(255,255,255,0) 0%,rgba(255,255,255,1) 25%);background:-o-linear-gradient(top, rgba(255,255,255,0) 0%,rgba(255,255,255,1) 25%);background:-ms-linear-gradient(top, rgba(255,255,255,0) 0%,rgba(255,255,255,1) 25%);background:linear-gradient(to bottom, rgba(255,255,255,0) 0%,rgba(255,255,255,1) 25%);filter:progid:DXImageTransform.Microsoft.gradient( startColorstr='#00ffffff', endColorstr='#ffffff',GradientType=0 );text-align:center;float:left;width:100%;height:100%;top:0px;left:0px;margin-top:5px}div.item-description{position:relative}.list-container .thumbnails .thumbnail div{float:left;padding:5px;height:100%}.list-container .thumbnails .thumbnail div.item-icons div{padding:0px}.list-container .thumbnails .item .item-icons div{float:left;width:100%;text-align:center;height:auto}.com-apps-container .filter-search.btn-group.pull-left{width:31%}.com-apps-container input{width:90%}.com-apps-container .btn-group.pull-right.select{width:31%}.com-apps-container .thumbnail{min-height:350px}.com-apps-container .item-description{min-height:150px}.com-apps-container .grid-container .row-fluid [class*="span"]{margin-left:2%}.com-apps-container .row-fluid [class*="span"]:first-child{margin-left:0}body.ifw-busy{overflow:hidden;-ms-overflow-style:none}#appsloading{left:0;top:0;width:100%;height:100%;z-index:1000;opacity:.95;-ms-filter:progid:DXImageTransform.Microsoft.Alpha(Opacity = 95);filter:alpha(opacity = 95);background:url('../../../../media/jui/images/ajax-loader.gif') rgba(255,255,255,0.7) 50% 10px no-repeat}@media (max-width: 869px){.com-apps-sidebar .nav-header{padding-left:0}}@media (max-width: 800px){.com-apps-container .item-image{min-height:90px}}.com-apps-container .thumbnail .item-image img{max-width:100%;max-height:90%}@media (max-width: 768px){.com-apps-container select{font-size:10px}.com-apps-container .thumbnail{min-height:300px}.com-apps-container .item-description{min-height:100px}.com-apps-container .row-fluid [class*="span"]{margin-left:0}}@media (max-width: 580px){.nav-tabs > li{width:100%}#myTabTabs{border-top:1px solid lightgrey;padding-top:2px}}@media (max-width: 495px){.com-apps-container .btn-group.pull-left.search{display:none;visibility:hidden}} webinstaller/css/client.css 0000604 00000016476 15075155615 0012043 0 ustar 00 /* Extension type badges */
.com-apps-container .label-jcommercial, .com-apps-container .badge-jcommercial{background-color:#f6c801; color: black; font-weight: normal; font-size: medium; vertical-align: bottom}
.com-apps-container .label-jmodule, .com-apps-container .badge-jmodule{background-color:#e20a0a}
.com-apps-container .label-jplugin, .com-apps-container .badge-jplugin{background-color:#57278e}
.com-apps-container .label-jcomponent, .com-apps-container .badge-jcomponent{background-color: #1e9e33}
.com-apps-container .label-jspecific, .com-apps-container .badge-jspecific{background-color:#d69b34}
.com-apps-container .label-jtool, .com-apps-container .badge-jtool{background-color:#333333}
.com-apps-container .label-jlanguage, .com-apps-container .badge-jlanguage{background-color:golden}
.com-apps-container .icon-star, .com-apps-container .icon-star-2{color:#f6c801}
.com-apps-container .icon-star-empty{color:#dcdcdc}
.com-apps-container ul.item-type {margin:0px}
.com-apps-container .jbadge{vertical-align:middle}
/* Bootstrap form controls override */
.com-apps-container .full-item-container .control-group {
margin: 0px;
}
.com-apps-container .full-item-container .control-label {
padding: 0px;
margin: 0px;
}
.com-apps-container .full-item-container .controls {
margin-left: 100px;
}
.com-apps-container .full-item-container .form-actions {
padding-left: 20px;
}
/* Full view */
.com-apps-container .item-info-container {margin-left: 25px; line-height: 25px}
/* Grid */
.com-apps-container .item-image{height:120px}
.com-apps-container .item-description{height:100px; overflow: hidden}
.com-apps-container .thumbnail{
padding: 16px 12px 16px 12px;
cursor: pointer;
}
.com-apps-container .grid-container .thumbnail:hover {
background-color: #F2F2F2;
}
/* List */
.list-container .thumbnails .item {
display: block;
width: 100%;
margin-left:0;
border-bottom:1px solid #ccc;
margin-bottom:2px;
display:inline-block;
height: 60px;
overflow: hidden;
}
.list-container{
box-sizing:border-box;
-moz-box-sizing:border-box;
-webkit-box-sizing: border-box;
}
.list-container .thumbnails .item:hover{
border-color:#185186;
}
.list-container .thumbnails .item:hover h4 a,
.list-container .thumbnails .item:hover .item-description{
color:#33608f;
text-decoration:none;
}
.list-container .thumbnails .item h4{
margin: 0px;
}
.list-container .thumbnails .item .item-header{
text-align:left;
margin:0px;
margin-right:10px;
min-height:34px;
border-right:1px solid #ccc;
box-sizing:border-box;
-moz-box-sizing:border-box;
-webkit-box-sizing: border-box;
}
.list-container .thumbnails .item .item-description{
float:left;
box-sizing:border-box;
-moz-box-sizing:border-box;
-webkit-box-sizing: border-box;
}
.list-container .thumbnails .item .item-header{
width:22%;
}
.list-container .thumbnails .item .item-icons{
width:22%;
float: right;
border-left: 1px solid #ccc;
padding: 0px;
}
.list-container .thumbnails .item .item-description {
width:50%;
overflow: hidden;
}
.list-container .thumbnails .thumbnail {
padding: 0px;
height: 100%;
overflow: hidden;
}
.com-apps-container .fader {
position: absolute;
background: -moz-linear-gradient(top, rgba(255,255,255,0) 70%, rgba(255,255,255,1) 95%); /* FF3.6+ */
background: -webkit-gradient(linear, left top, left bottom, color-stop(70%,rgba(255,255,255,0)), color-stop(95%,rgba(255,255,255,1))); /* Chrome,Safari4+ */
background: -webkit-linear-gradient(top, rgba(255,255,255,0) 70%,rgba(255,255,255,1) 95%); /* Chrome10+,Safari5.1+ */
background: -o-linear-gradient(top, rgba(255,255,255,0) 70%,rgba(255,255,255,1) 95%); /* Opera 11.10+ */
background: -ms-linear-gradient(top, rgba(255,255,255,0) 70%,rgba(255,255,255,1) 95%); /* IE10+ */
background: linear-gradient(to bottom, rgba(255,255,255,0) 70%,rgba(255,255,255,1) 95%); /* W3C */
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#00ffffff', endColorstr='#ffffff',GradientType=0 ); /* IE6-9 */
text-align: center;
float: left;
width: 100%;
height: 100%;
top: 0px;
left: 0px;
margin-top: 5px;
}
.com-apps-container .list-container .fader {
position: absolute;
background: -moz-linear-gradient(top, rgba(255,255,255,0) 0%, rgba(255,255,255,1) 25%); /* FF3.6+ */
background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,rgba(255,255,255,0)), color-stop(25%,rgba(255,255,255,1))); /* Chrome,Safari4+ */
background: -webkit-linear-gradient(top, rgba(255,255,255,0) 0%,rgba(255,255,255,1) 25%); /* Chrome10+,Safari5.1+ */
background: -o-linear-gradient(top, rgba(255,255,255,0) 0%,rgba(255,255,255,1) 25%); /* Opera 11.10+ */
background: -ms-linear-gradient(top, rgba(255,255,255,0) 0%,rgba(255,255,255,1) 25%); /* IE10+ */
background: linear-gradient(to bottom, rgba(255,255,255,0) 0%,rgba(255,255,255,1) 25%); /* W3C */
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#00ffffff', endColorstr='#ffffff',GradientType=0 ); /* IE6-9 */
text-align: center;
float: left;
width: 100%;
height: 100%;
top: 0px;
left: 0px;
margin-top: 5px;
}
div.item-description {
position: relative;
}
.list-container .thumbnails .thumbnail div {
float: left;
padding: 5px;
height: 100%;
}
.list-container .thumbnails .thumbnail div.item-icons div {
padding: 0px;
}
.list-container .thumbnails .item .item-icons div {
float: left;
width: 100%;
text-align: center;
height: auto;
}
/* Added to fix responsive issues */
.com-apps-container .filter-search.btn-group.pull-left {
width: 31%;
}
.com-apps-container input {
width:90%;
}
.com-apps-container .btn-group.pull-right.select {
width:31%;
}
.com-apps-container .thumbnail {
min-height: 350px;
}
.com-apps-container .item-description {
min-height: 150px;
}
.com-apps-container .grid-container .row-fluid [class*="span"] {
margin-left: 2%;
}
.com-apps-container .row-fluid [class*="span"]:first-child {
margin-left: 0;
}
/* disallow scrolling when overlay is active */
body.ifw-busy {
overflow: hidden;
-ms-overflow-style: none;
}
#appsloading {
left: 0;
top: 0;
width: 100%;
height: 100%;
z-index: 1000;
opacity: .95;
-ms-filter: progid:DXImageTransform.Microsoft.Alpha(Opacity = 95);
filter: alpha(opacity = 95);
background: url('../../../../media/jui/images/ajax-loader.gif') rgba(255,255,255,0.7) 50% 10px no-repeat;
}
/* Put breakpoints in when the design breaks, not at generic widths */
@media (max-width: 869px) {
.com-apps-sidebar .nav-header {
padding-left: 0;
}
}
@media (max-width: 800px) {
.com-apps-container .item-image {
min-height: 90px;
}
}
/* Fixes images which are too big */
.com-apps-container .thumbnail .item-image img {
max-width: 100%;
max-height: 90%;
}
/* This is where the single column view starts */
@media (max-width: 768px) {
.com-apps-container select {
font-size:10px;
}
.com-apps-container .thumbnail {
min-height: 300px;
}
.com-apps-container .item-description {
min-height: 100px;
}
.com-apps-container .row-fluid [class*="span"] {
margin-left: 0;
}
}
@media (max-width: 580px) {
.nav-tabs > li {
width: 100%;
}
#myTabTabs {
border-top: 1px solid lightgrey;
padding-top: 2px;
}
}
@media (max-width: 495px) {
/* need to add .search class to the button group */
.com-apps-container .btn-group.pull-left.search {
display: none;
visibility: hidden;
}
}
webinstaller/js/client.js 0000604 00000021134 15075155615 0011476 0 ustar 00 // Only define the Joomla namespace if not defined.
if (typeof(Joomla) === 'undefined') {
var Joomla = {};
}
Joomla.apps = {
view: "dashboard",
id: 0,
ordering: "",
// fonturl: 'http://fonts.googleapis.com/css?family=Lato:300,400,700,300italic,400italic,700italic',
cssfiles: [],
jsfiles: [],
list: 0,
loaded: 0,
update: false
};
Joomla.loadweb = function(url) {
if ('' == url) { return false; }
var pattern1 = new RegExp(apps_base_url);
var pattern2 = new RegExp("^index\.php");
if (!(pattern1.test(url) || pattern2.test(url))) {
window.open(url, "_blank");
return false;
}
url += '&product='+apps_product+'&release='+apps_release+'&dev_level='+apps_dev_level+'&list='+(Joomla.apps.list ? 'list' : 'grid')+'&pv='+apps_pv;
var ordering = Joomla.apps.ordering;
if (ordering !== "" && jQuery('#com-apps-ordering').val()) {
ordering = jQuery('#com-apps-ordering').val();
url += '&ordering='+ordering;
}
jQuery('html, body').animate({ scrollTop: 0 }, 0);
if (jQuery('#myTabContent').length) {
jQuery('#appsloading')
.css("position", "absolute")
.css("left", "0")
.css("top", "0")
.css("width", "100%")
.css("height", "100%")
.appendTo(jQuery('#web').css('position', 'relative'));
jQuery.event.trigger("ajaxStart");
}
jQuery.ajax({
url: url,
dataType: 'jsonp',
cache: true,
jsonpCallback: "jedapps_jsonpcallback",
timeout: 20000,
success: function (response) {
jQuery('#web-loader').hide();
jQuery('#jed-container').html(response.data.html);
if (!Joomla.apps.update && response.data.pluginuptodate < 1)
{
Joomla.apps.update = true;
var txt = apps_obsolete;
var btn = apps_updateavail2;
if (response.data.pluginuptodate == 0) {
txt = apps_updateavail1;
}
if (apps_is_hathor) {
jQuery('#element-box').prepend(jQuery('<dl id="system-message"><dt class="info">info</dt><dd class="info message"><ul><li>'+txt+' <input class="btn" type="button" value="'+btn+'" onclick="Joomla.submitbuttonInstallWebInstaller()" /></li></ul></dd></dl>'));
}
else {
jQuery('#web').prepend(jQuery('<div class="alert alert-info j-jed-message" style="margin-bottom: 20px; line-height: 2em; color:#333333;">'+txt+' <input class="btn" type="button" value="'+btn+'" onclick="Joomla.submitbuttonInstallWebInstaller()" /></div>'));
}
}
if (jQuery('#myTabContent').length) {
jQuery.event.trigger("ajaxStop");
}
},
fail: function() {
jQuery('#web-loader').hide();
jQuery('#web-loader-error').show();
if (jQuery('#myTabContent').length) {
jQuery.event.trigger("ajaxStop");
}
},
complete: function() {
if(jQuery('#joomlaapsinstallatinput')) {
jQuery('#joomlaapsinstallatinput').val(apps_installat_url);
}
Joomla.apps.clickforlinks();
Joomla.apps.clicker();
if (Joomla.apps.list) {
jQuery(".list-view").click();
}
if (jQuery('#myTabContent').length) {
jQuery.event.trigger("ajaxStop");
}
},
error: function(request, status, error) {
if (request.responseText) {
jQuery('#web-loader-error').html(request.responseText);
}
jQuery('#web-loader').hide();
jQuery('#web-loader-error').show();
if (jQuery('#myTabContent').length) {
jQuery.event.trigger("ajaxStop");
}
}
});
return true;
};
Joomla.webpaginate = function(url, target) {
jQuery('#web-paginate-loader').show();
jQuery.get(url, function(response) {
jQuery('#web-paginate-loader').hide();
jQuery('#'+target).html(response.data.html);
}, 'jsonp').fail(function() {
jQuery('#web-paginate-loader').hide();
//jQuery('#web-paginate-error').hide();
});
};
Joomla.installfromwebexternal = function(redirect_url) {
var redirect_confirm = confirm('You will be redirected to the following link to complete the registration/purchase - \n'+redirect_url);
if(true == redirect_confirm) {
jQuery('#adminForm').attr('action', redirect_url);
jQuery("input[name=task]").prop( "disabled", true );
jQuery("input[name=install_directory]").prop( "disabled", true );
jQuery("input[name=install_url]").prop( "disabled", true );
jQuery("input[name=installtype]").prop( "disabled", true );
jQuery("input[name=filter_search]").prop( "disabled", true );
return true;
}
return false;
};
Joomla.installfromweb = function(install_url, name) {
if ('' == install_url) {
alert("This extension cannot be installed via the web. Please visit the developer's website to purchase/download.");
return false;
}
jQuery('#install_url').val(install_url);
jQuery('#uploadform-web-url').text(install_url);
if (name) {
jQuery('#uploadform-web-name').text(name);
jQuery('#uploadform-web-name-label').show();
} else {
jQuery('#uploadform-web-name-label').hide();
}
jQuery('#jed-container').slideUp(300);
jQuery('#uploadform-web').show();
return true;
};
Joomla.installfromwebcancel = function() {
jQuery('#uploadform-web').hide();
jQuery('#jed-container').slideDown(300);
if (Joomla.apps.list) {
jQuery(".list-view").click();
}
};
Joomla.installfromwebajaxsubmit = function() {
var tail = '&view='+Joomla.apps.view;
if (Joomla.apps.id) {
tail += '&id='+Joomla.apps.id;
}
if (jQuery('#com-apps-searchbox').val()) {
var value = encodeURI(jQuery('#com-apps-searchbox').val().toLowerCase().replace(/ +/g,'_').replace(/[^a-z0-9-_]/g,'').trim());
tail += '&filter_search='+value;
}
var ordering = Joomla.apps.ordering;
if (ordering !== "" && jQuery('#com-apps-ordering').val()) {
ordering = jQuery('#com-apps-ordering').val();
}
if (ordering) {
tail += '&ordering='+ordering;
}
Joomla.loadweb(apps_base_url+'index.php?format=json&option=com_apps'+tail);
};
Joomla.apps.clickforlinks = function () {
jQuery('a.transcode').each(function(index, value) {
var ajaxurl = jQuery(this).attr('href');
(function() {
var ajax_url = ajaxurl;
jQuery(value).live('click', function(event){
var pattern1 = new RegExp(apps_base_url);
var pattern2 = new RegExp("^index\.php");
if (pattern1.test(ajax_url) || pattern2.test(ajax_url)) {
Joomla.apps.view = ajax_url.replace(/^.+[&\?]view=(\w+).*$/, '$1');
if (Joomla.apps.view == 'dashboard') {
Joomla.apps.id = 0;
}
else if (Joomla.apps.view == 'category') {
Joomla.apps.id = ajax_url.replace(/^.+[&\?]id=(\d+).*$/, '$1');
}
event.preventDefault();
Joomla.loadweb(apps_base_url + ajax_url);
}
else {
event.preventDefault();
Joomla.loadweb(ajax_url);
}
});
})();
jQuery(this).attr('href', '#');
});
};
Joomla.apps.initialize = function() {
Joomla.apps.loaded = 1;
if (jQuery('#myTabContent').length) {
jQuery('<div id="appsloading"></div>')
.appendTo(jQuery('#web').css('position', 'absolute'));
jQuery('#appsloading').ajaxStart(function() {
jQuery('body').addClass('ifw-busy');
jQuery(this).show();
}).ajaxStop(function() {
jQuery(this).hide();
jQuery('body').removeClass('ifw-busy');
});
}
Joomla.loadweb(apps_base_url+'index.php?format=json&option=com_apps&view=dashboard');
Joomla.apps.clickforlinks();
jQuery('#com-apps-searchbox').live('keypress', function(event){
if(event.which == 13) {
Joomla.apps.initiateSearch();
}
});
jQuery('#search-reset').live('click', function(event){
jQuery('#com-apps-searchbox').val('');
Joomla.apps.initiateSearch();
});
jQuery('#com-apps-ordering').live('change', function(event){
Joomla.apps.ordering = jQuery(this).prop("selectedIndex");
Joomla.installfromwebajaxsubmit();
});
if (apps_installfrom_url != '') {
Joomla.installfromweb(apps_installfrom_url);
}
};
Joomla.apps.initiateSearch = function() {
Joomla.apps.view = 'dashboard';
Joomla.installfromwebajaxsubmit();
};
Joomla.apps.clicker = function() {
jQuery(".grid-view").live("click",function() {
Joomla.apps.list = 0;
jQuery(".list-container").addClass("hidden");
jQuery(".grid-container").removeClass("hidden");
jQuery("#btn-list-view").removeClass("active");
jQuery("#btn-grid-view").addClass("active");
});
jQuery(".list-view").live("click",function() {
Joomla.apps.list = 1;
jQuery(".grid-container").addClass("hidden");
jQuery(".list-container").removeClass("hidden");
jQuery("#btn-grid-view").removeClass("active");
jQuery("#btn-list-view").addClass("active");
});
};
Joomla.submitbutton5 = function(pressbutton)
{
var form = document.getElementById('adminForm');
// do field validation
if (form.install_url.value != "" && form.install_url.value != "http://")
{
Joomla.submitbutton4();
}
else if (form.install_url.value == "")
{
alert(apps_btntxt);
}
else
{
if (!apps_is_hathor)
{
jQuery('#appsloading').css('display', 'block');
}
form.installtype.value = 'web';
form.submit();
}
};
webinstaller/js/client.min.js 0000604 00000015156 15075155615 0012267 0 ustar 00 if(typeof Joomla==="undefined")var Joomla={};Joomla.apps={view:"dashboard",id:0,ordering:"",cssfiles:[],jsfiles:[],list:0,loaded:0,update:!1},Joomla.loadweb=function(a){if(""==a)return!1;var b=new RegExp(apps_base_url),c=new RegExp("^index.php");if(!b.test(a)&&!c.test(a)){window.open(a,"_blank");return!1}a+="&product="+apps_product+"&release="+apps_release+"&dev_level="+apps_dev_level+"&list="+(Joomla.apps.list?"list":"grid")+"&pv="+apps_pv;var d=Joomla.apps.ordering;d!==""&&jQuery("#com-apps-ordering").val()&&(d=jQuery("#com-apps-ordering").val(),a+="&ordering="+d),jQuery("html, body").animate({scrollTop:0},0),jQuery("#myTabContent").length&&(jQuery("#appsloading").css("position","absolute").css("left","0").css("top","0").css("width","100%").css("height","100%").appendTo(jQuery("#web").css("position","relative")),jQuery.event.trigger("ajaxStart")),jQuery.ajax({url:a,dataType:"jsonp",cache:!0,jsonpCallback:"jedapps_jsonpcallback",timeout:2e4,success:function(a){jQuery("#web-loader").hide(),jQuery("#jed-container").html(a.data.html);if(!Joomla.apps.update&&a.data.pluginuptodate<1){Joomla.apps.update=!0;var b=apps_obsolete,c=apps_updateavail2;a.data.pluginuptodate==0&&(b=apps_updateavail1),apps_is_hathor?jQuery("#element-box").prepend(jQuery('<dl id="system-message"><dt class="info">info</dt><dd class="info message"><ul><li>'+b+' <input class="btn" type="button" value="'+c+'" onclick="Joomla.submitbuttonInstallWebInstaller()" /></li></ul></dd></dl>')):jQuery("#web").prepend(jQuery('<div class="alert alert-info j-jed-message" style="margin-bottom: 20px; line-height: 2em; color:#333333;">'+b+' <input class="btn" type="button" value="'+c+'" onclick="Joomla.submitbuttonInstallWebInstaller()" /></div>'))}jQuery("#myTabContent").length&&jQuery.event.trigger("ajaxStop")},fail:function(){jQuery("#web-loader").hide(),jQuery("#web-loader-error").show(),jQuery("#myTabContent").length&&jQuery.event.trigger("ajaxStop")},complete:function(){jQuery("#joomlaapsinstallatinput")&&jQuery("#joomlaapsinstallatinput").val(apps_installat_url),Joomla.apps.clickforlinks(),Joomla.apps.clicker(),Joomla.apps.list&&jQuery(".list-view").click(),jQuery("#myTabContent").length&&jQuery.event.trigger("ajaxStop")},error:function(a,b,c){a.responseText&&jQuery("#web-loader-error").html(a.responseText),jQuery("#web-loader").hide(),jQuery("#web-loader-error").show(),jQuery("#myTabContent").length&&jQuery.event.trigger("ajaxStop")}});return!0},Joomla.webpaginate=function(a,b){jQuery("#web-paginate-loader").show(),jQuery.get(a,function(a){jQuery("#web-paginate-loader").hide(),jQuery("#"+b).html(a.data.html)},"jsonp").fail(function(){jQuery("#web-paginate-loader").hide()})},Joomla.installfromwebexternal=function(a){var b=confirm("You will be redirected to the following link to complete the registration/purchase - \n"+a);if(!0==b){jQuery("#adminForm").attr("action",a),jQuery("input[name=task]").prop("disabled",!0),jQuery("input[name=install_directory]").prop("disabled",!0),jQuery("input[name=install_url]").prop("disabled",!0),jQuery("input[name=installtype]").prop("disabled",!0),jQuery("input[name=filter_search]").prop("disabled",!0);return!0}return!1},Joomla.installfromweb=function(a,b){if(""==a){alert("This extension cannot be installed via the web. Please visit the developer's website to purchase/download.");return!1}jQuery("#install_url").val(a),jQuery("#uploadform-web-url").text(a),b?(jQuery("#uploadform-web-name").text(b),jQuery("#uploadform-web-name-label").show()):jQuery("#uploadform-web-name-label").hide(),jQuery("#jed-container").slideUp(300),jQuery("#uploadform-web").show();return!0},Joomla.installfromwebcancel=function(){jQuery("#uploadform-web").hide(),jQuery("#jed-container").slideDown(300),Joomla.apps.list&&jQuery(".list-view").click()},Joomla.installfromwebajaxsubmit=function(){var a="&view="+Joomla.apps.view;Joomla.apps.id&&(a+="&id="+Joomla.apps.id);if(jQuery("#com-apps-searchbox").val()){var b=encodeURI(jQuery("#com-apps-searchbox").val().toLowerCase().replace(/ +/g,"_").replace(/[^a-z0-9-_]/g,"").trim());a+="&filter_search="+b}var c=Joomla.apps.ordering;c!==""&&jQuery("#com-apps-ordering").val()&&(c=jQuery("#com-apps-ordering").val()),c&&(a+="&ordering="+c),Joomla.loadweb(apps_base_url+"index.php?format=json&option=com_apps"+a)},Joomla.apps.clickforlinks=function(){jQuery("a.transcode").each(function(a,b){var c=jQuery(this).attr("href");(function(){var a=c;jQuery(b).live("click",function(b){var c=new RegExp(apps_base_url),d=new RegExp("^index.php");c.test(a)||d.test(a)?(Joomla.apps.view=a.replace(/^.+[&\?]view=(\w+).*$/,"$1"),Joomla.apps.view=="dashboard"?Joomla.apps.id=0:Joomla.apps.view=="category"&&(Joomla.apps.id=a.replace(/^.+[&\?]id=(\d+).*$/,"$1")),b.preventDefault(),Joomla.loadweb(apps_base_url+a)):(b.preventDefault(),Joomla.loadweb(a))})})(),jQuery(this).attr("href","#")})},Joomla.apps.initialize=function(){Joomla.apps.loaded=1,jQuery("#myTabContent").length&&(jQuery('<div id="appsloading"></div>').appendTo(jQuery("#web").css("position","absolute")),jQuery("#appsloading").ajaxStart(function(){jQuery("body").addClass("ifw-busy"),jQuery(this).show()}).ajaxStop(function(){jQuery(this).hide(),jQuery("body").removeClass("ifw-busy")})),Joomla.loadweb(apps_base_url+"index.php?format=json&option=com_apps&view=dashboard"),Joomla.apps.clickforlinks(),jQuery("#com-apps-searchbox").live("keypress",function(a){a.which==13&&Joomla.apps.initiateSearch()}),jQuery("#search-reset").live("click",function(a){jQuery("#com-apps-searchbox").val(""),Joomla.apps.initiateSearch()}),jQuery("#com-apps-ordering").live("change",function(a){Joomla.apps.ordering=jQuery(this).prop("selectedIndex"),Joomla.installfromwebajaxsubmit()}),apps_installfrom_url!=""&&Joomla.installfromweb(apps_installfrom_url)},Joomla.apps.initiateSearch=function(){Joomla.apps.view="dashboard",Joomla.installfromwebajaxsubmit()},Joomla.apps.clicker=function(){jQuery(".grid-view").live("click",function(){Joomla.apps.list=0,jQuery(".list-container").addClass("hidden"),jQuery(".grid-container").removeClass("hidden"),jQuery("#btn-list-view").removeClass("active"),jQuery("#btn-grid-view").addClass("active")}),jQuery(".list-view").live("click",function(){Joomla.apps.list=1,jQuery(".grid-container").addClass("hidden"),jQuery(".list-container").removeClass("hidden"),jQuery("#btn-grid-view").removeClass("active"),jQuery("#btn-list-view").addClass("active")})},Joomla.submitbutton5=function(a){var b=document.getElementById("adminForm");b.install_url.value!=""&&b.install_url.value!="http://"?Joomla.submitbutton4():b.install_url.value==""?alert(apps_btntxt):(apps_is_hathor||jQuery("#appsloading").css("display","block"),b.installtype.value="web",b.submit())} webinstaller/webinstaller.script.php 0000604 00000001702 15075155615 0013754 0 ustar 00 <?php
/**
* @package Joomla.Plugin
* @subpackage Installer.webinstaller
*
* @copyright Copyright (C) 2013 Open Source Matters, Inc. All rights reserved.
* @license GNU General Public License version 2 or later; see LICENSE
*/
defined('_JEXEC') or die;
/**
* Support for the "Install from Web" tab
*
* @package Joomla.Plugin
* @subpackage System.webinstaller
* @since 3.2
*/
class plginstallerwebinstallerInstallerScript
{
public function postflight($route, $adapter)
{
$db = JFactory::getDbo();
$query = $db->getQuery(true);
$query->update($db->quoteName('#__extensions'))
->set($db->quoteName('enabled') . ' = 1')
->where($db->quoteName('type') . ' = ' . $db->quote('plugin'))
->where($db->quoteName('element') . ' = ' . $db->quote('webinstaller'));
$db->setQuery($query);
$db->execute();
}
}
webinstaller/webinstaller.xml 0000604 00000002615 15075155615 0012466 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-2017 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>1.1.1</version>
<description>PLG_INSTALLER_WEBINSTALLER_XML_DESCRIPTION</description>
<files>
<filename plugin="webinstaller">webinstaller.php</filename>
<folder>css</folder>
<folder>js</folder>
</files>
<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>
<config>
<fields name="params">
<fieldset name="basic">
<field name="tab_position" type="radio"
class="btn-group"
default="0"
description="PLG_INSTALLER_WEBINSTALLER_TAB_POSITION_DESC"
label="PLG_INSTALLER_WEBINSTALLER_TAB_POSITION_LABEL"
>
<option value="0">PLG_INSTALLER_WEBINSTALLER_TAB_POSITION_FIRST</option>
<option value="1">PLG_INSTALLER_WEBINSTALLER_TAB_POSITION_LAST</option>
</field>
</fieldset>
</fields>
</config>
</extension>
webinstaller/webinstaller.php 0000604 00000022122 15075155615 0012450 0 ustar 00 <?php
/**
* @package Joomla.Plugin
* @subpackage Installer.webinstaller
*
* @copyright Copyright (C) 2013-2016 Open Source Matters, Inc. All rights reserved.
* @license GNU General Public License version 2 or later; see LICENSE
*/
defined('_JEXEC') or die;
/**
* Support for the "Install from Web" tab
*
* @package Joomla.Plugin
* @subpackage System.webinstaller
* @since 3.2
*/
class PlgInstallerWebinstaller extends JPlugin
{
public $appsBaseUrl = 'https://appscdn.joomla.org/webapps/';
private $_hathor = null;
private $_installfrom = null;
private $_rtl = null;
public function onInstallerBeforeDisplay(&$showJedAndWebInstaller)
{
$showJedAndWebInstaller = false;
}
public function onInstallerViewBeforeFirstTab()
{
$app = JFactory::getApplication();
$lang = JFactory::getLanguage();
$lang->load('plg_installer_webinstaller', JPATH_ADMINISTRATOR);
if (!$this->params->get('tab_position', 0)) {
$this->getChanges();
}
}
public function onInstallerViewAfterLastTab()
{
if ($this->params->get('tab_position', 0)) {
$this->getChanges();
}
$ishathor = $this->isHathor() ? 1 : 0;
$installfrom = $this->getInstallFrom();
$installfromon = $installfrom ? 1 : 0;
$document = JFactory::getDocument();
$ver = new JVersion;
$min = JFactory::getConfig()->get('debug') ? '' : '.min';
$document->addScript(JURI::root() . 'plugins/installer/webinstaller/js/client' . $min . '.js?jversion=' . JVERSION);
$document->addStyleSheet(JURI::root() . 'plugins/installer/webinstaller/css/client' . $min . '.css?jversion=' . JVERSION);
$installer = new JInstaller();
$manifest = $installer->isManifest(JPATH_PLUGINS . DIRECTORY_SEPARATOR . 'installer' . DIRECTORY_SEPARATOR . 'webinstaller' . DIRECTORY_SEPARATOR . 'webinstaller.xml');
$apps_base_url = addslashes($this->appsBaseUrl);
$apps_installat_url = base64_encode(JURI::current(true) . '?option=com_installer&view=install');
$apps_installfrom_url = addslashes($installfrom);
$apps_product = base64_encode($ver->PRODUCT);
$apps_release = base64_encode($ver->RELEASE);
$apps_dev_level = base64_encode($ver->DEV_LEVEL);
$btntxt = JText::_('COM_INSTALLER_MSG_INSTALL_ENTER_A_URL', true);
$pv = base64_encode($manifest->version);
$updatestr1 = JText::_('COM_INSTALLER_WEBINSTALLER_INSTALL_UPDATE_AVAILABLE', true);
$obsoletestr = JText::_('COM_INSTALLER_WEBINSTALLER_INSTALL_OBSOLETE', true);
$updatestr2 = JText::_('JLIB_INSTALLER_UPDATE', true);
$javascript = <<<END
var apps_base_url = '$apps_base_url',
apps_installat_url = '$apps_installat_url',
apps_installfrom_url = '$apps_installfrom_url',
apps_product = '$apps_product',
apps_release = '$apps_release',
apps_dev_level = '$apps_dev_level',
apps_is_hathor = $ishathor,
apps_installfromon = $installfromon,
apps_btntxt = '$btntxt',
apps_pv = '$pv',
apps_updateavail1 = '$updatestr1',
apps_updateavail2 = '$updatestr2',
apps_obsolete = '$obsoletestr';
jQuery(document).ready(function() {
if (apps_installfromon)
{
jQuery('#myTabTabs a[href="#web"]').click();
}
var link = jQuery('#myTabTabs a[href="#web"]').get(0);
var eventpoint = jQuery(link).closest('li');
if (apps_is_hathor)
{
jQuery('#mywebinstaller').show();
link = jQuery('#mywebinstaller a');
eventpoint = link;
}
jQuery(eventpoint).click(function (event){
if (!Joomla.apps.loaded) {
Joomla.apps.initialize();
}
});
if (apps_installfrom_url != '') {
var tag = 'li';
if (apps_is_hathor)
{
tag = 'a';
}
jQuery(link).closest(tag).click();
}
if (!apps_is_hathor)
{
if(typeof jQuery('#myTabTabs a[href="'+localStorage.getItem('tab-href')+'"]').prop('tagName') == 'undefined' ||
localStorage.getItem('tab-href') == null ||
localStorage.getItem('tab-href') == 'undefined' ||
!localStorage.getItem('tab-href')) {
window.localStorage.setItem('tab-href', jQuery('#myTabTabs a').get(0).href.replace(/^.+?#/, '#'));
}
if (apps_installfrom_url == '' && localStorage.getItem('tab-href') == '#web')
{
jQuery('#myTabTabs li').each(function(index, value){
value.removeClass('active');
});
jQuery(eventpoint).addClass('active');
window.localStorage.setItem('tab-href', jQuery(eventpoint).children('a').attr('href'));
if (jQuery(eventpoint).children('a').attr('href') == '#web')
{
jQuery(eventpoint).click();
}
}
}
jQuery('#myTabTabs a[href="#web"]').on('shown.bs.tab', function (e) {
if (!Joomla.apps.loaded){
Joomla.apps.initialize();
}
});
});
END;
$document->addScriptDeclaration($javascript);
}
private function isHathor()
{
if (is_null($this->_hathor))
{
$app = JFactory::getApplication();
$templateName = strtolower($app->getTemplate());
if ($templateName == 'hathor')
{
$this->_hathor = true;
}
else
{
$this->_hathor = false;
}
}
return $this->_hathor;
}
private function isRTL() {
if (is_null($this->_rtl)) {
$document = JFactory::getDocument();
$this->_rtl = strtolower($document->direction) == 'rtl' ? 1 : 0;
}
return $this->_rtl;
}
private function getInstallFrom()
{
if (is_null($this->_installfrom))
{
$app = JFactory::getApplication();
$installfrom = base64_decode($app->input->get('installfrom', '', 'base64'));
$field = new SimpleXMLElement('<field></field>');
$rule = new JFormRuleUrl;
if ($rule->test($field, $installfrom) && preg_match('/\.xml\s*$/', $installfrom)) {
jimport('joomla.updater.update');
$update = new JUpdate;
$update->loadFromXML($installfrom);
$package_url = trim($update->get('downloadurl', false)->_data);
if ($package_url) {
$installfrom = $package_url;
}
}
$this->_installfrom = $installfrom;
}
return $this->_installfrom;
}
private function getChanges()
{
$ishathor = $this->isHathor() ? 1 : 0;
$installfrom = $this->getInstallFrom();
$installfromon = $installfrom ? 1 : 0;
$dir = '';
if ($this->isRTL()) {
$dir = ' dir="ltr"';
}
if ($ishathor)
{
JHtml::_('jquery.framework');
echo '<div class="clr"></div>';
?>
<fieldset class="uploadform">
<legend><?php echo JText::_('COM_INSTALLER_INSTALL_FROM_WEB', true); ?></legend>
<div id="jed-container"<?php echo $dir; ?>>
<div id="mywebinstaller" style="display:none">
<a href="#"><?php echo JText::_('COM_INSTALLER_WEBINSTALLER_LOAD_APPS'); ?></a>
</div>
<div class="well" id="web-loader" style="display:none">
<h2><?php echo JText::_('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 JText::_('COM_INSTALLER_WEBINSTALLER_INSTALL_WEB_LOADING_ERROR'); ?>
</div>
</div>
<fieldset class="uploadform" id="uploadform-web" style="display:none"<?php echo $dir; ?>>
<div class="control-group">
<strong><?php echo JText::_('COM_INSTALLER_WEBINSTALLER_INSTALL_WEB_CONFIRM'); ?></strong><br />
<span id="uploadform-web-name-label"><?php echo JText::_('COM_INSTALLER_WEBINSTALLER_INSTALL_WEB_CONFIRM_NAME'); ?>:</span> <span id="uploadform-web-name"></span><br />
<?php echo JText::_('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 JText::_('COM_INSTALLER_INSTALL_BUTTON'); ?>" onclick="Joomla.submitbutton<?php echo $installfrom != '' ? 4 : 5; ?>()" />
<input type="button" class="btn btn-secondary" value="<?php echo JText::_('JCANCEL'); ?>" onclick="Joomla.installfromwebcancel()" />
</div>
</fieldset>
</fieldset>
<?php
}
else
{
echo JHtml::_('bootstrap.addTab', 'myTab', 'web', JText::_('COM_INSTALLER_INSTALL_FROM_WEB', true));
?>
<div id="jed-container" class="tab-pane">
<div class="well" id="web-loader">
<h2><?php echo JText::_('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 JText::_('COM_INSTALLER_WEBINSTALLER_INSTALL_WEB_LOADING_ERROR'); ?>
</div>
</div>
<fieldset class="uploadform" id="uploadform-web" style="display:none"<?php echo $dir; ?>>
<div class="control-group">
<strong><?php echo JText::_('COM_INSTALLER_WEBINSTALLER_INSTALL_WEB_CONFIRM'); ?></strong><br />
<span id="uploadform-web-name-label"><?php echo JText::_('COM_INSTALLER_WEBINSTALLER_INSTALL_WEB_CONFIRM_NAME'); ?>:</span> <span id="uploadform-web-name"></span><br />
<?php echo JText::_('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 JText::_('COM_INSTALLER_INSTALL_BUTTON'); ?>" onclick="Joomla.submitbutton<?php echo $installfrom != '' ? 4 : 5; ?>()" />
<input type="button" class="btn btn-secondary" value="<?php echo JText::_('JCANCEL'); ?>" onclick="Joomla.installfromwebcancel()" />
</div>
</fieldset>
<?php
echo JHtml::_('bootstrap.endTab');
}
}
}