first commit
This commit is contained in:
@@ -0,0 +1,183 @@
|
||||
<?php
|
||||
/**
|
||||
* @package akeebabackup
|
||||
* @copyright Copyright (c)2006-2022 Nicholas K. Dionysopoulos / Akeeba Ltd
|
||||
* @license GNU General Public License version 3, or later
|
||||
*/
|
||||
|
||||
/** @noinspection PhpUnused */
|
||||
|
||||
defined('_JEXEC') || die;
|
||||
|
||||
use Akeeba\Component\AkeebaBackup\Administrator\Model\UpgradeModel;
|
||||
use Joomla\CMS\Factory;
|
||||
use Joomla\CMS\Installer\Adapter\PackageAdapter;
|
||||
use Joomla\CMS\Installer\InstallerAdapter;
|
||||
use Joomla\Database\DatabaseDriver;
|
||||
use Joomla\Database\DatabaseInterface;
|
||||
|
||||
/**
|
||||
* Akeeba Backup package extension installation script file.
|
||||
*
|
||||
* @see https://docs.joomla.org/Manifest_files#Script_file
|
||||
* @see UpgradeModel
|
||||
*/
|
||||
class Pkg_AkeebabackupInstallerScript extends \Joomla\CMS\Installer\InstallerScript
|
||||
{
|
||||
/**
|
||||
* @var DatabaseDriver|DatabaseInterface|null
|
||||
* @since 9.3.0
|
||||
*/
|
||||
protected $dbo;
|
||||
|
||||
protected $minimumPhp = '7.4.0';
|
||||
|
||||
protected $minimumJoomla = '4.2.0';
|
||||
|
||||
public function preflight($type, $parent)
|
||||
{
|
||||
if (!parent::preflight($type, $parent))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
$this->setDboFromAdapter($parent);
|
||||
|
||||
// Do not run on uninstall.
|
||||
if ($type === 'uninstall')
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
define('AKEEBABACKUP_INSTALLATION_PRO', is_file($parent->getParent()->getPath('source') . '/com_akeebabackup-pro.zip'));
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Called after any type of installation / uninstallation action.
|
||||
*
|
||||
* @param string $type Which action is happening (install|uninstall|discover_install|update)
|
||||
* @param PackageAdapter $parent The object responsible for running this script
|
||||
*
|
||||
* @return bool
|
||||
* @since 9.0.0
|
||||
*/
|
||||
public function postflight(string $type, PackageAdapter $parent): bool
|
||||
{
|
||||
$this->setDboFromAdapter($parent);
|
||||
|
||||
// Do not run on uninstall.
|
||||
if ($type === 'uninstall')
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
$model = $this->getUpgradeModel();
|
||||
|
||||
if (empty($model))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
return $model->postflight($type, $parent);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the UpgradeModel of the installed component
|
||||
*
|
||||
* @return UpgradeModel|null The upgrade Model. NULL if it cannot be loaded.
|
||||
* @since 9.0.0
|
||||
*/
|
||||
private function getUpgradeModel(): ?UpgradeModel
|
||||
{
|
||||
// Make sure the latest version of the Model file will be loaded, regardless of the OPcache state.
|
||||
$filePath = JPATH_ADMINISTRATOR . '/components/com_akeebabackup/src/Model/UpgradeModel.php';
|
||||
|
||||
if (function_exists('opcache_invalidate'))
|
||||
{
|
||||
opcache_invalidate($filePath = JPATH_ADMINISTRATOR . '/components/com_akeebabackup/src/Model/UpgradeModel.php');
|
||||
}
|
||||
|
||||
// Can I please load the model?
|
||||
if (!class_exists('\Akeeba\Component\AkeebaBackup\Administrator\Model\UpgradeModel'))
|
||||
{
|
||||
if (!file_exists($filePath) || !is_readable($filePath))
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
include_once $filePath;
|
||||
}
|
||||
|
||||
if (!class_exists('\Akeeba\Component\AkeebaBackup\Administrator\Model\UpgradeModel'))
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
try
|
||||
{
|
||||
$upgradeModel = new UpgradeModel();
|
||||
}
|
||||
catch (Throwable $e)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
if (method_exists($upgradeModel, 'setDatabase'))
|
||||
{
|
||||
$upgradeModel->setDatabase($this->dbo ?? Factory::getContainer()->get('DatabaseDriver'));
|
||||
}
|
||||
elseif (method_exists($upgradeModel, 'setDbo'))
|
||||
{
|
||||
$upgradeModel->setDbo($this->dbo ?? Factory::getContainer()->get('DatabaseDriver'));
|
||||
}
|
||||
|
||||
if (method_exists($upgradeModel, 'init'))
|
||||
{
|
||||
$upgradeModel->init();
|
||||
}
|
||||
|
||||
return $upgradeModel;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the database object from the installation adapter, if possible
|
||||
*
|
||||
* @param InstallerAdapter|mixed $adapter The installation adapter, hopefully.
|
||||
*
|
||||
* @since 9.3.0
|
||||
* @return void
|
||||
*/
|
||||
private function setDboFromAdapter($adapter): void
|
||||
{
|
||||
$this->dbo = null;
|
||||
|
||||
if (class_exists(InstallerAdapter::class) && ($adapter instanceof InstallerAdapter))
|
||||
{
|
||||
/**
|
||||
* If this is Joomla 4.2+ the adapter has a protected getDatabase() method which we can access with the
|
||||
* magic property $adapter->db. On Joomla 4.1 and lower this is not available. So, we have to first figure
|
||||
* out if we can actually use the magic property...
|
||||
*/
|
||||
|
||||
try
|
||||
{
|
||||
$refObj = new ReflectionObject($adapter);
|
||||
|
||||
if ($refObj->hasMethod('getDatabase'))
|
||||
{
|
||||
$this->dbo = $adapter->db;
|
||||
|
||||
return;
|
||||
}
|
||||
}
|
||||
catch (Throwable $e)
|
||||
{
|
||||
// If something breaks we will fall through
|
||||
}
|
||||
}
|
||||
|
||||
$this->dbo = Factory::getContainer()->get('DatabaseDriver');
|
||||
}
|
||||
}
|
||||
1164
administrator/manifests/packages/cachecleaner/script.install.php
Normal file
1164
administrator/manifests/packages/cachecleaner/script.install.php
Normal file
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,179 @@
|
||||
<?php
|
||||
// No direct access to this file
|
||||
defined('_JEXEC') or die('Restricted access');
|
||||
|
||||
/**
|
||||
* Script file of miniorange_user_sync_system_plugin.
|
||||
*
|
||||
* The name of this class is dependent on the component being installed.
|
||||
* The class name should have the component's name, directly followed by
|
||||
* the text InstallerScript (ex:. com_helloWorldInstallerScript).
|
||||
*
|
||||
* This class will be called by Joomla!'s installer, if specified in your component's
|
||||
* manifest file, and is used for custom automation actions in its installation process.
|
||||
*
|
||||
* In order to use this automation script, you should reference it in your component's
|
||||
* manifest file as follows:
|
||||
* <scriptfile>script.php</scriptfile>
|
||||
*
|
||||
* @copyright Copyright (C) 2005 - 2018 Open Source Matters, Inc. All rights reserved.
|
||||
* @license GNU General Public License version 2 or later; see LICENSE.txt
|
||||
*/
|
||||
|
||||
class pkg_ImportexportusersInstallerScript
|
||||
{
|
||||
/**
|
||||
* This method is called after a component is installed.
|
||||
*
|
||||
* @param \stdClass $parent - Parent object calling this method.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function install($parent)
|
||||
{
|
||||
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* This method is called after a component is uninstalled.
|
||||
*
|
||||
* @param \stdClass $parent - Parent object calling this method.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function uninstall($parent)
|
||||
{
|
||||
//echo '<p>' . JText::_('COM_HELLOWORLD_UNINSTALL_TEXT') . '</p>';
|
||||
}
|
||||
|
||||
/**
|
||||
* This method is called after a component is updated.
|
||||
*
|
||||
* @param \stdClass $parent - Parent object calling object.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function update($parent)
|
||||
{
|
||||
//echo '<p>' . JText::sprintf('COM_HELLOWORLD_UPDATE_TEXT', $parent->get('manifest')->version) . '</p>';
|
||||
}
|
||||
|
||||
/**
|
||||
* Runs just before any installation action is performed on the component.
|
||||
* Verifications and pre-requisites should run in this function.
|
||||
*
|
||||
* @param string $type - Type of PreFlight action. Possible values are:
|
||||
* - * install
|
||||
* - * update
|
||||
* - * discover_install
|
||||
* @param \stdClass $parent - Parent object calling object.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function preflight($type, $parent)
|
||||
{
|
||||
//echo '<p>' . JText::_('COM_HELLOWORLD_PREFLIGHT_' . $type . '_TEXT') . '</p>';
|
||||
}
|
||||
|
||||
/**
|
||||
* Runs right after any installation action is performed on the component.
|
||||
*
|
||||
* @param string $type - Type of PostFlight action. Possible values are:
|
||||
* - * install
|
||||
* - * update
|
||||
* - * discover_install
|
||||
* @param \stdClass $parent - Parent object calling object.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
function postflight($type, $parent)
|
||||
{
|
||||
// echo '<p>' . JText::_('COM_HELLOWORLD_POSTFLIGHT_' . $type . '_TEXT') . '</p>';
|
||||
if ($type == 'uninstall') {
|
||||
return true;
|
||||
}
|
||||
$this->showInstallMessage('');
|
||||
}
|
||||
|
||||
protected function showInstallMessage($messages = array())
|
||||
{
|
||||
?>
|
||||
<style>
|
||||
.mo-row {
|
||||
width: 100%;
|
||||
display: block;
|
||||
margin-bottom: 2%;
|
||||
}
|
||||
|
||||
.mo-row:after {
|
||||
clear: both;
|
||||
display: block;
|
||||
content: "";
|
||||
}
|
||||
|
||||
.mo_boot_btn {
|
||||
display: inline-block;
|
||||
font-weight: 400;
|
||||
text-align: center;
|
||||
vertical-align: middle;
|
||||
user-select: none;
|
||||
background-color: transparent;
|
||||
border: 1px solid transparent;
|
||||
padding: 4px 12px;
|
||||
font-size: 0.85rem;
|
||||
line-height: 1.5;
|
||||
border-radius: 0.25rem;
|
||||
transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
|
||||
}
|
||||
|
||||
.mo_boot_btn-users_sync {
|
||||
color: white;
|
||||
background-color: #226a8b;
|
||||
border-color: #226a8b;
|
||||
}
|
||||
|
||||
.mo_boot_btn-users_sync:hover {
|
||||
color: white;
|
||||
background-color: #163c4e;
|
||||
}
|
||||
|
||||
.mo_boot_btn-users_sync:focus, .mo_boot_btn-users_sync.mo_boot_focus {
|
||||
box-shadow: 0 0 0 0.2rem #163c4e;
|
||||
}
|
||||
|
||||
.mo_boot_btn-users_sync.mo_boot_disabled, .mo_boot_btn-users_sync:disabled {
|
||||
color: #fff;
|
||||
background-color: #163c4e;
|
||||
border-color: #163c4e;
|
||||
}
|
||||
|
||||
|
||||
.mo_boot_btn-secondary {
|
||||
color: #fff;
|
||||
background-color: #6c757d;
|
||||
border-color: #6c757d;
|
||||
}
|
||||
|
||||
.mo_boot_btn-secondary:hover {
|
||||
color: #fff;
|
||||
background-color: #5a6268;
|
||||
border-color: #545b62;
|
||||
}
|
||||
</style>
|
||||
|
||||
<p>Our plugin is compatible with Joomla 3, 4 as well as 5.</p>
|
||||
<h4>What this plugin does?</h4>
|
||||
<p>Your Joomla users can be imported and exported from Joomla 3.x to Joomla 4.x and 5.x and vice versa. Additionally, you can import users from any other websites or CMS into your Joomla website.</p>
|
||||
<div class="mo-row">
|
||||
<a class="mo_boot_btn mo_boot_btn-users_sync" onClick="window.location.reload();"
|
||||
href="index.php?option=com_miniorange_importexportusers&view=accountsetup&tab-panel=overview">Start Using miniOrange Import Export Users plugin</a>
|
||||
<a class="mo_boot_btn mo_boot_btn-secondary" href="https://plugins.miniorange.com/import-export-users-for-joomla"
|
||||
target="_blank">Read the miniOrange documents</a>
|
||||
<a class="mo_boot_btn mo_boot_btn-secondary" href="https://www.miniorange.com/contact" target="_blank">Get
|
||||
Support!</a>
|
||||
</div>
|
||||
<?php
|
||||
}
|
||||
|
||||
}
|
||||
1
administrator/manifests/packages/index.html
Normal file
1
administrator/manifests/packages/index.html
Normal file
@@ -0,0 +1 @@
|
||||
<!DOCTYPE html><title></title>
|
||||
709
administrator/manifests/packages/jce/install.pkg.php
Normal file
709
administrator/manifests/packages/jce/install.pkg.php
Normal file
@@ -0,0 +1,709 @@
|
||||
<?php
|
||||
/**
|
||||
* @copyright Copyright (c) 2009-2022 Ryan Demmer. All rights reserved
|
||||
* @license GNU/GPL 2 or later - http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
|
||||
* JCE is free software. This version may have been modified pursuant
|
||||
* to the GNU General Public License, and as distributed it includes or
|
||||
* is derivative of works licensed under the GNU General Public License or
|
||||
* other free or open source software licenses
|
||||
*/
|
||||
defined('JPATH_PLATFORM') or die('RESTRICTED');
|
||||
|
||||
class pkg_jceInstallerScript
|
||||
{
|
||||
private function addIndexfiles($paths)
|
||||
{
|
||||
jimport('joomla.filesystem.folder');
|
||||
jimport('joomla.filesystem.file');
|
||||
|
||||
// get the base file
|
||||
$file = JPATH_ADMINISTRATOR . '/components/com_jce/index.html';
|
||||
|
||||
if (is_file($file)) {
|
||||
foreach ((array) $paths as $path) {
|
||||
if (is_dir($path)) {
|
||||
// admin component
|
||||
$folders = JFolder::folders($path, '.', true, true);
|
||||
|
||||
foreach ($folders as $folder) {
|
||||
JFile::copy($file, $folder . '/' . basename($file));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private function installProfiles()
|
||||
{
|
||||
include_once JPATH_ADMINISTRATOR . '/components/com_jce/helpers/profiles.php';
|
||||
return JceProfilesHelper::installProfiles();
|
||||
}
|
||||
|
||||
public function install($installer)
|
||||
{
|
||||
// enable plugins
|
||||
$plugin = JTable::getInstance('extension');
|
||||
|
||||
$plugins = array(
|
||||
'content' => 'jce',
|
||||
'extension' => 'jce',
|
||||
'installer' => 'jce',
|
||||
'quickicon' => 'jce',
|
||||
'system' => 'jce',
|
||||
'fields' => 'mediajce',
|
||||
);
|
||||
|
||||
$parent = $installer->getParent();
|
||||
|
||||
foreach ($plugins as $folder => $element) {
|
||||
$id = $plugin->find(array('type' => 'plugin', 'folder' => $folder, 'element' => $element));
|
||||
|
||||
if ($id) {
|
||||
$plugin->load($id);
|
||||
$plugin->enabled = 1;
|
||||
$plugin->store();
|
||||
}
|
||||
}
|
||||
|
||||
// install profiles
|
||||
$this->installProfiles();
|
||||
|
||||
$language = JFactory::getLanguage();
|
||||
$language->load('com_jce', JPATH_ADMINISTRATOR, null, true);
|
||||
$language->load('com_jce.sys', JPATH_ADMINISTRATOR, null, true);
|
||||
|
||||
// set layout base path
|
||||
JLayoutHelper::$defaultBasePath = JPATH_ADMINISTRATOR . '/components/com_jce/layouts';
|
||||
|
||||
// override existing message
|
||||
$message = '';
|
||||
$message .= '<div id="jce" class="mt-4 mb-4 p-4 card border-dark well" style="text-align:left;">';
|
||||
$message .= ' <div class="card-header"><h1>' . JText::_('COM_JCE') . ' ' . $parent->manifest->version . '</h1></div>';
|
||||
$message .= ' <div class="card-body">';
|
||||
|
||||
// variant messates
|
||||
if ((string) $parent->manifest->variant != 'pro') {
|
||||
$message .= JLayoutHelper::render('message.upgrade');
|
||||
} else {
|
||||
// show core to pro upgrade message
|
||||
if ($parent->isUpgrade()) {
|
||||
$variant = (string) $parent->get('current_variant', 'core');
|
||||
|
||||
if ($variant == 'core') {
|
||||
$message .= JLayoutHelper::render('message.welcome');
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$message .= JText::_('COM_JCE_XML_DESCRIPTION');
|
||||
|
||||
$message .= ' </div>';
|
||||
$message .= '</div>';
|
||||
|
||||
$parent->set('message', $message);
|
||||
|
||||
// add index files to each folder
|
||||
$this->addIndexfiles(array(
|
||||
__DIR__,
|
||||
JPATH_SITE . '/components/com_jce',
|
||||
JPATH_PLUGINS . '/jce',
|
||||
));
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
private function checkTable()
|
||||
{
|
||||
$db = JFactory::getDBO();
|
||||
|
||||
$tables = $db->getTableList();
|
||||
|
||||
if (!empty($tables)) {
|
||||
// swap array values with keys, convert to lowercase and return array keys as values
|
||||
$tables = array_keys(array_change_key_case(array_flip($tables)));
|
||||
$app = JFactory::getApplication();
|
||||
$match = str_replace('#__', strtolower($app->getCfg('dbprefix', '')), '#__wf_profiles');
|
||||
|
||||
return in_array($match, $tables);
|
||||
}
|
||||
|
||||
// try with query
|
||||
$query = $db->getQuery(true);
|
||||
|
||||
$query->select('COUNT(id)')->from('#__wf_profiles');
|
||||
$db->setQuery($query);
|
||||
|
||||
return $db->execute();
|
||||
}
|
||||
|
||||
public function uninstall()
|
||||
{
|
||||
$db = JFactory::getDBO();
|
||||
|
||||
if ($this->checkTable() === false) {
|
||||
return true;
|
||||
}
|
||||
|
||||
$query = $db->getQuery(true);
|
||||
$query->select('COUNT(id)')->from('#__wf_profiles');
|
||||
$db->setQuery($query);
|
||||
|
||||
// profiles table is empty, remove...
|
||||
if ($db->loadResult() === 0) {
|
||||
$db->dropTable('#__wf_profiles', true);
|
||||
$db->execute();
|
||||
}
|
||||
}
|
||||
|
||||
public function update($installer)
|
||||
{
|
||||
return $this->install($installer);
|
||||
}
|
||||
|
||||
protected function getCurrentVersion()
|
||||
{
|
||||
// get current package version
|
||||
$manifest = JPATH_ADMINISTRATOR . '/manifests/packages/pkg_jce.xml';
|
||||
$version = 0;
|
||||
$variant = "core";
|
||||
|
||||
if (is_file($manifest)) {
|
||||
if ($xml = @simplexml_load_file($manifest)) {
|
||||
$version = (string) $xml->version;
|
||||
$variant = (string) $xml->variant;
|
||||
}
|
||||
}
|
||||
|
||||
return array($version, $variant);
|
||||
}
|
||||
|
||||
public function preflight($route, $installer)
|
||||
{
|
||||
// skip on uninstall etc.
|
||||
if ($route == 'remove' || $route == 'uninstall') {
|
||||
return true;
|
||||
}
|
||||
|
||||
$parent = $installer->getParent();
|
||||
|
||||
$requirements = '<a href="https://www.joomlacontenteditor.net/support/documentation/editor/requirements" title="Editor Requirements" target="_blank" rel="noopener">https://www.joomlacontenteditor.net/support/documentation/editor/requirements</a>';
|
||||
|
||||
// php version check
|
||||
if (version_compare(PHP_VERSION, '7.4', 'lt')) {
|
||||
throw new RuntimeException('JCE requires PHP 7.4 or later - ' . $requirements);
|
||||
}
|
||||
|
||||
$jversion = new JVersion();
|
||||
|
||||
// joomla version check
|
||||
if (version_compare($jversion->getShortVersion(), '3.9', 'lt')) {
|
||||
throw new RuntimeException('JCE requires Joomla 3.9 or later - ' . $requirements);
|
||||
}
|
||||
|
||||
// set current package version and variant
|
||||
list($version, $variant) = $this->getCurrentVersion();
|
||||
|
||||
// set current version
|
||||
$parent->set('current_version', $version);
|
||||
|
||||
// set current variant
|
||||
$parent->set('current_variant', $variant);
|
||||
|
||||
// core cannot be installed over pro
|
||||
if ($variant === "pro" && (string) $parent->manifest->variant === "core") {
|
||||
throw new RuntimeException('JCE Core cannot be installed over JCE Pro. Please install JCE Pro. To downgrade, please first uninstall JCE Pro.');
|
||||
}
|
||||
|
||||
// end here if not an upgrade
|
||||
if ($route != 'update') {
|
||||
return true;
|
||||
}
|
||||
|
||||
$extension = JTable::getInstance('extension');
|
||||
|
||||
// disable content, system and quickicon plugins. This is to prevent errors if the install fails and some core files are missing
|
||||
foreach (array('content', 'system', 'quickicon') as $folder) {
|
||||
$plugin = $extension->find(array(
|
||||
'type' => 'plugin',
|
||||
'element' => 'jce',
|
||||
'folder' => $folder,
|
||||
));
|
||||
|
||||
if ($plugin) {
|
||||
$extension->publish(null, 0);
|
||||
}
|
||||
}
|
||||
|
||||
// disable legacy jcefilebrowser quickicon to remove when the install is finished
|
||||
$plugin = $extension->find(array(
|
||||
'type' => 'plugin',
|
||||
'element' => 'jcefilebrowser',
|
||||
'folder' => 'quickicon',
|
||||
));
|
||||
|
||||
if ($plugin) {
|
||||
$extension->publish(null, 0);
|
||||
}
|
||||
}
|
||||
|
||||
private function checkTableUpdate()
|
||||
{
|
||||
$db = JFactory::getDBO();
|
||||
|
||||
$state = true;
|
||||
|
||||
// only for mysql / mysqli
|
||||
if (strpos($db->getName(), 'mysql') === false) {
|
||||
return $state;
|
||||
}
|
||||
|
||||
$query = "DESCRIBE #__wf_profiles";
|
||||
$db->setQuery($query);
|
||||
$items = $db->loadObjectList();
|
||||
|
||||
foreach($items as $item) {
|
||||
if ($item->Field == 'checked_out') {
|
||||
if (strpos($item->Type, 'unsigned') === false) {
|
||||
$state = false;
|
||||
}
|
||||
|
||||
if (strpos($item->Type, 'unsigned') === false) {
|
||||
$state = false;
|
||||
}
|
||||
}
|
||||
|
||||
if ($item->Field == 'checked_out_time') {
|
||||
$item = (array) $item;
|
||||
|
||||
if (strtolower($item['Null']) == 'no') {
|
||||
$state = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return $state;
|
||||
}
|
||||
|
||||
public function postflight($route, $installer)
|
||||
{
|
||||
$app = JFactory::getApplication();
|
||||
$extension = JTable::getInstance('extension');
|
||||
$parent = $installer->getParent();
|
||||
|
||||
$db = JFactory::getDBO();
|
||||
|
||||
JTable::addIncludePath(JPATH_ADMINISTRATOR . '/components/com_jce/tables');
|
||||
|
||||
// remove legacy jcefilebrowser quickicon
|
||||
$plugin = JPluginHelper::getPlugin('quickicon', 'jcefilebrowser');
|
||||
|
||||
if ($plugin) {
|
||||
$inst = new JInstaller();
|
||||
// try uninstall
|
||||
if (!$inst->uninstall('plugin', $plugin->id)) {
|
||||
|
||||
if ($extension->load($plugin->id)) {
|
||||
$extension->publish(null, 0);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if ($route == 'update') {
|
||||
$version = (string) $parent->manifest->version;
|
||||
$current_version = (string) $parent->get('current_version');
|
||||
|
||||
// process core to pro upgrade - remove branding plugin
|
||||
if ((string) $parent->manifest->variant === "pro") {
|
||||
// remove branding plugin
|
||||
$branding = JPATH_SITE . '/components/com_jce/editor/tiny_mce/plugins/branding';
|
||||
|
||||
if (is_dir($branding)) {
|
||||
JFolder::delete($branding);
|
||||
}
|
||||
|
||||
// clean up updates sites
|
||||
$query = $db->getQuery(true);
|
||||
|
||||
$query->select('update_site_id')->from('#__update_sites');
|
||||
$query->where($db->qn('location') . ' = ' . $db->q('https://cdn.joomlacontenteditor.net/updates/xml/editor/pkg_jce.xml'));
|
||||
$db->setQuery($query);
|
||||
$id = $db->loadResult();
|
||||
|
||||
if ($id) {
|
||||
JModelLegacy::addIncludePath(JPATH_ADMINISTRATOR . '/components/com_installer/models');
|
||||
$model = JModelLegacy::getInstance('Updatesites', 'InstallerModel');
|
||||
|
||||
if ($model) {
|
||||
$model->delete(array($id));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$theme = '';
|
||||
|
||||
// update toolbar_theme for 2.8.0 and 2.8.1 beta
|
||||
if (version_compare($current_version, '2.8.0', 'ge') && version_compare($current_version, '2.8.1', 'lt')) {
|
||||
$theme = 'modern';
|
||||
}
|
||||
|
||||
// update toolbar_theme for 2.7.x
|
||||
if (version_compare($current_version, '2.8', 'lt')) {
|
||||
$theme = 'default';
|
||||
}
|
||||
|
||||
// update toolbar_theme if one has been set
|
||||
if ($theme) {
|
||||
$table = JTable::getInstance('Profiles', 'JceTable');
|
||||
|
||||
$query = $db->getQuery(true);
|
||||
|
||||
$query->select('*')->from('#__wf_profiles');
|
||||
$db->setQuery($query);
|
||||
$profiles = $db->loadObjectList();
|
||||
|
||||
foreach ($profiles as $profile) {
|
||||
if (empty($profile->params)) {
|
||||
$profile->params = '{}';
|
||||
}
|
||||
|
||||
$data = json_decode($profile->params, true);
|
||||
|
||||
if (false !== $data) {
|
||||
if (empty($data)) {
|
||||
$data = array();
|
||||
}
|
||||
|
||||
// no editor parameters set at all!
|
||||
if (!isset($data['editor'])) {
|
||||
$data['editor'] = array();
|
||||
}
|
||||
|
||||
$param = array(
|
||||
'toolbar_theme' => $theme
|
||||
);
|
||||
|
||||
// add variant for "mobile" profile
|
||||
if ($profile->name === "Mobile") {
|
||||
$param['toolbar_theme'] .= '.touch';
|
||||
}
|
||||
|
||||
if (empty($data['editor']['toolbar_theme'])) {
|
||||
$data['editor']['toolbar_theme'] = $param['toolbar_theme'];
|
||||
|
||||
if (!$table->load($profile->id)) {
|
||||
throw new Exception('Unable to update profile - ' . $profile->name);
|
||||
}
|
||||
|
||||
$table->params = json_encode($data);
|
||||
|
||||
if (!$table->store()) {
|
||||
throw new Exception('Unable to update profile - ' . $profile->name);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// enable content, system and quickicon plugins
|
||||
foreach (array('content', 'system', 'quickicon') as $folder) {
|
||||
$plugin = $extension->find(array(
|
||||
'type' => 'plugin',
|
||||
'element' => 'jce',
|
||||
'folder' => $folder,
|
||||
));
|
||||
|
||||
if ($plugin) {
|
||||
$extension->publish(null, 1);
|
||||
}
|
||||
}
|
||||
|
||||
// check for "unsigend" in "checked_out" and default value in "checked_out_time" fields and update if necessary
|
||||
if (false == $this->checkTableUpdate()) {
|
||||
// fix checked_out table
|
||||
$query = "ALTER TABLE #__wf_profiles CHANGE COLUMN " . $db->qn('checked_out') . " " . $db->qn('checked_out') . " INT UNSIGNED NULL";
|
||||
$db->setQuery($query);
|
||||
$db->execute();
|
||||
|
||||
// fix checked_out_time default value
|
||||
$query = "ALTER TABLE #__wf_profiles CHANGE COLUMN " . $db->qn('checked_out_time') . " " . $db->qn('checked_out_time') . " DATETIME NULL DEFAULT NULL";
|
||||
$db->setQuery($query);
|
||||
$db->execute();
|
||||
}
|
||||
|
||||
/*try {
|
||||
$query = "SELECT DEFAULT (" . $db->qn('checked_out_time') . ") FROM #__wf_profiles";
|
||||
$db->setQuery($query);
|
||||
$db->execute();
|
||||
} catch (Exception $e) {
|
||||
|
||||
}*/
|
||||
|
||||
self::cleanupInstall($installer);
|
||||
}
|
||||
}
|
||||
|
||||
protected static function cleanupInstall($installer)
|
||||
{
|
||||
$parent = $installer->getParent();
|
||||
$current_version = $parent->get('current_version');
|
||||
|
||||
$admin = JPATH_ADMINISTRATOR . '/components/com_jce';
|
||||
$site = JPATH_SITE . '/components/com_jce';
|
||||
|
||||
$folders = array();
|
||||
$files = array();
|
||||
|
||||
$folders['2.6.38'] = array(
|
||||
// admin
|
||||
$admin . '/classes',
|
||||
$admin . '/elements',
|
||||
$admin . '/media/fonts',
|
||||
$admin . '/img/menu',
|
||||
$admin . '/views/preferences',
|
||||
$admin . '/views/users',
|
||||
// site
|
||||
$site . '/editor/elements',
|
||||
$site . '/editor/extensions/aggregator/vine',
|
||||
$site . '/editor/extensions/popups/window',
|
||||
// site - tinymce plugins
|
||||
$site . '/editor/tiny_mce/plugins/advlist/classes',
|
||||
$site . '/editor/tiny_mce/plugins/article/classes',
|
||||
$site . '/editor/tiny_mce/plugins/browser/classes',
|
||||
$site . '/editor/tiny_mce/plugins/caption/classes',
|
||||
$site . '/editor/tiny_mce/plugins/charmap/classes',
|
||||
$site . '/editor/tiny_mce/plugins/cleanup/classes',
|
||||
$site . '/editor/tiny_mce/plugins/clipboard/classes',
|
||||
$site . '/editor/tiny_mce/plugins/code/classes',
|
||||
$site . '/editor/tiny_mce/plugins/colorpicker/classes',
|
||||
$site . '/editor/tiny_mce/plugins/emotions/classes',
|
||||
$site . '/editor/tiny_mce/plugins/filemanager/classes',
|
||||
$site . '/editor/tiny_mce/plugins/fontcolor/classes',
|
||||
$site . '/editor/tiny_mce/plugins/fontselect/classes',
|
||||
$site . '/editor/tiny_mce/plugins/fontsizeselect/classes',
|
||||
$site . '/editor/tiny_mce/plugins/format/classes',
|
||||
$site . '/editor/tiny_mce/plugins/formatselect/classes',
|
||||
$site . '/editor/tiny_mce/plugins/iframe/classes',
|
||||
$site . '/editor/tiny_mce/plugins/imgmanager/classes',
|
||||
$site . '/editor/tiny_mce/plugins/imgmanager_ext/classes',
|
||||
$site . '/editor/tiny_mce/plugins/inlinepopups/classes',
|
||||
$site . '/editor/tiny_mce/plugins/link/classes',
|
||||
$site . '/editor/tiny_mce/plugins/media/classes',
|
||||
$site . '/editor/tiny_mce/plugins/mediamanager/classes',
|
||||
$site . '/editor/tiny_mce/plugins/microdata/classes',
|
||||
$site . '/editor/tiny_mce/plugins/preview/classes',
|
||||
$site . '/editor/tiny_mce/plugins/searchreplace/classes',
|
||||
$site . '/editor/tiny_mce/plugins/source/classes',
|
||||
$site . '/editor/tiny_mce/plugins/style/classes',
|
||||
$site . '/editor/tiny_mce/plugins/styleselect/classes',
|
||||
$site . '/editor/tiny_mce/plugins/tabfocus/classes',
|
||||
$site . '/editor/tiny_mce/plugins/table/classes',
|
||||
$site . '/editor/tiny_mce/plugins/templatemanager/classes',
|
||||
$site . '/editor/tiny_mce/plugins/textpattern/classes',
|
||||
$site . '/editor/tiny_mce/plugins/visualblocks/classes',
|
||||
$site . '/editor/tiny_mce/plugins/visualchars/classes',
|
||||
$site . '/editor/tiny_mce/plugins/xhtmlxtras/classes',
|
||||
);
|
||||
|
||||
// remove flexicontent
|
||||
if (!JComponentHelper::isInstalled('com_flexicontent')) {
|
||||
$files['2.7'] = array(
|
||||
$site . '/editor/extensions/links/flexicontentlinks.php',
|
||||
$site . '/editor/extensions/links/flexicontentlinks.xml',
|
||||
);
|
||||
|
||||
$folders['2.7'] = array(
|
||||
$site . '/editor/extensions/links/flexicontentlinks'
|
||||
);
|
||||
}
|
||||
|
||||
// remove inlinepopups
|
||||
$folders['2.7.13'] = array(
|
||||
$site . '/editor/tiny_mce/plugins/inlinepopups',
|
||||
);
|
||||
|
||||
// remove classpath / classbar
|
||||
$folders['2.8.0'] = array(
|
||||
$site . '/editor/tiny_mce/plugins/classpath',
|
||||
$site . '/editor/tiny_mce/plugins/classbar',
|
||||
);
|
||||
|
||||
// remove help files
|
||||
$folders['2.8.6'] = array(
|
||||
$admin . '/views/help'
|
||||
);
|
||||
|
||||
// remove mediaplayer
|
||||
$folders['2.8.11'] = array(
|
||||
$site . '/editor/libraries/mediaplayer'
|
||||
);
|
||||
|
||||
// delete img folder in Image Manager Extended
|
||||
$folders['2.9.1'] = array(
|
||||
$site . '/editor/tiny_mce/plugins/imgmanager_ext/img'
|
||||
);
|
||||
|
||||
// remove fields folder
|
||||
$folders['2.9.7'] = array(
|
||||
JPATH_PLUGINS . '/system/jce/fields'
|
||||
);
|
||||
|
||||
// remove media folder
|
||||
$folders['2.9.17'] = array(
|
||||
$admin . '/media'
|
||||
);
|
||||
|
||||
$folders['2.9.31'] = array(
|
||||
|
||||
);
|
||||
|
||||
// remove font manifest and window
|
||||
$files['2.9.18'] = array(
|
||||
$site . '/editor/libraries/fonts/selection.json',
|
||||
$site . '/editor/tiny_mce/plugins/browser/js/window.min.js'
|
||||
);
|
||||
|
||||
$files['2.6.38'] = array(
|
||||
$admin . '/install.php',
|
||||
$admin . '/install.script.php',
|
||||
// controller
|
||||
$admin . '/controller/preferences.php',
|
||||
$admin . '/controller/popups.php',
|
||||
$admin . '/controller/updates.php',
|
||||
// helpers
|
||||
$admin . '/helpers/cacert.pem',
|
||||
$admin . '/helpers/editor.php',
|
||||
$admin . '/helpers/toolbar.php',
|
||||
$admin . '/helpers/updates.php',
|
||||
$admin . '/helpers/xml.php',
|
||||
// includes
|
||||
$admin . '/includes/loader.php',
|
||||
// css
|
||||
$admin . '/media/css/cpanel.css',
|
||||
$admin . '/media/css/legacy.min.css',
|
||||
$admin . '/media/css/module.css',
|
||||
$admin . '/media/css/preferences.css',
|
||||
$admin . '/media/css/updates.css',
|
||||
$admin . '/media/css/users.css',
|
||||
// js
|
||||
$admin . '/media/js/cpanel.js',
|
||||
$admin . '/media/js/jce.js',
|
||||
$admin . '/media/js/preferences.js',
|
||||
$admin . '/media/js/updates.js',
|
||||
$admin . '/media/js/users.js',
|
||||
// models
|
||||
$admin . '/models/commands.json',
|
||||
$admin . '/models/config.xml',
|
||||
$admin . '/models/cpanel.xml',
|
||||
$admin . '/models/model.php',
|
||||
$admin . '/models/plugins.json',
|
||||
$admin . '/models/plugins.php',
|
||||
$admin . '/models/preferences.php',
|
||||
$admin . '/models/preferences.xml',
|
||||
$admin . '/models/pro.json',
|
||||
$admin . '/models/updates.php',
|
||||
$admin . '/models/users.php',
|
||||
// views
|
||||
$admin . '/views/cpanel/tmpl/default_pro_footer.php',
|
||||
$admin . '/views/profiles/tmpl/form_editor.php',
|
||||
$admin . '/views/profiles/tmpl/form_features.php',
|
||||
$admin . '/views/profiles/tmpl/form_plugin.php',
|
||||
$admin . '/views/profiles/tmpl/form_setup.php',
|
||||
$admin . '/views/profiles/tmpl/form.php',
|
||||
// site - extensions
|
||||
$site . '/editor/extensions/aggregator/vine.php',
|
||||
$site . '/editor/extensions/aggregator/vine.xml',
|
||||
$site . '/editor/extensions/popups/window.php',
|
||||
$site . '/editor/extensions/popups/window.xml',
|
||||
// site - libraries
|
||||
$site . '/editor/libraries/classes/token.php',
|
||||
// site - fonts
|
||||
$site . '/editor/libraries/fonts/fontawesome-webfont.eot',
|
||||
$site . '/editor/libraries/fonts/fontawesome-webfont.woff',
|
||||
// sites - img
|
||||
$site . '/editor/libraries/img/cloud.png',
|
||||
$site . '/editor/libraries/img/power.png',
|
||||
$site . '/editor/libraries/img/spacer.gif',
|
||||
// site - tinymce plugins
|
||||
$site . '/editor/tiny_mce/plugins/caption/licence.txt',
|
||||
$site . '/editor/tiny_mce/plugins/caption/README',
|
||||
$site . '/editor/tiny_mce/plugins/iframe/licence.txt',
|
||||
$site . '/editor/tiny_mce/plugins/imgmanager_ext/install.php',
|
||||
$site . '/editor/tiny_mce/plugins/imgmanager_ext/licence.txt',
|
||||
$site . '/editor/tiny_mce/plugins/imgmanager_ext/README',
|
||||
$site . '/editor/tiny_mce/plugins/mediamanager/README',
|
||||
$site . '/editor/tiny_mce/plugins/spellchecker/classes/config.php',
|
||||
$site . '/editor/tiny_mce/plugins/templatemanager/licence.txt',
|
||||
$site . '/editor/tiny_mce/plugins/templatemanager/README',
|
||||
);
|
||||
|
||||
// remove help files
|
||||
$files['2.8.6'] = array(
|
||||
$admin . '/controller/help.php',
|
||||
$admin . '/models/help.php'
|
||||
);
|
||||
|
||||
$files['2.8.11'] = array(
|
||||
$admin . '/views/cpanel/default_pro.php'
|
||||
);
|
||||
|
||||
foreach ($folders as $version => $list) {
|
||||
// version check
|
||||
if (version_compare($version, $current_version, 'gt')) {
|
||||
continue;
|
||||
}
|
||||
|
||||
foreach ($list as $folder) {
|
||||
if (!@is_dir($folder)) {
|
||||
continue;
|
||||
}
|
||||
|
||||
$items = JFolder::files($folder, '.', false, true, array(), array());
|
||||
|
||||
foreach ($items as $file) {
|
||||
if (!@unlink($file)) {
|
||||
try {
|
||||
JFile::delete($file);
|
||||
} catch (Exception $e) {}
|
||||
}
|
||||
}
|
||||
|
||||
$items = JFolder::folders($folder, '.', false, true, array(), array());
|
||||
|
||||
foreach ($items as $dir) {
|
||||
if (!@rmdir($dir)) {
|
||||
try {
|
||||
JFolder::delete($dir);
|
||||
} catch (Exception $e) {}
|
||||
}
|
||||
}
|
||||
|
||||
if (!@rmdir($folder)) {
|
||||
try {
|
||||
JFolder::delete($folder);
|
||||
} catch (Exception $e) {}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
foreach ($files as $version => $list) {
|
||||
// version check
|
||||
if (version_compare($version, $current_version, 'gt')) {
|
||||
continue;
|
||||
}
|
||||
|
||||
foreach ($list as $file) {
|
||||
if (!@file_exists($file)) {
|
||||
continue;
|
||||
}
|
||||
|
||||
if (@unlink($file)) {
|
||||
continue;
|
||||
}
|
||||
|
||||
try {
|
||||
JFile::delete($file);
|
||||
} catch (Exception $e) {}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,551 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* JCH Optimize - Aggregate and minify external resources for optmized downloads
|
||||
*
|
||||
* @author Samuel Marshall <sdmarshall73@gmail.com>
|
||||
* @copyright Copyright (c) 2010 Samuel Marshall
|
||||
* @license GNU/GPLv3, See LICENSE file
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* If LICENSE file missing, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
// Protect from unauthorized access
|
||||
use JchOptimize\ContainerFactory;
|
||||
use JchOptimize\Core\Admin\Helper as AdminHelper;
|
||||
use JchOptimize\Core\Admin\Tasks;
|
||||
use JchOptimize\GetApplicationTrait;
|
||||
use JchOptimize\Model\OrderPlugins;
|
||||
use Joomla\CMS\Factory;
|
||||
use Joomla\CMS\Filesystem\Folder;
|
||||
use Joomla\CMS\Installer\Adapter\PackageAdapter;
|
||||
use Joomla\CMS\Installer\Installer;
|
||||
use Joomla\CMS\Installer\InstallerScript;
|
||||
use Joomla\CMS\Log\Log;
|
||||
use Joomla\CMS\MVC\Controller\BaseController;
|
||||
use Joomla\CMS\MVC\Factory\LegacyFactory;
|
||||
use Joomla\CMS\MVC\Factory\MVCFactory;
|
||||
use Joomla\Component\Plugins\Administrator\Model\PluginModel;
|
||||
use Joomla\Filesystem\File;
|
||||
use Joomla\Utilities\ArrayHelper;
|
||||
|
||||
defined('_JEXEC') or die;
|
||||
|
||||
class Pkg_JchoptimizeInstallerScript extends InstallerScript
|
||||
{
|
||||
/**
|
||||
* The primary field of the paramTable
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
protected $primaryKey = 'extension_id';
|
||||
/**
|
||||
* The minimum PHP version required to install this extension
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
protected $minimumPhp = '7.4.0';
|
||||
|
||||
/**
|
||||
* The minimum Joomla! version required to install this extension
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
protected $minimumJoomla = '3.10.0';
|
||||
|
||||
/**
|
||||
* The maximum Joomla! version this extension can be installed on
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
protected $allowDowngrades = true;
|
||||
|
||||
|
||||
/**
|
||||
* A list of extensions (modules, plugins) to enable after installation. Each item has four values, in this order:
|
||||
* type (plugin, module, ...), name (of the extension), client (0=site, 1=admin), group (for plugins).
|
||||
*
|
||||
* @var array
|
||||
*/
|
||||
protected $extensionsToEnable = [
|
||||
'plg_system_jchoptimize',
|
||||
'plg_user_jchoptimizeuserstate',
|
||||
'mod_jchmodeswitcher'
|
||||
];
|
||||
|
||||
/**
|
||||
* Joomla! pre-flight event. This runs before Joomla! installs or updates the package. This is our last chance to
|
||||
* tell Joomla! if it should abort the installation.
|
||||
*
|
||||
* In here we'll try to install FOF. We have to do that before installing the component since it's using an
|
||||
* installation script extending FOF's InstallScript class. We can't use a <file> tag in the manifest to install FOF
|
||||
* since the FOF installation is expected to fail if a newer version of FOF is already installed on the site.
|
||||
*
|
||||
* @param string $type Installation type (install, update, discover_install)
|
||||
* @param PackageAdapter $parent Parent object
|
||||
*
|
||||
* @return boolean True to let the installation proceed, false to halt the installation
|
||||
*/
|
||||
public function preflight($type, $parent): bool
|
||||
{
|
||||
if (!parent::preflight($type, $parent)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if ($type === 'uninstall') {
|
||||
return true;
|
||||
}
|
||||
|
||||
$manifest = $parent->getManifest();
|
||||
$newVariant = (string)$manifest->variant;
|
||||
|
||||
$files = [];
|
||||
$files[] = JPATH_ADMINISTRATOR . '/manifests/packages/pkg_jchoptimize.xml';
|
||||
$files[] = JPATH_ADMINISTRATOR . '/manifests/packages/pkg_jch_optimize.xml';
|
||||
|
||||
foreach ($files as $file) {
|
||||
if (file_exists($file)) {
|
||||
$xml = simplexml_load_file($file);
|
||||
$oldVariant = (string)$xml->variant;
|
||||
|
||||
if ($oldVariant == 'PRO' && $newVariant == 'FREE') {
|
||||
$msg = '<p>You are trying to install the FREE version of JCH Optimize, but you currently have the PRO version installed. You must uninstall the PRO version first before you can install the FREE version.</p>';
|
||||
Log::add($msg, Log::WARNING, 'jerror');
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Runs after install, update or discover_update. In other words, it executes after Joomla! has finished installing
|
||||
* or updating your component. This is the last chance you've got to perform any additional installations, clean-up,
|
||||
* database updates and similar housekeeping functions.
|
||||
*
|
||||
* @param string $type install, update or discover_update
|
||||
* @param PackageAdapter $parent Parent object
|
||||
*/
|
||||
public function postflight(string $type, PackageAdapter $parent)
|
||||
{
|
||||
if ($type == 'uninstall') {
|
||||
return;
|
||||
}
|
||||
|
||||
$this->removeOldJchOptimizePackage();
|
||||
|
||||
$installer = new Installer();
|
||||
|
||||
if (version_compare(JVERSION, '4.0', '<')) {
|
||||
//Uninstall console plugin on joomla3
|
||||
$ids = $this->getInstances(false, 'plg_console_jchoptimize');
|
||||
if (!empty($ids)) {
|
||||
$id = $ids[0];
|
||||
$installer->uninstall('plugin', $id);
|
||||
}
|
||||
} else {
|
||||
//Uninstall cli scripts on joomla4
|
||||
$ids = $this->getInstances(false, 'file_jchoptimize');
|
||||
if (!empty($ids)) {
|
||||
$id = $ids[0];
|
||||
$installer->uninstall('file', $id);
|
||||
}
|
||||
|
||||
$this->enableExtension('plg_console_jchoptimize');
|
||||
}
|
||||
|
||||
if ($type == 'update') {
|
||||
/**
|
||||
* Clean up the obsolete package update sites.
|
||||
*
|
||||
* If you specify a new update site location in the XML manifest Joomla will install it in the #__update_sites
|
||||
* table but it will NOT remove the previous update site. This method removes the old update sites which are
|
||||
* left behind by Joomla.
|
||||
*/
|
||||
$this->removeObsoleteUpdateSites();
|
||||
|
||||
//Delete static cache files
|
||||
try {
|
||||
$staticCacheFolder = JPATH_ROOT . '/media/com_jchoptimize/cache';
|
||||
|
||||
if (file_exists($staticCacheFolder)) {
|
||||
Folder::delete($staticCacheFolder);
|
||||
}
|
||||
} catch (Throwable $e) {
|
||||
//Don't cry
|
||||
}
|
||||
|
||||
//File changes can occur between versions. Let us dare to reset opcache
|
||||
// to avoid issues
|
||||
if (function_exists('opcache_reset')) {
|
||||
opcache_reset();
|
||||
}
|
||||
|
||||
clearstatcache();
|
||||
}
|
||||
|
||||
//Let's try to load the autoloader if not already loaded
|
||||
$filePath = JPATH_ADMINISTRATOR . '/components/com_jchoptimize/autoload.php';
|
||||
|
||||
if (file_exists($filePath) && is_readable($filePath)) {
|
||||
include($filePath);
|
||||
|
||||
//We may have to individually load classes added in this version; If autoloader runs already
|
||||
//they wouldn't be included.
|
||||
$classMap = [
|
||||
GetApplicationTrait::class => JPATH_ADMINISTRATOR . '/components/com_jchoptimize/lib/src/GetApplicationTrait.php',
|
||||
];
|
||||
|
||||
foreach ($classMap as $class => $file) {
|
||||
if (!class_exists($class) && file_exists($file)) {
|
||||
include_once($file);
|
||||
}
|
||||
}
|
||||
|
||||
//leverage browser caching
|
||||
Tasks::leverageBrowserCaching();
|
||||
|
||||
if (class_exists(ContainerFactory::class)) {
|
||||
//Order plugins
|
||||
$container = ContainerFactory::getNewContainerInstance();
|
||||
/** @see OrderPlugins::orderPlugins() */
|
||||
$container->get(OrderPlugins::class)->orderPlugins();
|
||||
}
|
||||
}
|
||||
|
||||
$this->fixMetaFileSecurityIssue();
|
||||
}
|
||||
|
||||
|
||||
private function removeOldJchOptimizePackage()
|
||||
{
|
||||
//Get id of old package
|
||||
$packageIds = $this->getInstances(false, 'pkg_jch_optimize');
|
||||
|
||||
if (empty($packageIds)) {
|
||||
return;
|
||||
}
|
||||
|
||||
$packageId = (int)$packageIds[0];
|
||||
|
||||
//Get id of new component
|
||||
$componentIds = $this->getInstances(false, 'com_jchoptimize');
|
||||
|
||||
if (empty($componentIds)) {
|
||||
return;
|
||||
}
|
||||
|
||||
$componentId = (int)$componentIds[0];
|
||||
|
||||
//Get id of old plugin
|
||||
$pluginIds = $this->getInstances(false, 'plg_system_jch_optimize');
|
||||
|
||||
if (empty($pluginIds)) {
|
||||
return;
|
||||
}
|
||||
|
||||
$pluginId = (int)$pluginIds[0];
|
||||
|
||||
//Get plugin parameters
|
||||
$pluginParams = $this->getItemArray('params', '#__extensions', 'extension_id', $pluginId);
|
||||
|
||||
//Transfer settings to new component
|
||||
try {
|
||||
$this->setParams($pluginParams, 'edit', $componentId);
|
||||
} catch (\Exception $e) {
|
||||
$msg = "<p>We weren't able to transfer the settings from the plugin to the component. You may have to reconfigure JCH Optimize.</p>";
|
||||
Log::add($msg, Log::WARNING, 'jerror');
|
||||
}
|
||||
|
||||
//Uninstall old package
|
||||
try {
|
||||
$installer = new Installer();
|
||||
$installer->uninstall('package', $packageId);
|
||||
} catch (Exception $e) {
|
||||
$msg = "<p>We weren't able to uninstall the previous version of JCH Optimize. You'll need to do that from the Extensions Manager.</p>";
|
||||
Log::add($msg, Log::WARNING, 'jerror');
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Removes the obsolete update sites for the component, since now we're dealing with a package.
|
||||
*
|
||||
* Controlled by componentName, packageName and obsoleteUpdateSiteLocations
|
||||
*
|
||||
* Depends on getExtensionId, getUpdateSitesFor
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
private function removeObsoleteUpdateSites()
|
||||
{
|
||||
// Get package ID
|
||||
$packageIds = $this->getInstances(false);
|
||||
if (empty($packageIds)) {
|
||||
return;
|
||||
}
|
||||
|
||||
$packageID = $packageIds[0];
|
||||
|
||||
// All update sites for the package
|
||||
$deleteIDs = $this->getUpdateSitesFor($packageID);
|
||||
|
||||
if (empty($deleteIDs)) {
|
||||
$deleteIDs = [];
|
||||
}
|
||||
|
||||
if (count($deleteIDs) <= 1) {
|
||||
return;
|
||||
}
|
||||
|
||||
$deleteIDs = array_unique($deleteIDs);
|
||||
|
||||
// Remove the latest update site, the one we just installed
|
||||
array_pop($deleteIDs);
|
||||
|
||||
$db = Factory::getDbo();
|
||||
|
||||
if (empty($deleteIDs) || !count($deleteIDs)) {
|
||||
return;
|
||||
}
|
||||
|
||||
// Delete the remaining update sites
|
||||
$deleteIDs = array_map([$db, 'q'], $deleteIDs);
|
||||
|
||||
$query = $db->getQuery(true)
|
||||
->delete($db->qn('#__update_sites'))
|
||||
->where($db->qn('update_site_id') . ' IN(' . implode(',', $deleteIDs) . ')');
|
||||
|
||||
try {
|
||||
$db->setQuery($query)->execute();
|
||||
} catch (Exception $e) {
|
||||
// Do nothing.
|
||||
}
|
||||
|
||||
$query = $db->getQuery(true)
|
||||
->delete($db->qn('#__update_sites_extensions'))
|
||||
->where($db->qn('update_site_id') . ' IN(' . implode(',', $deleteIDs) . ')');
|
||||
|
||||
try {
|
||||
$db->setQuery($query)->execute();
|
||||
} catch (Exception $e) {
|
||||
// Do nothing.
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the update site IDs for the specified Joomla Extension ID.
|
||||
*
|
||||
* @param int $eid Extension ID for which to retrieve update sites
|
||||
*
|
||||
* @return array The IDs of the update sites
|
||||
*/
|
||||
private function getUpdateSitesFor($eid = null)
|
||||
{
|
||||
$db = Factory::getDbo();
|
||||
$query = $db->getQuery(true)
|
||||
->select($db->qn('s.update_site_id'))
|
||||
->from($db->qn('#__update_sites', 's'))
|
||||
->innerJoin(
|
||||
$db->qn('#__update_sites_extensions', 'e') . 'ON(' . $db->qn('e.update_site_id') .
|
||||
' = ' . $db->qn('s.update_site_id') . ')'
|
||||
)
|
||||
->where($db->qn('e.extension_id') . ' = ' . $db->q($eid));
|
||||
|
||||
try {
|
||||
$ret = $db->setQuery($query)->loadColumn();
|
||||
} catch (Exception $e) {
|
||||
return [];
|
||||
}
|
||||
|
||||
return empty($ret) ? [] : $ret;
|
||||
}
|
||||
|
||||
/**
|
||||
* Runs on installation (but not on upgrade). This happens in install and discover_install installation routes.
|
||||
*
|
||||
* @param \JInstallerAdapterPackage $parent Parent object
|
||||
*
|
||||
* @return bool
|
||||
*/
|
||||
public function install($parent)
|
||||
{
|
||||
// Enable the extensions we need to install
|
||||
$this->enableExtensions();
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Enable modules and plugins after installing them
|
||||
*/
|
||||
private function enableExtensions()
|
||||
{
|
||||
foreach ($this->extensionsToEnable as $ext) {
|
||||
$this->enableExtension($ext);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Enable an extension
|
||||
*
|
||||
* @param null $extension
|
||||
*/
|
||||
private function enableExtension($extension = null)
|
||||
{
|
||||
$extension = $extension ?? $this->extension;
|
||||
|
||||
$ids = $this->getInstances(false, $extension);
|
||||
|
||||
if (empty($ids)) {
|
||||
return;
|
||||
}
|
||||
|
||||
$id = (int)$ids[0];
|
||||
|
||||
try {
|
||||
$db = Factory::getDbo();
|
||||
$query = $db->getQuery(true)
|
||||
->update('#__extensions')
|
||||
->set($db->quoteName('enabled') . ' = ' . $db->quote(1))
|
||||
->where($db->quoteName('extension_id') . ' = ' . $db->quote($id));
|
||||
$db->setQuery($query)->execute();
|
||||
} catch (\Exception $e) {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets each instance of a module in the #__modules table or extension in the #__extensions table
|
||||
*
|
||||
* @param boolean $isModule True if the extension is a module as this can have multiple instances
|
||||
* @param string $extension Name of extension to find instance of
|
||||
*
|
||||
* @return array An array of ID's of the extension
|
||||
*
|
||||
* @since 3.6
|
||||
*/
|
||||
public function getInstances($isModule, $extension = null)
|
||||
{
|
||||
$extension = $extension ?? $this->extension;
|
||||
|
||||
$db = Factory::getDbo();
|
||||
$query = $db->getQuery(true);
|
||||
|
||||
// Select the item(s) and retrieve the id
|
||||
if ($isModule) {
|
||||
$query->select($db->quoteName('id'));
|
||||
$query->from($db->quoteName('#__modules'))
|
||||
->where($db->quoteName('module') . ' = ' . $db->quote($extension));
|
||||
} else {
|
||||
$query->select($db->quoteName('extension_id'));
|
||||
$query->from($db->quoteName('#__extensions'));
|
||||
//Special handling for plugins, we extract the element and folder from the extension name
|
||||
$parts = explode('_', $extension, 3);
|
||||
|
||||
if (count($parts) == 3 && $parts[0] == 'plg') {
|
||||
$extension = $parts[2];
|
||||
$folder = $parts[1];
|
||||
|
||||
$query->where($db->quoteName('folder') . ' = ' . $db->quote($folder));
|
||||
}
|
||||
|
||||
$query->where($db->quoteName('element') . ' = ' . $db->quote($extension));
|
||||
}
|
||||
|
||||
// Set the query and obtain an array of id's
|
||||
return $db->setQuery($query)->loadColumn();
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Sets parameter values in the extensions row of the extension table. Note that the
|
||||
* this must be called separately for deleting and editing. Note if edit is called as a
|
||||
* type then if the param doesn't exist it will be created
|
||||
*
|
||||
* @param array $paramArray The array of parameters to be added/edited/removed
|
||||
* @param string $type The type of change to be made to the param (edit/remove)
|
||||
* @param integer $id The id of the item in the relevant table
|
||||
*
|
||||
* @return boolean True on success
|
||||
*
|
||||
* @since 3.6
|
||||
*/
|
||||
public function setParams($paramArray = null, $type = 'edit', $id = 0)
|
||||
{
|
||||
if (!\is_int($id) || $id == 0) {
|
||||
// Return false if there is no valid item given
|
||||
return false;
|
||||
}
|
||||
|
||||
$params = $this->getItemArray('params', $this->paramTable, $this->primaryKey, $id);
|
||||
|
||||
if ($paramArray) {
|
||||
foreach ($paramArray as $name => $value) {
|
||||
if ($type === 'edit') {
|
||||
// Add or edit the new variable(s) to the existing params
|
||||
if (\is_array($value)) {
|
||||
// Convert an array into a json encoded string
|
||||
$params[(string)$name] = array_values($value);
|
||||
} else {
|
||||
$params[(string)$name] = (string)$value;
|
||||
}
|
||||
} elseif ($type === 'remove') {
|
||||
// Unset the parameter from the array
|
||||
unset($params[(string)$name]);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Store the combined new and existing values back as a JSON string
|
||||
$paramsString = json_encode($params);
|
||||
|
||||
$db = Factory::getDbo();
|
||||
$query = $db->getQuery(true)
|
||||
->update($db->quoteName($this->paramTable))
|
||||
->set($db->quoteName('params') . ' = ' . $db->quote($paramsString))
|
||||
->where($db->quoteName($this->primaryKey) . ' = ' . $db->quote($id));
|
||||
|
||||
// Update table
|
||||
$db->setQuery($query)->execute();
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* The full paths to optimized files were added to the metafile, that was available from the internet. this
|
||||
* function corrects that.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
private function fixMetaFileSecurityIssue(): void
|
||||
{
|
||||
$metaFile = AdminHelper::getMetaFile();
|
||||
$metaFileDir = dirname($metaFile);
|
||||
|
||||
if (file_exists($metaFile)
|
||||
&& (!file_exists($metaFileDir . '/index.html')
|
||||
|| !file_exists($metaFileDir . '/.htaccess'))
|
||||
) {
|
||||
/** @var string[] $optimizedFiles */
|
||||
$optimizedFiles = AdminHelper::getOptimizedFiles();
|
||||
File::delete($metaFile);
|
||||
|
||||
foreach ($optimizedFiles as $files) {
|
||||
AdminHelper::markOptimized($files);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
78
administrator/manifests/packages/jlsitemap/script.php
Normal file
78
administrator/manifests/packages/jlsitemap/script.php
Normal file
@@ -0,0 +1,78 @@
|
||||
<?php
|
||||
/**
|
||||
* @package JLSitemap Package
|
||||
* @version 1.12.0
|
||||
* @author Joomline - joomline.ru
|
||||
* @copyright Copyright (c) 2010 - 2022 Joomline. All rights reserved.
|
||||
* @license GNU/GPL license: http://www.gnu.org/copyleft/gpl.html
|
||||
* @link https://joomline.ru/
|
||||
*/
|
||||
|
||||
defined('_JEXEC') or die;
|
||||
|
||||
use Joomla\CMS\Factory;
|
||||
use Joomla\CMS\Language\Text;
|
||||
use Joomla\CMS\Version;
|
||||
|
||||
class pkg_jlsitemapInstallerScript
|
||||
{
|
||||
/**
|
||||
* Minimum PHP version required to install the extension
|
||||
*
|
||||
* @var string
|
||||
*
|
||||
* @since 1.4.0
|
||||
*/
|
||||
protected $minimumPhp = '5.6';
|
||||
|
||||
/**
|
||||
* Minimum Joomla! version required to install the extension
|
||||
*
|
||||
* @var string
|
||||
*
|
||||
* @since 1.4.0
|
||||
*/
|
||||
protected $minimumJoomla = '3.9.0';
|
||||
|
||||
/**
|
||||
* Method to check compatible.
|
||||
*
|
||||
* @throws Exception
|
||||
*
|
||||
* @since 1.4.0
|
||||
*/
|
||||
function preflight()
|
||||
{
|
||||
// Check old Joomla!
|
||||
if (!class_exists('Joomla\CMS\Version'))
|
||||
{
|
||||
JFactory::getApplication()->enqueueMessage(JText::sprintf('PKG_JLSITEMAP_ERROR_COMPATIBLE_JOOMLA',
|
||||
$this->minimumJoomla), 'error');
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
$app = Factory::getApplication();
|
||||
$jversion = new Version();
|
||||
|
||||
// Check PHP
|
||||
if (!(version_compare(PHP_VERSION, $this->minimumPhp) >= 0))
|
||||
{
|
||||
$app->enqueueMessage(Text::sprintf('PKG_JLSITEMAP_ERROR_COMPATIBLE_PHP',
|
||||
$this->minimumPhp), 'error');
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
// Check Joomla version
|
||||
if (!$jversion->isCompatible($this->minimumJoomla))
|
||||
{
|
||||
$app->enqueueMessage(Text::sprintf('PKG_JLSITEMAP_ERROR_COMPATIBLE_JOOMLA',
|
||||
$this->minimumJoomla), 'error');
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
||||
36
administrator/manifests/packages/pkg_akeebabackup.xml
Normal file
36
administrator/manifests/packages/pkg_akeebabackup.xml
Normal file
@@ -0,0 +1,36 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!--~
|
||||
~ @package akeebabackup
|
||||
~ @copyright Copyright (c)2006-2022 Nicholas K. Dionysopoulos / Akeeba Ltd
|
||||
~ @license GNU General Public License version 3, or later
|
||||
-->
|
||||
|
||||
<extension type="package" method="upgrade">
|
||||
<name>pkg_akeebabackup</name>
|
||||
<author>Nicholas K. Dionysopoulos</author>
|
||||
<creationDate>2022-11-30</creationDate>
|
||||
<packagename>akeebabackup</packagename>
|
||||
<version>9.4.4</version>
|
||||
<url>https://www.akeeba.com</url>
|
||||
<packager>Akeeba Ltd</packager>
|
||||
<packagerurl>https://www.akeeba.com</packagerurl>
|
||||
<copyright>Copyright (c)2006-2022 Akeeba Ltd / Nicholas K. Dionysopoulos</copyright>
|
||||
<license>GNU GPL v3 or later</license>
|
||||
<description>PKG_AKEEBABACKUP_XML_DESCRIPTION</description>
|
||||
|
||||
<files>
|
||||
<file type="component" id="com_akeebabackup">com_akeebabackup-core.zip</file>
|
||||
|
||||
<file type="plugin" group="quickicon" id="akeebabackup">plg_quickicon_akeebabackup.zip</file>
|
||||
</files>
|
||||
|
||||
<languages folder="language">
|
||||
<language tag="en-GB">en-GB/pkg_akeebabackup.sys.ini</language>
|
||||
</languages>
|
||||
|
||||
<scriptfile>script.akeebabackup.php</scriptfile>
|
||||
|
||||
<updateservers>
|
||||
<server type="extension" priority="1" name="Akeeba Backup Core for Joomla!">https://cdn.akeeba.com/updates/pkgakeebabackupcore.xml</server>
|
||||
</updateservers>
|
||||
</extension>
|
||||
27
administrator/manifests/packages/pkg_cachecleaner.xml
Normal file
27
administrator/manifests/packages/pkg_cachecleaner.xml
Normal file
@@ -0,0 +1,27 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<extension type="package" method="upgrade">
|
||||
<packagename>cachecleaner</packagename>
|
||||
<name>PKG_CACHECLEANER</name>
|
||||
<version>8.2.2</version>
|
||||
<creationDate>October 2022</creationDate>
|
||||
<author>Regular Labs (Peter van Westen)</author>
|
||||
<authorEmail>info@regularlabs.com</authorEmail>
|
||||
<authorUrl>https://regularlabs.com</authorUrl>
|
||||
<copyright>Copyright © 2022 Regular Labs - All Rights Reserved</copyright>
|
||||
<license>http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL</license>
|
||||
<scriptfile>script.install.php</scriptfile>
|
||||
<blockChildUninstall>true</blockChildUninstall>
|
||||
<files folder="packages/j4">
|
||||
|
||||
<file type="module" position="status" client="administrator" id="mod_cachecleaner">mod_cachecleaner</file>
|
||||
<file type="plugin" group="system" id="cachecleaner">plg_system_cachecleaner</file>
|
||||
</files>
|
||||
|
||||
|
||||
<languages folder="language">
|
||||
<language tag="en-GB">en-GB/en-GB.pkg_cachecleaner.sys.ini</language>
|
||||
</languages>
|
||||
<updateservers>
|
||||
<server type="extension" priority="1" name="Cache Cleaner">https://download.regularlabs.com/updates.xml?e=cachecleaner&type=.xml</server>
|
||||
</updateservers>
|
||||
</extension>
|
||||
27
administrator/manifests/packages/pkg_en-GB.xml
Normal file
27
administrator/manifests/packages/pkg_en-GB.xml
Normal file
@@ -0,0 +1,27 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<extension type="package" method="upgrade">
|
||||
<name>English (en-GB) Language Pack</name>
|
||||
<packagename>en-GB</packagename>
|
||||
<version>4.4.14.1</version>
|
||||
<creationDate>2025-09</creationDate>
|
||||
<author>Joomla! Project</author>
|
||||
<authorEmail>admin@joomla.org</authorEmail>
|
||||
<authorUrl>www.joomla.org</authorUrl>
|
||||
<copyright>(C) 2019 Open Source Matters, Inc.</copyright>
|
||||
<license>https://www.gnu.org/licenses/gpl-2.0.html GNU/GPL</license>
|
||||
<url>https://github.com/joomla/joomla-cms</url>
|
||||
<packager>Joomla! Project</packager>
|
||||
<packagerurl>www.joomla.org</packagerurl>
|
||||
<description><![CDATA[en-GB language pack]]></description>
|
||||
<blockChildUninstall>true</blockChildUninstall>
|
||||
<files>
|
||||
<folder type="language" client="site" id="en-GB">language/en-GB</folder>
|
||||
<folder type="language" client="administrator" id="en-GB">administrator/language/en-GB</folder>
|
||||
<folder type="language" client="api" id="en-GB">api/language/en-GB</folder>
|
||||
</files>
|
||||
<updateservers>
|
||||
<server type="collection" priority="1" name="Accredited Joomla! Translations">
|
||||
https://update.joomla.org/language/translationlist_4.xml
|
||||
</server>
|
||||
</updateservers>
|
||||
</extension>
|
||||
27
administrator/manifests/packages/pkg_en-US.xml
Normal file
27
administrator/manifests/packages/pkg_en-US.xml
Normal file
@@ -0,0 +1,27 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<extension type="package" method="upgrade">
|
||||
<name>English (en-US) Language Pack</name>
|
||||
<packagename>en-US</packagename>
|
||||
<version>4.3.1.1</version>
|
||||
<creationDate>2023-05</creationDate>
|
||||
<author>Joomla! Project</author>
|
||||
<authorEmail>admin@joomla.org</authorEmail>
|
||||
<authorUrl>www.joomla.org</authorUrl>
|
||||
<copyright>(C) 2019 Open Source Matters, Inc.</copyright>
|
||||
<license>https://www.gnu.org/licenses/gpl-2.0.html GNU/GPL</license>
|
||||
<url>https://github.com/joomla/joomla-cms</url>
|
||||
<packager>Joomla! Project</packager>
|
||||
<packagerurl>www.joomla.org</packagerurl>
|
||||
<description><![CDATA[en-US language pack]]></description>
|
||||
<blockChildUninstall>true</blockChildUninstall>
|
||||
<files>
|
||||
<folder type="language" client="site" id="en-US">language/en-US</folder>
|
||||
<folder type="language" client="administrator" id="en-US">administrator/language/en-US</folder>
|
||||
<folder type="language" client="api" id="en-US">api/language/en-US</folder>
|
||||
</files>
|
||||
<updateservers>
|
||||
<server type="collection" priority="1" name="Accredited Joomla! Translations">
|
||||
https://update.joomla.org/language/translationlist_4.xml
|
||||
</server>
|
||||
</updateservers>
|
||||
</extension>
|
||||
23
administrator/manifests/packages/pkg_importexportusers.xml
Normal file
23
administrator/manifests/packages/pkg_importexportusers.xml
Normal file
@@ -0,0 +1,23 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<extension version="3.0" type="package" method="upgrade">
|
||||
<name>Package - miniOrange Import Export Users</name>
|
||||
<packagename>importexportusers</packagename>
|
||||
<license>GNU/GPLv3</license>
|
||||
<version>2.9</version>
|
||||
<author>miniOrange Security Software Pvt. Ltd.</author>
|
||||
<authorEmail>info@xecurify.com</authorEmail>
|
||||
<creationDate>May 2022</creationDate>
|
||||
<description>miniOrange Import Export Users Installed Successfully!</description>
|
||||
<files>
|
||||
<file type="plugin" id="miniorangeimportexportusers" group="system">plg_system_miniorangeimportexportusers.zip</file>
|
||||
<file type="component" id="miniorange_importexportusers" >com_miniorange_importexportusers.zip</file>
|
||||
</files>
|
||||
<languages folder="language">
|
||||
<language tag="en-GB">en-GB/en-GB.pkg_miniorangeimportexportusers.ini</language>
|
||||
<language tag="en-GB">en-GB/en-GB.pkg_miniorangeimportexportusers.sys.ini</language>
|
||||
</languages>
|
||||
<scriptfile>pkg_script.php</scriptfile>
|
||||
<updateservers>
|
||||
<server type="extension" priority="1" name="ImportExportUsers">https://prod-marketing-site.s3.amazonaws.com/plugins/joomla/joomla_importexportusers_update.xml</server>
|
||||
</updateservers>
|
||||
</extension>
|
||||
28
administrator/manifests/packages/pkg_j2xml.xml
Normal file
28
administrator/manifests/packages/pkg_j2xml.xml
Normal file
@@ -0,0 +1,28 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<extension type="package" version="3.0" method="upgrade">
|
||||
<name>J2XML 3.9</name>
|
||||
<packagename>j2xml</packagename>
|
||||
<description><![CDATA[J2XML 3.9 the ultimate solution to share content for Joomla! 3.x & 4.x]]></description>
|
||||
|
||||
<author>Helios Ciancio</author>
|
||||
<authorEmail>info (at) eshiol (dot) it</authorEmail>
|
||||
<authorUrl>www.eshiol.it</authorUrl>
|
||||
<creationDate>06 March 2023</creationDate>
|
||||
<copyright><![CDATA[(C) 2010 - 2023 Helios Ciancio. All Rights Reserved.]]></copyright>
|
||||
<license>http://www.gnu.org/licenses/gpl-3.0.html GNU/GPL v3</license>
|
||||
<version>3.9.229-rc1</version>
|
||||
|
||||
<url>https://www.eshiol.it</url>
|
||||
<packager>Helios Ciancio</packager>
|
||||
<packagerurl>https://www.eshiol.it/</packagerurl>
|
||||
<files>
|
||||
<folder type="library" id="j2xml">lib_eshiol_J2xml.zip</folder>
|
||||
<folder type="component" id="j2xml">com_j2xml.zip</folder>
|
||||
<folder type="plugin" id="j2xml" group="system">plg_system_j2xml.zip</folder>
|
||||
<folder type="library" id="phpxmlrpc">lib_eshiol_phpxmlrpc.zip</folder>
|
||||
<folder type="plugin" id="basicauth" group="system">plg_system_basicauth.zip</folder>
|
||||
<!--
|
||||
<folder type="file" id="j2xml">cli_j2xml.zip</folder>
|
||||
-->
|
||||
</files>
|
||||
</extension>
|
||||
41
administrator/manifests/packages/pkg_jce.xml
Normal file
41
administrator/manifests/packages/pkg_jce.xml
Normal file
@@ -0,0 +1,41 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<extension type="package" version="3.9" method="upgrade">
|
||||
<name>PKG_JCE</name>
|
||||
<author>Ryan Demmer</author>
|
||||
<creationDate>01-11-2022</creationDate>
|
||||
<packagename>jce</packagename>
|
||||
<version>2.9.32</version>
|
||||
<url>https://www.joomlacontenteditor.net</url>
|
||||
<packager>Widget Factory Limited</packager>
|
||||
<packagerurl>https://www.joomlacontenteditor.net</packagerurl>
|
||||
<description>PKG_JCE_XML_DESCRIPTION</description>
|
||||
<updateservers>
|
||||
<server type="extension" priority="1" name="JCE Editor Package">
|
||||
<![CDATA[https://cdn.joomlacontenteditor.net/updates/xml/editor/pkg_jce.xml]]>
|
||||
</server>
|
||||
</updateservers>
|
||||
|
||||
<scriptfile>install.pkg.php</scriptfile>
|
||||
<files folder="packages">
|
||||
<file type="component" id="com_jce">com_jce.zip</file>
|
||||
<file type="plugin" id="jce" group="editors">plg_editors_jce.zip</file>
|
||||
<file type="plugin" id="jce" group="content">plg_content_jce.zip</file>
|
||||
<file type="plugin" id="jce" group="extension">plg_extension_jce.zip</file>
|
||||
<file type="plugin" id="mediajce" group="fields">plg_fields_mediajce.zip</file>
|
||||
<file type="plugin" id="jce" group="installer">plg_installer_jce.zip</file>
|
||||
<file type="plugin" id="jce" group="quickicon">plg_quickicon_jce.zip</file>
|
||||
<file type="plugin" id="jce" group="system">plg_system_jce.zip</file>
|
||||
</files>
|
||||
|
||||
<languages folder="language">
|
||||
<language tag="en-GB">en-GB/en-GB.pkg_jce.sys.ini</language>
|
||||
</languages>
|
||||
|
||||
<variant>core</variant>
|
||||
|
||||
<compatibility>
|
||||
<version>3</version>
|
||||
<version>4</version>
|
||||
</compatibility>
|
||||
|
||||
</extension>
|
||||
21
administrator/manifests/packages/pkg_jchoptimize.xml
Normal file
21
administrator/manifests/packages/pkg_jchoptimize.xml
Normal file
@@ -0,0 +1,21 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<extension type="package" version="3.10" method="upgrade">
|
||||
<name>pkg_jchoptimize</name>
|
||||
<author>Samuel Marshall</author>
|
||||
<creationDate>2023-08-09</creationDate>
|
||||
<packagename>jchoptimize</packagename>
|
||||
<version>8.0.6</version>
|
||||
<url>https://www.jch-optimize.net</url>
|
||||
<packager>JCH Optimize</packager>
|
||||
<description>JCH Optimize installation package version 8.0.6</description>
|
||||
<variant>FREE</variant>
|
||||
<files>
|
||||
<file type="component" client="administrator" id="com_jchoptimize">com_jchoptimize-core.zip</file>
|
||||
<file type="plugin" id="jchoptimize" group="system">plg_system_jchoptimize.zip</file>
|
||||
<file type="plugin" id="jchoptimizepagecache" group="system">plg_system_jchoptimizepagecache.zip</file>
|
||||
</files>
|
||||
<scriptfile>script.jchoptimize.php</scriptfile>
|
||||
<updateservers>
|
||||
<server type="extension" priority="1" name="JCH Optimize Updates">https://updates.jch-optimize.net/joomla-core.xml</server>
|
||||
</updateservers>
|
||||
</extension>
|
||||
33
administrator/manifests/packages/pkg_jlsitemap.xml
Normal file
33
administrator/manifests/packages/pkg_jlsitemap.xml
Normal file
@@ -0,0 +1,33 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<extension version="3.9" type="package" method="upgrade">
|
||||
<name>PKG_JLSITEMAP</name>
|
||||
<packagename>jlsitemap</packagename>
|
||||
<author>Joomline</author>
|
||||
<creationDate>13.04.2022</creationDate>
|
||||
<copyright>Copyright (c) 2010 - 2022 Joomline. All rights reserved.</copyright>
|
||||
<license>http://www.gnu.org/copyleft/gpl.html GNU/GPL</license>
|
||||
<authorEmail>sale@joomline.ru</authorEmail>
|
||||
<authorUrl>https://joomline.ru/</authorUrl>
|
||||
<version>1.12.0</version>
|
||||
<description>PKG_JLSITEMAP_DESCRIPTION</description>
|
||||
<scriptfile>script.php</scriptfile>
|
||||
<languages folder="language">
|
||||
<language tag="en-GB">en-GB/en-GB.pkg_jlsitemap.sys.ini</language>
|
||||
<language tag="ru-RU">ru-RU/ru-RU.pkg_jlsitemap.sys.ini</language>
|
||||
</languages>
|
||||
<files>
|
||||
<folder type="component" id="com_jlsitemap">com_jlsitemap</folder>
|
||||
<folder type="plugin" group="jlsitemap" id="contact">plg_jlsitemap_contact</folder>
|
||||
<folder type="plugin" group="jlsitemap" id="content">plg_jlsitemap_content</folder>
|
||||
<folder type="plugin" group="jlsitemap" id="k2">plg_jlsitemap_k2</folder>
|
||||
<folder type="plugin" group="jlsitemap" id="kunena">plg_jlsitemap_kunena</folder>
|
||||
<folder type="plugin" group="jlsitemap" id="tags">plg_jlsitemap_tags</folder>
|
||||
<folder type="plugin" group="jlsitemap" id="virtuemart">plg_jlsitemap_virtuemart</folder>
|
||||
<folder type="plugin" group="system" id="jlsitemap_cron">plg_system_jlsitemap_cron</folder>
|
||||
</files>
|
||||
<updateservers>
|
||||
<server type="extension" priority="1" name="JL Sitemap">
|
||||
https://joomline.net/update.html?extension_id=2.xml
|
||||
</server>
|
||||
</updateservers>
|
||||
</extension>
|
||||
44
administrator/manifests/packages/pkg_pl-PL.xml
Normal file
44
administrator/manifests/packages/pkg_pl-PL.xml
Normal file
@@ -0,0 +1,44 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<extension type="package" method="upgrade">
|
||||
<name>Pakiet języka polskiego (pl-PL)</name>
|
||||
<packagename>pl-PL</packagename>
|
||||
<version>4.2.8.2</version>
|
||||
<creationDate>03.03.2023</creationDate>
|
||||
<author>Projekt Joomla!</author>
|
||||
<authorEmail>zwiastun@joomla.pl</authorEmail>
|
||||
<authorUrl>https://www.joomla.pl</authorUrl>
|
||||
<copyright>Copyright (C) 2005 - 2023 Open Source Matters. All rights reserved.</copyright>
|
||||
<license>GNU General Public License wersja 2 lub późniejsza, zobacz LICENSE.txt</license>
|
||||
<url>https://www.joomla.pl</url>
|
||||
<packager>Polskie Centrum Joomla</packager>
|
||||
<packagerurl>https://www.joomla.pl</packagerurl>
|
||||
<description> <![CDATA[
|
||||
<div class="text-center span12">
|
||||
<h3>Joomla! - pakiet języka polskiego - 4.2.8</h3>
|
||||
<p><span style="font-weight: normal">Polskie Centrum Joomla zapewnia społeczności kompletne tłumaczenia Joomla!<br />Ich przygotowanie kosztuje wiele czasu i pracy.</span></p>
|
||||
<div class="alert alert-info">
|
||||
<h3>Wspieramy Ciebie, więc wesprzyj i nas.</h3>
|
||||
<p>Przekaż darowiznę na stronie <a class="btn btn-info" href="https://fundacja.joomla.pl/darowizna" target="_blank">Fundacji PCJ Otwarte Źródła</a></p>
|
||||
<p> </p>
|
||||
<h3>Dziękujemy</h3>
|
||||
<p>Od 5 stycznia 2023 roku otrzymaliśmy 5 darowizn (4 od osób prywatnych i 1 od firm) darowizn na kwotę 380 PLN. Serdeczne podziękowania dla darczyńców: Łukasz G., Szuwar K., Mariusz R., Artur S., Janusz S. <strong>oraz firma:</strong> Cedrowa Grupa.</p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
]]>
|
||||
</description>
|
||||
<blockChildUninstall>true</blockChildUninstall>
|
||||
<scriptfile>script.php</scriptfile>
|
||||
<files>
|
||||
<file type="language" client="site" id="pl-PL">site_pl-PL.zip</file>
|
||||
<file type="language" client="administrator" id="pl-PL">admin_pl-PL.zip</file>
|
||||
<file type="language" client="api" id="pl-PL">api_pl-PL.zip</file>
|
||||
</files>
|
||||
<updateservers>
|
||||
<server type="collection" priority="1" name="Akredytowane tłumaczenia Joomla!">
|
||||
https://update.joomla.org/language/translationlist_4.xml
|
||||
</server>
|
||||
</updateservers>
|
||||
</extension>
|
||||
|
||||
|
||||
36
administrator/manifests/packages/pkg_quantummanager.xml
Normal file
36
administrator/manifests/packages/pkg_quantummanager.xml
Normal file
@@ -0,0 +1,36 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<extension version="3.*" type="package" method="upgrade">
|
||||
<name>PKG_QUANTUMMANAGER</name>
|
||||
<packagename>quantummanager</packagename>
|
||||
<author>Tsymbal</author>
|
||||
<creationDate>16.05.2019</creationDate>
|
||||
<copyright>Copyright © 2019 Delo Design & NorrNext. All rights reserved.</copyright>
|
||||
<license>GNU General Public License version 3 or later; see license.txt</license>
|
||||
<authorEmail>cymbal@delo-design.ru</authorEmail>
|
||||
<authorUrl>https://www.norrnext.com</authorUrl>
|
||||
<version>2.0.2</version>
|
||||
<description>PKG_QUANTUMMANAGER_DESCRIPTION</description>
|
||||
<scriptfile>script.php</scriptfile>
|
||||
<languages folder="language">
|
||||
<language tag="en-GB">en-GB/en-GB.pkg_quantummanager.ini</language>
|
||||
<language tag="en-GB">en-GB/en-GB.pkg_quantummanager.sys.ini</language>
|
||||
<language tag="ru-RU">ru-RU/ru-RU.pkg_quantummanager.ini</language>
|
||||
<language tag="ru-RU">ru-RU/ru-RU.pkg_quantummanager.sys.ini</language>
|
||||
</languages>
|
||||
<files>
|
||||
<file type="component" id="com_quantummanager">com_quantummanager.zip</file>
|
||||
<file type="library" id="jinterventionimage">lib_jinterventionimage.zip</file>
|
||||
<file type="library" id="jpel">lib_jpel.zip</file>
|
||||
<file type="plugin" group="system" id="quantummanagermedia">plg_quantummanagermedia.zip</file>
|
||||
<file type="plugin" group="system" id="quantumyoothemepro">plg_quantumyoothemepro.zip</file>
|
||||
<file type="plugin" group="system" id="quantumspbuilder">plg_quantumspbuilder.zip</file>
|
||||
<file type="plugin" group="editors-xtd" id="quantummanagerbutton">plg_quantummanagerbutton.zip</file>
|
||||
<file type="plugin" group="content" id="quantummanagercontent">plg_quantummanagercontent.zip</file>
|
||||
<file type="plugin" group="quickicon" id="quantummanagericon">plg_quantummanagericon.zip</file>
|
||||
<file type="plugin" group="system" id="quantummanagerconfig">plg_quantummanagerconfig.zip</file>
|
||||
<file type="plugin" group="system" id="quantummenus">plg_quantummenus.zip</file>
|
||||
</files>
|
||||
<updateservers>
|
||||
<server type="extension" priority="1" name="Quantum Manager package">https://hika.su/update/free/pkg_quantummanager.xml</server>
|
||||
</updateservers>
|
||||
</extension>
|
||||
24
administrator/manifests/packages/pkg_regularlabs.xml
Normal file
24
administrator/manifests/packages/pkg_regularlabs.xml
Normal file
@@ -0,0 +1,24 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<extension type="package" method="upgrade">
|
||||
<packagename>regularlabs</packagename>
|
||||
<name>PKG_REGULARLABS</name>
|
||||
<version>23.9.16805</version>
|
||||
<creationDate>September 2023</creationDate>
|
||||
<author>Regular Labs (Peter van Westen)</author>
|
||||
<authorEmail>info@regularlabs.com</authorEmail>
|
||||
<authorUrl>https://regularlabs.com</authorUrl>
|
||||
<copyright>Copyright © 2023 Regular Labs - All Rights Reserved</copyright>
|
||||
<license>GNU General Public License version 2 or later</license>
|
||||
<scriptfile>script.install.php</scriptfile>
|
||||
<blockChildUninstall>true</blockChildUninstall>
|
||||
<files folder="packages">
|
||||
<file type="library" id="regularlabs">lib_regularlabs</file>
|
||||
<file type="plugin" group="system" id="regularlabs">plg_system_regularlabs</file>
|
||||
</files>
|
||||
<updateservers>
|
||||
<server type="extension" priority="1" name="Regular Labs Library">https://download.regularlabs.com/updates.xml?e=library&type=.xml</server>
|
||||
</updateservers>
|
||||
<languages folder="language">
|
||||
<language tag="en-GB">en-GB/en-GB.pkg_regularlabs.sys.ini</language>
|
||||
</languages>
|
||||
</extension>
|
||||
27
administrator/manifests/packages/pkg_sourcerer.xml
Normal file
27
administrator/manifests/packages/pkg_sourcerer.xml
Normal file
@@ -0,0 +1,27 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<extension type="package" method="upgrade">
|
||||
<packagename>sourcerer</packagename>
|
||||
<name>PKG_SOURCERER</name>
|
||||
<version>9.4.1</version>
|
||||
<creationDate>February 2023</creationDate>
|
||||
<author>Regular Labs (Peter van Westen)</author>
|
||||
<authorEmail>info@regularlabs.com</authorEmail>
|
||||
<authorUrl>https://regularlabs.com</authorUrl>
|
||||
<copyright>Copyright © 2023 Regular Labs - All Rights Reserved</copyright>
|
||||
<license>http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL</license>
|
||||
<scriptfile>script.install.php</scriptfile>
|
||||
<blockChildUninstall>true</blockChildUninstall>
|
||||
<files folder="packages/j4">
|
||||
|
||||
<file type="plugin" group="system" id="sourcerer">plg_system_sourcerer</file>
|
||||
<file type="plugin" group="editors-xtd" id="sourcerer">plg_editors-xtd_sourcerer</file>
|
||||
</files>
|
||||
|
||||
|
||||
<languages folder="language">
|
||||
<language tag="en-GB">en-GB/en-GB.pkg_sourcerer.sys.ini</language>
|
||||
</languages>
|
||||
<updateservers>
|
||||
<server type="extension" priority="1" name="Sourcerer">https://download.regularlabs.com/updates.xml?e=sourcerer&type=.xml</server>
|
||||
</updateservers>
|
||||
</extension>
|
||||
27
administrator/manifests/packages/pkg_tabsaccordions.xml
Normal file
27
administrator/manifests/packages/pkg_tabsaccordions.xml
Normal file
@@ -0,0 +1,27 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<extension type="package" method="upgrade">
|
||||
<packagename>tabsaccordions</packagename>
|
||||
<name>PKG_TABSACCORDIONS</name>
|
||||
<version>2.0.0</version>
|
||||
<creationDate>September 2023</creationDate>
|
||||
<author>Regular Labs (Peter van Westen)</author>
|
||||
<authorEmail>info@regularlabs.com</authorEmail>
|
||||
<authorUrl>https://regularlabs.com</authorUrl>
|
||||
<copyright>Copyright © 2023 Regular Labs - All Rights Reserved</copyright>
|
||||
<license>GNU General Public License version 2 or later</license>
|
||||
<scriptfile>script.install.php</scriptfile>
|
||||
<blockChildUninstall>true</blockChildUninstall>
|
||||
<files folder="packages/j4">
|
||||
|
||||
<file type="plugin" group="system" id="tabsaccordions">plg_system_tabsaccordions</file>
|
||||
<file type="plugin" group="editors-xtd" id="tabsaccordions">plg_editors-xtd_tabsaccordions</file>
|
||||
</files>
|
||||
|
||||
|
||||
<languages folder="language">
|
||||
<language tag="en-GB">en-GB/en-GB.pkg_tabsaccordions.sys.ini</language>
|
||||
</languages>
|
||||
<updateservers>
|
||||
<server type="extension" priority="1" name="Tabs & Accordions">https://download.regularlabs.com/updates.xml?e=tabsaccordions&type=.xml</server>
|
||||
</updateservers>
|
||||
</extension>
|
||||
433
administrator/manifests/packages/pl-PL/script.php
Normal file
433
administrator/manifests/packages/pl-PL/script.php
Normal file
@@ -0,0 +1,433 @@
|
||||
<?php
|
||||
/**
|
||||
* @package Joomla.Language
|
||||
*
|
||||
* @copyright (C) 2021 J!German <https://www.jgerman.de>
|
||||
* @license GNU General Public License version 2 or later; see LICENSE.txt
|
||||
* modify dostosowanie do języka polskiego
|
||||
*/
|
||||
|
||||
defined('_JEXEC') or die;
|
||||
|
||||
use Joomla\CMS\Installer\InstallerScript;
|
||||
|
||||
/**
|
||||
* Installation class to perform additional changes during install/uninstall/update
|
||||
*
|
||||
* @since 4.0.0v1
|
||||
*/
|
||||
class Pkg_plPLInstallerScript extends InstallerScript
|
||||
{
|
||||
/**
|
||||
* Extension script constructor.
|
||||
*
|
||||
* @since 4.0.0v1
|
||||
*/
|
||||
public function __construct()
|
||||
{
|
||||
// Define the minumum versions to be supported.
|
||||
$this->minimumJoomla = '4.0';
|
||||
$this->minimumPhp = '7.2.5';
|
||||
|
||||
$this->deleteFiles = [
|
||||
// Backend
|
||||
'/administrator/language/pl-PL/pl-PL.com_actionlogs.ini',
|
||||
'/administrator/language/pl-PL/pl-PL.com_actionlogs.sys.ini',
|
||||
'/administrator/language/pl-PL/pl-PL.com_admin.ini',
|
||||
'/administrator/language/pl-PL/pl-PL.com_admin.sys.ini',
|
||||
'/administrator/language/pl-PL/pl-PL.com_ajax.ini',
|
||||
'/administrator/language/pl-PL/pl-PL.com_ajax.sys.ini',
|
||||
'/administrator/language/pl-PL/pl-PL.com_associations.ini',
|
||||
'/administrator/language/pl-PL/pl-PL.com_associations.sys.ini',
|
||||
'/administrator/language/pl-PL/pl-PL.com_banners.ini',
|
||||
'/administrator/language/pl-PL/pl-PL.com_banners.sys.ini',
|
||||
'/administrator/language/pl-PL/pl-PL.com_cache.ini',
|
||||
'/administrator/language/pl-PL/pl-PL.com_cache.sys.ini',
|
||||
'/administrator/language/pl-PL/pl-PL.com_categories.ini',
|
||||
'/administrator/language/pl-PL/pl-PL.com_categories.sys.ini',
|
||||
'/administrator/language/pl-PL/pl-PL.com_checkin.ini',
|
||||
'/administrator/language/pl-PL/pl-PL.com_checkin.sys.ini',
|
||||
'/administrator/language/pl-PL/pl-PL.com_config.ini',
|
||||
'/administrator/language/pl-PL/pl-PL.com_config.sys.ini',
|
||||
'/administrator/language/pl-PL/pl-PL.com_contact.ini',
|
||||
'/administrator/language/pl-PL/pl-PL.com_contact.sys.ini',
|
||||
'/administrator/language/pl-PL/pl-PL.com_contenthistory.ini',
|
||||
'/administrator/language/pl-PL/pl-PL.com_contenthistory.sys.ini',
|
||||
'/administrator/language/pl-PL/pl-PL.com_content.ini',
|
||||
'/administrator/language/pl-PL/pl-PL.com_content.sys.ini',
|
||||
'/administrator/language/pl-PL/pl-PL.com_cpanel.ini',
|
||||
'/administrator/language/pl-PL/pl-PL.com_cpanel.sys.ini',
|
||||
'/administrator/language/pl-PL/pl-PL.com_fields.ini',
|
||||
'/administrator/language/pl-PL/pl-PL.com_fields.sys.ini',
|
||||
'/administrator/language/pl-PL/pl-PL.com_finder.ini',
|
||||
'/administrator/language/pl-PL/pl-PL.com_finder.sys.ini',
|
||||
'/administrator/language/pl-PL/pl-PL.com_installer.ini',
|
||||
'/administrator/language/pl-PL/pl-PL.com_installer.sys.ini',
|
||||
'/administrator/language/pl-PL/pl-PL.com_joomlaupdate.ini',
|
||||
'/administrator/language/pl-PL/pl-PL.com_joomlaupdate.sys.ini',
|
||||
'/administrator/language/pl-PL/pl-PL.com_languages.ini',
|
||||
'/administrator/language/pl-PL/pl-PL.com_languages.sys.ini',
|
||||
'/administrator/language/pl-PL/pl-PL.com_login.ini',
|
||||
'/administrator/language/pl-PL/pl-PL.com_login.sys.ini',
|
||||
'/administrator/language/pl-PL/pl-PL.com_mailto.sys.ini',
|
||||
'/administrator/language/pl-PL/pl-PL.com_media.ini',
|
||||
'/administrator/language/pl-PL/pl-PL.com_media.sys.ini',
|
||||
'/administrator/language/pl-PL/pl-PL.com_menus.ini',
|
||||
'/administrator/language/pl-PL/pl-PL.com_menus.sys.ini',
|
||||
'/administrator/language/pl-PL/pl-PL.com_messages.ini',
|
||||
'/administrator/language/pl-PL/pl-PL.com_messages.sys.ini',
|
||||
'/administrator/language/pl-PL/pl-PL.com_modules.ini',
|
||||
'/administrator/language/pl-PL/pl-PL.com_modules.sys.ini',
|
||||
'/administrator/language/pl-PL/pl-PL.com_newsfeeds.ini',
|
||||
'/administrator/language/pl-PL/pl-PL.com_newsfeeds.sys.ini',
|
||||
'/administrator/language/pl-PL/pl-PL.com_plugins.ini',
|
||||
'/administrator/language/pl-PL/pl-PL.com_plugins.sys.ini',
|
||||
'/administrator/language/pl-PL/pl-PL.com_postinstall.ini',
|
||||
'/administrator/language/pl-PL/pl-PL.com_postinstall.sys.ini',
|
||||
'/administrator/language/pl-PL/pl-PL.com_privacy.ini',
|
||||
'/administrator/language/pl-PL/pl-PL.com_privacy.sys.ini',
|
||||
'/administrator/language/pl-PL/pl-PL.com_redirect.ini',
|
||||
'/administrator/language/pl-PL/pl-PL.com_redirect.sys.ini',
|
||||
'/administrator/language/pl-PL/pl-PL.com_tags.ini',
|
||||
'/administrator/language/pl-PL/pl-PL.com_tags.sys.ini',
|
||||
'/administrator/language/pl-PL/pl-PL.com_templates.ini',
|
||||
'/administrator/language/pl-PL/pl-PL.com_templates.sys.ini',
|
||||
'/administrator/language/pl-PL/pl-PL.com_users.ini',
|
||||
'/administrator/language/pl-PL/pl-PL.com_users.sys.ini',
|
||||
'/administrator/language/pl-PL/pl-PL.com_wrapper.ini',
|
||||
'/administrator/language/pl-PL/pl-PL.com_wrapper.sys.ini',
|
||||
'/administrator/language/pl-PL/pl-PL.ini',
|
||||
'/administrator/language/pl-PL/pl-PL.lib_joomla.ini',
|
||||
'/administrator/language/pl-PL/pl-PL.localise.php',
|
||||
'/administrator/language/pl-PL/pl-PL.mod_custom.ini',
|
||||
'/administrator/language/pl-PL/pl-PL.mod_custom.sys.ini',
|
||||
'/administrator/language/pl-PL/pl-PL.mod_feed.ini',
|
||||
'/administrator/language/pl-PL/pl-PL.mod_feed.sys.ini',
|
||||
'/administrator/language/pl-PL/pl-PL.mod_latestactions.ini',
|
||||
'/administrator/language/pl-PL/pl-PL.mod_latestactions.sys.ini',
|
||||
'/administrator/language/pl-PL/pl-PL.mod_latest.ini',
|
||||
'/administrator/language/pl-PL/pl-PL.mod_latest.sys.ini',
|
||||
'/administrator/language/pl-PL/pl-PL.mod_logged.ini',
|
||||
'/administrator/language/pl-PL/pl-PL.mod_logged.sys.ini',
|
||||
'/administrator/language/pl-PL/pl-PL.mod_login.ini',
|
||||
'/administrator/language/pl-PL/pl-PL.mod_login.sys.ini',
|
||||
'/administrator/language/pl-PL/pl-PL.mod_menu.ini',
|
||||
'/administrator/language/pl-PL/pl-PL.mod_menu.sys.ini',
|
||||
'/administrator/language/pl-PL/pl-PL.mod_multilangstatus.ini',
|
||||
'/administrator/language/pl-PL/pl-PL.mod_multilangstatus.sys.ini',
|
||||
'/administrator/language/pl-PL/pl-PL.mod_popular.ini',
|
||||
'/administrator/language/pl-PL/pl-PL.mod_popular.sys.ini',
|
||||
'/administrator/language/pl-PL/pl-PL.mod_privacy_dashboard.ini',
|
||||
'/administrator/language/pl-PL/pl-PL.mod_privacy_dashboard.sys.ini',
|
||||
'/administrator/language/pl-PL/pl-PL.mod_quickicon.ini',
|
||||
'/administrator/language/pl-PL/pl-PL.mod_quickicon.sys.ini',
|
||||
'/administrator/language/pl-PL/pl-PL.mod_sampledata.ini',
|
||||
'/administrator/language/pl-PL/pl-PL.mod_sampledata.sys.ini',
|
||||
'/administrator/language/pl-PL/pl-PL.mod_stats_admin.ini',
|
||||
'/administrator/language/pl-PL/pl-PL.mod_stats_admin.sys.ini',
|
||||
'/administrator/language/pl-PL/pl-PL.mod_status.ini',
|
||||
'/administrator/language/pl-PL/pl-PL.mod_status.sys.ini',
|
||||
'/administrator/language/pl-PL/pl-PL.mod_submenu.ini',
|
||||
'/administrator/language/pl-PL/pl-PL.mod_submenu.sys.ini',
|
||||
'/administrator/language/pl-PL/pl-PL.mod_title.ini',
|
||||
'/administrator/language/pl-PL/pl-PL.mod_title.sys.ini',
|
||||
'/administrator/language/pl-PL/pl-PL.mod_toolbar.ini',
|
||||
'/administrator/language/pl-PL/pl-PL.mod_toolbar.sys.ini',
|
||||
'/administrator/language/pl-PL/pl-PL.mod_version.ini',
|
||||
'/administrator/language/pl-PL/pl-PL.mod_version.sys.ini',
|
||||
'/administrator/language/pl-PL/pl-PL.plg_actionlog_joomla.ini',
|
||||
'/administrator/language/pl-PL/pl-PL.plg_actionlog_joomla.sys.ini',
|
||||
'/administrator/language/pl-PL/pl-PL.plg_authentication_cookie.ini',
|
||||
'/administrator/language/pl-PL/pl-PL.plg_authentication_cookie.sys.ini',
|
||||
'/administrator/language/pl-PL/pl-PL.plg_authentication_gmail.ini',
|
||||
'/administrator/language/pl-PL/pl-PL.plg_authentication_gmail.sys.ini',
|
||||
'/administrator/language/pl-PL/pl-PL.plg_authentication_joomla.ini',
|
||||
'/administrator/language/pl-PL/pl-PL.plg_authentication_joomla.sys.ini',
|
||||
'/administrator/language/pl-PL/pl-PL.plg_authentication_ldap.ini',
|
||||
'/administrator/language/pl-PL/pl-PL.plg_authentication_ldap.sys.ini',
|
||||
'/administrator/language/pl-PL/pl-PL.plg_captcha_recaptcha.ini',
|
||||
'/administrator/language/pl-PL/pl-PL.plg_captcha_recaptcha_invisible.ini',
|
||||
'/administrator/language/pl-PL/pl-PL.plg_captcha_recaptcha_invisible.sys.ini',
|
||||
'/administrator/language/pl-PL/pl-PL.plg_captcha_recaptcha.sys.ini',
|
||||
'/administrator/language/pl-PL/pl-PL.plg_content_confirmconsent.ini',
|
||||
'/administrator/language/pl-PL/pl-PL.plg_content_confirmconsent.sys.ini',
|
||||
'/administrator/language/pl-PL/pl-PL.plg_content_contact.ini',
|
||||
'/administrator/language/pl-PL/pl-PL.plg_content_contact.sys.ini',
|
||||
'/administrator/language/pl-PL/pl-PL.plg_content_emailcloak.ini',
|
||||
'/administrator/language/pl-PL/pl-PL.plg_content_emailcloak.sys.ini',
|
||||
'/administrator/language/pl-PL/pl-PL.plg_content_fields.ini',
|
||||
'/administrator/language/pl-PL/pl-PL.plg_content_fields.sys.ini',
|
||||
'/administrator/language/pl-PL/pl-PL.plg_content_finder.ini',
|
||||
'/administrator/language/pl-PL/pl-PL.plg_content_finder.sys.ini',
|
||||
'/administrator/language/pl-PL/pl-PL.plg_content_geshi.ini',
|
||||
'/administrator/language/pl-PL/pl-PL.plg_content_geshi.sys.ini',
|
||||
'/administrator/language/pl-PL/pl-PL.plg_content_joomla.ini',
|
||||
'/administrator/language/pl-PL/pl-PL.plg_content_joomla.sys.ini',
|
||||
'/administrator/language/pl-PL/pl-PL.plg_content_loadmodule.ini',
|
||||
'/administrator/language/pl-PL/pl-PL.plg_content_loadmodule.sys.ini',
|
||||
'/administrator/language/pl-PL/pl-PL.plg_content_pagebreak.ini',
|
||||
'/administrator/language/pl-PL/pl-PL.plg_content_pagebreak.sys.ini',
|
||||
'/administrator/language/pl-PL/pl-PL.plg_content_pagenavigation.ini',
|
||||
'/administrator/language/pl-PL/pl-PL.plg_content_pagenavigation.sys.ini',
|
||||
'/administrator/language/pl-PL/pl-PL.plg_content_vote.ini',
|
||||
'/administrator/language/pl-PL/pl-PL.plg_content_vote.sys.ini',
|
||||
'/administrator/language/pl-PL/pl-PL.plg_editors_codemirror.ini',
|
||||
'/administrator/language/pl-PL/pl-PL.plg_editors_codemirror.sys.ini',
|
||||
'/administrator/language/pl-PL/pl-PL.plg_editors_none.ini',
|
||||
'/administrator/language/pl-PL/pl-PL.plg_editors_none.sys.ini',
|
||||
'/administrator/language/pl-PL/pl-PL.plg_editors_tinymce.ini',
|
||||
'/administrator/language/pl-PL/pl-PL.plg_editors_tinymce.sys.ini',
|
||||
'/administrator/language/pl-PL/pl-PL.plg_editors-xtd_article.ini',
|
||||
'/administrator/language/pl-PL/pl-PL.plg_editors-xtd_article.sys.ini',
|
||||
'/administrator/language/pl-PL/pl-PL.plg_editors-xtd_contact.ini',
|
||||
'/administrator/language/pl-PL/pl-PL.plg_editors-xtd_contact.sys.ini',
|
||||
'/administrator/language/pl-PL/pl-PL.plg_editors-xtd_fields.ini',
|
||||
'/administrator/language/pl-PL/pl-PL.plg_editors-xtd_fields.sys.ini',
|
||||
'/administrator/language/pl-PL/pl-PL.plg_editors-xtd_image.ini',
|
||||
'/administrator/language/pl-PL/pl-PL.plg_editors-xtd_image.sys.ini',
|
||||
'/administrator/language/pl-PL/pl-PL.plg_editors-xtd_menu.ini',
|
||||
'/administrator/language/pl-PL/pl-PL.plg_editors-xtd_menu.sys.ini',
|
||||
'/administrator/language/pl-PL/pl-PL.plg_editors-xtd_module.ini',
|
||||
'/administrator/language/pl-PL/pl-PL.plg_editors-xtd_module.sys.ini',
|
||||
'/administrator/language/pl-PL/pl-PL.plg_editors-xtd_pagebreak.ini',
|
||||
'/administrator/language/pl-PL/pl-PL.plg_editors-xtd_pagebreak.sys.ini',
|
||||
'/administrator/language/pl-PL/pl-PL.plg_editors-xtd_readmore.ini',
|
||||
'/administrator/language/pl-PL/pl-PL.plg_editors-xtd_readmore.sys.ini',
|
||||
'/administrator/language/pl-PL/pl-PL.plg_editors-xtd_weblink.ini',
|
||||
'/administrator/language/pl-PL/pl-PL.plg_editors-xtd_weblink.sys.ini',
|
||||
'/administrator/language/pl-PL/pl-PL.plg_extension_joomla.ini',
|
||||
'/administrator/language/pl-PL/pl-PL.plg_extension_joomla.sys.ini',
|
||||
'/administrator/language/pl-PL/pl-PL.plg_fields_calendar.ini',
|
||||
'/administrator/language/pl-PL/pl-PL.plg_fields_calendar.sys.ini',
|
||||
'/administrator/language/pl-PL/pl-PL.plg_fields_checkboxes.ini',
|
||||
'/administrator/language/pl-PL/pl-PL.plg_fields_checkboxes.sys.ini',
|
||||
'/administrator/language/pl-PL/pl-PL.plg_fields_color.ini',
|
||||
'/administrator/language/pl-PL/pl-PL.plg_fields_color.sys.ini',
|
||||
'/administrator/language/pl-PL/pl-PL.plg_fields_editor.ini',
|
||||
'/administrator/language/pl-PL/pl-PL.plg_fields_editor.sys.ini',
|
||||
'/administrator/language/pl-PL/pl-PL.plg_fields_image.ini',
|
||||
'/administrator/language/pl-PL/pl-PL.plg_fields_imagelist.ini',
|
||||
'/administrator/language/pl-PL/pl-PL.plg_fields_imagelist.sys.ini',
|
||||
'/administrator/language/pl-PL/pl-PL.plg_fields_image.sys.ini',
|
||||
'/administrator/language/pl-PL/pl-PL.plg_fields_integer.ini',
|
||||
'/administrator/language/pl-PL/pl-PL.plg_fields_integer.sys.ini',
|
||||
'/administrator/language/pl-PL/pl-PL.plg_fields_list.ini',
|
||||
'/administrator/language/pl-PL/pl-PL.plg_fields_list.sys.ini',
|
||||
'/administrator/language/pl-PL/pl-PL.plg_fields_media.ini',
|
||||
'/administrator/language/pl-PL/pl-PL.plg_fields_media.sys.ini',
|
||||
|
||||
'/administrator/language/pl-PL/pl-PL.plg_fields_radio.ini',
|
||||
'/administrator/language/pl-PL/pl-PL.plg_fields_radio.sys.ini',
|
||||
'/administrator/language/pl-PL/pl-PL.plg_fields_repeatable.ini',
|
||||
'/administrator/language/pl-PL/pl-PL.plg_fields_repeatable.sys.ini',
|
||||
'/administrator/language/pl-PL/pl-PL.plg_fields_sql.ini',
|
||||
'/administrator/language/pl-PL/pl-PL.plg_fields_sql.sys.ini',
|
||||
'/administrator/language/pl-PL/pl-PL.plg_fields_textarea.ini',
|
||||
'/administrator/language/pl-PL/pl-PL.plg_fields_textarea.sys.ini',
|
||||
'/administrator/language/pl-PL/pl-PL.plg_fields_text.ini',
|
||||
'/administrator/language/pl-PL/pl-PL.plg_fields_text.sys.ini',
|
||||
'/administrator/language/pl-PL/pl-PL.plg_fields_url.ini',
|
||||
'/administrator/language/pl-PL/pl-PL.plg_fields_url.sys.ini',
|
||||
'/administrator/language/pl-PL/pl-PL.plg_fields_usergrouplist.ini',
|
||||
'/administrator/language/pl-PL/pl-PL.plg_fields_usergrouplist.sys.ini',
|
||||
'/administrator/language/pl-PL/pl-PL.plg_fields_user.ini',
|
||||
'/administrator/language/pl-PL/pl-PL.plg_fields_user.sys.ini',
|
||||
'/administrator/language/pl-PL/pl-PL.plg_finder_categories.ini',
|
||||
'/administrator/language/pl-PL/pl-PL.plg_finder_categories.sys.ini',
|
||||
'/administrator/language/pl-PL/pl-PL.plg_finder_contacts.ini',
|
||||
'/administrator/language/pl-PL/pl-PL.plg_finder_contacts.sys.ini',
|
||||
'/administrator/language/pl-PL/pl-PL.plg_finder_content.ini',
|
||||
'/administrator/language/pl-PL/pl-PL.plg_finder_content.sys.ini',
|
||||
'/administrator/language/pl-PL/pl-PL.plg_finder_newsfeeds.ini',
|
||||
'/administrator/language/pl-PL/pl-PL.plg_finder_newsfeeds.sys.ini',
|
||||
'/administrator/language/pl-PL/pl-PL.plg_finder_tags.ini',
|
||||
'/administrator/language/pl-PL/pl-PL.plg_finder_tags.sys.ini',
|
||||
'/administrator/language/pl-PL/pl-PL.plg_installer_folderinstaller.ini',
|
||||
'/administrator/language/pl-PL/pl-PL.plg_installer_folderinstaller.sys.ini',
|
||||
'/administrator/language/pl-PL/pl-PL.plg_installer_packageinstaller.ini',
|
||||
'/administrator/language/pl-PL/pl-PL.plg_installer_packageinstaller.sys.ini',
|
||||
'/administrator/language/pl-PL/pl-PL.plg_installer_urlinstaller.ini',
|
||||
'/administrator/language/pl-PL/pl-PL.plg_installer_urlinstaller.sys.ini',
|
||||
'/administrator/language/pl-PL/pl-PL.plg_installer_webinstaller.ini',
|
||||
'/administrator/language/pl-PL/pl-PL.plg_installer_webinstaller.sys.ini',
|
||||
'/administrator/language/pl-PL/pl-PL.plg_privacy_actionlogs.ini',
|
||||
'/administrator/language/pl-PL/pl-PL.plg_privacy_actionlogs.sys.ini',
|
||||
'/administrator/language/pl-PL/pl-PL.plg_privacy_consents.ini',
|
||||
'/administrator/language/pl-PL/pl-PL.plg_privacy_consents.sys.ini',
|
||||
'/administrator/language/pl-PL/pl-PL.plg_privacy_contact.ini',
|
||||
'/administrator/language/pl-PL/pl-PL.plg_privacy_contact.sys.ini',
|
||||
'/administrator/language/pl-PL/pl-PL.plg_privacy_content.ini',
|
||||
'/administrator/language/pl-PL/pl-PL.plg_privacy_content.sys.ini',
|
||||
'/administrator/language/pl-PL/pl-PL.plg_privacy_message.ini',
|
||||
'/administrator/language/pl-PL/pl-PL.plg_privacy_message.sys.ini',
|
||||
'/administrator/language/pl-PL/pl-PL.plg_privacy_user.ini',
|
||||
'/administrator/language/pl-PL/pl-PL.plg_privacy_user.sys.ini',
|
||||
'/administrator/language/pl-PL/pl-PL.plg_quickicon_eos310.ini',
|
||||
'/administrator/language/pl-PL/pl-PL.plg_quickicon_eos310.sys.ini',
|
||||
'/administrator/language/pl-PL/pl-PL.plg_quickicon_extensionupdate.ini',
|
||||
'/administrator/language/pl-PL/pl-PL.plg_quickicon_extensionupdate.sys.ini',
|
||||
'/administrator/language/pl-PL/pl-PL.plg_quickicon_joomlaupdate.ini',
|
||||
'/administrator/language/pl-PL/pl-PL.plg_quickicon_joomlaupdate.sys.ini',
|
||||
'/administrator/language/pl-PL/pl-PL.plg_quickicon_phpversioncheck.ini',
|
||||
'/administrator/language/pl-PL/pl-PL.plg_quickicon_phpversioncheck.sys.ini',
|
||||
'/administrator/language/pl-PL/pl-PL.plg_quickicon_privacycheck.ini',
|
||||
'/administrator/language/pl-PL/pl-PL.plg_quickicon_privacycheck.sys.ini',
|
||||
'/administrator/language/pl-PL/pl-PL.plg_sampledata_blog.ini',
|
||||
'/administrator/language/pl-PL/pl-PL.plg_sampledata_blog.sys.ini',
|
||||
'/administrator/language/pl-PL/pl-PL.plg_system_actionlogs.ini',
|
||||
'/administrator/language/pl-PL/pl-PL.plg_system_actionlogs.sys.ini',
|
||||
'/administrator/language/pl-PL/pl-PL.plg_system_cache.ini',
|
||||
'/administrator/language/pl-PL/pl-PL.plg_system_cache.sys.ini',
|
||||
'/administrator/language/pl-PL/pl-PL.plg_system_debug.ini',
|
||||
'/administrator/language/pl-PL/pl-PL.plg_system_debug.sys.ini',
|
||||
'/administrator/language/pl-PL/pl-PL.plg_system_fields.ini',
|
||||
'/administrator/language/pl-PL/pl-PL.plg_system_fields.sys.ini',
|
||||
'/administrator/language/pl-PL/pl-PL.plg_system_highlight.ini',
|
||||
'/administrator/language/pl-PL/pl-PL.plg_system_highlight.sys.ini',
|
||||
'/administrator/language/pl-PL/pl-PL.plg_system_languagecode.ini',
|
||||
'/administrator/language/pl-PL/pl-PL.plg_system_languagecode.sys.ini',
|
||||
'/administrator/language/pl-PL/pl-PL.plg_system_languagefilter.ini',
|
||||
'/administrator/language/pl-PL/pl-PL.plg_system_languagefilter.sys.ini',
|
||||
'/administrator/language/pl-PL/pl-PL.plg_system_log.ini',
|
||||
'/administrator/language/pl-PL/pl-PL.plg_system_logout.ini',
|
||||
'/administrator/language/pl-PL/pl-PL.plg_system_logout.sys.ini',
|
||||
'/administrator/language/pl-PL/pl-PL.plg_system_logrotation.ini',
|
||||
'/administrator/language/pl-PL/pl-PL.plg_system_logrotation.sys.ini',
|
||||
'/administrator/language/pl-PL/pl-PL.plg_system_log.sys.ini',
|
||||
'/administrator/language/pl-PL/pl-PL.plg_system_p3p.ini',
|
||||
'/administrator/language/pl-PL/pl-PL.plg_system_p3p.sys.ini',
|
||||
'/administrator/language/pl-PL/pl-PL.plg_system_privacyconsent.ini',
|
||||
'/administrator/language/pl-PL/pl-PL.plg_system_privacyconsent.sys.ini',
|
||||
'/administrator/language/pl-PL/pl-PL.plg_system_redirect.ini',
|
||||
'/administrator/language/pl-PL/pl-PL.plg_system_redirect.sys.ini',
|
||||
'/administrator/language/pl-PL/pl-PL.plg_system_remember.ini',
|
||||
'/administrator/language/pl-PL/pl-PL.plg_system_remember.sys.ini',
|
||||
'/administrator/language/pl-PL/pl-PL.plg_system_sef.ini',
|
||||
'/administrator/language/pl-PL/pl-PL.plg_system_sef.sys.ini',
|
||||
'/administrator/language/pl-PL/pl-PL.plg_system_sessiongc.ini',
|
||||
'/administrator/language/pl-PL/pl-PL.plg_system_sessiongc.sys.ini',
|
||||
'/administrator/language/pl-PL/pl-PL.plg_system_stats.ini',
|
||||
'/administrator/language/pl-PL/pl-PL.plg_system_stats.sys.ini',
|
||||
'/administrator/language/pl-PL/pl-PL.plg_system_updatenotification.ini',
|
||||
'/administrator/language/pl-PL/pl-PL.plg_system_updatenotification.sys.ini',
|
||||
'/administrator/language/pl-PL/pl-PL.plg_twofactorauth_totp.ini',
|
||||
'/administrator/language/pl-PL/pl-PL.plg_twofactorauth_totp.sys.ini',
|
||||
'/administrator/language/pl-PL/pl-PL.plg_twofactorauth_yubikey.ini',
|
||||
'/administrator/language/pl-PL/pl-PL.plg_twofactorauth_yubikey.sys.ini',
|
||||
'/administrator/language/pl-PL/pl-PL.plg_user_contactcreator.ini',
|
||||
'/administrator/language/pl-PL/pl-PL.plg_user_contactcreator.sys.ini',
|
||||
'/administrator/language/pl-PL/pl-PL.plg_user_joomla.ini',
|
||||
'/administrator/language/pl-PL/pl-PL.plg_user_joomla.sys.ini',
|
||||
'/administrator/language/pl-PL/pl-PL.plg_user_profile.ini',
|
||||
'/administrator/language/pl-PL/pl-PL.plg_user_profile.sys.ini',
|
||||
'/administrator/language/pl-PL/pl-PL.plg_user_terms.ini',
|
||||
'/administrator/language/pl-PL/pl-PL.plg_user_terms.sys.ini',
|
||||
'/administrator/language/pl-PL/pl-PL.tpl_hathor.ini',
|
||||
'/administrator/language/pl-PL/pl-PL.tpl_hathor.sys.ini',
|
||||
'/administrator/language/pl-PL/pl-PL.tpl_isis.ini',
|
||||
'/administrator/language/pl-PL/pl-PL.tpl_isis.sys.ini',
|
||||
'/administrator/language/pl-PL/com_csp.ini',
|
||||
'/administrator/language/pl-PL/com_csp.sys.ini',
|
||||
'/administrator/language/pl-PL/plg_fields_subfields.ini',
|
||||
'/administrator/language/pl-PL/plg_fields_subfields.sys.ini',
|
||||
'/administrator/language/pl-PL/pl-PL.plg_fields_menuitem.ini',
|
||||
'/administrator/language/pl-PL/pl-PL.plg_fields_menuitem.sys.ini',
|
||||
|
||||
// Frontend
|
||||
'/language/pl-PL/pl-PL.com_ajax.ini',
|
||||
'/language/pl-PL/pl-PL.com_config.ini',
|
||||
'/language/pl-PL/pl-PL.com_contact.ini',
|
||||
'/language/pl-PL/pl-PL.com_content.ini',
|
||||
'/language/pl-PL/pl-PL.com_finder.ini',
|
||||
'/language/pl-PL/pl-PL.com_mailto.ini',
|
||||
'/language/pl-PL/pl-PL.com_media.ini',
|
||||
'/language/pl-PL/pl-PL.com_messages.ini',
|
||||
'/language/pl-PL/pl-PL.com_newsfeeds.ini',
|
||||
'/language/pl-PL/pl-PL.com_privacy.ini',
|
||||
'/language/pl-PL/pl-PL.com_tags.ini',
|
||||
'/language/pl-PL/pl-PL.com_users.ini',
|
||||
'/language/pl-PL/pl-PL.com_wrapper.ini',
|
||||
'/language/pl-PL/pl-PL.files_joomla.sys.ini',
|
||||
'/language/pl-PL/pl-PL.finder_cli.ini',
|
||||
'/language/pl-PL/pl-PL.ini',
|
||||
'/language/pl-PL/pl-PL.lib_fof.ini',
|
||||
'/language/pl-PL/pl-PL.lib_fof.sys.ini',
|
||||
'/language/pl-PL/pl-PL.lib_idna_convert.sys.ini',
|
||||
'/language/pl-PL/pl-PL.lib_joomla.ini',
|
||||
'/language/pl-PL/pl-PL.lib_joomla.sys.ini',
|
||||
'/language/pl-PL/pl-PL.lib_phpass.sys.ini',
|
||||
'/language/pl-PL/pl-PL.lib_phputf8.sys.ini',
|
||||
'/language/pl-PL/pl-PL.lib_simplepie.sys.ini',
|
||||
'/language/pl-PL/pl-PL.localise.php',
|
||||
'/language/pl-PL/pl-PL.mod_articles_archive.ini',
|
||||
'/language/pl-PL/pl-PL.mod_articles_archive.sys.ini',
|
||||
'/language/pl-PL/pl-PL.mod_articles_categories.ini',
|
||||
'/language/pl-PL/pl-PL.mod_articles_categories.sys.ini',
|
||||
'/language/pl-PL/pl-PL.mod_articles_category.ini',
|
||||
'/language/pl-PL/pl-PL.mod_articles_category.sys.ini',
|
||||
'/language/pl-PL/pl-PL.mod_articles_latest.ini',
|
||||
'/language/pl-PL/pl-PL.mod_articles_latest.sys.ini',
|
||||
'/language/pl-PL/pl-PL.mod_articles_news.ini',
|
||||
'/language/pl-PL/pl-PL.mod_articles_news.sys.ini',
|
||||
'/language/pl-PL/pl-PL.mod_articles_popular.ini',
|
||||
'/language/pl-PL/pl-PL.mod_articles_popular.sys.ini',
|
||||
'/language/pl-PL/pl-PL.mod_banners.ini',
|
||||
'/language/pl-PL/pl-PL.mod_banners.sys.ini',
|
||||
'/language/pl-PL/pl-PL.mod_breadcrumbs.ini',
|
||||
'/language/pl-PL/pl-PL.mod_breadcrumbs.sys.ini',
|
||||
'/language/pl-PL/pl-PL.mod_custom.ini',
|
||||
'/language/pl-PL/pl-PL.mod_custom.sys.ini',
|
||||
'/language/pl-PL/pl-PL.mod_feed.ini',
|
||||
'/language/pl-PL/pl-PL.mod_feed.sys.ini',
|
||||
'/language/pl-PL/pl-PL.mod_finder.ini',
|
||||
'/language/pl-PL/pl-PL.mod_finder.sys.ini',
|
||||
'/language/pl-PL/pl-PL.mod_footer.ini',
|
||||
'/language/pl-PL/pl-PL.mod_footer.sys.ini',
|
||||
'/language/pl-PL/pl-PL.mod_languages.ini',
|
||||
'/language/pl-PL/pl-PL.mod_languages.sys.ini',
|
||||
'/language/pl-PL/pl-PL.mod_login.ini',
|
||||
'/language/pl-PL/pl-PL.mod_login.sys.ini',
|
||||
'/language/pl-PL/pl-PL.mod_menu.ini',
|
||||
'/language/pl-PL/pl-PL.mod_menu.sys.ini',
|
||||
'/language/pl-PL/pl-PL.mod_random_image.ini',
|
||||
'/language/pl-PL/pl-PL.mod_random_image.sys.ini',
|
||||
'/language/pl-PL/pl-PL.mod_related_items.ini',
|
||||
'/language/pl-PL/pl-PL.mod_related_items.sys.ini',
|
||||
'/language/pl-PL/pl-PL.mod_stats.ini',
|
||||
'/language/pl-PL/pl-PL.mod_stats.sys.ini',
|
||||
'/language/pl-PL/pl-PL.mod_syndicate.ini',
|
||||
'/language/pl-PL/pl-PL.mod_syndicate.sys.ini',
|
||||
'/language/pl-PL/pl-PL.mod_tags_popular.ini',
|
||||
'/language/pl-PL/pl-PL.mod_tags_popular.sys.ini',
|
||||
'/language/pl-PL/pl-PL.mod_tags_similar.ini',
|
||||
'/language/pl-PL/pl-PL.mod_tags_similar.sys.ini',
|
||||
'/language/pl-PL/pl-PL.mod_users_latest.ini',
|
||||
'/language/pl-PL/pl-PL.mod_users_latest.sys.ini',
|
||||
'/language/pl-PL/pl-PL.mod_whosonline.ini',
|
||||
'/language/pl-PL/pl-PL.mod_whosonline.sys.ini',
|
||||
'/language/pl-PL/pl-PL.mod_wrapper.ini',
|
||||
'/language/pl-PL/pl-PL.mod_wrapper.sys.ini',
|
||||
'/language/pl-PL/pl-PL.tpl_beez3.ini',
|
||||
'/language/pl-PL/pl-PL.tpl_beez3.sys.ini',
|
||||
'/language/pl-PL/pl-PL.tpl_protostar.ini',
|
||||
'/language/pl-PL/pl-PL.tpl_protostar.sys.ini',
|
||||
'/language/pl-PL/pl-PL.xml',
|
||||
'/language/pl-PL/com_messages.ini',
|
||||
];
|
||||
}
|
||||
|
||||
/**
|
||||
* Function to perform changes during postflight
|
||||
*
|
||||
* @param string $type The action being performed
|
||||
* @param ComponentAdapter $parent The class calling this method
|
||||
*
|
||||
* @return void
|
||||
*
|
||||
* @since 4.0.0v1
|
||||
*/
|
||||
public function postflight($type, $parent)
|
||||
{
|
||||
$this->removeFiles();
|
||||
}
|
||||
}
|
||||
291
administrator/manifests/packages/quantummanager/script.php
Normal file
291
administrator/manifests/packages/quantummanager/script.php
Normal file
@@ -0,0 +1,291 @@
|
||||
<?php
|
||||
/**
|
||||
* @package quantummanager
|
||||
* @author Dmitry Tsymbal <cymbal@delo-design.ru>
|
||||
* @copyright Copyright © 2019 Delo Design & NorrNext. All rights reserved.
|
||||
* @license GNU General Public License version 3 or later; see license.txt
|
||||
* @link https://www.norrnext.com
|
||||
*/
|
||||
|
||||
|
||||
defined('_JEXEC') or die;
|
||||
|
||||
use Joomla\Archive\Archive;
|
||||
use Joomla\CMS\Factory;
|
||||
use Joomla\CMS\Filesystem\Path;
|
||||
use Joomla\CMS\Installer\Adapter\PackageAdapter;
|
||||
use Joomla\CMS\Installer\Installer;
|
||||
use Joomla\CMS\Installer\InstallerAdapter;
|
||||
use Joomla\CMS\Installer\InstallerHelper;
|
||||
use Joomla\CMS\Language\Text;
|
||||
use Joomla\CMS\Version;
|
||||
|
||||
class pkg_QuantummanagerInstallerScript
|
||||
{
|
||||
/**
|
||||
* Minimum PHP version required to install the extension.
|
||||
*
|
||||
* @var string
|
||||
*
|
||||
* @since 0.0.1
|
||||
*/
|
||||
protected $minimumPhp = '7.1';
|
||||
|
||||
/**
|
||||
* Minimum Joomla version required to install the extension.
|
||||
*
|
||||
* @var string
|
||||
*
|
||||
* @since 0.0.1
|
||||
*/
|
||||
protected $minimumJoomla = '3.9.0';
|
||||
|
||||
/**
|
||||
* Extensions for php
|
||||
* @var array
|
||||
*/
|
||||
protected $extensions = [
|
||||
'fileinfo',
|
||||
'curl',
|
||||
'mbstring',
|
||||
];
|
||||
|
||||
/**
|
||||
* Method to check compatible.
|
||||
*
|
||||
* @param string $type Type of PostFlight action.
|
||||
* @param InstallerAdapter $parent Parent object calling object.
|
||||
*
|
||||
* @return boolean Compatible current version or not.
|
||||
*
|
||||
* @throws Exception
|
||||
*
|
||||
* @since 0.0.1
|
||||
*/
|
||||
public function preflight($type, $parent)
|
||||
{
|
||||
if ($type === 'install')
|
||||
{
|
||||
// Check compatible
|
||||
if (!$this->checkCompatible())
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
//Download remotes
|
||||
$this->downloadRemotes($parent);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
public function postflight($type, $parent)
|
||||
{
|
||||
if ($type === 'update' || $type === 'install')
|
||||
{
|
||||
$msg = '';
|
||||
$result = $this->installLibFields($parent);
|
||||
|
||||
if ($result !== true)
|
||||
{
|
||||
$msg .= Text::sprintf('PKG_QUANTUMMANAGER_LIBFIELDS_INSTALLATION_ERROR', (string) $result);
|
||||
}
|
||||
|
||||
if ($msg)
|
||||
{
|
||||
Factory::getApplication()->enqueueMessage($msg, 'error');
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
if ($type === 'update')
|
||||
{
|
||||
$this->update150();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Method to check compatible.
|
||||
*
|
||||
* @return bool True if compatible.
|
||||
*
|
||||
* @throws Exception
|
||||
*
|
||||
* @since __DEPLOY_VERSION__
|
||||
*/
|
||||
protected function checkCompatible()
|
||||
{
|
||||
// Check old Joomla
|
||||
if (!class_exists('Joomla\CMS\Version'))
|
||||
{
|
||||
Factory::getApplication()->enqueueMessage(Text::sprintf('PKG_QUANTUMMANAGER_ERROR_COMPATIBLE_JOOMLA',
|
||||
$this->minimumJoomla), 'error');
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
$app = Factory::getApplication();
|
||||
$jversion = new Version();
|
||||
|
||||
// Check PHP
|
||||
if (!(version_compare(PHP_VERSION, $this->minimumPhp) >= 0))
|
||||
{
|
||||
$app->enqueueMessage(Text::sprintf('PKG_QUANTUMMANAGER_ERROR_COMPATIBLE_PHP', $this->minimumPhp),
|
||||
'error');
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
// Check joomla version
|
||||
if (!$jversion->isCompatible($this->minimumJoomla))
|
||||
{
|
||||
$app->enqueueMessage(Text::sprintf('PKG_QUANTUMMANAGER_ERROR_COMPATIBLE_JOOMLA', $this->minimumJoomla),
|
||||
'error');
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
//Check extension
|
||||
$extensionsNotLoaded = [];
|
||||
foreach ($this->extensions as $extension)
|
||||
{
|
||||
if (!extension_loaded($extension))
|
||||
{
|
||||
$extensionsNotLoaded[] = $extension;
|
||||
}
|
||||
}
|
||||
|
||||
if (count($extensionsNotLoaded))
|
||||
{
|
||||
$app->enqueueMessage(Text::sprintf('PKG_QUANTUMMANAGER_ERROR_EXTENSIONS', implode(',', $extensionsNotLoaded)),
|
||||
'error');
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Method to download remotes.
|
||||
*
|
||||
* @param InstallerAdapter $parent Parent object calling object.
|
||||
*
|
||||
* @throws Exception
|
||||
*
|
||||
* @since __DEPLOY_VERSION__
|
||||
*/
|
||||
protected function downloadRemotes($parent)
|
||||
{
|
||||
$attributes = $parent->getParent()->manifest->xpath('files');
|
||||
$source = $parent->getParent()->getPath('source');
|
||||
|
||||
if (!is_array($attributes) || empty($attributes[0]))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
foreach ($attributes[0] as $type => $value)
|
||||
{
|
||||
if (!empty($value->attributes()->download) && !empty($value[0]))
|
||||
{
|
||||
$src = htmlspecialchars_decode((string) $value->attributes()->download);
|
||||
$dest = $source . '/' . $value[0];
|
||||
@file_put_contents($dest, file_get_contents($src));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
protected function update150()
|
||||
{
|
||||
$db = Factory::getDBO();
|
||||
$query = $db->getQuery(true)
|
||||
->select($db->quoteName(['extension_id']))
|
||||
->from('#__extensions')
|
||||
->where('element =' . $db->quote('quantummanagercontent'))
|
||||
->where('folder =' . $db->quote('editors-xtd'));
|
||||
$extension = $db->setQuery($query)->loadObject();
|
||||
|
||||
if (isset($extension->extension_id) && ((int) $extension->extension_id > 0))
|
||||
{
|
||||
$installer = Installer::getInstance();
|
||||
$installer->uninstall('plugin', (int) $extension->extension_id);
|
||||
}
|
||||
|
||||
$db = Factory::getDBO();
|
||||
$query = $db->getQuery(true)
|
||||
->select($db->quoteName(['extension_id']))
|
||||
->from('#__extensions')
|
||||
->where('element =' . $db->quote('quantummanagercommedia'))
|
||||
->where('folder =' . $db->quote('system'));
|
||||
$extension = $db->setQuery($query)->loadObject();
|
||||
|
||||
if (isset($extension->extension_id) && ((int) $extension->extension_id > 0))
|
||||
{
|
||||
$installer = Installer::getInstance();
|
||||
$installer->uninstall('plugin', (int) $extension->extension_id);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
protected function installLibFields($parent)
|
||||
{
|
||||
|
||||
$tmp = Factory::getConfig()->get('tmp_path');
|
||||
$libFieldsFile = 'https://github.com/JPathRu/lib_fields/releases/latest/download/lib_fields.zip';
|
||||
$tmpFile = Path::clean($tmp . '/lib_fields.zip');
|
||||
$extDir = Path::clean($tmp . '/' . uniqid('install_'));
|
||||
|
||||
$contents = file_get_contents($libFieldsFile);
|
||||
if ($contents === false)
|
||||
{
|
||||
return Text::sprintf('PKG_QUANTUMMANAGER_LIBFIELDS_IE_FAILED_DOWNLOAD', $libFieldsFile);
|
||||
}
|
||||
|
||||
$resultContents = file_put_contents($tmpFile, $contents);
|
||||
if ($resultContents == false)
|
||||
{
|
||||
return Text::sprintf('PKG_QUANTUMMANAGER_LIBFIELDS_IE_FAILED_INSTALLATION', $tmpFile);
|
||||
}
|
||||
|
||||
if (!file_exists($tmpFile))
|
||||
{
|
||||
return Text::sprintf('PKG_QUANTUMMANAGER_LIBFIELDS_IE_NOT_EXISTS', $tmpFile);
|
||||
}
|
||||
|
||||
$archive = new Archive(['tmp_path' => $tmp]);
|
||||
try
|
||||
{
|
||||
$archive->extract($tmpFile, $extDir);
|
||||
}
|
||||
catch (\Exception $e)
|
||||
{
|
||||
return Text::sprintf('PKG_QUANTUMMANAGER_LIBFIELDS_IE_FAILER_UNZIP', $tmpFile, $extDir, $e->getMesage());
|
||||
}
|
||||
|
||||
$installer = new Installer();
|
||||
$installer->setPath('source', $extDir);
|
||||
if (!$installer->findManifest())
|
||||
{
|
||||
InstallerHelper::cleanupInstall($tmpFile, $extDir);
|
||||
|
||||
return Text::_('PKG_QUANTUMMANAGER_LIBFIELDS_IE_INCORRECT_MANIFEST');
|
||||
}
|
||||
|
||||
if (!$installer->install($extDir))
|
||||
{
|
||||
InstallerHelper::cleanupInstall($tmpFile, $extDir);
|
||||
|
||||
return Text::_('PKG_QUANTUMMANAGER_LIBFIELDS_IE_INSTALLER_ERROR');
|
||||
}
|
||||
|
||||
InstallerHelper::cleanupInstall($tmpFile, $extDir);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
}
|
||||
177
administrator/manifests/packages/regularlabs/script.install.php
Normal file
177
administrator/manifests/packages/regularlabs/script.install.php
Normal file
@@ -0,0 +1,177 @@
|
||||
<?php
|
||||
/**
|
||||
* @package Regular Labs Library
|
||||
* @version 23.9.16805
|
||||
*
|
||||
* @author Peter van Westen <info@regularlabs.com>
|
||||
* @link https://regularlabs.com
|
||||
* @copyright Copyright © 2023 Regular Labs All Rights Reserved
|
||||
* @license GNU General Public License version 2 or later
|
||||
*/
|
||||
|
||||
defined('_JEXEC') or die;
|
||||
|
||||
use Joomla\CMS\Factory as JFactory;
|
||||
use Joomla\CMS\Installer\Manifest\PackageManifest as JPackageManifest;
|
||||
use Joomla\CMS\Language\Text as JText;
|
||||
|
||||
if ( ! class_exists('pkg_regularlabsInstallerScript'))
|
||||
{
|
||||
class pkg_regularlabsInstallerScript
|
||||
{
|
||||
static $current_version;
|
||||
static $name;
|
||||
static $package_name;
|
||||
static $previous_version;
|
||||
|
||||
public function postflight($install_type, $adapter)
|
||||
{
|
||||
self::publishExtensions();
|
||||
self::recreateNamespaceMap();
|
||||
self::displayMessages();
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
public function preflight($install_type, $adapter)
|
||||
{
|
||||
$manifest = $adapter->getManifest();
|
||||
|
||||
static::$package_name = trim($manifest->packagename);
|
||||
static::$name = trim($manifest->name);
|
||||
static::$current_version = trim($manifest->version);
|
||||
static::$previous_version = self::getPreviousVersion();
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
private static function recreateNamespaceMap()
|
||||
{
|
||||
if (JVERSION < 4)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
// Remove the administrator/cache/autoload_psr4.php file
|
||||
$filename = JPATH_ADMINISTRATOR . '/cache/autoload_psr4.php';
|
||||
|
||||
if (file_exists($filename))
|
||||
{
|
||||
self::clearFileInOPCache($filename);
|
||||
clearstatcache(true, $filename);
|
||||
|
||||
@unlink($filename);
|
||||
}
|
||||
|
||||
JFactory::getApplication()->createExtensionNamespaceMap();
|
||||
}
|
||||
|
||||
private static function clearFileInOPCache($file)
|
||||
{
|
||||
$hasOpCache = ini_get('opcache.enable')
|
||||
&& function_exists('opcache_invalidate')
|
||||
&& (
|
||||
! ini_get('opcache.restrict_api')
|
||||
|| stripos(realpath($_SERVER['SCRIPT_FILENAME']), ini_get('opcache.restrict_api')) === 0
|
||||
);
|
||||
|
||||
if ( ! $hasOpCache)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
return opcache_invalidate($file, true);
|
||||
}
|
||||
|
||||
private static function displayMessages()
|
||||
{
|
||||
$msg = self::getInstallationLanguageString();
|
||||
|
||||
JFactory::getApplication()->enqueueMessage(
|
||||
JText::sprintf(
|
||||
$msg,
|
||||
'<strong>' . JText::_(static::$name . '_SHORT') . '</strong>',
|
||||
'<strong>' . static::$current_version . '</strong>'
|
||||
), 'success'
|
||||
);
|
||||
}
|
||||
|
||||
private static function getInstallationLanguageString()
|
||||
{
|
||||
if ( ! static::$previous_version)
|
||||
{
|
||||
return 'PKG_RL_EXTENSION_INSTALLED';
|
||||
}
|
||||
|
||||
if (static::$previous_version == static::$current_version)
|
||||
{
|
||||
return 'PKG_RL_EXTENSION_REINSTALLED';
|
||||
}
|
||||
|
||||
return 'PKG_RL_EXTENSION_UPDATED';
|
||||
}
|
||||
|
||||
private static function getPreviousVersion()
|
||||
{
|
||||
$xml_file = self::getXmlFile();
|
||||
|
||||
if ( ! $xml_file)
|
||||
{
|
||||
return '';
|
||||
}
|
||||
|
||||
$manifest = new JPackageManifest($xml_file);
|
||||
|
||||
return isset($manifest->version) ? trim($manifest->version) : '';
|
||||
}
|
||||
|
||||
private static function getXmlFile()
|
||||
{
|
||||
$xml_file = JPATH_MANIFESTS . '/packages/pkg_' . static::$package_name . '.xml';
|
||||
|
||||
if (file_exists($xml_file))
|
||||
{
|
||||
return $xml_file;
|
||||
}
|
||||
|
||||
$xml_file = JPATH_LIBRARIES . '/' . static::$package_name . '.xml';
|
||||
|
||||
if (file_exists($xml_file))
|
||||
{
|
||||
return $xml_file;
|
||||
}
|
||||
|
||||
$xml_file = JPATH_ADMINISTRATOR . '/components/com_' . static::$package_name . '/' . static::$package_name . '.xml';
|
||||
|
||||
if (file_exists($xml_file))
|
||||
{
|
||||
return $xml_file;
|
||||
}
|
||||
|
||||
return '';
|
||||
}
|
||||
|
||||
private static function publishExtensions()
|
||||
{
|
||||
// ignore if this is an update of Conditions
|
||||
if (static::$package_name == 'conditions' && static::$previous_version)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
$db = JFactory::getDbo();
|
||||
|
||||
$query = $db->getQuery(true)
|
||||
->update('#__extensions')
|
||||
->set($db->quoteName('enabled') . ' = 1')
|
||||
->where($db->quoteName('element') . ' IN ('
|
||||
. $db->quote(static::$package_name)
|
||||
. ', ' . $db->quote('com_' . static::$package_name)
|
||||
. ')'
|
||||
);
|
||||
|
||||
$db->setQuery($query);
|
||||
$db->execute();
|
||||
}
|
||||
}
|
||||
}
|
||||
1269
administrator/manifests/packages/sourcerer/script.install.php
Normal file
1269
administrator/manifests/packages/sourcerer/script.install.php
Normal file
File diff suppressed because it is too large
Load Diff
1280
administrator/manifests/packages/tabsaccordions/script.install.php
Normal file
1280
administrator/manifests/packages/tabsaccordions/script.install.php
Normal file
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user