diff --git a/.devcontainer/Dockerfile b/.devcontainer/Dockerfile index 3e71214f8c8db..74219c0491ac1 100644 --- a/.devcontainer/Dockerfile +++ b/.devcontainer/Dockerfile @@ -1,5 +1,5 @@ -# Start from the official PHP 8.2 image with Apache -FROM php:8.2-apache-bookworm +# Start from the official PHP 8.3 image with Apache +FROM php:8.3-apache-bookworm # Install system dependencies, Node.js, Composer, and Cypress dependencies RUN apt-get update && apt-get install -y \ diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 23b9cd69e4f8f..71bdeb849cb4e 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -116,7 +116,7 @@ jobs: needs: [code-style-php] strategy: matrix: - php_version: ['8.1', '8.2', '8.3', '8.4'] + php_version: ['8.3', '8.4'] steps: - uses: actions/checkout@v4 - uses: actions/cache/restore@v4 @@ -133,7 +133,7 @@ jobs: needs: [code-style-php] strategy: matrix: - php_version: ['8.1', '8.2', '8.3', '8.4'] + php_version: ['8.3', '8.4'] config: ['phpunit.xml.dist', 'phpunit-pgsql.xml.dist'] steps: - uses: actions/checkout@v4 @@ -174,7 +174,7 @@ jobs: needs: [code-style-php] strategy: matrix: - php_version: ['8.1', '8.2', '8.3', '8.4'] + php_version: ['8.3', '8.4'] steps: - uses: actions/checkout@v4 - uses: actions/cache/restore@v4 @@ -200,7 +200,7 @@ jobs: needs: [code-style-php] strategy: matrix: - php_version: ['8.1', '8.2', '8.3', '8.4'] + php_version: ['8.3', '8.4'] steps: - uses: actions/checkout@v4 - uses: actions/cache/restore@v4 @@ -270,11 +270,11 @@ jobs: test_group: cmysqlmax db_engine: mysqli db_host: mysql - - php_version: '8.1' + - php_version: '8.3' test_group: cmysql db_engine: mysqli db_host: mysql - - php_version: '8.1' + - php_version: '8.3' test_group: cpostgres db_engine: pgsql db_host: postgres diff --git a/.github/workflows/typos.toml b/.github/workflows/typos.toml index ae11af70207e0..f996eca9517a0 100644 --- a/.github/workflows/typos.toml +++ b/.github/workflows/typos.toml @@ -6,10 +6,10 @@ [files] extend-exclude = [ "/templates/system/*.html", - "/administrator/components/com_admin/sql/*", "/build/media_source/vendor/tinymce/langs/*", "/installation/language/*", - "includes/*.html", + "!/installation/language/en-GB/", + "/includes/*.html", "/plugins/sampledata/testing/*", ] @@ -40,9 +40,3 @@ supercedes="supercedes" # Valid spelling rejected https://github.com/crate-c ue="ue" # selector in queries vertexes="vertexes" # Valid spelling waiting fix https://github.com/crate-ci/typos/issues/1150 wheres="wheres" # $wheres in modules\mod_related_items\src\Helper\RelatedItemsHelper.php - -# deprecated strings can be removed in 6.0 -configurated="configurated" -discernable="discernable" -hilight="hilight" -mis="mis" diff --git a/.gitignore b/.gitignore index b936fdbaa9b6e..15a8ef7215081 100644 --- a/.gitignore +++ b/.gitignore @@ -8,6 +8,9 @@ .docker /docker-compose.yml /nbproject +/.devcontainer +/.github +/.vscode # Local System Files (i.e. cache, logs, etc.) /administrator/cache diff --git a/README.md b/README.md index 1fa2cde855995..69c10113c1f93 100644 --- a/README.md +++ b/README.md @@ -1,19 +1,22 @@ Joomla! CMS™ ==================== +The Joomla! 6.0 branch is under heavy development and not all links in this document are available yet +------------------------------------------------------------------------------------------------------ + Build Status ------------ | Actions | PHP | Node | npm | |-------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------|--------------------------------------------------------------------------------------|----------------------------------------------------------------------------------| -| [![Build Status](https://github.com/joomla/joomla-cms/actions/workflows/ci.yml/badge.svg?branch=5.4-dev)](https://github.com/joomla/joomla-cms) | [![PHP](https://img.shields.io/badge/PHP-V8.1.0-green)](https://www.php.net/) | [![node-lts](https://img.shields.io/badge/Node-V20.0-green)](https://nodejs.org/en/) | [![npm](https://img.shields.io/badge/npm-v10.1.0-green)](https://nodejs.org/en/) | +| [![Build Status](https://github.com/joomla/joomla-cms/actions/workflows/ci.yml/badge.svg?branch=6.0-dev)](https://github.com/joomla/joomla-cms) | [![PHP](https://img.shields.io/badge/PHP-V8.3.0-green)](https://www.php.net/) | [![node-lts](https://img.shields.io/badge/Node-V20.0-green)](https://nodejs.org/en/) | [![npm](https://img.shields.io/badge/npm-v10.1.0-green)](https://nodejs.org/en/) | Overview --------------------- -* This is the source of Joomla! 5.x. +* This is the source of Joomla! 6.x. * Joomla's [Official website](https://www.joomla.org). -* Joomla! 5.4 [version history](https://docs.joomla.org/Special:MyLanguage/Joomla_5.4_version_history). -* Detailed changes are in the [changelog](https://github.com/joomla/joomla-cms/commits/5.4-dev). +* Joomla! 6.0 [version history](https://docs.joomla.org/Special:MyLanguage/Joomla_6.0_version_history). +* Detailed changes are in the [changelog](https://github.com/joomla/joomla-cms/commits/6.0-dev). What is Joomla? --------------------- @@ -46,9 +49,9 @@ git clone https://github.com/joomla/joomla-cms.git ```bash cd joomla-cms ``` -- Go to the 5.4-dev branch: +- Go to the 6.0-dev branch: ```bash -git checkout 5.4-dev +git checkout 6.0-dev ``` - Install all the needed composer packages: ```bash diff --git a/README.txt b/README.txt index 83358afc09258..fd4764abee23a 100644 --- a/README.txt +++ b/README.txt @@ -1,10 +1,13 @@ Joomla! CMS™ +The Joomla! 6.0 branch is under heavy development and not all links in this document are available yet +------------------------------------------------------------------------------------------------------ + 1- Overview - * This is a Joomla! 5.x installation/upgrade package. + * This is a Joomla! 6.x installation/upgrade package. * Joomla! Official site: https://www.joomla.org - * Joomla! 5.4 version history - https://docs.joomla.org/Special:MyLanguage/Joomla_5.4_version_history - * Detailed changes in the Changelog: https://github.com/joomla/joomla-cms/commits/5.4-dev + * Joomla! 6.0 version history - https://docs.joomla.org/Special:MyLanguage/Joomla_6.0_version_history + * Detailed changes in the Changelog: https://github.com/joomla/joomla-cms/commits/6.0-dev 2- What is Joomla? * Joomla! is a Content Management System (CMS) which enables you to build websites and powerful online applications. @@ -20,10 +23,10 @@ Joomla! CMS™ 4- How to find a Joomla! translation? * Repository of accredited language packs: https://downloads.joomla.org/language-packs * You can also add languages directly to your website via your Joomla! administration panel: https://docs.joomla.org/Special:MyLanguage/J5.x:Setup_a_Multilingual_Site/Installing_New_Language - * Learn how to setup a Multilingual Joomla! Site: https://docs.joomla.org/Special:MyLanguage/J5.x:Setup_a_Multilingual_Site + * Learn how to setup a Multilingual Joomla! Site: https://docs.joomla.org/Special:MyLanguage/J6.x:Setup_a_Multilingual_Site 5- Learn Joomla! - * Read Getting Started with Joomla to find out the basics: https://docs.joomla.org/Special:MyLanguage/J5.x:Getting_Started_with_Joomla! + * Read Getting Started with Joomla to find out the basics: https://docs.joomla.org/Special:MyLanguage/J6.x:Getting_Started_with_Joomla! * Before installing, read the beginners guide: https://docs.joomla.org/Special:MyLanguage/Portal:Beginners 6- What are the benefits of Joomla? @@ -54,9 +57,10 @@ Joomla! CMS™ * Post questions at our forums: https://forum.joomla.org * Joomla! Resources Directory (JRD): https://community.joomla.org/service-providers-directory/ -11- Do you already have a Joomla! site that's not built with Joomla! 5.x ? - * What's new in Joomla! 5.x: https://www.joomla.org/5 - * What are the main differences between 4.x and 5.x? https://docs.joomla.org/Special:MyLanguage/What_are_the_major_differences_between_Joomla!_4.x_and_5.x +11- Do you already have a Joomla! site that's not built with Joomla! 6.x ? + * What's new in Joomla! 6.x: https://www.joomla.org/6 + * What are the main differences between 5.x and 6.x? https://docs.joomla.org/Special:MyLanguage/What_are_the_major_differences_between_Joomla!_5.x_and_6.x + * How to migrate from 5.x to 6.x? Tutorial: https://docs.joomla.org/Special:MyLanguage/Joomla_5.x_to_6.x_Step_by_Step_Migration * How to migrate from 4.x to 5.x? Tutorial: https://docs.joomla.org/Special:MyLanguage/Joomla_4.x_to_5.x_Step_by_Step_Migration * How to migrate from 3.x to 4.x? Tutorial: https://docs.joomla.org/Special:MyLanguage/Joomla_3.x_to_4.x_Step_by_Step_Migration * How to migrate from 2.5.x to 3.x? Tutorial: https://docs.joomla.org/Special:MyLanguage/Joomla_2.5_to_3.x_Step_by_Step_Migration diff --git a/administrator/components/com_actionlogs/src/Controller/ActionlogsController.php b/administrator/components/com_actionlogs/src/Controller/ActionlogsController.php index 1b6bc1abf7c45..6e37e8d828ad8 100644 --- a/administrator/components/com_actionlogs/src/Controller/ActionlogsController.php +++ b/administrator/components/com_actionlogs/src/Controller/ActionlogsController.php @@ -14,13 +14,13 @@ use Joomla\CMS\Component\ComponentHelper; use Joomla\CMS\Date\Date; use Joomla\CMS\Event\ActionLog\AfterLogExportEvent; -use Joomla\CMS\Input\Input; use Joomla\CMS\Language\Text; use Joomla\CMS\MVC\Controller\AdminController; use Joomla\CMS\MVC\Factory\MVCFactoryInterface; use Joomla\CMS\Router\Route; use Joomla\Component\Actionlogs\Administrator\Helper\ActionlogsHelper; use Joomla\Component\Actionlogs\Administrator\Model\ActionlogsModel; +use Joomla\Input\Input; use Joomla\Utilities\ArrayHelper; // phpcs:disable PSR1.Files.SideEffects @@ -38,11 +38,11 @@ class ActionlogsController extends AdminController * Constructor. * * @param array $config An optional associative array of configuration settings. - * Recognized key values include 'name', 'default_task', 'model_path', and - * 'view_path' (this list is not meant to be comprehensive). + * Recognized key values include 'name', 'default_task', 'model_path', and + * 'view_path' (this list is not meant to be comprehensive). * @param ?MVCFactoryInterface $factory The factory. - * @param CMSApplication $app The Application for the dispatcher - * @param Input $input Input + * @param ?CMSApplication $app The Application for the dispatcher + * @param ?Input $input Input * * @since 3.9.0 * @@ -110,7 +110,7 @@ public function exportLogs() $output = fopen("php://output", "w"); foreach ($rows as $row) { - fputcsv($output, $row, $csvDelimiter); + fputcsv($output, $row, $csvDelimiter, escape: ""); } fclose($output); diff --git a/administrator/components/com_actionlogs/src/Field/ExtensionField.php b/administrator/components/com_actionlogs/src/Field/ExtensionField.php index 49ec4a0a6d123..63220ade7e0b9 100644 --- a/administrator/components/com_actionlogs/src/Field/ExtensionField.php +++ b/administrator/components/com_actionlogs/src/Field/ExtensionField.php @@ -44,7 +44,7 @@ class ExtensionField extends ListField public function getOptions() { $db = $this->getDatabase(); - $query = $db->getQuery(true) + $query = $db->createQuery() ->select('DISTINCT ' . $db->quoteName('extension')) ->from($db->quoteName('#__action_logs')) ->order($db->quoteName('extension')); diff --git a/administrator/components/com_actionlogs/src/Field/LogcreatorField.php b/administrator/components/com_actionlogs/src/Field/LogcreatorField.php index d7d5c516dba87..0925ddbc108a0 100644 --- a/administrator/components/com_actionlogs/src/Field/LogcreatorField.php +++ b/administrator/components/com_actionlogs/src/Field/LogcreatorField.php @@ -59,7 +59,7 @@ protected function getOptions() $db = $this->getDatabase(); // Construct the query - $query = $db->getQuery(true) + $query = $db->createQuery() ->select($db->quoteName('u.id', 'value')) ->select($db->quoteName('u.username', 'text')) ->from($db->quoteName('#__users', 'u')) diff --git a/administrator/components/com_actionlogs/src/Field/LogtypeField.php b/administrator/components/com_actionlogs/src/Field/LogtypeField.php index 6aae799f0c2b2..ba2eb4569b152 100644 --- a/administrator/components/com_actionlogs/src/Field/LogtypeField.php +++ b/administrator/components/com_actionlogs/src/Field/LogtypeField.php @@ -45,7 +45,7 @@ class LogtypeField extends ListField public function getOptions() { $db = $this->getDatabase(); - $query = $db->getQuery(true) + $query = $db->createQuery() ->select($db->quoteName('extension')) ->from($db->quoteName('#__action_logs_extensions')); diff --git a/administrator/components/com_actionlogs/src/Field/PlugininfoField.php b/administrator/components/com_actionlogs/src/Field/PlugininfoField.php index b1c3ac45f3a81..2b62df3e5b8bd 100644 --- a/administrator/components/com_actionlogs/src/Field/PlugininfoField.php +++ b/administrator/components/com_actionlogs/src/Field/PlugininfoField.php @@ -44,7 +44,7 @@ class PlugininfoField extends FormField protected function getInput() { $db = $this->getDatabase(); - $query = $db->getQuery(true) + $query = $db->createQuery() ->select($db->quoteName('extension_id')) ->from($db->quoteName('#__extensions')) ->where($db->quoteName('folder') . ' = ' . $db->quote('actionlog')) diff --git a/administrator/components/com_actionlogs/src/Field/UserlogtypeField.php b/administrator/components/com_actionlogs/src/Field/UserlogtypeField.php index c821e5fb67a4e..4849e0379dccd 100644 --- a/administrator/components/com_actionlogs/src/Field/UserlogtypeField.php +++ b/administrator/components/com_actionlogs/src/Field/UserlogtypeField.php @@ -45,7 +45,7 @@ public function getOptions() { $db = $this->getDatabase(); $user = Factory::getApplication()->getIdentity(); - $query = $db->getQuery(true) + $query = $db->createQuery() ->select($db->quoteName('extensions')) ->from($db->quoteName('#__action_logs_users')) ->where($db->quoteName('user_id') . ' = :userid') diff --git a/administrator/components/com_actionlogs/src/Helper/ActionlogsHelper.php b/administrator/components/com_actionlogs/src/Helper/ActionlogsHelper.php index 98d884a22dc7a..c4716bde87ccb 100644 --- a/administrator/components/com_actionlogs/src/Helper/ActionlogsHelper.php +++ b/administrator/components/com_actionlogs/src/Helper/ActionlogsHelper.php @@ -13,7 +13,6 @@ use Joomla\CMS\Date\Date; use Joomla\CMS\Factory; use Joomla\CMS\Language\Text; -use Joomla\CMS\Object\CMSObject; use Joomla\CMS\Router\Route; use Joomla\Filesystem\Path; use Joomla\String\StringHelper; @@ -145,26 +144,6 @@ public static function loadTranslationFiles($extension) $cache[$extension] = true; } - /** - * Get parameters to be - * - * @param string $context The context of the content - * - * @return mixed An object contains content type parameters, or null if not found - * - * @since 3.9.0 - * - * @deprecated 4.3 will be removed in 6.0 - * Use the action log config model instead - * Example: Factory::getApplication()->bootComponent('actionlogs')->getMVCFactory() - * ->createModel('ActionlogConfig', 'Administrator')->getLogContentTypeParams($context); - */ - public static function getLogContentTypeParams($context) - { - return Factory::getApplication()->bootComponent('actionlogs')->getMVCFactory() - ->createModel('ActionlogConfig', 'Administrator')->getLogContentTypeParams($context); - } - /** * Get human readable log message for a User Action Log * @@ -232,7 +211,7 @@ public static function getHumanReadableLogMessage($log, $generateLinks = true) * @param string $contentType * @param integer $id * @param string $urlVar - * @param CMSObject $object + * @param \stdClass $object * * @return string Link to the content item * @@ -284,7 +263,7 @@ public static function loadActionLogPluginsLanguage() $db = Factory::getDbo(); // Get all (both enabled and disabled) actionlog plugins - $query = $db->getQuery(true) + $query = $db->createQuery() ->select( $db->quoteName( [ diff --git a/administrator/components/com_actionlogs/src/Model/ActionlogConfigModel.php b/administrator/components/com_actionlogs/src/Model/ActionlogConfigModel.php index 9ff7c98f3dafb..f772f5f29659a 100644 --- a/administrator/components/com_actionlogs/src/Model/ActionlogConfigModel.php +++ b/administrator/components/com_actionlogs/src/Model/ActionlogConfigModel.php @@ -35,7 +35,7 @@ class ActionlogConfigModel extends BaseDatabaseModel public function getLogContentTypeParams(string $context): ?\stdClass { $db = $this->getDatabase(); - $query = $db->getQuery(true) + $query = $db->createQuery() ->select('a.*') ->from($db->quoteName('#__action_log_config', 'a')) ->where($db->quoteName('a.type_alias') . ' = :context') diff --git a/administrator/components/com_actionlogs/src/Model/ActionlogModel.php b/administrator/components/com_actionlogs/src/Model/ActionlogModel.php index 0f7e5dafa86a3..c54c58c7f139a 100644 --- a/administrator/components/com_actionlogs/src/Model/ActionlogModel.php +++ b/administrator/components/com_actionlogs/src/Model/ActionlogModel.php @@ -123,7 +123,7 @@ protected function sendNotificationEmails($messages, $username, $context) $app = Factory::getApplication(); $lang = $app->getLanguage(); $db = $this->getDatabase(); - $query = $db->getQuery(true); + $query = $db->createQuery(); $query ->select($db->quoteName(['u.email', 'l.extensions'])) diff --git a/administrator/components/com_actionlogs/src/Model/ActionlogsModel.php b/administrator/components/com_actionlogs/src/Model/ActionlogsModel.php index ca6c2a8289912..d02610f132f7b 100644 --- a/administrator/components/com_actionlogs/src/Model/ActionlogsModel.php +++ b/administrator/components/com_actionlogs/src/Model/ActionlogsModel.php @@ -90,7 +90,7 @@ protected function populateState($ordering = 'a.id', $direction = 'desc') protected function getListQuery() { $db = $this->getDatabase(); - $query = $db->getQuery(true) + $query = $db->createQuery() ->select('a.*') ->select($db->quoteName('u.name')) ->from($db->quoteName('#__action_logs', 'a')) @@ -212,7 +212,7 @@ private function buildDateRange($range) $dStart->setTime(0, 0, 0); // Now change the timezone back to UTC. - $tz = new \DateTimeZone('GMT'); + $tz = new \DateTimeZone('UTC'); $dStart->setTimezone($tz); break; } @@ -234,7 +234,7 @@ public function getLogsForItem($extension, $itemId) { $itemId = (int) $itemId; $db = $this->getDatabase(); - $query = $db->getQuery(true) + $query = $db->createQuery() ->select('a.*') ->select($db->quoteName('u.name')) ->from($db->quoteName('#__action_logs', 'a')) @@ -307,7 +307,7 @@ public function getLogDataAsIterator($pks = null) private function getLogDataQuery($pks = null) { $db = $this->getDatabase(); - $query = $db->getQuery(true) + $query = $db->createQuery() ->select('a.*') ->select($db->quoteName('u.name')) ->from($db->quoteName('#__action_logs', 'a')) @@ -334,7 +334,7 @@ public function delete(&$pks) { $keys = ArrayHelper::toInteger($pks); $db = $this->getDatabase(); - $query = $db->getQuery(true) + $query = $db->createQuery() ->delete($db->quoteName('#__action_logs')) ->whereIn($db->quoteName('id'), $keys); $db->setQuery($query); diff --git a/administrator/components/com_actionlogs/src/View/Actionlogs/HtmlView.php b/administrator/components/com_actionlogs/src/View/Actionlogs/HtmlView.php index 6e20d3a76dac2..0e1b817fe69ed 100644 --- a/administrator/components/com_actionlogs/src/View/Actionlogs/HtmlView.php +++ b/administrator/components/com_actionlogs/src/View/Actionlogs/HtmlView.php @@ -11,14 +11,10 @@ namespace Joomla\Component\Actionlogs\Administrator\View\Actionlogs; use Joomla\CMS\Component\ComponentHelper; -use Joomla\CMS\Form\Form; use Joomla\CMS\Language\Text; -use Joomla\CMS\MVC\View\GenericDataException; -use Joomla\CMS\MVC\View\HtmlView as BaseHtmlView; -use Joomla\CMS\Pagination\Pagination; +use Joomla\CMS\MVC\View\ListView; use Joomla\CMS\Toolbar\ToolbarHelper; use Joomla\Component\Actionlogs\Administrator\Helper\ActionlogsHelper; -use Joomla\Component\Actionlogs\Administrator\Model\ActionlogsModel; // phpcs:disable PSR1.Files.SideEffects \defined('_JEXEC') or die; @@ -29,48 +25,8 @@ * * @since 3.9.0 */ -class HtmlView extends BaseHtmlView +class HtmlView extends ListView { - /** - * An array of items. - * - * @var array - * @since 3.9.0 - */ - protected $items; - - /** - * The model state - * - * @var array - * @since 3.9.0 - */ - protected $state; - - /** - * The pagination object - * - * @var Pagination - * @since 3.9.0 - */ - protected $pagination; - - /** - * Form object for search filters - * - * @var Form - * @since 3.9.0 - */ - public $filterForm; - - /** - * The active search filters - * - * @var array - * @since 3.9.0 - */ - public $activeFilters; - /** * Setting if the IP column should be shown * @@ -88,39 +44,41 @@ class HtmlView extends BaseHtmlView protected $dateRelative = false; /** - * Method to display the view. + * Constructor * - * @param string $tpl A template file to load. [optional] + * @param array $config An optional associative array of configuration settings. * - * @return void + * @since 6.0.0 + */ + public function __construct(array $config) + { + if (empty($config['option'])) { + $config['option'] = 'com_actionlogs'; + } + + $config['toolbar_title'] = 'COM_ACTIONLOGS_MANAGER_USERLOGS'; + $config['toolbar_icon'] = 'list-2 actionlog'; + + parent::__construct($config); + } + + /** + * Prepare view data * - * @since 3.9.0 + * @return void * - * @throws \Exception + * @since 6.0.0 */ - public function display($tpl = null) + protected function initializeView() { - /** @var ActionlogsModel $model */ - $model = $this->getModel(); - $this->items = $model->getItems(); - $this->state = $model->getState(); - $this->pagination = $model->getPagination(); - $this->filterForm = $model->getFilterForm(); - $this->activeFilters = $model->getActiveFilters(); + parent::initializeView(); + $params = ComponentHelper::getParams('com_actionlogs'); $this->showIpColumn = (bool) $params->get('ip_logging', 0); $this->dateRelative = (bool) $params->get('date_relative', 1); - if (\count($errors = $model->getErrors())) { - throw new GenericDataException(implode("\n", $errors), 500); - } - - $this->addToolbar(); - // Load all actionlog plugins language files ActionlogsHelper::loadActionLogPluginsLanguage(); - - parent::display($tpl); } /** @@ -133,6 +91,7 @@ public function display($tpl = null) protected function addToolbar() { ToolbarHelper::title(Text::_('COM_ACTIONLOGS_MANAGER_USERLOGS'), 'icon-list-2'); + $toolbar = $this->getDocument()->getToolbar(); $toolbar->standardButton('download', 'COM_ACTIONLOGS_EXPORT_CSV', 'actionlogs.exportSelectedLogs') diff --git a/administrator/components/com_actionlogs/tmpl/actionlogs/default.php b/administrator/components/com_actionlogs/tmpl/actionlogs/default.php index e0f9d0bf806b1..3261fb5568df4 100644 --- a/administrator/components/com_actionlogs/tmpl/actionlogs/default.php +++ b/administrator/components/com_actionlogs/tmpl/actionlogs/default.php @@ -15,9 +15,8 @@ use Joomla\CMS\Layout\LayoutHelper; use Joomla\CMS\Router\Route; use Joomla\Component\Actionlogs\Administrator\Helper\ActionlogsHelper; -use Joomla\Component\Actionlogs\Administrator\View\Actionlogs\HtmlView; -/** @var HtmlView $this */ +/** @var \Joomla\Component\Actionlogs\Administrator\View\Actionlogs\HtmlView $this */ $listOrder = $this->escape($this->state->get('list.ordering')); $listDirn = $this->escape($this->state->get('list.direction')); @@ -118,9 +117,8 @@ pagination->getListFooter(); ?> - - - + + filterForm->renderControlFields(); ?>
diff --git a/administrator/components/com_admin/postinstall/languageaccess340.php b/administrator/components/com_admin/postinstall/languageaccess340.php index 32ec165e056c0..d60c2b6f38864 100644 --- a/administrator/components/com_admin/postinstall/languageaccess340.php +++ b/administrator/components/com_admin/postinstall/languageaccess340.php @@ -30,7 +30,7 @@ function admin_postinstall_languageaccess340_condition() { $db = Factory::getDbo(); - $query = $db->getQuery(true) + $query = $db->createQuery() ->select($db->quoteName('access')) ->from($db->quoteName('#__languages')) ->where($db->quoteName('access') . ' = ' . $db->quote('0')); diff --git a/administrator/components/com_admin/script.php b/administrator/components/com_admin/script.php index da870c819cbf9..bee02a22c712f 100644 --- a/administrator/components/com_admin/script.php +++ b/administrator/components/com_admin/script.php @@ -10,19 +10,15 @@ * @phpcs:disable PSR1.Classes.ClassDeclaration.MissingNamespace */ -use Joomla\CMS\Application\ApplicationHelper; -use Joomla\CMS\Component\ComponentHelper; use Joomla\CMS\Extension\ExtensionHelper; use Joomla\CMS\Factory; use Joomla\CMS\Installer\Installer; use Joomla\CMS\Language\Text; use Joomla\CMS\Log\Log; -use Joomla\CMS\Table\Table; -use Joomla\CMS\Uri\Uri; +use Joomla\CMS\Table\Asset; use Joomla\Database\ParameterType; use Joomla\Filesystem\File; use Joomla\Filesystem\Folder; -use Joomla\Registry\Registry; // phpcs:disable PSR1.Files.SideEffects \defined('_JEXEC') or die; @@ -174,7 +170,7 @@ protected function clearStatsCache() try { // Get the params for the stats plugin $params = $db->setQuery( - $db->getQuery(true) + $db->createQuery() ->select($db->quoteName('params')) ->from($db->quoteName('#__extensions')) ->where($db->quoteName('type') . ' = ' . $db->quote('plugin')) @@ -196,7 +192,7 @@ protected function clearStatsCache() $params = json_encode($params); - $query = $db->getQuery(true) + $query = $db->createQuery() ->update($db->quoteName('#__extensions')) ->set($db->quoteName('params') . ' = ' . $db->quote($params)) ->where($db->quoteName('type') . ' = ' . $db->quote('plugin')) @@ -264,7 +260,7 @@ protected function updateDatabaseMysql() /** * Uninstall extensions and optionally migrate their parameters when - * updating from a version older than 5.0.1. + * updating from a version older than 6.0.0. * * @return void * @@ -272,8 +268,8 @@ protected function updateDatabaseMysql() */ protected function uninstallExtensions() { - // Don't uninstall extensions when not updating from a version older than 5.0.1 - if (empty($this->fromVersion) || version_compare($this->fromVersion, '5.0.1', 'ge')) { + // Don't uninstall extensions when not updating from a version older than 6.0.0 + if (empty($this->fromVersion) || version_compare($this->fromVersion, '6.0.0', 'ge')) { return true; } @@ -287,20 +283,19 @@ protected function uninstallExtensions() * 'client_id' => Field `client_id` in the `#__extensions` table * 'pre_function' => Name of an optional migration function to be called before * uninstalling, `null` if not used. + * Examples: + * ['type' => 'plugin', 'element' => 'demotasks', 'folder' => 'task', 'client_id' => 0, 'pre_function' => null], + * ['type' => 'plugin', 'element' => 'compat', 'folder' => 'system', 'client_id' => 0, 'pre_function' => 'migrateCompatPlugin'], */ - ['type' => 'plugin', 'element' => 'demotasks', 'folder' => 'task', 'client_id' => 0, 'pre_function' => null], - ['type' => 'plugin', 'element' => 'compat', 'folder' => 'system', 'client_id' => 0, 'pre_function' => 'migrateCompatPlugin'], - ['type' => 'plugin', 'element' => 'logrotation', 'folder' => 'system', 'client_id' => 0, 'pre_function' => 'migrateLogRotationPlugin'], - ['type' => 'plugin', 'element' => 'recaptcha', 'folder' => 'captcha', 'client_id' => 0, 'pre_function' => null], - ['type' => 'plugin', 'element' => 'sessiongc', 'folder' => 'system', 'client_id' => 0, 'pre_function' => 'migrateSessionGCPlugin'], - ['type' => 'plugin', 'element' => 'updatenotification', 'folder' => 'system', 'client_id' => 0, 'pre_function' => 'migrateUpdatenotificationPlugin'], + // Uninstall the old joomla 5 compatibility plugin + ['type' => 'plugin', 'element' => 'compat', 'folder' => 'behaviour', 'client_id' => 0, 'pre_function' => null], ]; $db = Factory::getDbo(); foreach ($extensions as $extension) { $row = $db->setQuery( - $db->getQuery(true) + $db->createQuery() ->select('*') ->from($db->quoteName('#__extensions')) ->where($db->quoteName('type') . ' = ' . $db->quote($extension['type'])) @@ -324,7 +319,7 @@ protected function uninstallExtensions() // Unlock and unprotect the plugin so we can uninstall it $db->setQuery( - $db->getQuery(true) + $db->createQuery() ->update($db->quoteName('#__extensions')) ->set($db->quoteName('locked') . ' = 0') ->set($db->quoteName('protected') . ' = 0') @@ -345,162 +340,6 @@ protected function uninstallExtensions() } } - /** - * Migrate plugin parameters of obsolete compat system plugin to compat behaviour plugin - * - * @param \stdClass $rowOld Object with the obsolete plugin's record in the `#__extensions` table - * - * @return void - * - * @since 5.0.0 - */ - private function migrateCompatPlugin($rowOld) - { - $db = Factory::getDbo(); - - $db->setQuery( - $db->getQuery(true) - ->update($db->quoteName('#__extensions')) - ->set($db->quoteName('enabled') . ' = :enabled') - ->set($db->quoteName('params') . ' = :params') - ->where($db->quoteName('type') . ' = ' . $db->quote('plugin')) - ->where($db->quoteName('element') . ' = ' . $db->quote('compat')) - ->where($db->quoteName('folder') . ' = ' . $db->quote('behaviour')) - ->where($db->quoteName('client_id') . ' = 0') - ->bind(':enabled', $rowOld->enabled, ParameterType::INTEGER) - ->bind(':params', $rowOld->params) - )->execute(); - } - - /** - * This method is for migration for old logrotation system plugin migration to task. - * - * @param \stdClass $data Object with the extension's record in the `#__extensions` table - * - * @return void - * - * @since 5.0.0 - */ - private function migrateLogRotationPlugin($data) - { - if (!$data->enabled) { - return; - } - - /** @var \Joomla\Component\Scheduler\Administrator\Extension\SchedulerComponent $component */ - $component = Factory::getApplication()->bootComponent('com_scheduler'); - - /** @var \Joomla\Component\Scheduler\Administrator\Model\TaskModel $model */ - $model = $component->getMVCFactory()->createModel('Task', 'Administrator', ['ignore_request' => true]); - - // Get the timeout, as configured in plg_system_logrotation - $params = new Registry($data->params); - $cachetimeout = (int) $params->get('cachetimeout', 30); - $lastrun = (int) $params->get('lastrun', time()); - - $task = [ - 'title' => 'Rotate Logs', - 'type' => 'rotation.logs', - 'execution_rules' => [ - 'rule-type' => 'interval-days', - 'interval-days' => $cachetimeout, - 'exec-time' => gmdate('H:i', $lastrun), - 'exec-day' => gmdate('d'), - ], - 'state' => 1, - 'params' => [ - 'logstokeep' => $params->get('logstokeep', 1), - ], - ]; - $model->save($task); - } - - /** - * This method is for migration for old updatenotification system plugin migration to task. - * - * @param \stdClass $data Object with the extension's record in the `#__extensions` table - * - * @return void - * - * @since 5.0.0 - */ - private function migrateSessionGCPlugin($data) - { - if (!$data->enabled) { - return; - } - - // Get the plugin parameters - $params = new Registry($data->params); - - /** @var \Joomla\Component\Scheduler\Administrator\Extension\SchedulerComponent $component */ - $component = Factory::getApplication()->bootComponent('com_scheduler'); - - /** @var \Joomla\Component\Scheduler\Administrator\Model\TaskModel $model */ - $model = $component->getMVCFactory()->createModel('Task', 'Administrator', ['ignore_request' => true]); - $task = [ - 'title' => 'Session GC', - 'type' => 'session.gc', - 'execution_rules' => [ - 'rule-type' => 'interval-hours', - 'interval-hours' => 24, - 'exec-time' => gmdate('H:i'), - 'exec-day' => gmdate('d'), - ], - 'state' => 1, - 'params' => [ - 'enable_session_gc' => $params->get('enable_session_gc', 1), - 'enable_session_metadata_gc' => $params->get('enable_session_metadata_gc', 1), - ], - ]; - $model->save($task); - } - - /** - * This method is for migration for old updatenotification system plugin migration to task. - * - * @param \stdClass $data Object with the extension's record in the `#__extensions` table - * - * @return void - * - * @since 5.0.0 - */ - private function migrateUpdatenotificationPlugin($data) - { - if (!$data->enabled) { - return; - } - - // Get the timeout for Joomla! updates, as configured in com_installer's component parameters - $component = ComponentHelper::getComponent('com_installer'); - $paramsc = $component->getParams(); - $cachetimeout = (int) $paramsc->get('cachetimeout', 6); - $params = new Registry($data->params); - $lastrun = (int) $params->get('lastrun', time()); - - /** @var \Joomla\Component\Scheduler\Administrator\Extension\SchedulerComponent $component */ - $component = Factory::getApplication()->bootComponent('com_scheduler'); - - /** @var \Joomla\Component\Scheduler\Administrator\Model\TaskModel $model */ - $model = $component->getMVCFactory()->createModel('Task', 'Administrator', ['ignore_request' => true]); - $task = [ - 'title' => 'Update Notification', - 'type' => 'update.notification', - 'execution_rules' => [ - 'rule-type' => 'interval-hours', - 'interval-hours' => $cachetimeout, - 'exec-time' => gmdate('H:i', $lastrun), - 'exec-day' => gmdate('d'), - ], - 'state' => 1, - 'params' => [ - 'email' => $params->get('email', ''), - 'language_override' => $params->get('language_override', ''), - ], - ]; - $model->save($task); - } - /** * Update the manifest caches * @@ -512,7 +351,7 @@ protected function updateManifestCaches() // Attempt to refresh manifest caches $db = Factory::getDbo(); - $query = $db->getQuery(true) + $query = $db->createQuery() ->select('*') ->from('#__extensions'); @@ -575,2206 +414,702 @@ public function deleteUnexistingFiles($dryRun = false, $suppressOutput = false) ]; $files = [ - // From 4.4 to 5.0 - '/administrator/components/com_admin/sql/others/mysql/utf8mb4-conversion.sql', - '/administrator/components/com_admin/sql/others/mysql/utf8mb4-conversion_optional.sql', - '/administrator/components/com_admin/sql/updates/mysql/4.0.0-2018-03-05.sql', - '/administrator/components/com_admin/sql/updates/mysql/4.0.0-2018-05-15.sql', - '/administrator/components/com_admin/sql/updates/mysql/4.0.0-2018-07-19.sql', - '/administrator/components/com_admin/sql/updates/mysql/4.0.0-2018-07-29.sql', - '/administrator/components/com_admin/sql/updates/mysql/4.0.0-2018-08-29.sql', - '/administrator/components/com_admin/sql/updates/mysql/4.0.0-2019-03-09.sql', - '/administrator/components/com_admin/sql/updates/mysql/4.0.0-2019-03-30.sql', - '/administrator/components/com_admin/sql/updates/mysql/4.0.0-2019-04-15.sql', - '/administrator/components/com_admin/sql/updates/mysql/4.0.0-2019-04-22.sql', - '/administrator/components/com_admin/sql/updates/mysql/4.0.0-2019-05-20.sql', - '/administrator/components/com_admin/sql/updates/mysql/4.0.0-2019-06-29.sql', - '/administrator/components/com_admin/sql/updates/mysql/4.0.0-2019-07-13.sql', - '/administrator/components/com_admin/sql/updates/mysql/4.0.0-2019-09-13.sql', - '/administrator/components/com_admin/sql/updates/mysql/4.0.0-2019-09-22.sql', - '/administrator/components/com_admin/sql/updates/mysql/4.0.0-2019-10-06.sql', - '/administrator/components/com_admin/sql/updates/mysql/4.0.0-2019-10-17.sql', - '/administrator/components/com_admin/sql/updates/mysql/4.0.0-2020-02-02.sql', - '/administrator/components/com_admin/sql/updates/mysql/4.0.0-2020-03-10.sql', - '/administrator/components/com_admin/sql/updates/mysql/4.0.0-2020-03-25.sql', - '/administrator/components/com_admin/sql/updates/mysql/4.0.0-2020-05-29.sql', - '/administrator/components/com_admin/sql/updates/mysql/4.0.0-2020-09-27.sql', - '/administrator/components/com_admin/sql/updates/mysql/4.0.0-2020-12-20.sql', - '/administrator/components/com_admin/sql/updates/mysql/4.0.0-2021-04-22.sql', - '/administrator/components/com_admin/sql/updates/mysql/4.0.0-2021-04-27.sql', - '/administrator/components/com_admin/sql/updates/mysql/4.0.0-2021-05-30.sql', - '/administrator/components/com_admin/sql/updates/mysql/4.0.0-2021-06-04.sql', - '/administrator/components/com_admin/sql/updates/mysql/4.0.0-2021-08-13.sql', - '/administrator/components/com_admin/sql/updates/mysql/4.0.0-2021-08-17.sql', - '/administrator/components/com_admin/sql/updates/mysql/4.0.3-2021-09-04.sql', - '/administrator/components/com_admin/sql/updates/mysql/4.0.3-2021-09-05.sql', - '/administrator/components/com_admin/sql/updates/mysql/4.0.6-2021-12-23.sql', - '/administrator/components/com_admin/sql/updates/mysql/4.1.0-2021-11-20.sql', - '/administrator/components/com_admin/sql/updates/mysql/4.1.0-2021-11-28.sql', - '/administrator/components/com_admin/sql/updates/mysql/4.1.0-2021-12-29.sql', - '/administrator/components/com_admin/sql/updates/mysql/4.1.0-2022-01-08.sql', - '/administrator/components/com_admin/sql/updates/mysql/4.1.0-2022-01-19.sql', - '/administrator/components/com_admin/sql/updates/mysql/4.1.0-2022-01-24.sql', - '/administrator/components/com_admin/sql/updates/mysql/4.1.1-2022-02-20.sql', - '/administrator/components/com_admin/sql/updates/mysql/4.1.3-2022-04-07.sql', - '/administrator/components/com_admin/sql/updates/mysql/4.1.3-2022-04-08.sql', - '/administrator/components/com_admin/sql/updates/mysql/4.2.0-2022-05-15.sql', - '/administrator/components/com_admin/sql/updates/mysql/4.2.0-2022-06-15.sql', - '/administrator/components/com_admin/sql/updates/mysql/4.2.0-2022-06-19.sql', - '/administrator/components/com_admin/sql/updates/mysql/4.2.0-2022-06-22.sql', - '/administrator/components/com_admin/sql/updates/mysql/4.2.0-2022-07-07.sql', - '/administrator/components/com_admin/sql/updates/mysql/4.2.1-2022-08-23.sql', - '/administrator/components/com_admin/sql/updates/mysql/4.2.3-2022-09-07.sql', - '/administrator/components/com_admin/sql/updates/mysql/4.2.7-2022-12-29.sql', - '/administrator/components/com_admin/sql/updates/mysql/4.2.9-2023-03-07.sql', - '/administrator/components/com_admin/sql/updates/mysql/4.3.0-2022-09-23.sql', - '/administrator/components/com_admin/sql/updates/mysql/4.3.0-2022-11-06.sql', - '/administrator/components/com_admin/sql/updates/mysql/4.3.0-2023-01-30.sql', - '/administrator/components/com_admin/sql/updates/mysql/4.3.0-2023-02-15.sql', - '/administrator/components/com_admin/sql/updates/mysql/4.3.0-2023-02-25.sql', - '/administrator/components/com_admin/sql/updates/mysql/4.3.0-2023-03-07.sql', - '/administrator/components/com_admin/sql/updates/mysql/4.3.0-2023-03-09.sql', - '/administrator/components/com_admin/sql/updates/mysql/4.3.0-2023-03-10.sql', - '/administrator/components/com_admin/sql/updates/mysql/4.3.0-2023-03-28.sql', - '/administrator/components/com_admin/sql/updates/mysql/4.3.0-2023-03-29.sql', - '/administrator/components/com_admin/sql/updates/mysql/4.3.2-2023-03-31.sql', - '/administrator/components/com_admin/sql/updates/mysql/4.3.2-2023-05-03.sql', - '/administrator/components/com_admin/sql/updates/mysql/4.3.2-2023-05-20.sql', - '/administrator/components/com_admin/sql/updates/mysql/4.4.0-2023-05-08.sql', - '/administrator/components/com_admin/sql/updates/mysql/4.4.0-2023-09-13.sql', - '/administrator/components/com_admin/sql/updates/postgresql/4.0.0-2018-03-05.sql', - '/administrator/components/com_admin/sql/updates/postgresql/4.0.0-2018-05-15.sql', - '/administrator/components/com_admin/sql/updates/postgresql/4.0.0-2018-07-19.sql', - '/administrator/components/com_admin/sql/updates/postgresql/4.0.0-2018-07-29.sql', - '/administrator/components/com_admin/sql/updates/postgresql/4.0.0-2018-08-29.sql', - '/administrator/components/com_admin/sql/updates/postgresql/4.0.0-2019-03-09.sql', - '/administrator/components/com_admin/sql/updates/postgresql/4.0.0-2019-03-30.sql', - '/administrator/components/com_admin/sql/updates/postgresql/4.0.0-2019-04-15.sql', - '/administrator/components/com_admin/sql/updates/postgresql/4.0.0-2019-04-22.sql', - '/administrator/components/com_admin/sql/updates/postgresql/4.0.0-2019-05-20.sql', - '/administrator/components/com_admin/sql/updates/postgresql/4.0.0-2019-06-29.sql', - '/administrator/components/com_admin/sql/updates/postgresql/4.0.0-2019-07-13.sql', - '/administrator/components/com_admin/sql/updates/postgresql/4.0.0-2019-09-13.sql', - '/administrator/components/com_admin/sql/updates/postgresql/4.0.0-2019-09-22.sql', - '/administrator/components/com_admin/sql/updates/postgresql/4.0.0-2019-10-06.sql', - '/administrator/components/com_admin/sql/updates/postgresql/4.0.0-2019-10-17.sql', - '/administrator/components/com_admin/sql/updates/postgresql/4.0.0-2020-02-02.sql', - '/administrator/components/com_admin/sql/updates/postgresql/4.0.0-2020-03-10.sql', - '/administrator/components/com_admin/sql/updates/postgresql/4.0.0-2020-03-25.sql', - '/administrator/components/com_admin/sql/updates/postgresql/4.0.0-2020-05-29.sql', - '/administrator/components/com_admin/sql/updates/postgresql/4.0.0-2020-08-01.sql', - '/administrator/components/com_admin/sql/updates/postgresql/4.0.0-2020-09-27.sql', - '/administrator/components/com_admin/sql/updates/postgresql/4.0.0-2020-12-20.sql', - '/administrator/components/com_admin/sql/updates/postgresql/4.0.0-2021-04-22.sql', - '/administrator/components/com_admin/sql/updates/postgresql/4.0.0-2021-04-27.sql', - '/administrator/components/com_admin/sql/updates/postgresql/4.0.0-2021-05-30.sql', - '/administrator/components/com_admin/sql/updates/postgresql/4.0.0-2021-06-04.sql', - '/administrator/components/com_admin/sql/updates/postgresql/4.0.0-2021-08-13.sql', - '/administrator/components/com_admin/sql/updates/postgresql/4.0.0-2021-08-17.sql', - '/administrator/components/com_admin/sql/updates/postgresql/4.0.3-2021-09-04.sql', - '/administrator/components/com_admin/sql/updates/postgresql/4.0.3-2021-09-05.sql', - '/administrator/components/com_admin/sql/updates/postgresql/4.0.6-2021-12-23.sql', - '/administrator/components/com_admin/sql/updates/postgresql/4.1.0-2021-11-20.sql', - '/administrator/components/com_admin/sql/updates/postgresql/4.1.0-2021-11-28.sql', - '/administrator/components/com_admin/sql/updates/postgresql/4.1.0-2021-12-29.sql', - '/administrator/components/com_admin/sql/updates/postgresql/4.1.0-2022-01-08.sql', - '/administrator/components/com_admin/sql/updates/postgresql/4.1.0-2022-01-19.sql', - '/administrator/components/com_admin/sql/updates/postgresql/4.1.0-2022-01-24.sql', - '/administrator/components/com_admin/sql/updates/postgresql/4.1.1-2022-02-20.sql', - '/administrator/components/com_admin/sql/updates/postgresql/4.1.3-2022-04-07.sql', - '/administrator/components/com_admin/sql/updates/postgresql/4.1.3-2022-04-08.sql', - '/administrator/components/com_admin/sql/updates/postgresql/4.2.0-2022-05-15.sql', - '/administrator/components/com_admin/sql/updates/postgresql/4.2.0-2022-06-19.sql', - '/administrator/components/com_admin/sql/updates/postgresql/4.2.0-2022-06-22.sql', - '/administrator/components/com_admin/sql/updates/postgresql/4.2.0-2022-07-07.sql', - '/administrator/components/com_admin/sql/updates/postgresql/4.2.1-2022-08-23.sql', - '/administrator/components/com_admin/sql/updates/postgresql/4.2.3-2022-09-07.sql', - '/administrator/components/com_admin/sql/updates/postgresql/4.2.7-2022-12-29.sql', - '/administrator/components/com_admin/sql/updates/postgresql/4.2.9-2023-03-07.sql', - '/administrator/components/com_admin/sql/updates/postgresql/4.3.0-2022-09-23.sql', - '/administrator/components/com_admin/sql/updates/postgresql/4.3.0-2022-11-06.sql', - '/administrator/components/com_admin/sql/updates/postgresql/4.3.0-2023-01-30.sql', - '/administrator/components/com_admin/sql/updates/postgresql/4.3.0-2023-02-15.sql', - '/administrator/components/com_admin/sql/updates/postgresql/4.3.0-2023-02-25.sql', - '/administrator/components/com_admin/sql/updates/postgresql/4.3.0-2023-03-07.sql', - '/administrator/components/com_admin/sql/updates/postgresql/4.3.0-2023-03-09.sql', - '/administrator/components/com_admin/sql/updates/postgresql/4.3.0-2023-03-10.sql', - '/administrator/components/com_admin/sql/updates/postgresql/4.3.0-2023-03-28.sql', - '/administrator/components/com_admin/sql/updates/postgresql/4.3.0-2023-03-29.sql', - '/administrator/components/com_admin/sql/updates/postgresql/4.3.2-2023-03-31.sql', - '/administrator/components/com_admin/sql/updates/postgresql/4.3.2-2023-05-03.sql', - '/administrator/components/com_admin/sql/updates/postgresql/4.3.2-2023-05-20.sql', - '/administrator/components/com_admin/sql/updates/postgresql/4.4.0-2023-05-08.sql', - '/administrator/components/com_admin/sql/updates/postgresql/4.4.0-2023-09-13.sql', - '/libraries/src/Schema/ChangeItem/SqlsrvChangeItem.php', - '/libraries/vendor/beberlei/assert/lib/Assert/Assert.php', - '/libraries/vendor/beberlei/assert/lib/Assert/Assertion.php', - '/libraries/vendor/beberlei/assert/lib/Assert/AssertionChain.php', - '/libraries/vendor/beberlei/assert/lib/Assert/AssertionFailedException.php', - '/libraries/vendor/beberlei/assert/lib/Assert/functions.php', - '/libraries/vendor/beberlei/assert/lib/Assert/InvalidArgumentException.php', - '/libraries/vendor/beberlei/assert/lib/Assert/LazyAssertion.php', - '/libraries/vendor/beberlei/assert/lib/Assert/LazyAssertionException.php', - '/libraries/vendor/beberlei/assert/LICENSE', - '/libraries/vendor/google/recaptcha/ARCHITECTURE.md', - '/libraries/vendor/jfcherng/php-color-output/src/helpers.php', - '/libraries/vendor/joomla/filter/PATCHES.txt', - '/libraries/vendor/joomla/ldap/LICENSE', - '/libraries/vendor/joomla/ldap/src/LdapClient.php', - '/libraries/vendor/laminas/laminas-zendframework-bridge/config/replacements.php', - '/libraries/vendor/laminas/laminas-zendframework-bridge/COPYRIGHT.md', - '/libraries/vendor/laminas/laminas-zendframework-bridge/LICENSE.md', - '/libraries/vendor/laminas/laminas-zendframework-bridge/src/autoload.php', - '/libraries/vendor/laminas/laminas-zendframework-bridge/src/Autoloader.php', - '/libraries/vendor/laminas/laminas-zendframework-bridge/src/ConfigPostProcessor.php', - '/libraries/vendor/laminas/laminas-zendframework-bridge/src/Module.php', - '/libraries/vendor/laminas/laminas-zendframework-bridge/src/Replacements.php', - '/libraries/vendor/laminas/laminas-zendframework-bridge/src/RewriteRules.php', - '/libraries/vendor/lcobucci/jwt/compat/class-aliases.php', - '/libraries/vendor/lcobucci/jwt/compat/json-exception-polyfill.php', - '/libraries/vendor/lcobucci/jwt/compat/lcobucci-clock-polyfill.php', - '/libraries/vendor/lcobucci/jwt/src/Claim.php', - '/libraries/vendor/lcobucci/jwt/src/Claim/Basic.php', - '/libraries/vendor/lcobucci/jwt/src/Claim/EqualsTo.php', - '/libraries/vendor/lcobucci/jwt/src/Claim/Factory.php', - '/libraries/vendor/lcobucci/jwt/src/Claim/GreaterOrEqualsTo.php', - '/libraries/vendor/lcobucci/jwt/src/Claim/LesserOrEqualsTo.php', - '/libraries/vendor/lcobucci/jwt/src/Claim/Validatable.php', - '/libraries/vendor/lcobucci/jwt/src/Parsing/Decoder.php', - '/libraries/vendor/lcobucci/jwt/src/Parsing/Encoder.php', - '/libraries/vendor/lcobucci/jwt/src/Signature.php', - '/libraries/vendor/lcobucci/jwt/src/Signer/BaseSigner.php', - '/libraries/vendor/lcobucci/jwt/src/Signer/Keychain.php', - '/libraries/vendor/lcobucci/jwt/src/ValidationData.php', - '/libraries/vendor/nyholm/psr7/LICENSE', - '/libraries/vendor/nyholm/psr7/phpstan-baseline.neon', - '/libraries/vendor/nyholm/psr7/psalm.baseline.xml', - '/libraries/vendor/nyholm/psr7/src/Factory/HttplugFactory.php', - '/libraries/vendor/nyholm/psr7/src/Factory/Psr17Factory.php', - '/libraries/vendor/nyholm/psr7/src/MessageTrait.php', - '/libraries/vendor/nyholm/psr7/src/Request.php', - '/libraries/vendor/nyholm/psr7/src/RequestTrait.php', - '/libraries/vendor/nyholm/psr7/src/Response.php', - '/libraries/vendor/nyholm/psr7/src/ServerRequest.php', - '/libraries/vendor/nyholm/psr7/src/Stream.php', - '/libraries/vendor/nyholm/psr7/src/StreamTrait.php', - '/libraries/vendor/nyholm/psr7/src/UploadedFile.php', - '/libraries/vendor/nyholm/psr7/src/Uri.php', - '/libraries/vendor/psr/log/Psr/Log/AbstractLogger.php', - '/libraries/vendor/psr/log/Psr/Log/InvalidArgumentException.php', - '/libraries/vendor/psr/log/Psr/Log/LoggerAwareInterface.php', - '/libraries/vendor/psr/log/Psr/Log/LoggerAwareTrait.php', - '/libraries/vendor/psr/log/Psr/Log/LoggerInterface.php', - '/libraries/vendor/psr/log/Psr/Log/LoggerTrait.php', - '/libraries/vendor/psr/log/Psr/Log/LogLevel.php', - '/libraries/vendor/psr/log/Psr/Log/NullLogger.php', - '/libraries/vendor/ramsey/uuid/LICENSE', - '/libraries/vendor/ramsey/uuid/src/BinaryUtils.php', - '/libraries/vendor/ramsey/uuid/src/Builder/DefaultUuidBuilder.php', - '/libraries/vendor/ramsey/uuid/src/Builder/DegradedUuidBuilder.php', - '/libraries/vendor/ramsey/uuid/src/Builder/UuidBuilderInterface.php', - '/libraries/vendor/ramsey/uuid/src/Codec/CodecInterface.php', - '/libraries/vendor/ramsey/uuid/src/Codec/GuidStringCodec.php', - '/libraries/vendor/ramsey/uuid/src/Codec/OrderedTimeCodec.php', - '/libraries/vendor/ramsey/uuid/src/Codec/StringCodec.php', - '/libraries/vendor/ramsey/uuid/src/Codec/TimestampFirstCombCodec.php', - '/libraries/vendor/ramsey/uuid/src/Codec/TimestampLastCombCodec.php', - '/libraries/vendor/ramsey/uuid/src/Converter/Number/BigNumberConverter.php', - '/libraries/vendor/ramsey/uuid/src/Converter/Number/DegradedNumberConverter.php', - '/libraries/vendor/ramsey/uuid/src/Converter/NumberConverterInterface.php', - '/libraries/vendor/ramsey/uuid/src/Converter/Time/BigNumberTimeConverter.php', - '/libraries/vendor/ramsey/uuid/src/Converter/Time/DegradedTimeConverter.php', - '/libraries/vendor/ramsey/uuid/src/Converter/Time/PhpTimeConverter.php', - '/libraries/vendor/ramsey/uuid/src/Converter/TimeConverterInterface.php', - '/libraries/vendor/ramsey/uuid/src/DegradedUuid.php', - '/libraries/vendor/ramsey/uuid/src/Exception/InvalidUuidStringException.php', - '/libraries/vendor/ramsey/uuid/src/Exception/UnsatisfiedDependencyException.php', - '/libraries/vendor/ramsey/uuid/src/Exception/UnsupportedOperationException.php', - '/libraries/vendor/ramsey/uuid/src/FeatureSet.php', - '/libraries/vendor/ramsey/uuid/src/functions.php', - '/libraries/vendor/ramsey/uuid/src/Generator/CombGenerator.php', - '/libraries/vendor/ramsey/uuid/src/Generator/DefaultTimeGenerator.php', - '/libraries/vendor/ramsey/uuid/src/Generator/MtRandGenerator.php', - '/libraries/vendor/ramsey/uuid/src/Generator/OpenSslGenerator.php', - '/libraries/vendor/ramsey/uuid/src/Generator/PeclUuidRandomGenerator.php', - '/libraries/vendor/ramsey/uuid/src/Generator/PeclUuidTimeGenerator.php', - '/libraries/vendor/ramsey/uuid/src/Generator/RandomBytesGenerator.php', - '/libraries/vendor/ramsey/uuid/src/Generator/RandomGeneratorFactory.php', - '/libraries/vendor/ramsey/uuid/src/Generator/RandomGeneratorInterface.php', - '/libraries/vendor/ramsey/uuid/src/Generator/RandomLibAdapter.php', - '/libraries/vendor/ramsey/uuid/src/Generator/SodiumRandomGenerator.php', - '/libraries/vendor/ramsey/uuid/src/Generator/TimeGeneratorFactory.php', - '/libraries/vendor/ramsey/uuid/src/Generator/TimeGeneratorInterface.php', - '/libraries/vendor/ramsey/uuid/src/Provider/Node/FallbackNodeProvider.php', - '/libraries/vendor/ramsey/uuid/src/Provider/Node/RandomNodeProvider.php', - '/libraries/vendor/ramsey/uuid/src/Provider/Node/SystemNodeProvider.php', - '/libraries/vendor/ramsey/uuid/src/Provider/NodeProviderInterface.php', - '/libraries/vendor/ramsey/uuid/src/Provider/Time/FixedTimeProvider.php', - '/libraries/vendor/ramsey/uuid/src/Provider/Time/SystemTimeProvider.php', - '/libraries/vendor/ramsey/uuid/src/Provider/TimeProviderInterface.php', - '/libraries/vendor/ramsey/uuid/src/Uuid.php', - '/libraries/vendor/ramsey/uuid/src/UuidFactory.php', - '/libraries/vendor/ramsey/uuid/src/UuidFactoryInterface.php', - '/libraries/vendor/ramsey/uuid/src/UuidInterface.php', - '/libraries/vendor/spomky-labs/base64url/LICENSE', - '/libraries/vendor/spomky-labs/base64url/src/Base64Url.php', - '/libraries/vendor/spomky-labs/cbor-php/src/ByteStringWithChunkObject.php', - '/libraries/vendor/spomky-labs/cbor-php/src/InfiniteListObject.php', - '/libraries/vendor/spomky-labs/cbor-php/src/InfiniteMapObject.php', - '/libraries/vendor/spomky-labs/cbor-php/src/SignedIntegerObject.php', - '/libraries/vendor/spomky-labs/cbor-php/src/Tag/EpochTag.php', - '/libraries/vendor/spomky-labs/cbor-php/src/Tag/PositiveBigIntegerTag.php', - '/libraries/vendor/spomky-labs/cbor-php/src/Tag/TagObjectManager.php', - '/libraries/vendor/spomky-labs/cbor-php/src/TagObject.php', - '/libraries/vendor/spomky-labs/cbor-php/src/TextStringWithChunkObject.php', - '/libraries/vendor/symfony/polyfill-php72/bootstrap.php', - '/libraries/vendor/symfony/polyfill-php72/LICENSE', - '/libraries/vendor/symfony/polyfill-php72/Php72.php', - '/libraries/vendor/symfony/polyfill-php73/bootstrap.php', - '/libraries/vendor/symfony/polyfill-php73/LICENSE', - '/libraries/vendor/symfony/polyfill-php73/Php73.php', - '/libraries/vendor/symfony/polyfill-php73/Resources/stubs/JsonException.php', - '/libraries/vendor/symfony/polyfill-php80/bootstrap.php', - '/libraries/vendor/symfony/polyfill-php80/LICENSE', - '/libraries/vendor/symfony/polyfill-php80/Php80.php', - '/libraries/vendor/symfony/polyfill-php80/PhpToken.php', - '/libraries/vendor/symfony/polyfill-php80/Resources/stubs/Attribute.php', - '/libraries/vendor/symfony/polyfill-php80/Resources/stubs/PhpToken.php', - '/libraries/vendor/symfony/polyfill-php80/Resources/stubs/Stringable.php', - '/libraries/vendor/symfony/polyfill-php80/Resources/stubs/UnhandledMatchError.php', - '/libraries/vendor/symfony/polyfill-php80/Resources/stubs/ValueError.php', - '/libraries/vendor/symfony/polyfill-php81/bootstrap.php', - '/libraries/vendor/symfony/polyfill-php81/LICENSE', - '/libraries/vendor/symfony/polyfill-php81/Php81.php', - '/libraries/vendor/symfony/polyfill-php81/Resources/stubs/CURLStringFile.php', - '/libraries/vendor/symfony/polyfill-php81/Resources/stubs/ReturnTypeWillChange.php', - '/libraries/vendor/web-auth/cose-lib/src/Verifier.php', - '/libraries/vendor/web-auth/metadata-service/src/AuthenticatorStatus.php', - '/libraries/vendor/web-auth/metadata-service/src/BiometricAccuracyDescriptor.php', - '/libraries/vendor/web-auth/metadata-service/src/BiometricStatusReport.php', - '/libraries/vendor/web-auth/metadata-service/src/CodeAccuracyDescriptor.php', - '/libraries/vendor/web-auth/metadata-service/src/DisplayPNGCharacteristicsDescriptor.php', - '/libraries/vendor/web-auth/metadata-service/src/DistantSingleMetadata.php', - '/libraries/vendor/web-auth/metadata-service/src/DistantSingleMetadataFactory.php', - '/libraries/vendor/web-auth/metadata-service/src/EcdaaTrustAnchor.php', - '/libraries/vendor/web-auth/metadata-service/src/ExtensionDescriptor.php', - '/libraries/vendor/web-auth/metadata-service/src/MetadataService.php', - '/libraries/vendor/web-auth/metadata-service/src/MetadataServiceFactory.php', - '/libraries/vendor/web-auth/metadata-service/src/MetadataStatement.php', - '/libraries/vendor/web-auth/metadata-service/src/MetadataStatementFetcher.php', - '/libraries/vendor/web-auth/metadata-service/src/MetadataTOCPayload.php', - '/libraries/vendor/web-auth/metadata-service/src/MetadataTOCPayloadEntry.php', - '/libraries/vendor/web-auth/metadata-service/src/PatternAccuracyDescriptor.php', - '/libraries/vendor/web-auth/metadata-service/src/RgbPaletteEntry.php', - '/libraries/vendor/web-auth/metadata-service/src/RogueListEntry.php', - '/libraries/vendor/web-auth/metadata-service/src/SimpleMetadataStatementRepository.php', - '/libraries/vendor/web-auth/metadata-service/src/SingleMetadata.php', - '/libraries/vendor/web-auth/metadata-service/src/StatusReport.php', - '/libraries/vendor/web-auth/metadata-service/src/VerificationMethodANDCombinations.php', - '/libraries/vendor/web-auth/metadata-service/src/VerificationMethodDescriptor.php', - '/libraries/vendor/web-auth/metadata-service/src/Version.php', - '/libraries/vendor/web-auth/webauthn-lib/src/Server.php', - '/libraries/vendor/web-token/jwt-signature-algorithm-rsa/RSA.php', - '/media/com_templates/js/admin-template-compare-es5.js', - '/media/com_templates/js/admin-template-compare-es5.min.js', - '/media/com_templates/js/admin-template-compare-es5.min.js.gz', - '/media/com_templates/js/admin-template-compare.js', - '/media/com_templates/js/admin-template-compare.min.js', - '/media/com_templates/js/admin-template-compare.min.js.gz', - '/media/com_users/js/admin-users-mail-es5.js', - '/media/com_users/js/admin-users-mail-es5.min.js', - '/media/com_users/js/admin-users-mail-es5.min.js.gz', - '/media/com_users/js/admin-users-mail.js', - '/media/com_users/js/admin-users-mail.min.js', - '/media/com_users/js/admin-users-mail.min.js.gz', - '/media/vendor/fontawesome-free/scss/_larger.scss', - '/media/vendor/fontawesome-free/webfonts/fa-brands-400.eot', - '/media/vendor/fontawesome-free/webfonts/fa-brands-400.svg', - '/media/vendor/fontawesome-free/webfonts/fa-brands-400.woff', - '/media/vendor/fontawesome-free/webfonts/fa-regular-400.eot', - '/media/vendor/fontawesome-free/webfonts/fa-regular-400.svg', - '/media/vendor/fontawesome-free/webfonts/fa-regular-400.woff', - '/media/vendor/fontawesome-free/webfonts/fa-solid-900.eot', - '/media/vendor/fontawesome-free/webfonts/fa-solid-900.svg', - '/media/vendor/fontawesome-free/webfonts/fa-solid-900.woff', - '/media/vendor/tinymce/plugins/bbcode/index.js', - '/media/vendor/tinymce/plugins/bbcode/plugin.js', - '/media/vendor/tinymce/plugins/bbcode/plugin.min.js', - '/media/vendor/tinymce/plugins/bbcode/plugin.min.js.gz', - '/media/vendor/tinymce/plugins/colorpicker/index.js', - '/media/vendor/tinymce/plugins/colorpicker/plugin.js', - '/media/vendor/tinymce/plugins/colorpicker/plugin.min.js', - '/media/vendor/tinymce/plugins/colorpicker/plugin.min.js.gz', - '/media/vendor/tinymce/plugins/contextmenu/index.js', - '/media/vendor/tinymce/plugins/contextmenu/plugin.js', - '/media/vendor/tinymce/plugins/contextmenu/plugin.min.js', - '/media/vendor/tinymce/plugins/contextmenu/plugin.min.js.gz', - '/media/vendor/tinymce/plugins/fullpage/index.js', - '/media/vendor/tinymce/plugins/fullpage/plugin.js', - '/media/vendor/tinymce/plugins/fullpage/plugin.min.js', - '/media/vendor/tinymce/plugins/fullpage/plugin.min.js.gz', - '/media/vendor/tinymce/plugins/hr/index.js', - '/media/vendor/tinymce/plugins/hr/plugin.js', - '/media/vendor/tinymce/plugins/hr/plugin.min.js', - '/media/vendor/tinymce/plugins/hr/plugin.min.js.gz', - '/media/vendor/tinymce/plugins/imagetools/index.js', - '/media/vendor/tinymce/plugins/imagetools/plugin.js', - '/media/vendor/tinymce/plugins/imagetools/plugin.min.js', - '/media/vendor/tinymce/plugins/imagetools/plugin.min.js.gz', - '/media/vendor/tinymce/plugins/legacyoutput/index.js', - '/media/vendor/tinymce/plugins/legacyoutput/plugin.js', - '/media/vendor/tinymce/plugins/legacyoutput/plugin.min.js', - '/media/vendor/tinymce/plugins/legacyoutput/plugin.min.js.gz', - '/media/vendor/tinymce/plugins/noneditable/index.js', - '/media/vendor/tinymce/plugins/noneditable/plugin.js', - '/media/vendor/tinymce/plugins/noneditable/plugin.min.js', - '/media/vendor/tinymce/plugins/noneditable/plugin.min.js.gz', - '/media/vendor/tinymce/plugins/paste/index.js', - '/media/vendor/tinymce/plugins/paste/plugin.js', - '/media/vendor/tinymce/plugins/paste/plugin.min.js', - '/media/vendor/tinymce/plugins/paste/plugin.min.js.gz', - '/media/vendor/tinymce/plugins/print/index.js', - '/media/vendor/tinymce/plugins/print/plugin.js', - '/media/vendor/tinymce/plugins/print/plugin.min.js', - '/media/vendor/tinymce/plugins/print/plugin.min.js.gz', - '/media/vendor/tinymce/plugins/spellchecker/index.js', - '/media/vendor/tinymce/plugins/spellchecker/plugin.js', - '/media/vendor/tinymce/plugins/spellchecker/plugin.min.js', - '/media/vendor/tinymce/plugins/spellchecker/plugin.min.js.gz', - '/media/vendor/tinymce/plugins/tabfocus/index.js', - '/media/vendor/tinymce/plugins/tabfocus/plugin.js', - '/media/vendor/tinymce/plugins/tabfocus/plugin.min.js', - '/media/vendor/tinymce/plugins/tabfocus/plugin.min.js.gz', - '/media/vendor/tinymce/plugins/template/index.js', - '/media/vendor/tinymce/plugins/template/plugin.js', - '/media/vendor/tinymce/plugins/template/plugin.min.js', - '/media/vendor/tinymce/plugins/template/plugin.min.js.gz', - '/media/vendor/tinymce/plugins/textcolor/index.js', - '/media/vendor/tinymce/plugins/textcolor/plugin.js', - '/media/vendor/tinymce/plugins/textcolor/plugin.min.js', - '/media/vendor/tinymce/plugins/textcolor/plugin.min.js.gz', - '/media/vendor/tinymce/plugins/textpattern/index.js', - '/media/vendor/tinymce/plugins/textpattern/plugin.js', - '/media/vendor/tinymce/plugins/textpattern/plugin.min.js', - '/media/vendor/tinymce/plugins/textpattern/plugin.min.js.gz', - '/media/vendor/tinymce/plugins/toc/index.js', - '/media/vendor/tinymce/plugins/toc/plugin.js', - '/media/vendor/tinymce/plugins/toc/plugin.min.js', - '/media/vendor/tinymce/plugins/toc/plugin.min.js.gz', - '/media/vendor/tinymce/skins/ui/oxide-dark/content.mobile.css', - '/media/vendor/tinymce/skins/ui/oxide-dark/content.mobile.min.css', - '/media/vendor/tinymce/skins/ui/oxide-dark/content.mobile.min.css.gz', - '/media/vendor/tinymce/skins/ui/oxide-dark/fonts/tinymce-mobile.woff', - '/media/vendor/tinymce/skins/ui/oxide-dark/skin.mobile.css', - '/media/vendor/tinymce/skins/ui/oxide-dark/skin.mobile.min.css', - '/media/vendor/tinymce/skins/ui/oxide-dark/skin.mobile.min.css.gz', - '/media/vendor/tinymce/skins/ui/oxide/content.mobile.css', - '/media/vendor/tinymce/skins/ui/oxide/content.mobile.min.css', - '/media/vendor/tinymce/skins/ui/oxide/content.mobile.min.css.gz', - '/media/vendor/tinymce/skins/ui/oxide/fonts/tinymce-mobile.woff', - '/media/vendor/tinymce/skins/ui/oxide/skin.mobile.css', - '/media/vendor/tinymce/skins/ui/oxide/skin.mobile.min.css', - '/media/vendor/tinymce/skins/ui/oxide/skin.mobile.min.css.gz', - '/media/vendor/tinymce/themes/mobile/index.js', - '/media/vendor/tinymce/themes/mobile/theme.js', - '/media/vendor/tinymce/themes/mobile/theme.min.js', - '/media/vendor/tinymce/themes/mobile/theme.min.js.gz', - '/plugins/multifactorauth/webauthn/src/Hotfix/AndroidKeyAttestationStatementSupport.php', - '/plugins/multifactorauth/webauthn/src/Hotfix/FidoU2FAttestationStatementSupport.php', - '/plugins/multifactorauth/webauthn/src/Hotfix/Server.php', - '/plugins/system/webauthn/src/Hotfix/AndroidKeyAttestationStatementSupport.php', - '/plugins/system/webauthn/src/Hotfix/FidoU2FAttestationStatementSupport.php', - '/plugins/system/webauthn/src/Hotfix/Server.php', - // From 5.0.0-alpha1 to 5.0.0-alpha2 - '/libraries/vendor/jfcherng/php-diff/src/languages/readme.txt', - '/media/com_actionlogs/js/admin-actionlogs-default-es5.js', - '/media/com_actionlogs/js/admin-actionlogs-default-es5.min.js', - '/media/com_actionlogs/js/admin-actionlogs-default-es5.min.js.gz', - '/media/com_admin/js/admin-help-es5.js', - '/media/com_admin/js/admin-help-es5.min.js', - '/media/com_admin/js/admin-help-es5.min.js.gz', - '/media/com_associations/js/admin-associations-default-es5.js', - '/media/com_associations/js/admin-associations-default-es5.min.js', - '/media/com_associations/js/admin-associations-default-es5.min.js.gz', - '/media/com_associations/js/admin-associations-modal-es5.js', - '/media/com_associations/js/admin-associations-modal-es5.min.js', - '/media/com_associations/js/admin-associations-modal-es5.min.js.gz', - '/media/com_associations/js/associations-edit-es5.js', - '/media/com_associations/js/associations-edit-es5.min.js', - '/media/com_associations/js/associations-edit-es5.min.js.gz', - '/media/com_banners/js/admin-banner-edit-es5.js', - '/media/com_banners/js/admin-banner-edit-es5.min.js', - '/media/com_banners/js/admin-banner-edit-es5.min.js.gz', - '/media/com_cache/js/admin-cache-default-es5.js', - '/media/com_cache/js/admin-cache-default-es5.min.js', - '/media/com_cache/js/admin-cache-default-es5.min.js.gz', - '/media/com_categories/js/shared-categories-accordion-es5.js', - '/media/com_categories/js/shared-categories-accordion-es5.min.js', - '/media/com_categories/js/shared-categories-accordion-es5.min.js.gz', - '/media/com_config/js/config-default-es5.js', - '/media/com_config/js/config-default-es5.min.js', - '/media/com_config/js/config-default-es5.min.js.gz', - '/media/com_config/js/config-filters-es5.js', - '/media/com_config/js/config-filters-es5.min.js', - '/media/com_config/js/config-filters-es5.min.js.gz', - '/media/com_config/js/modules-default-es5.js', - '/media/com_config/js/modules-default-es5.min.js', - '/media/com_config/js/modules-default-es5.min.js.gz', - '/media/com_config/js/templates-default-es5.js', - '/media/com_config/js/templates-default-es5.min.js', - '/media/com_config/js/templates-default-es5.min.js.gz', - '/media/com_contact/js/admin-contacts-modal-es5.js', - '/media/com_contact/js/admin-contacts-modal-es5.min.js', - '/media/com_contact/js/admin-contacts-modal-es5.min.js.gz', - '/media/com_contact/js/contacts-list-es5.js', - '/media/com_contact/js/contacts-list-es5.min.js', - '/media/com_contact/js/contacts-list-es5.min.js.gz', - '/media/com_content/js/admin-article-pagebreak-es5.js', - '/media/com_content/js/admin-article-pagebreak-es5.min.js', - '/media/com_content/js/admin-article-pagebreak-es5.min.js.gz', - '/media/com_content/js/admin-article-readmore-es5.js', - '/media/com_content/js/admin-article-readmore-es5.min.js', - '/media/com_content/js/admin-article-readmore-es5.min.js.gz', - '/media/com_content/js/admin-articles-default-batch-footer-es5.js', - '/media/com_content/js/admin-articles-default-batch-footer-es5.min.js', - '/media/com_content/js/admin-articles-default-batch-footer-es5.min.js.gz', - '/media/com_content/js/admin-articles-default-stage-footer-es5.js', - '/media/com_content/js/admin-articles-default-stage-footer-es5.min.js', - '/media/com_content/js/admin-articles-default-stage-footer-es5.min.js.gz', - '/media/com_content/js/admin-articles-modal-es5.js', - '/media/com_content/js/admin-articles-modal-es5.min.js', - '/media/com_content/js/admin-articles-modal-es5.min.js.gz', - '/media/com_content/js/articles-list-es5.js', - '/media/com_content/js/articles-list-es5.min.js', - '/media/com_content/js/articles-list-es5.min.js.gz', - '/media/com_content/js/articles-status-es5.js', - '/media/com_content/js/articles-status-es5.min.js', - '/media/com_content/js/articles-status-es5.min.js.gz', - '/media/com_content/js/form-edit-es5.js', - '/media/com_content/js/form-edit-es5.min.js', - '/media/com_content/js/form-edit-es5.min.js.gz', - '/media/com_contenthistory/js/admin-compare-compare-es5.js', - '/media/com_contenthistory/js/admin-compare-compare-es5.min.js', - '/media/com_contenthistory/js/admin-compare-compare-es5.min.js.gz', - '/media/com_contenthistory/js/admin-history-modal-es5.js', - '/media/com_contenthistory/js/admin-history-modal-es5.min.js', - '/media/com_contenthistory/js/admin-history-modal-es5.min.js.gz', - '/media/com_contenthistory/js/admin-history-versions-es5.js', - '/media/com_contenthistory/js/admin-history-versions-es5.min.js', - '/media/com_contenthistory/js/admin-history-versions-es5.min.js.gz', - '/media/com_cpanel/js/admin-add_module-es5.js', - '/media/com_cpanel/js/admin-add_module-es5.min.js', - '/media/com_cpanel/js/admin-add_module-es5.min.js.gz', - '/media/com_cpanel/js/admin-cpanel-default-es5.js', - '/media/com_cpanel/js/admin-cpanel-default-es5.min.js', - '/media/com_cpanel/js/admin-cpanel-default-es5.min.js.gz', - '/media/com_cpanel/js/admin-system-loader-es5.js', - '/media/com_cpanel/js/admin-system-loader-es5.min.js', - '/media/com_cpanel/js/admin-system-loader-es5.min.js.gz', - '/media/com_fields/js/admin-field-changecontext-es5.js', - '/media/com_fields/js/admin-field-changecontext-es5.min.js', - '/media/com_fields/js/admin-field-changecontext-es5.min.js.gz', - '/media/com_fields/js/admin-field-edit-es5.js', - '/media/com_fields/js/admin-field-edit-es5.min.js', - '/media/com_fields/js/admin-field-edit-es5.min.js.gz', - '/media/com_fields/js/admin-field-typehaschanged-es5.js', - '/media/com_fields/js/admin-field-typehaschanged-es5.min.js', - '/media/com_fields/js/admin-field-typehaschanged-es5.min.js.gz', - '/media/com_fields/js/admin-fields-default-batch-es5.js', - '/media/com_fields/js/admin-fields-default-batch-es5.min.js', - '/media/com_fields/js/admin-fields-default-batch-es5.min.js.gz', - '/media/com_fields/js/admin-fields-modal-es5.js', - '/media/com_fields/js/admin-fields-modal-es5.min.js', - '/media/com_fields/js/admin-fields-modal-es5.min.js.gz', - '/media/com_finder/js/debug-es5.js', - '/media/com_finder/js/debug-es5.min.js', - '/media/com_finder/js/debug-es5.min.js.gz', - '/media/com_finder/js/filters-es5.js', - '/media/com_finder/js/filters-es5.min.js', - '/media/com_finder/js/filters-es5.min.js.gz', - '/media/com_finder/js/finder-edit-es5.js', - '/media/com_finder/js/finder-edit-es5.min.js', - '/media/com_finder/js/finder-edit-es5.min.js.gz', - '/media/com_finder/js/finder-es5.js', - '/media/com_finder/js/finder-es5.min.js', - '/media/com_finder/js/finder-es5.min.js.gz', - '/media/com_finder/js/indexer-es5.js', - '/media/com_finder/js/indexer-es5.min.js', - '/media/com_finder/js/indexer-es5.min.js.gz', - '/media/com_finder/js/maps-es5.js', - '/media/com_finder/js/maps-es5.min.js', - '/media/com_finder/js/maps-es5.min.js.gz', - '/media/com_installer/js/changelog-es5.js', - '/media/com_installer/js/changelog-es5.min.js', - '/media/com_installer/js/changelog-es5.min.js.gz', - '/media/com_installer/js/installer-es5.js', - '/media/com_installer/js/installer-es5.min.js', - '/media/com_installer/js/installer-es5.min.js.gz', - '/media/com_joomlaupdate/js/admin-update-default-es5.js', - '/media/com_joomlaupdate/js/admin-update-default-es5.min.js', - '/media/com_joomlaupdate/js/admin-update-default-es5.min.js.gz', - '/media/com_joomlaupdate/js/default-es5.js', - '/media/com_joomlaupdate/js/default-es5.min.js', - '/media/com_joomlaupdate/js/default-es5.min.js.gz', - '/media/com_languages/js/admin-language-edit-change-flag-es5.js', - '/media/com_languages/js/admin-language-edit-change-flag-es5.min.js', - '/media/com_languages/js/admin-language-edit-change-flag-es5.min.js.gz', - '/media/com_languages/js/admin-override-edit-refresh-searchstring-es5.js', - '/media/com_languages/js/admin-override-edit-refresh-searchstring-es5.min.js', - '/media/com_languages/js/admin-override-edit-refresh-searchstring-es5.min.js.gz', - '/media/com_languages/js/overrider-es5.js', - '/media/com_languages/js/overrider-es5.min.js', - '/media/com_languages/js/overrider-es5.min.js.gz', - '/media/com_mails/js/admin-email-template-edit-es5.js', - '/media/com_mails/js/admin-email-template-edit-es5.min.js', - '/media/com_mails/js/admin-email-template-edit-es5.min.js.gz', - '/media/com_media/js/edit-images-es5.js', - '/media/com_media/js/edit-images-es5.min.js', - '/media/com_media/js/edit-images-es5.min.js.gz', - '/media/com_media/js/media-manager-es5.js', - '/media/com_media/js/media-manager-es5.min.js', - '/media/com_media/js/media-manager-es5.min.js.gz', - '/media/com_menus/js/admin-item-edit-es5.js', - '/media/com_menus/js/admin-item-edit-es5.min.js', - '/media/com_menus/js/admin-item-edit-es5.min.js.gz', - '/media/com_menus/js/admin-item-edit_container-es5.js', - '/media/com_menus/js/admin-item-edit_container-es5.min.js', - '/media/com_menus/js/admin-item-edit_container-es5.min.js.gz', - '/media/com_menus/js/admin-item-edit_modules-es5.js', - '/media/com_menus/js/admin-item-edit_modules-es5.min.js', - '/media/com_menus/js/admin-item-edit_modules-es5.min.js.gz', - '/media/com_menus/js/admin-item-modal-es5.js', - '/media/com_menus/js/admin-item-modal-es5.min.js', - '/media/com_menus/js/admin-item-modal-es5.min.js.gz', - '/media/com_menus/js/admin-items-modal-es5.js', - '/media/com_menus/js/admin-items-modal-es5.min.js', - '/media/com_menus/js/admin-items-modal-es5.min.js.gz', - '/media/com_menus/js/admin-menus-default-es5.js', - '/media/com_menus/js/admin-menus-default-es5.min.js', - '/media/com_menus/js/admin-menus-default-es5.min.js.gz', - '/media/com_menus/js/default-batch-body-es5.js', - '/media/com_menus/js/default-batch-body-es5.min.js', - '/media/com_menus/js/default-batch-body-es5.min.js.gz', - '/media/com_modules/js/admin-module-edit-es5.js', - '/media/com_modules/js/admin-module-edit-es5.min.js', - '/media/com_modules/js/admin-module-edit-es5.min.js.gz', - '/media/com_modules/js/admin-module-edit_assignment-es5.js', - '/media/com_modules/js/admin-module-edit_assignment-es5.min.js', - '/media/com_modules/js/admin-module-edit_assignment-es5.min.js.gz', - '/media/com_modules/js/admin-module-search-es5.js', - '/media/com_modules/js/admin-module-search-es5.min.js', - '/media/com_modules/js/admin-module-search-es5.min.js.gz', - '/media/com_modules/js/admin-modules-modal-es5.js', - '/media/com_modules/js/admin-modules-modal-es5.min.js', - '/media/com_modules/js/admin-modules-modal-es5.min.js.gz', - '/media/com_modules/js/admin-select-modal-es5.js', - '/media/com_modules/js/admin-select-modal-es5.min.js', - '/media/com_modules/js/admin-select-modal-es5.min.js.gz', - '/media/com_scheduler/js/admin-view-run-test-task-es5.js', - '/media/com_scheduler/js/admin-view-run-test-task-es5.min.js', - '/media/com_scheduler/js/admin-view-run-test-task-es5.min.js.gz', - '/media/com_scheduler/js/admin-view-select-task-search-es5.js', - '/media/com_scheduler/js/admin-view-select-task-search-es5.min.js', - '/media/com_scheduler/js/admin-view-select-task-search-es5.min.js.gz', - '/media/com_scheduler/js/scheduler-config-es5.js', - '/media/com_scheduler/js/scheduler-config-es5.min.js', - '/media/com_scheduler/js/scheduler-config-es5.min.js.gz', - '/media/com_tags/js/tag-default-es5.js', - '/media/com_tags/js/tag-default-es5.min.js', - '/media/com_tags/js/tag-default-es5.min.js.gz', - '/media/com_tags/js/tag-list-es5.js', - '/media/com_tags/js/tag-list-es5.min.js', - '/media/com_tags/js/tag-list-es5.min.js.gz', - '/media/com_tags/js/tags-default-es5.js', - '/media/com_tags/js/tags-default-es5.min.js', - '/media/com_tags/js/tags-default-es5.min.js.gz', - '/media/com_templates/js/admin-template-compare-es5.js', - '/media/com_templates/js/admin-template-compare-es5.min.js', - '/media/com_templates/js/admin-template-compare-es5.min.js.gz', - '/media/com_templates/js/admin-template-toggle-assignment-es5.js', - '/media/com_templates/js/admin-template-toggle-assignment-es5.min.js', - '/media/com_templates/js/admin-template-toggle-assignment-es5.min.js.gz', - '/media/com_templates/js/admin-template-toggle-switch-es5.js', - '/media/com_templates/js/admin-template-toggle-switch-es5.min.js', - '/media/com_templates/js/admin-template-toggle-switch-es5.min.js.gz', - '/media/com_templates/js/admin-templates-default-es5.js', - '/media/com_templates/js/admin-templates-default-es5.min.js', - '/media/com_templates/js/admin-templates-default-es5.min.js.gz', - '/media/com_users/js/admin-users-groups-es5.js', - '/media/com_users/js/admin-users-groups-es5.min.js', - '/media/com_users/js/admin-users-groups-es5.min.js.gz', - '/media/com_users/js/admin-users-mail-es5.js', - '/media/com_users/js/admin-users-mail-es5.min.js', - '/media/com_users/js/admin-users-mail-es5.min.js.gz', - '/media/com_users/js/two-factor-focus-es5.js', - '/media/com_users/js/two-factor-focus-es5.min.js', - '/media/com_users/js/two-factor-focus-es5.min.js.gz', - '/media/com_users/js/two-factor-list-es5.js', - '/media/com_users/js/two-factor-list-es5.min.js', - '/media/com_users/js/two-factor-list-es5.min.js.gz', - '/media/com_workflow/js/admin-items-workflow-buttons-es5.js', - '/media/com_workflow/js/admin-items-workflow-buttons-es5.min.js', - '/media/com_workflow/js/admin-items-workflow-buttons-es5.min.js.gz', - '/media/com_wrapper/js/iframe-height-es5.js', - '/media/com_wrapper/js/iframe-height-es5.min.js', - '/media/com_wrapper/js/iframe-height-es5.min.js.gz', - '/media/layouts/js/joomla/form/field/category-change-es5.js', - '/media/layouts/js/joomla/form/field/category-change-es5.min.js', - '/media/layouts/js/joomla/form/field/category-change-es5.min.js.gz', - '/media/layouts/js/joomla/html/batch/batch-copymove-es5.js', - '/media/layouts/js/joomla/html/batch/batch-copymove-es5.min.js', - '/media/layouts/js/joomla/html/batch/batch-copymove-es5.min.js.gz', - '/media/mod_login/js/admin-login-es5.js', - '/media/mod_login/js/admin-login-es5.min.js', - '/media/mod_login/js/admin-login-es5.min.js.gz', - '/media/mod_menu/js/admin-menu-es5.js', - '/media/mod_menu/js/admin-menu-es5.min.js', - '/media/mod_menu/js/admin-menu-es5.min.js.gz', - '/media/mod_menu/js/menu-es5.js', - '/media/mod_menu/js/menu-es5.min.js', - '/media/mod_menu/js/menu-es5.min.js.gz', - '/media/mod_multilangstatus/js/admin-multilangstatus-es5.js', - '/media/mod_multilangstatus/js/admin-multilangstatus-es5.min.js', - '/media/mod_multilangstatus/js/admin-multilangstatus-es5.min.js.gz', - '/media/mod_quickicon/js/quickicon-es5.js', - '/media/mod_quickicon/js/quickicon-es5.min.js', - '/media/mod_quickicon/js/quickicon-es5.min.js.gz', - '/media/mod_sampledata/js/sampledata-process-es5.js', - '/media/mod_sampledata/js/sampledata-process-es5.min.js', - '/media/mod_sampledata/js/sampledata-process-es5.min.js.gz', - '/media/plg_captcha_recaptcha/js/recaptcha-es5.js', - '/media/plg_captcha_recaptcha/js/recaptcha-es5.min.js', - '/media/plg_captcha_recaptcha/js/recaptcha-es5.min.js.gz', - '/media/plg_captcha_recaptcha_invisible/js/recaptcha-es5.js', - '/media/plg_captcha_recaptcha_invisible/js/recaptcha-es5.min.js', - '/media/plg_captcha_recaptcha_invisible/js/recaptcha-es5.min.js.gz', - '/media/plg_editors_codemirror/js/joomla-editor-codemirror-es5.js', - '/media/plg_editors_codemirror/js/joomla-editor-codemirror-es5.min.js', - '/media/plg_editors_codemirror/js/joomla-editor-codemirror-es5.min.js.gz', - '/media/plg_editors_none/js/joomla-editor-none-es5.js', - '/media/plg_editors_none/js/joomla-editor-none-es5.min.js', - '/media/plg_editors_none/js/joomla-editor-none-es5.min.js.gz', - '/media/plg_editors_tinymce/js/plugins/highlighter/plugin-es5.js', - '/media/plg_editors_tinymce/js/plugins/highlighter/plugin-es5.min.js', - '/media/plg_editors_tinymce/js/plugins/highlighter/plugin-es5.min.js.gz', - '/media/plg_editors_tinymce/js/plugins/highlighter/source-es5.js', - '/media/plg_editors_tinymce/js/plugins/highlighter/source-es5.min.js', - '/media/plg_editors_tinymce/js/plugins/highlighter/source-es5.min.js.gz', - '/media/plg_editors_tinymce/js/tinymce-builder-es5.js', - '/media/plg_editors_tinymce/js/tinymce-builder-es5.min.js', - '/media/plg_editors_tinymce/js/tinymce-builder-es5.min.js.gz', - '/media/plg_editors_tinymce/js/tinymce-es5.js', - '/media/plg_editors_tinymce/js/tinymce-es5.min.js', - '/media/plg_editors_tinymce/js/tinymce-es5.min.js.gz', - '/media/plg_installer_folderinstaller/js/folderinstaller-es5.js', - '/media/plg_installer_folderinstaller/js/folderinstaller-es5.min.js', - '/media/plg_installer_folderinstaller/js/folderinstaller-es5.min.js.gz', - '/media/plg_installer_packageinstaller/js/packageinstaller-es5.js', - '/media/plg_installer_packageinstaller/js/packageinstaller-es5.min.js', - '/media/plg_installer_packageinstaller/js/packageinstaller-es5.min.js.gz', - '/media/plg_installer_urlinstaller/js/urlinstaller-es5.js', - '/media/plg_installer_urlinstaller/js/urlinstaller-es5.min.js', - '/media/plg_installer_urlinstaller/js/urlinstaller-es5.min.js.gz', - '/media/plg_installer_webinstaller/js/client-es5.js', - '/media/plg_installer_webinstaller/js/client-es5.min.js', - '/media/plg_installer_webinstaller/js/client-es5.min.js.gz', - '/media/plg_media-action_crop/js/crop-es5.js', - '/media/plg_media-action_crop/js/crop-es5.min.js', - '/media/plg_media-action_crop/js/crop-es5.min.js.gz', - '/media/plg_media-action_resize/js/resize-es5.js', - '/media/plg_media-action_resize/js/resize-es5.min.js', - '/media/plg_media-action_resize/js/resize-es5.min.js.gz', - '/media/plg_media-action_rotate/js/rotate-es5.js', - '/media/plg_media-action_rotate/js/rotate-es5.min.js', - '/media/plg_media-action_rotate/js/rotate-es5.min.js.gz', - '/media/plg_multifactorauth_totp/js/setup-es5.js', - '/media/plg_multifactorauth_totp/js/setup-es5.min.js', - '/media/plg_multifactorauth_totp/js/setup-es5.min.js.gz', - '/media/plg_multifactorauth_webauthn/js/webauthn-es5.js', - '/media/plg_multifactorauth_webauthn/js/webauthn-es5.min.js', - '/media/plg_multifactorauth_webauthn/js/webauthn-es5.min.js.gz', - '/media/plg_quickicon_eos/js/snooze-es5.js', - '/media/plg_quickicon_eos/js/snooze-es5.min.js', - '/media/plg_quickicon_eos/js/snooze-es5.min.js.gz', - '/media/plg_quickicon_extensionupdate/js/extensionupdatecheck-es5.js', - '/media/plg_quickicon_extensionupdate/js/extensionupdatecheck-es5.min.js', - '/media/plg_quickicon_extensionupdate/js/extensionupdatecheck-es5.min.js.gz', - '/media/plg_quickicon_joomlaupdate/js/jupdatecheck-es5.js', - '/media/plg_quickicon_joomlaupdate/js/jupdatecheck-es5.min.js', - '/media/plg_quickicon_joomlaupdate/js/jupdatecheck-es5.min.js.gz', - '/media/plg_quickicon_overridecheck/js/overridecheck-es5.js', - '/media/plg_quickicon_overridecheck/js/overridecheck-es5.min.js', - '/media/plg_quickicon_overridecheck/js/overridecheck-es5.min.js.gz', - '/media/plg_quickicon_privacycheck/js/privacycheck-es5.js', - '/media/plg_quickicon_privacycheck/js/privacycheck-es5.min.js', - '/media/plg_quickicon_privacycheck/js/privacycheck-es5.min.js.gz', - '/media/plg_system_debug/js/debug-es5.js', - '/media/plg_system_debug/js/debug-es5.min.js', - '/media/plg_system_debug/js/debug-es5.min.js.gz', - '/media/plg_system_guidedtours/js/guidedtours-es5.js', - '/media/plg_system_guidedtours/js/guidedtours-es5.min.js', - '/media/plg_system_guidedtours/js/guidedtours-es5.min.js.gz', - '/media/plg_system_jooa11y/js/jooa11y-es5.js', - '/media/plg_system_jooa11y/js/jooa11y-es5.min.js', - '/media/plg_system_jooa11y/js/jooa11y-es5.min.js.gz', - '/media/plg_system_schedulerunner/js/run-schedule-es5.js', - '/media/plg_system_schedulerunner/js/run-schedule-es5.min.js', - '/media/plg_system_schedulerunner/js/run-schedule-es5.min.js.gz', - '/media/plg_system_shortcut/js/shortcut-es5.js', - '/media/plg_system_shortcut/js/shortcut-es5.min.js', - '/media/plg_system_shortcut/js/shortcut-es5.min.js.gz', - '/media/plg_system_stats/js/stats-es5.js', - '/media/plg_system_stats/js/stats-es5.min.js', - '/media/plg_system_stats/js/stats-es5.min.js.gz', - '/media/plg_system_stats/js/stats-message-es5.js', - '/media/plg_system_stats/js/stats-message-es5.min.js', - '/media/plg_system_stats/js/stats-message-es5.min.js.gz', - '/media/plg_system_webauthn/js/login-es5.js', - '/media/plg_system_webauthn/js/login-es5.min.js', - '/media/plg_system_webauthn/js/login-es5.min.js.gz', - '/media/plg_system_webauthn/js/management-es5.js', - '/media/plg_system_webauthn/js/management-es5.min.js', - '/media/plg_system_webauthn/js/management-es5.min.js.gz', - '/media/plg_user_token/js/token-es5.js', - '/media/plg_user_token/js/token-es5.min.js', - '/media/plg_user_token/js/token-es5.min.js.gz', - '/media/system/js/core-es5.js', - '/media/system/js/core-es5.min.js', - '/media/system/js/core-es5.min.js.gz', - '/media/system/js/draggable-es5.js', - '/media/system/js/draggable-es5.min.js', - '/media/system/js/draggable-es5.min.js.gz', - '/media/system/js/fields/joomla-field-color-slider-es5.js', - '/media/system/js/fields/joomla-field-color-slider-es5.min.js', - '/media/system/js/fields/joomla-field-color-slider-es5.min.js.gz', - '/media/system/js/fields/joomla-field-fancy-select-es5.js', - '/media/system/js/fields/joomla-field-fancy-select-es5.min.js', - '/media/system/js/fields/joomla-field-fancy-select-es5.min.js.gz', - '/media/system/js/fields/joomla-field-media-es5.js', - '/media/system/js/fields/joomla-field-media-es5.min.js', - '/media/system/js/fields/joomla-field-media-es5.min.js.gz', - '/media/system/js/fields/joomla-field-module-order-es5.js', - '/media/system/js/fields/joomla-field-module-order-es5.min.js', - '/media/system/js/fields/joomla-field-module-order-es5.min.js.gz', - '/media/system/js/fields/joomla-field-permissions-es5.js', - '/media/system/js/fields/joomla-field-permissions-es5.min.js', - '/media/system/js/fields/joomla-field-permissions-es5.min.js.gz', - '/media/system/js/fields/joomla-field-send-test-mail-es5.js', - '/media/system/js/fields/joomla-field-send-test-mail-es5.min.js', - '/media/system/js/fields/joomla-field-send-test-mail-es5.min.js.gz', - '/media/system/js/fields/joomla-field-simple-color-es5.js', - '/media/system/js/fields/joomla-field-simple-color-es5.min.js', - '/media/system/js/fields/joomla-field-simple-color-es5.min.js.gz', - '/media/system/js/fields/joomla-field-subform-es5.js', - '/media/system/js/fields/joomla-field-subform-es5.min.js', - '/media/system/js/fields/joomla-field-subform-es5.min.js.gz', - '/media/system/js/fields/joomla-field-user-es5.js', - '/media/system/js/fields/joomla-field-user-es5.min.js', - '/media/system/js/fields/joomla-field-user-es5.min.js.gz', - '/media/system/js/fields/joomla-media-select-es5.js', - '/media/system/js/fields/joomla-media-select-es5.min.js', - '/media/system/js/fields/joomla-media-select-es5.min.js.gz', - '/media/system/js/fields/passwordstrength-es5.js', - '/media/system/js/fields/passwordstrength-es5.min.js', - '/media/system/js/fields/passwordstrength-es5.min.js.gz', - '/media/system/js/fields/passwordview-es5.js', - '/media/system/js/fields/passwordview-es5.min.js', - '/media/system/js/fields/passwordview-es5.min.js.gz', - '/media/system/js/fields/select-colour-es5.js', - '/media/system/js/fields/select-colour-es5.min.js', - '/media/system/js/fields/select-colour-es5.min.js.gz', - '/media/system/js/fields/validate-es5.js', - '/media/system/js/fields/validate-es5.min.js', - '/media/system/js/fields/validate-es5.min.js.gz', - '/media/system/js/highlight-es5.js', - '/media/system/js/highlight-es5.min.js', - '/media/system/js/highlight-es5.min.js.gz', - '/media/system/js/inlinehelp-es5.js', - '/media/system/js/inlinehelp-es5.min.js', - '/media/system/js/inlinehelp-es5.min.js.gz', - '/media/system/js/joomla-core-loader-es5.js', - '/media/system/js/joomla-core-loader-es5.min.js', - '/media/system/js/joomla-core-loader-es5.min.js.gz', - '/media/system/js/joomla-hidden-mail-es5.js', - '/media/system/js/joomla-hidden-mail-es5.min.js', - '/media/system/js/joomla-hidden-mail-es5.min.js.gz', - '/media/system/js/joomla-toolbar-button-es5.js', - '/media/system/js/joomla-toolbar-button-es5.min.js', - '/media/system/js/joomla-toolbar-button-es5.min.js.gz', - '/media/system/js/keepalive-es5.js', - '/media/system/js/keepalive-es5.min.js', - '/media/system/js/keepalive-es5.min.js.gz', - '/media/system/js/list-view-es5.js', - '/media/system/js/list-view-es5.min.js', - '/media/system/js/list-view-es5.min.js.gz', - '/media/system/js/messages-es5.js', - '/media/system/js/messages-es5.min.js', - '/media/system/js/messages-es5.min.js.gz', - '/media/system/js/multiselect-es5.js', - '/media/system/js/multiselect-es5.min.js', - '/media/system/js/multiselect-es5.min.js.gz', - '/media/system/js/searchtools-es5.js', - '/media/system/js/searchtools-es5.min.js', - '/media/system/js/searchtools-es5.min.js.gz', - '/media/system/js/showon-es5.js', - '/media/system/js/showon-es5.min.js', - '/media/system/js/showon-es5.min.js.gz', - '/media/system/js/table-columns-es5.js', - '/media/system/js/table-columns-es5.min.js', - '/media/system/js/table-columns-es5.min.js.gz', - '/media/templates/administrator/atum/js/template-es5.js', - '/media/templates/administrator/atum/js/template-es5.min.js', - '/media/templates/administrator/atum/js/template-es5.min.js.gz', - '/media/templates/site/cassiopeia/js/mod_menu/menu-metismenu-es5.js', - '/media/templates/site/cassiopeia/js/mod_menu/menu-metismenu-es5.min.js', - '/media/templates/site/cassiopeia/js/mod_menu/menu-metismenu-es5.min.js.gz', - '/media/vendor/bootstrap/js/bootstrap-es5.js', - '/media/vendor/bootstrap/js/bootstrap-es5.min.js', - '/media/vendor/bootstrap/js/bootstrap-es5.min.js.gz', - '/media/vendor/joomla-custom-elements/js/joomla-alert-es5.js', - '/media/vendor/joomla-custom-elements/js/joomla-alert-es5.min.js', - '/media/vendor/joomla-custom-elements/js/joomla-alert-es5.min.js.gz', - '/media/vendor/joomla-custom-elements/js/joomla-tab-es5.js', - '/media/vendor/joomla-custom-elements/js/joomla-tab-es5.min.js', - '/media/vendor/joomla-custom-elements/js/joomla-tab-es5.min.js.gz', - '/media/vendor/mediaelement/js/mediaelement-flash-audio-ogg.swf', - '/media/vendor/mediaelement/js/mediaelement-flash-audio.swf', - '/media/vendor/mediaelement/js/mediaelement-flash-video-hls.swf', - '/media/vendor/mediaelement/js/mediaelement-flash-video-mdash.swf', - '/media/vendor/mediaelement/js/mediaelement-flash-video.swf', - '/plugins/editors-xtd/pagebreak/pagebreak.php', - // From 5.0.0-alpha2 to 5.0.0-alpha3 - '/libraries/classmap.php', - '/libraries/extensions.classmap.php', - '/media/vendor/codemirror/addon/comment/comment.js', - '/media/vendor/codemirror/addon/comment/comment.min.js', - '/media/vendor/codemirror/addon/comment/comment.min.js.gz', - '/media/vendor/codemirror/addon/comment/continuecomment.js', - '/media/vendor/codemirror/addon/comment/continuecomment.min.js', - '/media/vendor/codemirror/addon/comment/continuecomment.min.js.gz', - '/media/vendor/codemirror/addon/dialog/dialog.css', - '/media/vendor/codemirror/addon/dialog/dialog.js', - '/media/vendor/codemirror/addon/dialog/dialog.min.js', - '/media/vendor/codemirror/addon/dialog/dialog.min.js.gz', - '/media/vendor/codemirror/addon/display/autorefresh.js', - '/media/vendor/codemirror/addon/display/autorefresh.min.js', - '/media/vendor/codemirror/addon/display/autorefresh.min.js.gz', - '/media/vendor/codemirror/addon/display/fullscreen.css', - '/media/vendor/codemirror/addon/display/fullscreen.js', - '/media/vendor/codemirror/addon/display/fullscreen.min.js', - '/media/vendor/codemirror/addon/display/fullscreen.min.js.gz', - '/media/vendor/codemirror/addon/display/panel.js', - '/media/vendor/codemirror/addon/display/panel.min.js', - '/media/vendor/codemirror/addon/display/panel.min.js.gz', - '/media/vendor/codemirror/addon/display/placeholder.js', - '/media/vendor/codemirror/addon/display/placeholder.min.js', - '/media/vendor/codemirror/addon/display/placeholder.min.js.gz', - '/media/vendor/codemirror/addon/display/rulers.js', - '/media/vendor/codemirror/addon/display/rulers.min.js', - '/media/vendor/codemirror/addon/display/rulers.min.js.gz', - '/media/vendor/codemirror/addon/edit/closebrackets.js', - '/media/vendor/codemirror/addon/edit/closebrackets.min.js', - '/media/vendor/codemirror/addon/edit/closebrackets.min.js.gz', - '/media/vendor/codemirror/addon/edit/closetag.js', - '/media/vendor/codemirror/addon/edit/closetag.min.js', - '/media/vendor/codemirror/addon/edit/closetag.min.js.gz', - '/media/vendor/codemirror/addon/edit/continuelist.js', - '/media/vendor/codemirror/addon/edit/continuelist.min.js', - '/media/vendor/codemirror/addon/edit/continuelist.min.js.gz', - '/media/vendor/codemirror/addon/edit/matchbrackets.js', - '/media/vendor/codemirror/addon/edit/matchbrackets.min.js', - '/media/vendor/codemirror/addon/edit/matchbrackets.min.js.gz', - '/media/vendor/codemirror/addon/edit/matchtags.js', - '/media/vendor/codemirror/addon/edit/matchtags.min.js', - '/media/vendor/codemirror/addon/edit/matchtags.min.js.gz', - '/media/vendor/codemirror/addon/edit/trailingspace.js', - '/media/vendor/codemirror/addon/edit/trailingspace.min.js', - '/media/vendor/codemirror/addon/edit/trailingspace.min.js.gz', - '/media/vendor/codemirror/addon/fold/brace-fold.js', - '/media/vendor/codemirror/addon/fold/brace-fold.min.js', - '/media/vendor/codemirror/addon/fold/brace-fold.min.js.gz', - '/media/vendor/codemirror/addon/fold/comment-fold.js', - '/media/vendor/codemirror/addon/fold/comment-fold.min.js', - '/media/vendor/codemirror/addon/fold/comment-fold.min.js.gz', - '/media/vendor/codemirror/addon/fold/foldcode.js', - '/media/vendor/codemirror/addon/fold/foldcode.min.js', - '/media/vendor/codemirror/addon/fold/foldcode.min.js.gz', - '/media/vendor/codemirror/addon/fold/foldgutter.css', - '/media/vendor/codemirror/addon/fold/foldgutter.js', - '/media/vendor/codemirror/addon/fold/foldgutter.min.js', - '/media/vendor/codemirror/addon/fold/foldgutter.min.js.gz', - '/media/vendor/codemirror/addon/fold/indent-fold.js', - '/media/vendor/codemirror/addon/fold/indent-fold.min.js', - '/media/vendor/codemirror/addon/fold/indent-fold.min.js.gz', - '/media/vendor/codemirror/addon/fold/markdown-fold.js', - '/media/vendor/codemirror/addon/fold/markdown-fold.min.js', - '/media/vendor/codemirror/addon/fold/markdown-fold.min.js.gz', - '/media/vendor/codemirror/addon/fold/xml-fold.js', - '/media/vendor/codemirror/addon/fold/xml-fold.min.js', - '/media/vendor/codemirror/addon/fold/xml-fold.min.js.gz', - '/media/vendor/codemirror/addon/hint/anyword-hint.js', - '/media/vendor/codemirror/addon/hint/anyword-hint.min.js', - '/media/vendor/codemirror/addon/hint/anyword-hint.min.js.gz', - '/media/vendor/codemirror/addon/hint/css-hint.js', - '/media/vendor/codemirror/addon/hint/css-hint.min.js', - '/media/vendor/codemirror/addon/hint/css-hint.min.js.gz', - '/media/vendor/codemirror/addon/hint/html-hint.js', - '/media/vendor/codemirror/addon/hint/html-hint.min.js', - '/media/vendor/codemirror/addon/hint/html-hint.min.js.gz', - '/media/vendor/codemirror/addon/hint/javascript-hint.js', - '/media/vendor/codemirror/addon/hint/javascript-hint.min.js', - '/media/vendor/codemirror/addon/hint/javascript-hint.min.js.gz', - '/media/vendor/codemirror/addon/hint/show-hint.css', - '/media/vendor/codemirror/addon/hint/show-hint.js', - '/media/vendor/codemirror/addon/hint/show-hint.min.js', - '/media/vendor/codemirror/addon/hint/show-hint.min.js.gz', - '/media/vendor/codemirror/addon/hint/sql-hint.js', - '/media/vendor/codemirror/addon/hint/sql-hint.min.js', - '/media/vendor/codemirror/addon/hint/sql-hint.min.js.gz', - '/media/vendor/codemirror/addon/hint/xml-hint.js', - '/media/vendor/codemirror/addon/hint/xml-hint.min.js', - '/media/vendor/codemirror/addon/hint/xml-hint.min.js.gz', - '/media/vendor/codemirror/addon/lint/coffeescript-lint.js', - '/media/vendor/codemirror/addon/lint/coffeescript-lint.min.js', - '/media/vendor/codemirror/addon/lint/coffeescript-lint.min.js.gz', - '/media/vendor/codemirror/addon/lint/css-lint.js', - '/media/vendor/codemirror/addon/lint/css-lint.min.js', - '/media/vendor/codemirror/addon/lint/css-lint.min.js.gz', - '/media/vendor/codemirror/addon/lint/html-lint.js', - '/media/vendor/codemirror/addon/lint/html-lint.min.js', - '/media/vendor/codemirror/addon/lint/html-lint.min.js.gz', - '/media/vendor/codemirror/addon/lint/javascript-lint.js', - '/media/vendor/codemirror/addon/lint/javascript-lint.min.js', - '/media/vendor/codemirror/addon/lint/javascript-lint.min.js.gz', - '/media/vendor/codemirror/addon/lint/json-lint.js', - '/media/vendor/codemirror/addon/lint/json-lint.min.js', - '/media/vendor/codemirror/addon/lint/json-lint.min.js.gz', - '/media/vendor/codemirror/addon/lint/lint.css', - '/media/vendor/codemirror/addon/lint/lint.js', - '/media/vendor/codemirror/addon/lint/lint.min.js', - '/media/vendor/codemirror/addon/lint/lint.min.js.gz', - '/media/vendor/codemirror/addon/lint/yaml-lint.js', - '/media/vendor/codemirror/addon/lint/yaml-lint.min.js', - '/media/vendor/codemirror/addon/lint/yaml-lint.min.js.gz', - '/media/vendor/codemirror/addon/merge/merge.css', - '/media/vendor/codemirror/addon/merge/merge.js', - '/media/vendor/codemirror/addon/merge/merge.min.js', - '/media/vendor/codemirror/addon/merge/merge.min.js.gz', - '/media/vendor/codemirror/addon/mode/loadmode.js', - '/media/vendor/codemirror/addon/mode/loadmode.min.js', - '/media/vendor/codemirror/addon/mode/loadmode.min.js.gz', - '/media/vendor/codemirror/addon/mode/multiplex.js', - '/media/vendor/codemirror/addon/mode/multiplex.min.js', - '/media/vendor/codemirror/addon/mode/multiplex.min.js.gz', - '/media/vendor/codemirror/addon/mode/multiplex_test.js', - '/media/vendor/codemirror/addon/mode/multiplex_test.min.js', - '/media/vendor/codemirror/addon/mode/multiplex_test.min.js.gz', - '/media/vendor/codemirror/addon/mode/overlay.js', - '/media/vendor/codemirror/addon/mode/overlay.min.js', - '/media/vendor/codemirror/addon/mode/overlay.min.js.gz', - '/media/vendor/codemirror/addon/mode/simple.js', - '/media/vendor/codemirror/addon/mode/simple.min.js', - '/media/vendor/codemirror/addon/mode/simple.min.js.gz', - '/media/vendor/codemirror/addon/runmode/colorize.js', - '/media/vendor/codemirror/addon/runmode/colorize.min.js', - '/media/vendor/codemirror/addon/runmode/colorize.min.js.gz', - '/media/vendor/codemirror/addon/runmode/runmode-standalone.js', - '/media/vendor/codemirror/addon/runmode/runmode-standalone.min.js', - '/media/vendor/codemirror/addon/runmode/runmode-standalone.min.js.gz', - '/media/vendor/codemirror/addon/runmode/runmode.js', - '/media/vendor/codemirror/addon/runmode/runmode.min.js', - '/media/vendor/codemirror/addon/runmode/runmode.min.js.gz', - '/media/vendor/codemirror/addon/runmode/runmode.node.js', - '/media/vendor/codemirror/addon/runmode/runmode.node.min.js', - '/media/vendor/codemirror/addon/runmode/runmode.node.min.js.gz', - '/media/vendor/codemirror/addon/scroll/annotatescrollbar.js', - '/media/vendor/codemirror/addon/scroll/annotatescrollbar.min.js', - '/media/vendor/codemirror/addon/scroll/annotatescrollbar.min.js.gz', - '/media/vendor/codemirror/addon/scroll/scrollpastend.js', - '/media/vendor/codemirror/addon/scroll/scrollpastend.min.js', - '/media/vendor/codemirror/addon/scroll/scrollpastend.min.js.gz', - '/media/vendor/codemirror/addon/scroll/simplescrollbars.css', - '/media/vendor/codemirror/addon/scroll/simplescrollbars.js', - '/media/vendor/codemirror/addon/scroll/simplescrollbars.min.js', - '/media/vendor/codemirror/addon/scroll/simplescrollbars.min.js.gz', - '/media/vendor/codemirror/addon/search/jump-to-line.js', - '/media/vendor/codemirror/addon/search/jump-to-line.min.js', - '/media/vendor/codemirror/addon/search/jump-to-line.min.js.gz', - '/media/vendor/codemirror/addon/search/match-highlighter.js', - '/media/vendor/codemirror/addon/search/match-highlighter.min.js', - '/media/vendor/codemirror/addon/search/match-highlighter.min.js.gz', - '/media/vendor/codemirror/addon/search/matchesonscrollbar.css', - '/media/vendor/codemirror/addon/search/matchesonscrollbar.js', - '/media/vendor/codemirror/addon/search/matchesonscrollbar.min.js', - '/media/vendor/codemirror/addon/search/matchesonscrollbar.min.js.gz', - '/media/vendor/codemirror/addon/search/search.js', - '/media/vendor/codemirror/addon/search/search.min.js', - '/media/vendor/codemirror/addon/search/search.min.js.gz', - '/media/vendor/codemirror/addon/search/searchcursor.js', - '/media/vendor/codemirror/addon/search/searchcursor.min.js', - '/media/vendor/codemirror/addon/search/searchcursor.min.js.gz', - '/media/vendor/codemirror/addon/selection/active-line.js', - '/media/vendor/codemirror/addon/selection/active-line.min.js', - '/media/vendor/codemirror/addon/selection/active-line.min.js.gz', - '/media/vendor/codemirror/addon/selection/mark-selection.js', - '/media/vendor/codemirror/addon/selection/mark-selection.min.js', - '/media/vendor/codemirror/addon/selection/mark-selection.min.js.gz', - '/media/vendor/codemirror/addon/selection/selection-pointer.js', - '/media/vendor/codemirror/addon/selection/selection-pointer.min.js', - '/media/vendor/codemirror/addon/selection/selection-pointer.min.js.gz', - '/media/vendor/codemirror/addon/tern/tern.css', - '/media/vendor/codemirror/addon/tern/tern.js', - '/media/vendor/codemirror/addon/tern/tern.min.js', - '/media/vendor/codemirror/addon/tern/tern.min.js.gz', - '/media/vendor/codemirror/addon/tern/worker.js', - '/media/vendor/codemirror/addon/tern/worker.min.js', - '/media/vendor/codemirror/addon/tern/worker.min.js.gz', - '/media/vendor/codemirror/addon/wrap/hardwrap.js', - '/media/vendor/codemirror/addon/wrap/hardwrap.min.js', - '/media/vendor/codemirror/addon/wrap/hardwrap.min.js.gz', - '/media/vendor/codemirror/keymap/emacs.js', - '/media/vendor/codemirror/keymap/emacs.min.js', - '/media/vendor/codemirror/keymap/emacs.min.js.gz', - '/media/vendor/codemirror/keymap/sublime.js', - '/media/vendor/codemirror/keymap/sublime.min.js', - '/media/vendor/codemirror/keymap/sublime.min.js.gz', - '/media/vendor/codemirror/keymap/vim.js', - '/media/vendor/codemirror/keymap/vim.min.js', - '/media/vendor/codemirror/keymap/vim.min.js.gz', - '/media/vendor/codemirror/lib/addons.css', - '/media/vendor/codemirror/lib/addons.js', - '/media/vendor/codemirror/lib/addons.min.js', - '/media/vendor/codemirror/lib/addons.min.js.gz', - '/media/vendor/codemirror/lib/codemirror.css', - '/media/vendor/codemirror/lib/codemirror.js', - '/media/vendor/codemirror/lib/codemirror.min.js', - '/media/vendor/codemirror/lib/codemirror.min.js.gz', - '/media/vendor/codemirror/mode/apl/apl.js', - '/media/vendor/codemirror/mode/apl/apl.min.js', - '/media/vendor/codemirror/mode/apl/apl.min.js.gz', - '/media/vendor/codemirror/mode/asciiarmor/asciiarmor.js', - '/media/vendor/codemirror/mode/asciiarmor/asciiarmor.min.js', - '/media/vendor/codemirror/mode/asciiarmor/asciiarmor.min.js.gz', - '/media/vendor/codemirror/mode/asn.1/asn.1.js', - '/media/vendor/codemirror/mode/asn.1/asn.1.min.js', - '/media/vendor/codemirror/mode/asn.1/asn.1.min.js.gz', - '/media/vendor/codemirror/mode/asterisk/asterisk.js', - '/media/vendor/codemirror/mode/asterisk/asterisk.min.js', - '/media/vendor/codemirror/mode/asterisk/asterisk.min.js.gz', - '/media/vendor/codemirror/mode/brainfuck/brainfuck.js', - '/media/vendor/codemirror/mode/brainfuck/brainfuck.min.js', - '/media/vendor/codemirror/mode/brainfuck/brainfuck.min.js.gz', - '/media/vendor/codemirror/mode/clike/clike.js', - '/media/vendor/codemirror/mode/clike/clike.min.js', - '/media/vendor/codemirror/mode/clike/clike.min.js.gz', - '/media/vendor/codemirror/mode/clojure/clojure.js', - '/media/vendor/codemirror/mode/clojure/clojure.min.js', - '/media/vendor/codemirror/mode/clojure/clojure.min.js.gz', - '/media/vendor/codemirror/mode/cmake/cmake.js', - '/media/vendor/codemirror/mode/cmake/cmake.min.js', - '/media/vendor/codemirror/mode/cmake/cmake.min.js.gz', - '/media/vendor/codemirror/mode/cobol/cobol.js', - '/media/vendor/codemirror/mode/cobol/cobol.min.js', - '/media/vendor/codemirror/mode/cobol/cobol.min.js.gz', - '/media/vendor/codemirror/mode/coffeescript/coffeescript.js', - '/media/vendor/codemirror/mode/coffeescript/coffeescript.min.js', - '/media/vendor/codemirror/mode/coffeescript/coffeescript.min.js.gz', - '/media/vendor/codemirror/mode/commonlisp/commonlisp.js', - '/media/vendor/codemirror/mode/commonlisp/commonlisp.min.js', - '/media/vendor/codemirror/mode/commonlisp/commonlisp.min.js.gz', - '/media/vendor/codemirror/mode/crystal/crystal.js', - '/media/vendor/codemirror/mode/crystal/crystal.min.js', - '/media/vendor/codemirror/mode/crystal/crystal.min.js.gz', - '/media/vendor/codemirror/mode/css/css.js', - '/media/vendor/codemirror/mode/css/css.min.js', - '/media/vendor/codemirror/mode/css/css.min.js.gz', - '/media/vendor/codemirror/mode/cypher/cypher.js', - '/media/vendor/codemirror/mode/cypher/cypher.min.js', - '/media/vendor/codemirror/mode/cypher/cypher.min.js.gz', - '/media/vendor/codemirror/mode/d/d.js', - '/media/vendor/codemirror/mode/d/d.min.js', - '/media/vendor/codemirror/mode/d/d.min.js.gz', - '/media/vendor/codemirror/mode/dart/dart.js', - '/media/vendor/codemirror/mode/dart/dart.min.js', - '/media/vendor/codemirror/mode/dart/dart.min.js.gz', - '/media/vendor/codemirror/mode/diff/diff.js', - '/media/vendor/codemirror/mode/diff/diff.min.js', - '/media/vendor/codemirror/mode/diff/diff.min.js.gz', - '/media/vendor/codemirror/mode/django/django.js', - '/media/vendor/codemirror/mode/django/django.min.js', - '/media/vendor/codemirror/mode/django/django.min.js.gz', - '/media/vendor/codemirror/mode/dockerfile/dockerfile.js', - '/media/vendor/codemirror/mode/dockerfile/dockerfile.min.js', - '/media/vendor/codemirror/mode/dockerfile/dockerfile.min.js.gz', - '/media/vendor/codemirror/mode/dtd/dtd.js', - '/media/vendor/codemirror/mode/dtd/dtd.min.js', - '/media/vendor/codemirror/mode/dtd/dtd.min.js.gz', - '/media/vendor/codemirror/mode/dylan/dylan.js', - '/media/vendor/codemirror/mode/dylan/dylan.min.js', - '/media/vendor/codemirror/mode/dylan/dylan.min.js.gz', - '/media/vendor/codemirror/mode/ebnf/ebnf.js', - '/media/vendor/codemirror/mode/ebnf/ebnf.min.js', - '/media/vendor/codemirror/mode/ebnf/ebnf.min.js.gz', - '/media/vendor/codemirror/mode/ecl/ecl.js', - '/media/vendor/codemirror/mode/ecl/ecl.min.js', - '/media/vendor/codemirror/mode/ecl/ecl.min.js.gz', - '/media/vendor/codemirror/mode/eiffel/eiffel.js', - '/media/vendor/codemirror/mode/eiffel/eiffel.min.js', - '/media/vendor/codemirror/mode/eiffel/eiffel.min.js.gz', - '/media/vendor/codemirror/mode/elm/elm.js', - '/media/vendor/codemirror/mode/elm/elm.min.js', - '/media/vendor/codemirror/mode/elm/elm.min.js.gz', - '/media/vendor/codemirror/mode/erlang/erlang.js', - '/media/vendor/codemirror/mode/erlang/erlang.min.js', - '/media/vendor/codemirror/mode/erlang/erlang.min.js.gz', - '/media/vendor/codemirror/mode/factor/factor.js', - '/media/vendor/codemirror/mode/factor/factor.min.js', - '/media/vendor/codemirror/mode/factor/factor.min.js.gz', - '/media/vendor/codemirror/mode/fcl/fcl.js', - '/media/vendor/codemirror/mode/fcl/fcl.min.js', - '/media/vendor/codemirror/mode/fcl/fcl.min.js.gz', - '/media/vendor/codemirror/mode/forth/forth.js', - '/media/vendor/codemirror/mode/forth/forth.min.js', - '/media/vendor/codemirror/mode/forth/forth.min.js.gz', - '/media/vendor/codemirror/mode/fortran/fortran.js', - '/media/vendor/codemirror/mode/fortran/fortran.min.js', - '/media/vendor/codemirror/mode/fortran/fortran.min.js.gz', - '/media/vendor/codemirror/mode/gas/gas.js', - '/media/vendor/codemirror/mode/gas/gas.min.js', - '/media/vendor/codemirror/mode/gas/gas.min.js.gz', - '/media/vendor/codemirror/mode/gfm/gfm.js', - '/media/vendor/codemirror/mode/gfm/gfm.min.js', - '/media/vendor/codemirror/mode/gfm/gfm.min.js.gz', - '/media/vendor/codemirror/mode/gherkin/gherkin.js', - '/media/vendor/codemirror/mode/gherkin/gherkin.min.js', - '/media/vendor/codemirror/mode/gherkin/gherkin.min.js.gz', - '/media/vendor/codemirror/mode/go/go.js', - '/media/vendor/codemirror/mode/go/go.min.js', - '/media/vendor/codemirror/mode/go/go.min.js.gz', - '/media/vendor/codemirror/mode/groovy/groovy.js', - '/media/vendor/codemirror/mode/groovy/groovy.min.js', - '/media/vendor/codemirror/mode/groovy/groovy.min.js.gz', - '/media/vendor/codemirror/mode/haml/haml.js', - '/media/vendor/codemirror/mode/haml/haml.min.js', - '/media/vendor/codemirror/mode/haml/haml.min.js.gz', - '/media/vendor/codemirror/mode/handlebars/handlebars.js', - '/media/vendor/codemirror/mode/handlebars/handlebars.min.js', - '/media/vendor/codemirror/mode/handlebars/handlebars.min.js.gz', - '/media/vendor/codemirror/mode/haskell-literate/haskell-literate.js', - '/media/vendor/codemirror/mode/haskell-literate/haskell-literate.min.js', - '/media/vendor/codemirror/mode/haskell-literate/haskell-literate.min.js.gz', - '/media/vendor/codemirror/mode/haskell/haskell.js', - '/media/vendor/codemirror/mode/haskell/haskell.min.js', - '/media/vendor/codemirror/mode/haskell/haskell.min.js.gz', - '/media/vendor/codemirror/mode/haxe/haxe.js', - '/media/vendor/codemirror/mode/haxe/haxe.min.js', - '/media/vendor/codemirror/mode/haxe/haxe.min.js.gz', - '/media/vendor/codemirror/mode/htmlembedded/htmlembedded.js', - '/media/vendor/codemirror/mode/htmlembedded/htmlembedded.min.js', - '/media/vendor/codemirror/mode/htmlembedded/htmlembedded.min.js.gz', - '/media/vendor/codemirror/mode/htmlmixed/htmlmixed.js', - '/media/vendor/codemirror/mode/htmlmixed/htmlmixed.min.js', - '/media/vendor/codemirror/mode/htmlmixed/htmlmixed.min.js.gz', - '/media/vendor/codemirror/mode/http/http.js', - '/media/vendor/codemirror/mode/http/http.min.js', - '/media/vendor/codemirror/mode/http/http.min.js.gz', - '/media/vendor/codemirror/mode/idl/idl.js', - '/media/vendor/codemirror/mode/idl/idl.min.js', - '/media/vendor/codemirror/mode/idl/idl.min.js.gz', - '/media/vendor/codemirror/mode/javascript/javascript.js', - '/media/vendor/codemirror/mode/javascript/javascript.min.js', - '/media/vendor/codemirror/mode/javascript/javascript.min.js.gz', - '/media/vendor/codemirror/mode/jinja2/jinja2.js', - '/media/vendor/codemirror/mode/jinja2/jinja2.min.js', - '/media/vendor/codemirror/mode/jinja2/jinja2.min.js.gz', - '/media/vendor/codemirror/mode/jsx/jsx.js', - '/media/vendor/codemirror/mode/jsx/jsx.min.js', - '/media/vendor/codemirror/mode/jsx/jsx.min.js.gz', - '/media/vendor/codemirror/mode/julia/julia.js', - '/media/vendor/codemirror/mode/julia/julia.min.js', - '/media/vendor/codemirror/mode/julia/julia.min.js.gz', - '/media/vendor/codemirror/mode/livescript/livescript.js', - '/media/vendor/codemirror/mode/livescript/livescript.min.js', - '/media/vendor/codemirror/mode/livescript/livescript.min.js.gz', - '/media/vendor/codemirror/mode/lua/lua.js', - '/media/vendor/codemirror/mode/lua/lua.min.js', - '/media/vendor/codemirror/mode/lua/lua.min.js.gz', - '/media/vendor/codemirror/mode/markdown/markdown.js', - '/media/vendor/codemirror/mode/markdown/markdown.min.js', - '/media/vendor/codemirror/mode/markdown/markdown.min.js.gz', - '/media/vendor/codemirror/mode/mathematica/mathematica.js', - '/media/vendor/codemirror/mode/mathematica/mathematica.min.js', - '/media/vendor/codemirror/mode/mathematica/mathematica.min.js.gz', - '/media/vendor/codemirror/mode/mbox/mbox.js', - '/media/vendor/codemirror/mode/mbox/mbox.min.js', - '/media/vendor/codemirror/mode/mbox/mbox.min.js.gz', - '/media/vendor/codemirror/mode/meta.js', - '/media/vendor/codemirror/mode/meta.min.js', - '/media/vendor/codemirror/mode/meta.min.js.gz', - '/media/vendor/codemirror/mode/mirc/mirc.js', - '/media/vendor/codemirror/mode/mirc/mirc.min.js', - '/media/vendor/codemirror/mode/mirc/mirc.min.js.gz', - '/media/vendor/codemirror/mode/mllike/mllike.js', - '/media/vendor/codemirror/mode/mllike/mllike.min.js', - '/media/vendor/codemirror/mode/mllike/mllike.min.js.gz', - '/media/vendor/codemirror/mode/modelica/modelica.js', - '/media/vendor/codemirror/mode/modelica/modelica.min.js', - '/media/vendor/codemirror/mode/modelica/modelica.min.js.gz', - '/media/vendor/codemirror/mode/mscgen/mscgen.js', - '/media/vendor/codemirror/mode/mscgen/mscgen.min.js', - '/media/vendor/codemirror/mode/mscgen/mscgen.min.js.gz', - '/media/vendor/codemirror/mode/mumps/mumps.js', - '/media/vendor/codemirror/mode/mumps/mumps.min.js', - '/media/vendor/codemirror/mode/mumps/mumps.min.js.gz', - '/media/vendor/codemirror/mode/nginx/nginx.js', - '/media/vendor/codemirror/mode/nginx/nginx.min.js', - '/media/vendor/codemirror/mode/nginx/nginx.min.js.gz', - '/media/vendor/codemirror/mode/nsis/nsis.js', - '/media/vendor/codemirror/mode/nsis/nsis.min.js', - '/media/vendor/codemirror/mode/nsis/nsis.min.js.gz', - '/media/vendor/codemirror/mode/ntriples/ntriples.js', - '/media/vendor/codemirror/mode/ntriples/ntriples.min.js', - '/media/vendor/codemirror/mode/ntriples/ntriples.min.js.gz', - '/media/vendor/codemirror/mode/octave/octave.js', - '/media/vendor/codemirror/mode/octave/octave.min.js', - '/media/vendor/codemirror/mode/octave/octave.min.js.gz', - '/media/vendor/codemirror/mode/oz/oz.js', - '/media/vendor/codemirror/mode/oz/oz.min.js', - '/media/vendor/codemirror/mode/oz/oz.min.js.gz', - '/media/vendor/codemirror/mode/pascal/pascal.js', - '/media/vendor/codemirror/mode/pascal/pascal.min.js', - '/media/vendor/codemirror/mode/pascal/pascal.min.js.gz', - '/media/vendor/codemirror/mode/pegjs/pegjs.js', - '/media/vendor/codemirror/mode/pegjs/pegjs.min.js', - '/media/vendor/codemirror/mode/pegjs/pegjs.min.js.gz', - '/media/vendor/codemirror/mode/perl/perl.js', - '/media/vendor/codemirror/mode/perl/perl.min.js', - '/media/vendor/codemirror/mode/perl/perl.min.js.gz', - '/media/vendor/codemirror/mode/php/php.js', - '/media/vendor/codemirror/mode/php/php.min.js', - '/media/vendor/codemirror/mode/php/php.min.js.gz', - '/media/vendor/codemirror/mode/pig/pig.js', - '/media/vendor/codemirror/mode/pig/pig.min.js', - '/media/vendor/codemirror/mode/pig/pig.min.js.gz', - '/media/vendor/codemirror/mode/powershell/powershell.js', - '/media/vendor/codemirror/mode/powershell/powershell.min.js', - '/media/vendor/codemirror/mode/powershell/powershell.min.js.gz', - '/media/vendor/codemirror/mode/properties/properties.js', - '/media/vendor/codemirror/mode/properties/properties.min.js', - '/media/vendor/codemirror/mode/properties/properties.min.js.gz', - '/media/vendor/codemirror/mode/protobuf/protobuf.js', - '/media/vendor/codemirror/mode/protobuf/protobuf.min.js', - '/media/vendor/codemirror/mode/protobuf/protobuf.min.js.gz', - '/media/vendor/codemirror/mode/pug/pug.js', - '/media/vendor/codemirror/mode/pug/pug.min.js', - '/media/vendor/codemirror/mode/pug/pug.min.js.gz', - '/media/vendor/codemirror/mode/puppet/puppet.js', - '/media/vendor/codemirror/mode/puppet/puppet.min.js', - '/media/vendor/codemirror/mode/puppet/puppet.min.js.gz', - '/media/vendor/codemirror/mode/python/python.js', - '/media/vendor/codemirror/mode/python/python.min.js', - '/media/vendor/codemirror/mode/python/python.min.js.gz', - '/media/vendor/codemirror/mode/q/q.js', - '/media/vendor/codemirror/mode/q/q.min.js', - '/media/vendor/codemirror/mode/q/q.min.js.gz', - '/media/vendor/codemirror/mode/r/r.js', - '/media/vendor/codemirror/mode/r/r.min.js', - '/media/vendor/codemirror/mode/r/r.min.js.gz', - '/media/vendor/codemirror/mode/rpm/changes/index.html', - '/media/vendor/codemirror/mode/rpm/rpm.js', - '/media/vendor/codemirror/mode/rpm/rpm.min.js', - '/media/vendor/codemirror/mode/rpm/rpm.min.js.gz', - '/media/vendor/codemirror/mode/rst/rst.js', - '/media/vendor/codemirror/mode/rst/rst.min.js', - '/media/vendor/codemirror/mode/rst/rst.min.js.gz', - '/media/vendor/codemirror/mode/ruby/ruby.js', - '/media/vendor/codemirror/mode/ruby/ruby.min.js', - '/media/vendor/codemirror/mode/ruby/ruby.min.js.gz', - '/media/vendor/codemirror/mode/rust/rust.js', - '/media/vendor/codemirror/mode/rust/rust.min.js', - '/media/vendor/codemirror/mode/rust/rust.min.js.gz', - '/media/vendor/codemirror/mode/sas/sas.js', - '/media/vendor/codemirror/mode/sas/sas.min.js', - '/media/vendor/codemirror/mode/sas/sas.min.js.gz', - '/media/vendor/codemirror/mode/sass/sass.js', - '/media/vendor/codemirror/mode/sass/sass.min.js', - '/media/vendor/codemirror/mode/sass/sass.min.js.gz', - '/media/vendor/codemirror/mode/scheme/scheme.js', - '/media/vendor/codemirror/mode/scheme/scheme.min.js', - '/media/vendor/codemirror/mode/scheme/scheme.min.js.gz', - '/media/vendor/codemirror/mode/shell/shell.js', - '/media/vendor/codemirror/mode/shell/shell.min.js', - '/media/vendor/codemirror/mode/shell/shell.min.js.gz', - '/media/vendor/codemirror/mode/sieve/sieve.js', - '/media/vendor/codemirror/mode/sieve/sieve.min.js', - '/media/vendor/codemirror/mode/sieve/sieve.min.js.gz', - '/media/vendor/codemirror/mode/slim/slim.js', - '/media/vendor/codemirror/mode/slim/slim.min.js', - '/media/vendor/codemirror/mode/slim/slim.min.js.gz', - '/media/vendor/codemirror/mode/smalltalk/smalltalk.js', - '/media/vendor/codemirror/mode/smalltalk/smalltalk.min.js', - '/media/vendor/codemirror/mode/smalltalk/smalltalk.min.js.gz', - '/media/vendor/codemirror/mode/smarty/smarty.js', - '/media/vendor/codemirror/mode/smarty/smarty.min.js', - '/media/vendor/codemirror/mode/smarty/smarty.min.js.gz', - '/media/vendor/codemirror/mode/solr/solr.js', - '/media/vendor/codemirror/mode/solr/solr.min.js', - '/media/vendor/codemirror/mode/solr/solr.min.js.gz', - '/media/vendor/codemirror/mode/soy/soy.js', - '/media/vendor/codemirror/mode/soy/soy.min.js', - '/media/vendor/codemirror/mode/soy/soy.min.js.gz', - '/media/vendor/codemirror/mode/sparql/sparql.js', - '/media/vendor/codemirror/mode/sparql/sparql.min.js', - '/media/vendor/codemirror/mode/sparql/sparql.min.js.gz', - '/media/vendor/codemirror/mode/spreadsheet/spreadsheet.js', - '/media/vendor/codemirror/mode/spreadsheet/spreadsheet.min.js', - '/media/vendor/codemirror/mode/spreadsheet/spreadsheet.min.js.gz', - '/media/vendor/codemirror/mode/sql/sql.js', - '/media/vendor/codemirror/mode/sql/sql.min.js', - '/media/vendor/codemirror/mode/sql/sql.min.js.gz', - '/media/vendor/codemirror/mode/stex/stex.js', - '/media/vendor/codemirror/mode/stex/stex.min.js', - '/media/vendor/codemirror/mode/stex/stex.min.js.gz', - '/media/vendor/codemirror/mode/stylus/stylus.js', - '/media/vendor/codemirror/mode/stylus/stylus.min.js', - '/media/vendor/codemirror/mode/stylus/stylus.min.js.gz', - '/media/vendor/codemirror/mode/swift/swift.js', - '/media/vendor/codemirror/mode/swift/swift.min.js', - '/media/vendor/codemirror/mode/swift/swift.min.js.gz', - '/media/vendor/codemirror/mode/tcl/tcl.js', - '/media/vendor/codemirror/mode/tcl/tcl.min.js', - '/media/vendor/codemirror/mode/tcl/tcl.min.js.gz', - '/media/vendor/codemirror/mode/textile/textile.js', - '/media/vendor/codemirror/mode/textile/textile.min.js', - '/media/vendor/codemirror/mode/textile/textile.min.js.gz', - '/media/vendor/codemirror/mode/tiddlywiki/tiddlywiki.css', - '/media/vendor/codemirror/mode/tiddlywiki/tiddlywiki.js', - '/media/vendor/codemirror/mode/tiddlywiki/tiddlywiki.min.js', - '/media/vendor/codemirror/mode/tiddlywiki/tiddlywiki.min.js.gz', - '/media/vendor/codemirror/mode/tiki/tiki.css', - '/media/vendor/codemirror/mode/tiki/tiki.js', - '/media/vendor/codemirror/mode/tiki/tiki.min.js', - '/media/vendor/codemirror/mode/tiki/tiki.min.js.gz', - '/media/vendor/codemirror/mode/toml/toml.js', - '/media/vendor/codemirror/mode/toml/toml.min.js', - '/media/vendor/codemirror/mode/toml/toml.min.js.gz', - '/media/vendor/codemirror/mode/tornado/tornado.js', - '/media/vendor/codemirror/mode/tornado/tornado.min.js', - '/media/vendor/codemirror/mode/tornado/tornado.min.js.gz', - '/media/vendor/codemirror/mode/troff/troff.js', - '/media/vendor/codemirror/mode/troff/troff.min.js', - '/media/vendor/codemirror/mode/troff/troff.min.js.gz', - '/media/vendor/codemirror/mode/ttcn-cfg/ttcn-cfg.js', - '/media/vendor/codemirror/mode/ttcn-cfg/ttcn-cfg.min.js', - '/media/vendor/codemirror/mode/ttcn-cfg/ttcn-cfg.min.js.gz', - '/media/vendor/codemirror/mode/ttcn/ttcn.js', - '/media/vendor/codemirror/mode/ttcn/ttcn.min.js', - '/media/vendor/codemirror/mode/ttcn/ttcn.min.js.gz', - '/media/vendor/codemirror/mode/turtle/turtle.js', - '/media/vendor/codemirror/mode/turtle/turtle.min.js', - '/media/vendor/codemirror/mode/turtle/turtle.min.js.gz', - '/media/vendor/codemirror/mode/twig/twig.js', - '/media/vendor/codemirror/mode/twig/twig.min.js', - '/media/vendor/codemirror/mode/twig/twig.min.js.gz', - '/media/vendor/codemirror/mode/vb/vb.js', - '/media/vendor/codemirror/mode/vb/vb.min.js', - '/media/vendor/codemirror/mode/vb/vb.min.js.gz', - '/media/vendor/codemirror/mode/vbscript/vbscript.js', - '/media/vendor/codemirror/mode/vbscript/vbscript.min.js', - '/media/vendor/codemirror/mode/vbscript/vbscript.min.js.gz', - '/media/vendor/codemirror/mode/velocity/velocity.js', - '/media/vendor/codemirror/mode/velocity/velocity.min.js', - '/media/vendor/codemirror/mode/velocity/velocity.min.js.gz', - '/media/vendor/codemirror/mode/verilog/verilog.js', - '/media/vendor/codemirror/mode/verilog/verilog.min.js', - '/media/vendor/codemirror/mode/verilog/verilog.min.js.gz', - '/media/vendor/codemirror/mode/vhdl/vhdl.js', - '/media/vendor/codemirror/mode/vhdl/vhdl.min.js', - '/media/vendor/codemirror/mode/vhdl/vhdl.min.js.gz', - '/media/vendor/codemirror/mode/vue/vue.js', - '/media/vendor/codemirror/mode/vue/vue.min.js', - '/media/vendor/codemirror/mode/vue/vue.min.js.gz', - '/media/vendor/codemirror/mode/wast/wast.js', - '/media/vendor/codemirror/mode/wast/wast.min.js', - '/media/vendor/codemirror/mode/wast/wast.min.js.gz', - '/media/vendor/codemirror/mode/webidl/webidl.js', - '/media/vendor/codemirror/mode/webidl/webidl.min.js', - '/media/vendor/codemirror/mode/webidl/webidl.min.js.gz', - '/media/vendor/codemirror/mode/xml/xml.js', - '/media/vendor/codemirror/mode/xml/xml.min.js', - '/media/vendor/codemirror/mode/xml/xml.min.js.gz', - '/media/vendor/codemirror/mode/xquery/xquery.js', - '/media/vendor/codemirror/mode/xquery/xquery.min.js', - '/media/vendor/codemirror/mode/xquery/xquery.min.js.gz', - '/media/vendor/codemirror/mode/yacas/yacas.js', - '/media/vendor/codemirror/mode/yacas/yacas.min.js', - '/media/vendor/codemirror/mode/yacas/yacas.min.js.gz', - '/media/vendor/codemirror/mode/yaml-frontmatter/yaml-frontmatter.js', - '/media/vendor/codemirror/mode/yaml-frontmatter/yaml-frontmatter.min.js', - '/media/vendor/codemirror/mode/yaml-frontmatter/yaml-frontmatter.min.js.gz', - '/media/vendor/codemirror/mode/yaml/yaml.js', - '/media/vendor/codemirror/mode/yaml/yaml.min.js', - '/media/vendor/codemirror/mode/yaml/yaml.min.js.gz', - '/media/vendor/codemirror/mode/z80/z80.js', - '/media/vendor/codemirror/mode/z80/z80.min.js', - '/media/vendor/codemirror/mode/z80/z80.min.js.gz', - '/media/vendor/codemirror/theme/3024-day.css', - '/media/vendor/codemirror/theme/3024-night.css', - '/media/vendor/codemirror/theme/abbott.css', - '/media/vendor/codemirror/theme/abcdef.css', - '/media/vendor/codemirror/theme/ambiance-mobile.css', - '/media/vendor/codemirror/theme/ambiance.css', - '/media/vendor/codemirror/theme/ayu-dark.css', - '/media/vendor/codemirror/theme/ayu-mirage.css', - '/media/vendor/codemirror/theme/base16-dark.css', - '/media/vendor/codemirror/theme/base16-light.css', - '/media/vendor/codemirror/theme/bespin.css', - '/media/vendor/codemirror/theme/blackboard.css', - '/media/vendor/codemirror/theme/cobalt.css', - '/media/vendor/codemirror/theme/colorforth.css', - '/media/vendor/codemirror/theme/darcula.css', - '/media/vendor/codemirror/theme/dracula.css', - '/media/vendor/codemirror/theme/duotone-dark.css', - '/media/vendor/codemirror/theme/duotone-light.css', - '/media/vendor/codemirror/theme/eclipse.css', - '/media/vendor/codemirror/theme/elegant.css', - '/media/vendor/codemirror/theme/erlang-dark.css', - '/media/vendor/codemirror/theme/gruvbox-dark.css', - '/media/vendor/codemirror/theme/hopscotch.css', - '/media/vendor/codemirror/theme/icecoder.css', - '/media/vendor/codemirror/theme/idea.css', - '/media/vendor/codemirror/theme/isotope.css', - '/media/vendor/codemirror/theme/juejin.css', - '/media/vendor/codemirror/theme/lesser-dark.css', - '/media/vendor/codemirror/theme/liquibyte.css', - '/media/vendor/codemirror/theme/lucario.css', - '/media/vendor/codemirror/theme/material-darker.css', - '/media/vendor/codemirror/theme/material-ocean.css', - '/media/vendor/codemirror/theme/material-palenight.css', - '/media/vendor/codemirror/theme/material.css', - '/media/vendor/codemirror/theme/mbo.css', - '/media/vendor/codemirror/theme/mdn-like.css', - '/media/vendor/codemirror/theme/midnight.css', - '/media/vendor/codemirror/theme/monokai.css', - '/media/vendor/codemirror/theme/moxer.css', - '/media/vendor/codemirror/theme/neat.css', - '/media/vendor/codemirror/theme/neo.css', - '/media/vendor/codemirror/theme/night.css', - '/media/vendor/codemirror/theme/nord.css', - '/media/vendor/codemirror/theme/oceanic-next.css', - '/media/vendor/codemirror/theme/panda-syntax.css', - '/media/vendor/codemirror/theme/paraiso-dark.css', - '/media/vendor/codemirror/theme/paraiso-light.css', - '/media/vendor/codemirror/theme/pastel-on-dark.css', - '/media/vendor/codemirror/theme/railscasts.css', - '/media/vendor/codemirror/theme/rubyblue.css', - '/media/vendor/codemirror/theme/seti.css', - '/media/vendor/codemirror/theme/shadowfox.css', - '/media/vendor/codemirror/theme/solarized.css', - '/media/vendor/codemirror/theme/ssms.css', - '/media/vendor/codemirror/theme/the-matrix.css', - '/media/vendor/codemirror/theme/tomorrow-night-bright.css', - '/media/vendor/codemirror/theme/tomorrow-night-eighties.css', - '/media/vendor/codemirror/theme/ttcn.css', - '/media/vendor/codemirror/theme/twilight.css', - '/media/vendor/codemirror/theme/vibrant-ink.css', - '/media/vendor/codemirror/theme/xq-dark.css', - '/media/vendor/codemirror/theme/xq-light.css', - '/media/vendor/codemirror/theme/yeti.css', - '/media/vendor/codemirror/theme/yonce.css', - '/media/vendor/codemirror/theme/zenburn.css', - '/plugins/editors/codemirror/fonts.json', - '/plugins/editors/codemirror/layouts/editors/codemirror/element.php', - '/plugins/editors/codemirror/layouts/editors/codemirror/styles.php', - '/plugins/editors/codemirror/src/Field/FontsField.php', - // From 5.0.0-alpha3 to 5.0.0-alpha4 - '/libraries/src/Event/Application/DeamonForkEvent.php', - '/libraries/src/Event/Application/DeamonReceiveSignalEvent.php', - '/media/plg_editors_tinymce/js/plugins/highlighter/plugin.js', - '/media/plg_editors_tinymce/js/plugins/highlighter/plugin.min.js', - '/media/plg_editors_tinymce/js/plugins/highlighter/plugin.min.js.gz', - '/media/plg_editors_tinymce/js/plugins/highlighter/source.css', - '/media/plg_editors_tinymce/js/plugins/highlighter/source.html', - '/media/plg_editors_tinymce/js/plugins/highlighter/source.js', - '/media/plg_editors_tinymce/js/plugins/highlighter/source.min.css', - '/media/plg_editors_tinymce/js/plugins/highlighter/source.min.css.gz', - '/media/plg_editors_tinymce/js/plugins/highlighter/source.min.js', - '/media/plg_editors_tinymce/js/plugins/highlighter/source.min.js.gz', - '/media/plg_system_compat/es5.asset.json', - // From 5.0.0-alpha4 to 5.0.0-beta1 - '/administrator/components/com_categories/tmpl/categories/default_batch_footer.php', - '/administrator/components/com_content/tmpl/articles/default_batch_footer.php', - '/administrator/language/en-GB/plg_twofactorauth_totp.ini', - '/administrator/language/en-GB/plg_twofactorauth_totp.sys.ini', - '/administrator/language/en-GB/plg_twofactorauth_yubikey.ini', - '/administrator/language/en-GB/plg_twofactorauth_yubikey.sys.ini', - '/media/com_contenthistory/js/admin-history-versions.js', - '/media/com_contenthistory/js/admin-history-versions.min.js', - '/media/com_contenthistory/js/admin-history-versions.min.js.gz', - // From 5.0.0-beta1 to 5.0.0-beta2 - '/language/en-GB/lib_simplepie.sys.ini', - '/libraries/src/Cache/Storage/WincacheStorage.php', - // From 5.0.0-beta2 to 5.0.0-beta3 - '/libraries/vendor/fgrosse/phpasn1/lib/ASN1/AbstractString.php', - '/libraries/vendor/fgrosse/phpasn1/lib/ASN1/AbstractTime.php', - '/libraries/vendor/fgrosse/phpasn1/lib/ASN1/ASNObject.php', - '/libraries/vendor/fgrosse/phpasn1/lib/ASN1/Base128.php', - '/libraries/vendor/fgrosse/phpasn1/lib/ASN1/Composite/AttributeTypeAndValue.php', - '/libraries/vendor/fgrosse/phpasn1/lib/ASN1/Composite/RDNString.php', - '/libraries/vendor/fgrosse/phpasn1/lib/ASN1/Composite/RelativeDistinguishedName.php', - '/libraries/vendor/fgrosse/phpasn1/lib/ASN1/Construct.php', - '/libraries/vendor/fgrosse/phpasn1/lib/ASN1/Exception/NotImplementedException.php', - '/libraries/vendor/fgrosse/phpasn1/lib/ASN1/Exception/ParserException.php', - '/libraries/vendor/fgrosse/phpasn1/lib/ASN1/ExplicitlyTaggedObject.php', - '/libraries/vendor/fgrosse/phpasn1/lib/ASN1/Identifier.php', - '/libraries/vendor/fgrosse/phpasn1/lib/ASN1/OID.php', - '/libraries/vendor/fgrosse/phpasn1/lib/ASN1/Parsable.php', - '/libraries/vendor/fgrosse/phpasn1/lib/ASN1/TemplateParser.php', - '/libraries/vendor/fgrosse/phpasn1/lib/ASN1/Universal/BitString.php', - '/libraries/vendor/fgrosse/phpasn1/lib/ASN1/Universal/BMPString.php', - '/libraries/vendor/fgrosse/phpasn1/lib/ASN1/Universal/Boolean.php', - '/libraries/vendor/fgrosse/phpasn1/lib/ASN1/Universal/CharacterString.php', - '/libraries/vendor/fgrosse/phpasn1/lib/ASN1/Universal/Enumerated.php', - '/libraries/vendor/fgrosse/phpasn1/lib/ASN1/Universal/GeneralizedTime.php', - '/libraries/vendor/fgrosse/phpasn1/lib/ASN1/Universal/GeneralString.php', - '/libraries/vendor/fgrosse/phpasn1/lib/ASN1/Universal/GraphicString.php', - '/libraries/vendor/fgrosse/phpasn1/lib/ASN1/Universal/IA5String.php', - '/libraries/vendor/fgrosse/phpasn1/lib/ASN1/Universal/Integer.php', - '/libraries/vendor/fgrosse/phpasn1/lib/ASN1/Universal/NullObject.php', - '/libraries/vendor/fgrosse/phpasn1/lib/ASN1/Universal/NumericString.php', - '/libraries/vendor/fgrosse/phpasn1/lib/ASN1/Universal/ObjectDescriptor.php', - '/libraries/vendor/fgrosse/phpasn1/lib/ASN1/Universal/ObjectIdentifier.php', - '/libraries/vendor/fgrosse/phpasn1/lib/ASN1/Universal/OctetString.php', - '/libraries/vendor/fgrosse/phpasn1/lib/ASN1/Universal/PrintableString.php', - '/libraries/vendor/fgrosse/phpasn1/lib/ASN1/Universal/RelativeObjectIdentifier.php', - '/libraries/vendor/fgrosse/phpasn1/lib/ASN1/Universal/Sequence.php', - '/libraries/vendor/fgrosse/phpasn1/lib/ASN1/Universal/Set.php', - '/libraries/vendor/fgrosse/phpasn1/lib/ASN1/Universal/T61String.php', - '/libraries/vendor/fgrosse/phpasn1/lib/ASN1/Universal/UniversalString.php', - '/libraries/vendor/fgrosse/phpasn1/lib/ASN1/Universal/UTCTime.php', - '/libraries/vendor/fgrosse/phpasn1/lib/ASN1/Universal/UTF8String.php', - '/libraries/vendor/fgrosse/phpasn1/lib/ASN1/Universal/VisibleString.php', - '/libraries/vendor/fgrosse/phpasn1/lib/ASN1/UnknownConstructedObject.php', - '/libraries/vendor/fgrosse/phpasn1/lib/ASN1/UnknownObject.php', - '/libraries/vendor/fgrosse/phpasn1/lib/Utility/BigInteger.php', - '/libraries/vendor/fgrosse/phpasn1/lib/Utility/BigIntegerBcmath.php', - '/libraries/vendor/fgrosse/phpasn1/lib/Utility/BigIntegerGmp.php', - '/libraries/vendor/fgrosse/phpasn1/lib/X509/AlgorithmIdentifier.php', - '/libraries/vendor/fgrosse/phpasn1/lib/X509/CertificateExtensions.php', - '/libraries/vendor/fgrosse/phpasn1/lib/X509/CertificateSubject.php', - '/libraries/vendor/fgrosse/phpasn1/lib/X509/CSR/Attributes.php', - '/libraries/vendor/fgrosse/phpasn1/lib/X509/CSR/CSR.php', - '/libraries/vendor/fgrosse/phpasn1/lib/X509/PrivateKey.php', - '/libraries/vendor/fgrosse/phpasn1/lib/X509/PublicKey.php', - '/libraries/vendor/fgrosse/phpasn1/lib/X509/SAN/DNSName.php', - '/libraries/vendor/fgrosse/phpasn1/lib/X509/SAN/IPAddress.php', - '/libraries/vendor/fgrosse/phpasn1/lib/X509/SAN/SubjectAlternativeNames.php', - '/libraries/vendor/fgrosse/phpasn1/LICENSE', - '/libraries/vendor/stella-maris/clock/LICENSE.md', - '/libraries/vendor/stella-maris/clock/src/ClockInterface.php', - '/media/com_scheduler/css/admin-view-select-task.css', - '/media/com_scheduler/css/admin-view-select-task.min.css', - '/media/com_scheduler/css/admin-view-select-task.min.css.gz', - '/media/system/css/calendar-jos.css', - '/media/system/css/calendar-jos.min.css', - '/media/system/css/calendar-jos.min.css.gz', - '/media/system/css/debug.css', - '/media/system/css/debug.min.css', - '/media/system/css/debug.min.css.gz', - '/media/system/css/frontediting.css', - '/media/system/css/frontediting.min.css', - '/media/system/css/frontediting.min.css.gz', - '/media/system/css/mootree.css', - '/media/system/css/mootree.min.css', - '/media/system/css/mootree.min.css.gz', - '/media/system/css/mootree_rtl.css', - '/media/system/css/mootree_rtl.min.css', - '/media/system/css/mootree_rtl.min.css.gz', - '/media/system/css/sortablelist.css', - '/media/system/css/sortablelist.min.css', - '/media/system/css/sortablelist.min.css.gz', - // From 5.0.0 to 5.1.0-alpha1 - '/administrator/components/com_banners/tmpl/banners/default_batch_footer.php', - '/administrator/components/com_contact/tmpl/contacts/default_batch_footer.php', - '/administrator/components/com_fields/tmpl/fields/default_batch_footer.php', - '/administrator/components/com_fields/tmpl/groups/default_batch_footer.php', - '/administrator/components/com_menus/tmpl/items/default_batch_footer.php', - '/administrator/components/com_modules/tmpl/modules/default_batch_footer.php', - '/administrator/components/com_newsfeeds/tmpl/newsfeeds/default_batch_footer.php', - '/administrator/components/com_tags/tmpl/tags/default_batch_footer.php', - '/administrator/components/com_users/tmpl/users/default_batch_footer.php', - // From 5.1.0-alpha3 to 5.1.0-alpha4 - '/administrator/components/com_redirect/tmpl/links/default_batch_footer.php', - '/modules/mod_banners/mod_banners.php', - // From 5.1.0-alpha4 to 5.1.0-beta1 - '/administrator/modules/mod_custom/mod_custom.php', - '/administrator/modules/mod_frontend/mod_frontend.php', - '/administrator/modules/mod_latestactions/mod_latestactions.php', - '/administrator/modules/mod_loginsupport/mod_loginsupport.php', - '/administrator/modules/mod_messages/mod_messages.php', - '/administrator/modules/mod_multilangstatus/mod_multilangstatus.php', - '/administrator/modules/mod_sampledata/mod_sampledata.php', - '/administrator/modules/mod_stats_admin/mod_stats_admin.php', - '/administrator/modules/mod_title/mod_title.php', - '/administrator/modules/mod_toolbar/mod_toolbar.php', - '/administrator/modules/mod_user/mod_user.php', - '/administrator/modules/mod_version/mod_version.php', - '/libraries/vendor/web-token/jwt-core/Algorithm.php', - '/libraries/vendor/web-token/jwt-core/AlgorithmManager.php', - '/libraries/vendor/web-token/jwt-core/AlgorithmManagerFactory.php', - '/libraries/vendor/web-token/jwt-core/JWK.php', - '/libraries/vendor/web-token/jwt-core/JWKSet.php', - '/libraries/vendor/web-token/jwt-core/JWT.php', - '/libraries/vendor/web-token/jwt-core/LICENSE', - '/libraries/vendor/web-token/jwt-core/Util/BigInteger.php', - '/libraries/vendor/web-token/jwt-core/Util/ECKey.php', - '/libraries/vendor/web-token/jwt-core/Util/ECSignature.php', - '/libraries/vendor/web-token/jwt-core/Util/Hash.php', - '/libraries/vendor/web-token/jwt-core/Util/JsonConverter.php', - '/libraries/vendor/web-token/jwt-core/Util/KeyChecker.php', - '/libraries/vendor/web-token/jwt-core/Util/RSAKey.php', - '/libraries/vendor/web-token/jwt-signature-algorithm-ecdsa/ECDSA.php', - '/libraries/vendor/web-token/jwt-signature-algorithm-ecdsa/ES256.php', - '/libraries/vendor/web-token/jwt-signature-algorithm-ecdsa/ES384.php', - '/libraries/vendor/web-token/jwt-signature-algorithm-ecdsa/ES512.php', - '/libraries/vendor/web-token/jwt-signature-algorithm-eddsa/EdDSA.php', - '/libraries/vendor/web-token/jwt-signature-algorithm-experimental/Blake2b.php', - '/libraries/vendor/web-token/jwt-signature-algorithm-experimental/ES256K.php', - '/libraries/vendor/web-token/jwt-signature-algorithm-experimental/HS1.php', - '/libraries/vendor/web-token/jwt-signature-algorithm-experimental/HS256_64.php', - '/libraries/vendor/web-token/jwt-signature-algorithm-experimental/RS1.php', - '/libraries/vendor/web-token/jwt-signature-algorithm-hmac/HMAC.php', - '/libraries/vendor/web-token/jwt-signature-algorithm-hmac/HS256.php', - '/libraries/vendor/web-token/jwt-signature-algorithm-hmac/HS384.php', - '/libraries/vendor/web-token/jwt-signature-algorithm-hmac/HS512.php', - '/libraries/vendor/web-token/jwt-signature-algorithm-none/None.php', - '/libraries/vendor/web-token/jwt-signature-algorithm-rsa/PS256.php', - '/libraries/vendor/web-token/jwt-signature-algorithm-rsa/PS384.php', - '/libraries/vendor/web-token/jwt-signature-algorithm-rsa/PS512.php', - '/libraries/vendor/web-token/jwt-signature-algorithm-rsa/RS256.php', - '/libraries/vendor/web-token/jwt-signature-algorithm-rsa/RS384.php', - '/libraries/vendor/web-token/jwt-signature-algorithm-rsa/RS512.php', - '/libraries/vendor/web-token/jwt-signature-algorithm-rsa/RSAPKCS1.php', - '/libraries/vendor/web-token/jwt-signature-algorithm-rsa/RSAPSS.php', - '/libraries/vendor/web-token/jwt-signature-algorithm-rsa/Util/RSA.php', - '/libraries/vendor/web-token/jwt-signature/Algorithm/MacAlgorithm.php', - '/libraries/vendor/web-token/jwt-signature/Algorithm/SignatureAlgorithm.php', - '/libraries/vendor/web-token/jwt-signature/JWS.php', - '/libraries/vendor/web-token/jwt-signature/JWSBuilder.php', - '/libraries/vendor/web-token/jwt-signature/JWSBuilderFactory.php', - '/libraries/vendor/web-token/jwt-signature/JWSLoader.php', - '/libraries/vendor/web-token/jwt-signature/JWSLoaderFactory.php', - '/libraries/vendor/web-token/jwt-signature/JWSTokenSupport.php', - '/libraries/vendor/web-token/jwt-signature/JWSVerifier.php', - '/libraries/vendor/web-token/jwt-signature/JWSVerifierFactory.php', - '/libraries/vendor/web-token/jwt-signature/LICENSE', - '/libraries/vendor/web-token/jwt-signature/Serializer/CompactSerializer.php', - '/libraries/vendor/web-token/jwt-signature/Serializer/JSONFlattenedSerializer.php', - '/libraries/vendor/web-token/jwt-signature/Serializer/JSONGeneralSerializer.php', - '/libraries/vendor/web-token/jwt-signature/Serializer/JWSSerializer.php', - '/libraries/vendor/web-token/jwt-signature/Serializer/JWSSerializerManager.php', - '/libraries/vendor/web-token/jwt-signature/Serializer/JWSSerializerManagerFactory.php', - '/libraries/vendor/web-token/jwt-signature/Serializer/Serializer.php', - '/libraries/vendor/web-token/jwt-signature/Signature.php', - '/media/plg_system_jooa11y/css/jooa11y.css', - '/media/plg_system_jooa11y/css/jooa11y.min.css', - '/media/plg_system_jooa11y/css/jooa11y.min.css.gz', - '/media/plg_system_jooa11y/scss/jooa11y.scss', - '/media/vendor/joomla-a11y-checker/LICENSE.md', - '/modules/mod_feed/mod_feed.php', - '/modules/mod_languages/mod_languages.php', - '/modules/mod_stats/mod_stats.php', - '/modules/mod_syndicate/mod_syndicate.php', - '/modules/mod_tags_popular/mod_tags_popular.php', - '/modules/mod_tags_similar/mod_tags_similar.php', - '/modules/mod_wrapper/mod_wrapper.php', - // From 5.1.0-beta1 to 5.1.0-beta2 - '/administrator/modules/mod_login/mod_login.php', - '/libraries/src/Event/Router/AfterInitialiseRouterEvent.php', - '/libraries/src/Event/Router/RouterEvent.php', - '/libraries/src/Http/HttpFactoryInterface.php', - '/libraries/src/Service/Provider/Http.php', - '/libraries/vendor/web-token/jwt-experimental/ContentEncryption/A128CCM_16_128.php', - '/libraries/vendor/web-token/jwt-experimental/ContentEncryption/A128CCM_16_64.php', - '/libraries/vendor/web-token/jwt-experimental/ContentEncryption/A128CCM_64_128.php', - '/libraries/vendor/web-token/jwt-experimental/ContentEncryption/A128CCM_64_64.php', - '/libraries/vendor/web-token/jwt-experimental/ContentEncryption/A256CCM_16_128.php', - '/libraries/vendor/web-token/jwt-experimental/ContentEncryption/A256CCM_16_64.php', - '/libraries/vendor/web-token/jwt-experimental/ContentEncryption/A256CCM_64_128.php', - '/libraries/vendor/web-token/jwt-experimental/ContentEncryption/A256CCM_64_64.php', - '/libraries/vendor/web-token/jwt-experimental/ContentEncryption/AESCCM.php', - '/libraries/vendor/web-token/jwt-experimental/KeyEncryption/A128CTR.php', - '/libraries/vendor/web-token/jwt-experimental/KeyEncryption/A192CTR.php', - '/libraries/vendor/web-token/jwt-experimental/KeyEncryption/A256CTR.php', - '/libraries/vendor/web-token/jwt-experimental/KeyEncryption/AESCTR.php', - '/libraries/vendor/web-token/jwt-experimental/KeyEncryption/Chacha20Poly1305.php', - '/libraries/vendor/web-token/jwt-experimental/KeyEncryption/RSAOAEP384.php', - '/libraries/vendor/web-token/jwt-experimental/KeyEncryption/RSAOAEP512.php', - '/libraries/vendor/web-token/jwt-experimental/LICENSE', - '/libraries/vendor/web-token/jwt-experimental/Signature/Blake2b.php', - '/libraries/vendor/web-token/jwt-experimental/Signature/ES256K.php', - '/libraries/vendor/web-token/jwt-experimental/Signature/HS1.php', - '/libraries/vendor/web-token/jwt-experimental/Signature/HS256_64.php', - '/libraries/vendor/web-token/jwt-experimental/Signature/RS1.php', - '/libraries/vendor/web-token/jwt-signature-algorithm-ecdsa/LICENSE', - '/libraries/vendor/web-token/jwt-signature-algorithm-eddsa/LICENSE', - '/libraries/vendor/web-token/jwt-signature-algorithm-experimental/LICENSE', - '/libraries/vendor/web-token/jwt-signature-algorithm-hmac/LICENSE', - '/libraries/vendor/web-token/jwt-signature-algorithm-none/LICENSE', - '/libraries/vendor/web-token/jwt-signature-algorithm-rsa/LICENSE', - // From 5.1.0-beta2 to 5.1.0-rc1 - '/administrator/components/com_admin/sql/updates/mysql/4.4.4-2024-03-28.sql', - '/administrator/components/com_admin/sql/updates/postgresql/4.4.4-2024-03-28.sql', - '/administrator/modules/mod_post_installation_messages/mod_post_installation_messages.php', - '/media/vendor/punycode/LICENSE-MIT.txt', - // From 5.1.0 to 5.1.1 - '/libraries/vendor/cweagans/composer-patches/LICENSE.md', - '/libraries/vendor/cweagans/composer-patches/src/PatchEvent.php', - '/libraries/vendor/cweagans/composer-patches/src/PatchEvents.php', - '/libraries/vendor/cweagans/composer-patches/src/Patches.php', - '/libraries/vendor/cweagans/composer-patches/tests/PatchEventTest.php', - '/libraries/vendor/laminas/laminas-diactoros/PATCHES.txt', - // From 5.1.2 to 5.1.3 - '/libraries/vendor/joomla/application/rector.php', - '/libraries/vendor/joomla/console/.drone.jsonnet', - '/libraries/vendor/joomla/console/.drone.yml', - '/libraries/vendor/joomla/database/.drone.jsonnet', - '/libraries/vendor/joomla/database/.drone.yml', - '/libraries/vendor/joomla/database/phpunit.appveyor_sql2012sp1.xml.dist', - '/libraries/vendor/joomla/database/phpunit.appveyor_sql2014.xml.dist', - '/libraries/vendor/joomla/database/phpunit.appveyor_sql2017.xml.dist', - '/libraries/vendor/joomla/database/phpunit.mariadb.xml.dist', - '/libraries/vendor/joomla/database/phpunit.mysql.xml.dist', - '/libraries/vendor/joomla/database/phpunit.mysqli.xml.dist', - '/libraries/vendor/joomla/database/phpunit.pgsql.xml.dist', - '/libraries/vendor/joomla/database/phpunit.sqlite.xml.dist', - '/libraries/vendor/joomla/database/phpunit.sqlsrv.xml.dist', - '/libraries/vendor/joomla/session/.drone.jsonnet', - '/libraries/vendor/joomla/session/.drone.yml', - // From 5.2.0-alpha2 to 5.2.0-alpha3 - '/libraries/vendor/maximebf/debugbar/src/DebugBar/Resources/vendor/font-awesome/fonts/FontAwesome.otf', - '/libraries/vendor/maximebf/debugbar/src/DebugBar/Resources/vendor/font-awesome/fonts/fontawesome-webfont.eot', - '/libraries/vendor/maximebf/debugbar/src/DebugBar/Resources/vendor/font-awesome/fonts/fontawesome-webfont.svg', - '/libraries/vendor/maximebf/debugbar/src/DebugBar/Resources/vendor/font-awesome/fonts/fontawesome-webfont.ttf', - '/libraries/vendor/maximebf/debugbar/src/DebugBar/Resources/vendor/font-awesome/fonts/fontawesome-webfont.woff', - '/libraries/vendor/maximebf/debugbar/src/DebugBar/Resources/vendor/font-awesome/fonts/fontawesome-webfont.woff2', - // From 5.2.1 to 5.3.0-alpha1 - '/media/system/css/joomla-core-loader.css', - '/media/system/css/joomla-core-loader.min.css', - '/media/system/css/joomla-core-loader.min.css.gz', - '/media/system/scss/joomla-core-loader.scss', - // From 5.3.0-alpha2 to 5.3.0-alpha3 - '/administrator/components/com_scheduler/src/Table/LogsTable.php', - '/media/system/css/system-site-offline_rtl.css', - '/media/system/css/system-site-offline_rtl.min.css', - '/media/system/css/system-site-offline_rtl.min.css.gz', - '/media/system/scss/system-site-offline_rtl.scss', - // From 5.3.0-alpha3 to 5.3.0-beta1 - '/administrator/modules/mod_feed/mod_feed.php', - '/administrator/modules/mod_privacy_status/mod_privacy_status.php', - '/libraries/vendor/guzzlehttp/promises/src/functions.php', - '/libraries/vendor/guzzlehttp/promises/src/functions_include.php', - '/libraries/vendor/maximebf/debugbar/LICENSE', - '/libraries/vendor/maximebf/debugbar/src/DebugBar/Bridge/CacheCacheCollector.php', - '/libraries/vendor/maximebf/debugbar/src/DebugBar/Bridge/DoctrineCollector.php', - '/libraries/vendor/maximebf/debugbar/src/DebugBar/Bridge/MonologCollector.php', - '/libraries/vendor/maximebf/debugbar/src/DebugBar/Bridge/NamespacedTwigProfileCollector.php', - '/libraries/vendor/maximebf/debugbar/src/DebugBar/Bridge/Propel2Collector.php', - '/libraries/vendor/maximebf/debugbar/src/DebugBar/Bridge/PropelCollector.php', - '/libraries/vendor/maximebf/debugbar/src/DebugBar/Bridge/SlimCollector.php', - '/libraries/vendor/maximebf/debugbar/src/DebugBar/Bridge/SwiftMailer/SwiftLogCollector.php', - '/libraries/vendor/maximebf/debugbar/src/DebugBar/Bridge/SwiftMailer/SwiftMailCollector.php', - '/libraries/vendor/maximebf/debugbar/src/DebugBar/Bridge/Symfony/SymfonyMailCollector.php', - '/libraries/vendor/maximebf/debugbar/src/DebugBar/Bridge/Twig/DebugTwigExtension.php', - '/libraries/vendor/maximebf/debugbar/src/DebugBar/Bridge/Twig/DumpTwigExtension.php', - '/libraries/vendor/maximebf/debugbar/src/DebugBar/Bridge/Twig/MeasureTwigExtension.php', - '/libraries/vendor/maximebf/debugbar/src/DebugBar/Bridge/Twig/MeasureTwigNode.php', - '/libraries/vendor/maximebf/debugbar/src/DebugBar/Bridge/Twig/MeasureTwigTokenParser.php', - '/libraries/vendor/maximebf/debugbar/src/DebugBar/Bridge/Twig/TimeableTwigExtensionProfiler.php', - '/libraries/vendor/maximebf/debugbar/src/DebugBar/Bridge/Twig/TraceableTwigEnvironment.php', - '/libraries/vendor/maximebf/debugbar/src/DebugBar/Bridge/Twig/TraceableTwigTemplate.php', - '/libraries/vendor/maximebf/debugbar/src/DebugBar/Bridge/Twig/TwigCollector.php', - '/libraries/vendor/maximebf/debugbar/src/DebugBar/Bridge/TwigProfileCollector.php', - '/libraries/vendor/maximebf/debugbar/src/DebugBar/DataCollector/AggregatedCollector.php', - '/libraries/vendor/maximebf/debugbar/src/DebugBar/DataCollector/AssetProvider.php', - '/libraries/vendor/maximebf/debugbar/src/DebugBar/DataCollector/ConfigCollector.php', - '/libraries/vendor/maximebf/debugbar/src/DebugBar/DataCollector/DataCollector.php', - '/libraries/vendor/maximebf/debugbar/src/DebugBar/DataCollector/DataCollectorInterface.php', - '/libraries/vendor/maximebf/debugbar/src/DebugBar/DataCollector/ExceptionsCollector.php', - '/libraries/vendor/maximebf/debugbar/src/DebugBar/DataCollector/LocalizationCollector.php', - '/libraries/vendor/maximebf/debugbar/src/DebugBar/DataCollector/MemoryCollector.php', - '/libraries/vendor/maximebf/debugbar/src/DebugBar/DataCollector/MessagesAggregateInterface.php', - '/libraries/vendor/maximebf/debugbar/src/DebugBar/DataCollector/MessagesCollector.php', - '/libraries/vendor/maximebf/debugbar/src/DebugBar/DataCollector/ObjectCountCollector.php', - '/libraries/vendor/maximebf/debugbar/src/DebugBar/DataCollector/PDO/PDOCollector.php', - '/libraries/vendor/maximebf/debugbar/src/DebugBar/DataCollector/PDO/TraceablePDO.php', - '/libraries/vendor/maximebf/debugbar/src/DebugBar/DataCollector/PDO/TraceablePDOStatement.php', - '/libraries/vendor/maximebf/debugbar/src/DebugBar/DataCollector/PDO/TracedStatement.php', - '/libraries/vendor/maximebf/debugbar/src/DebugBar/DataCollector/PhpInfoCollector.php', - '/libraries/vendor/maximebf/debugbar/src/DebugBar/DataCollector/Renderable.php', - '/libraries/vendor/maximebf/debugbar/src/DebugBar/DataCollector/RequestDataCollector.php', - '/libraries/vendor/maximebf/debugbar/src/DebugBar/DataCollector/TimeDataCollector.php', - '/libraries/vendor/maximebf/debugbar/src/DebugBar/DataFormatter/DataFormatter.php', - '/libraries/vendor/maximebf/debugbar/src/DebugBar/DataFormatter/DataFormatterInterface.php', - '/libraries/vendor/maximebf/debugbar/src/DebugBar/DataFormatter/DebugBarVarDumper.php', - '/libraries/vendor/maximebf/debugbar/src/DebugBar/DataFormatter/HasDataFormatter.php', - '/libraries/vendor/maximebf/debugbar/src/DebugBar/DataFormatter/HasXdebugLinks.php', - '/libraries/vendor/maximebf/debugbar/src/DebugBar/DataFormatter/VarDumper/DebugBarHtmlDumper.php', - '/libraries/vendor/maximebf/debugbar/src/DebugBar/DebugBar.php', - '/libraries/vendor/maximebf/debugbar/src/DebugBar/DebugBarException.php', - '/libraries/vendor/maximebf/debugbar/src/DebugBar/HttpDriverInterface.php', - '/libraries/vendor/maximebf/debugbar/src/DebugBar/JavascriptRenderer.php', - '/libraries/vendor/maximebf/debugbar/src/DebugBar/OpenHandler.php', - '/libraries/vendor/maximebf/debugbar/src/DebugBar/PhpHttpDriver.php', - '/libraries/vendor/maximebf/debugbar/src/DebugBar/RequestIdGenerator.php', - '/libraries/vendor/maximebf/debugbar/src/DebugBar/RequestIdGeneratorInterface.php', - '/libraries/vendor/maximebf/debugbar/src/DebugBar/Resources/debugbar.css', - '/libraries/vendor/maximebf/debugbar/src/DebugBar/Resources/debugbar.js', - '/libraries/vendor/maximebf/debugbar/src/DebugBar/Resources/openhandler.css', - '/libraries/vendor/maximebf/debugbar/src/DebugBar/Resources/openhandler.js', - '/libraries/vendor/maximebf/debugbar/src/DebugBar/Resources/vendor/font-awesome/css/font-awesome.min.css', - '/libraries/vendor/maximebf/debugbar/src/DebugBar/Resources/vendor/highlightjs/highlight.pack.js', - '/libraries/vendor/maximebf/debugbar/src/DebugBar/Resources/vendor/highlightjs/styles/github.css', - '/libraries/vendor/maximebf/debugbar/src/DebugBar/Resources/vendor/jquery/dist/jquery.min.js', - '/libraries/vendor/maximebf/debugbar/src/DebugBar/Resources/widgets.css', - '/libraries/vendor/maximebf/debugbar/src/DebugBar/Resources/widgets.js', - '/libraries/vendor/maximebf/debugbar/src/DebugBar/Resources/widgets/mails/widget.css', - '/libraries/vendor/maximebf/debugbar/src/DebugBar/Resources/widgets/mails/widget.js', - '/libraries/vendor/maximebf/debugbar/src/DebugBar/Resources/widgets/sqlqueries/widget.css', - '/libraries/vendor/maximebf/debugbar/src/DebugBar/Resources/widgets/sqlqueries/widget.js', - '/libraries/vendor/maximebf/debugbar/src/DebugBar/Resources/widgets/templates/widget.css', - '/libraries/vendor/maximebf/debugbar/src/DebugBar/Resources/widgets/templates/widget.js', - '/libraries/vendor/maximebf/debugbar/src/DebugBar/StandardDebugBar.php', - '/libraries/vendor/maximebf/debugbar/src/DebugBar/Storage/FileStorage.php', - '/libraries/vendor/maximebf/debugbar/src/DebugBar/Storage/MemcachedStorage.php', - '/libraries/vendor/maximebf/debugbar/src/DebugBar/Storage/pdo_storage_schema.sql', - '/libraries/vendor/maximebf/debugbar/src/DebugBar/Storage/PdoStorage.php', - '/libraries/vendor/maximebf/debugbar/src/DebugBar/Storage/RedisStorage.php', - '/libraries/vendor/maximebf/debugbar/src/DebugBar/Storage/StorageInterface.php', - // From 5.3.0-beta3 to 5.3.0-rc1 - '/libraries/vendor/joomla/http/.drone.jsonnet', - '/libraries/vendor/joomla/http/.drone.yml', - '/libraries/vendor/joomla/oauth1/.drone.jsonnet', - '/libraries/vendor/joomla/oauth1/.drone.yml', - '/libraries/vendor/joomla/oauth2/.drone.jsonnet', - '/libraries/vendor/joomla/oauth2/.drone.yml', - '/libraries/vendor/joomla/router/.drone.jsonnet', - '/libraries/vendor/joomla/router/.drone.yml', - '/libraries/vendor/joomla/string/.drone.jsonnet', - '/libraries/vendor/joomla/string/.drone.yml', - '/libraries/vendor/joomla/uri/.drone.jsonnet', - '/libraries/vendor/joomla/uri/.drone.yml', - '/libraries/vendor/joomla/utilities/.drone.jsonnet', - '/libraries/vendor/joomla/utilities/.drone.yml', - // From 5.3.0-rc1 to 5.3.0-rc2 - '/libraries/vendor/algo26-matthias/idna-convert/Dockerfile', - '/libraries/vendor/algo26-matthias/idna-convert/compose.yml', - '/libraries/vendor/algo26-matthias/idna-convert/src/Exception/Std3AsciiRulesViolationException.php', - '/libraries/vendor/algo26-matthias/idna-convert/src/TranscodeUnicode/ByteLengthTrait.php', - // From 5.4.0-alpha2 to 5.4.0-alpha3 + // From 5.x to 6.0 + '/administrator/components/com_admin/sql/updates/mysql/5.0.0-2023-03-11.sql', + '/administrator/components/com_admin/sql/updates/mysql/5.0.0-2023-03-17.sql', + '/administrator/components/com_admin/sql/updates/mysql/5.0.0-2023-07-12.sql', + '/administrator/components/com_admin/sql/updates/mysql/5.0.0-2023-07-25.sql', + '/administrator/components/com_admin/sql/updates/mysql/5.0.0-2023-07-29.sql', + '/administrator/components/com_admin/sql/updates/mysql/5.0.0-2023-08-21.sql', + '/administrator/components/com_admin/sql/updates/mysql/5.0.0-2023-08-26.sql', + '/administrator/components/com_admin/sql/updates/mysql/5.0.0-2023-08-28.sql', + '/administrator/components/com_admin/sql/updates/mysql/5.0.0-2023-08-29.sql', + '/administrator/components/com_admin/sql/updates/mysql/5.0.0-2023-08-30.sql', + '/administrator/components/com_admin/sql/updates/mysql/5.0.0-2023-09-02.sql', + '/administrator/components/com_admin/sql/updates/mysql/5.0.0-2023-09-06.sql', + '/administrator/components/com_admin/sql/updates/mysql/5.0.0-2023-09-09.sql', + '/administrator/components/com_admin/sql/updates/mysql/5.0.0-2023-09-11.sql', + '/administrator/components/com_admin/sql/updates/mysql/5.1.0-2023-11-28.sql', + '/administrator/components/com_admin/sql/updates/mysql/5.1.0-2024-01-04.sql', + '/administrator/components/com_admin/sql/updates/mysql/5.1.0-2024-02-10.sql', + '/administrator/components/com_admin/sql/updates/mysql/5.1.0-2024-02-24.sql', + '/administrator/components/com_admin/sql/updates/mysql/5.1.0-2024-02-25.sql', + '/administrator/components/com_admin/sql/updates/mysql/5.1.0-2024-03-08.sql', + '/administrator/components/com_admin/sql/updates/mysql/5.1.0-2024-03-28.sql', + '/administrator/components/com_admin/sql/updates/mysql/5.1.1-2024-04-18.sql', + '/administrator/components/com_admin/sql/updates/mysql/5.2.0-2024-07-02.sql', + '/administrator/components/com_admin/sql/updates/mysql/5.2.0-2024-07-19.sql', + '/administrator/components/com_admin/sql/updates/mysql/5.2.0-2024-08-22.sql', + '/administrator/components/com_admin/sql/updates/mysql/5.2.0-2024-09-17.sql', + '/administrator/components/com_admin/sql/updates/mysql/5.2.2-2024-09-24.sql', + '/administrator/components/com_admin/sql/updates/mysql/5.2.3-2025-01-09.sql', + '/administrator/components/com_admin/sql/updates/mysql/5.3.0-2024-10-13.sql', + '/administrator/components/com_admin/sql/updates/mysql/5.3.0-2024-10-26.sql', + '/administrator/components/com_admin/sql/updates/mysql/5.3.0-2024-12-09.sql', + '/administrator/components/com_admin/sql/updates/mysql/5.3.0-2024-12-19.sql', + '/administrator/components/com_admin/sql/updates/mysql/5.3.0-2025-02-09.sql', + '/administrator/components/com_admin/sql/updates/mysql/5.3.0-2025-02-22.sql', + '/administrator/components/com_admin/sql/updates/mysql/5.3.0-2025-03-14.sql', + '/administrator/components/com_admin/sql/updates/mysql/5.3.4-2025-09-19.sql', + '/administrator/components/com_admin/sql/updates/mysql/5.4.0-2025-04-23.sql', + '/administrator/components/com_admin/sql/updates/mysql/5.4.0-2025-05-10.sql', + '/administrator/components/com_admin/sql/updates/mysql/5.4.0-2025-08-02.sql', + '/administrator/components/com_admin/sql/updates/postgresql/5.0.0-2023-03-11.sql', + '/administrator/components/com_admin/sql/updates/postgresql/5.0.0-2023-03-17.sql', + '/administrator/components/com_admin/sql/updates/postgresql/5.0.0-2023-07-12.sql', + '/administrator/components/com_admin/sql/updates/postgresql/5.0.0-2023-07-25.sql', + '/administrator/components/com_admin/sql/updates/postgresql/5.0.0-2023-07-29.sql', + '/administrator/components/com_admin/sql/updates/postgresql/5.0.0-2023-08-21.sql', + '/administrator/components/com_admin/sql/updates/postgresql/5.0.0-2023-08-26.sql', + '/administrator/components/com_admin/sql/updates/postgresql/5.0.0-2023-08-28.sql', + '/administrator/components/com_admin/sql/updates/postgresql/5.0.0-2023-08-29.sql', + '/administrator/components/com_admin/sql/updates/postgresql/5.0.0-2023-08-30.sql', + '/administrator/components/com_admin/sql/updates/postgresql/5.0.0-2023-09-02.sql', + '/administrator/components/com_admin/sql/updates/postgresql/5.0.0-2023-09-06.sql', + '/administrator/components/com_admin/sql/updates/postgresql/5.0.0-2023-09-09.sql', + '/administrator/components/com_admin/sql/updates/postgresql/5.0.0-2023-09-11.sql', + '/administrator/components/com_admin/sql/updates/postgresql/5.1.0-2023-11-28.sql', + '/administrator/components/com_admin/sql/updates/postgresql/5.1.0-2024-02-10.sql', + '/administrator/components/com_admin/sql/updates/postgresql/5.1.0-2024-02-24.sql', + '/administrator/components/com_admin/sql/updates/postgresql/5.1.0-2024-02-25.sql', + '/administrator/components/com_admin/sql/updates/postgresql/5.1.0-2024-03-08.sql', + '/administrator/components/com_admin/sql/updates/postgresql/5.1.0-2024-03-28.sql', + '/administrator/components/com_admin/sql/updates/postgresql/5.1.1-2024-04-18.sql', + '/administrator/components/com_admin/sql/updates/postgresql/5.2.0-2024-07-02.sql', + '/administrator/components/com_admin/sql/updates/postgresql/5.2.0-2024-07-19.sql', + '/administrator/components/com_admin/sql/updates/postgresql/5.2.0-2024-08-22.sql', + '/administrator/components/com_admin/sql/updates/postgresql/5.2.0-2024-09-17.sql', + '/administrator/components/com_admin/sql/updates/postgresql/5.2.2-2024-09-24.sql', + '/administrator/components/com_admin/sql/updates/postgresql/5.2.3-2025-01-09.sql', + '/administrator/components/com_admin/sql/updates/postgresql/5.3.0-2024-10-26.sql', + '/administrator/components/com_admin/sql/updates/postgresql/5.3.0-2024-12-09.sql', + '/administrator/components/com_admin/sql/updates/postgresql/5.3.0-2024-12-19.sql', + '/administrator/components/com_admin/sql/updates/postgresql/5.3.0-2025-02-09.sql', + '/administrator/components/com_admin/sql/updates/postgresql/5.3.0-2025-02-22.sql', + '/administrator/components/com_admin/sql/updates/postgresql/5.3.0-2025-03-14.sql', + '/administrator/components/com_admin/sql/updates/postgresql/5.3.1-2025-04-27.sql', + '/administrator/components/com_admin/sql/updates/postgresql/5.3.4-2025-09-19.sql', + '/administrator/components/com_admin/sql/updates/postgresql/5.4.0-2025-04-23.sql', + '/administrator/components/com_admin/sql/updates/postgresql/5.4.0-2025-05-10.sql', + '/administrator/components/com_admin/sql/updates/postgresql/5.4.0-2025-08-02.sql', + '/administrator/components/com_admin/sql/updates/postgresql/5.4.0-2025-10-07.sql', + '/administrator/components/com_content/forms/filter_featured.xml', + '/administrator/components/com_content/tmpl/featured/default.php', + '/administrator/components/com_content/tmpl/featured/default.xml', + '/administrator/components/com_content/tmpl/featured/default_stage_body.php', + '/administrator/components/com_content/tmpl/featured/default_stage_footer.php', + '/administrator/components/com_content/tmpl/featured/emptystate.php', + '/administrator/components/com_finder/helpers/indexer/adapter.php', + '/administrator/components/com_finder/helpers/indexer/helper.php', + '/administrator/components/com_finder/helpers/indexer/parser.php', + '/administrator/components/com_finder/helpers/indexer/query.php', + '/administrator/components/com_finder/helpers/indexer/result.php', + '/administrator/components/com_finder/helpers/indexer/taxonomy.php', + '/administrator/components/com_finder/helpers/indexer/token.php', + '/libraries/src/Application/BaseApplication.php', + '/libraries/src/Application/CLI/CliInput.php', + '/libraries/src/Application/CLI/CliOutput.php', + '/libraries/src/Application/CLI/ColorStyle.php', + '/libraries/src/Application/CLI/Output/Processor/ColorProcessor.php', + '/libraries/src/Application/CLI/Output/Processor/ProcessorInterface.php', + '/libraries/src/Application/CLI/Output/Stdout.php', + '/libraries/src/Application/CLI/Output/Xml.php', + '/libraries/src/Application/CliApplication.php', + '/libraries/src/Filesystem/File.php', + '/libraries/src/Filesystem/FilesystemHelper.php', + '/libraries/src/Filesystem/Folder.php', + '/libraries/src/Filesystem/Meta/language/en-GB/en-GB.lib_joomla_filesystem_patcher.ini', + '/libraries/src/Filesystem/Patcher.php', + '/libraries/src/Filesystem/Path.php', + '/libraries/src/Filesystem/Stream.php', + '/libraries/src/Filesystem/Streams/StreamString.php', + '/libraries/src/Filesystem/Support/StringController.php', + '/libraries/src/Input/Cookie.php', + '/libraries/src/Input/Files.php', + '/libraries/src/Input/Input.php', + '/libraries/src/Input/Json.php', + '/libraries/vendor/symfony/polyfill-iconv/bootstrap.php', + '/libraries/vendor/symfony/polyfill-iconv/bootstrap80.php', + '/libraries/vendor/symfony/polyfill-iconv/Iconv.php', + '/libraries/vendor/symfony/polyfill-iconv/LICENSE', + '/libraries/vendor/symfony/polyfill-iconv/Resources/charset/from.big5.php', + '/libraries/vendor/symfony/polyfill-iconv/Resources/charset/from.cp037.php', + '/libraries/vendor/symfony/polyfill-iconv/Resources/charset/from.cp1006.php', + '/libraries/vendor/symfony/polyfill-iconv/Resources/charset/from.cp1026.php', + '/libraries/vendor/symfony/polyfill-iconv/Resources/charset/from.cp424.php', + '/libraries/vendor/symfony/polyfill-iconv/Resources/charset/from.cp437.php', + '/libraries/vendor/symfony/polyfill-iconv/Resources/charset/from.cp500.php', + '/libraries/vendor/symfony/polyfill-iconv/Resources/charset/from.cp737.php', + '/libraries/vendor/symfony/polyfill-iconv/Resources/charset/from.cp775.php', + '/libraries/vendor/symfony/polyfill-iconv/Resources/charset/from.cp850.php', + '/libraries/vendor/symfony/polyfill-iconv/Resources/charset/from.cp852.php', + '/libraries/vendor/symfony/polyfill-iconv/Resources/charset/from.cp855.php', + '/libraries/vendor/symfony/polyfill-iconv/Resources/charset/from.cp856.php', + '/libraries/vendor/symfony/polyfill-iconv/Resources/charset/from.cp857.php', + '/libraries/vendor/symfony/polyfill-iconv/Resources/charset/from.cp860.php', + '/libraries/vendor/symfony/polyfill-iconv/Resources/charset/from.cp861.php', + '/libraries/vendor/symfony/polyfill-iconv/Resources/charset/from.cp862.php', + '/libraries/vendor/symfony/polyfill-iconv/Resources/charset/from.cp863.php', + '/libraries/vendor/symfony/polyfill-iconv/Resources/charset/from.cp864.php', + '/libraries/vendor/symfony/polyfill-iconv/Resources/charset/from.cp865.php', + '/libraries/vendor/symfony/polyfill-iconv/Resources/charset/from.cp866.php', + '/libraries/vendor/symfony/polyfill-iconv/Resources/charset/from.cp869.php', + '/libraries/vendor/symfony/polyfill-iconv/Resources/charset/from.cp874.php', + '/libraries/vendor/symfony/polyfill-iconv/Resources/charset/from.cp875.php', + '/libraries/vendor/symfony/polyfill-iconv/Resources/charset/from.cp932.php', + '/libraries/vendor/symfony/polyfill-iconv/Resources/charset/from.cp936.php', + '/libraries/vendor/symfony/polyfill-iconv/Resources/charset/from.cp949.php', + '/libraries/vendor/symfony/polyfill-iconv/Resources/charset/from.cp950.php', + '/libraries/vendor/symfony/polyfill-iconv/Resources/charset/from.iso-8859-1.php', + '/libraries/vendor/symfony/polyfill-iconv/Resources/charset/from.iso-8859-10.php', + '/libraries/vendor/symfony/polyfill-iconv/Resources/charset/from.iso-8859-11.php', + '/libraries/vendor/symfony/polyfill-iconv/Resources/charset/from.iso-8859-13.php', + '/libraries/vendor/symfony/polyfill-iconv/Resources/charset/from.iso-8859-14.php', + '/libraries/vendor/symfony/polyfill-iconv/Resources/charset/from.iso-8859-15.php', + '/libraries/vendor/symfony/polyfill-iconv/Resources/charset/from.iso-8859-16.php', + '/libraries/vendor/symfony/polyfill-iconv/Resources/charset/from.iso-8859-2.php', + '/libraries/vendor/symfony/polyfill-iconv/Resources/charset/from.iso-8859-3.php', + '/libraries/vendor/symfony/polyfill-iconv/Resources/charset/from.iso-8859-4.php', + '/libraries/vendor/symfony/polyfill-iconv/Resources/charset/from.iso-8859-5.php', + '/libraries/vendor/symfony/polyfill-iconv/Resources/charset/from.iso-8859-6.php', + '/libraries/vendor/symfony/polyfill-iconv/Resources/charset/from.iso-8859-7.php', + '/libraries/vendor/symfony/polyfill-iconv/Resources/charset/from.iso-8859-8.php', + '/libraries/vendor/symfony/polyfill-iconv/Resources/charset/from.iso-8859-9.php', + '/libraries/vendor/symfony/polyfill-iconv/Resources/charset/from.koi8-r.php', + '/libraries/vendor/symfony/polyfill-iconv/Resources/charset/from.koi8-u.php', + '/libraries/vendor/symfony/polyfill-iconv/Resources/charset/from.us-ascii.php', + '/libraries/vendor/symfony/polyfill-iconv/Resources/charset/from.windows-1250.php', + '/libraries/vendor/symfony/polyfill-iconv/Resources/charset/from.windows-1251.php', + '/libraries/vendor/symfony/polyfill-iconv/Resources/charset/from.windows-1252.php', + '/libraries/vendor/symfony/polyfill-iconv/Resources/charset/from.windows-1253.php', + '/libraries/vendor/symfony/polyfill-iconv/Resources/charset/from.windows-1254.php', + '/libraries/vendor/symfony/polyfill-iconv/Resources/charset/from.windows-1255.php', + '/libraries/vendor/symfony/polyfill-iconv/Resources/charset/from.windows-1256.php', + '/libraries/vendor/symfony/polyfill-iconv/Resources/charset/from.windows-1257.php', + '/libraries/vendor/symfony/polyfill-iconv/Resources/charset/from.windows-1258.php', + '/libraries/vendor/symfony/polyfill-iconv/Resources/charset/translit.php', + '/libraries/vendor/typo3/phar-stream-wrapper/LICENSE', + '/libraries/vendor/typo3/phar-stream-wrapper/src/Assertable.php', + '/libraries/vendor/typo3/phar-stream-wrapper/src/Behavior.php', + '/libraries/vendor/typo3/phar-stream-wrapper/src/Collectable.php', + '/libraries/vendor/typo3/phar-stream-wrapper/src/Exception.php', + '/libraries/vendor/typo3/phar-stream-wrapper/src/Helper.php', + '/libraries/vendor/typo3/phar-stream-wrapper/src/Interceptor/ConjunctionInterceptor.php', + '/libraries/vendor/typo3/phar-stream-wrapper/src/Interceptor/PharExtensionInterceptor.php', + '/libraries/vendor/typo3/phar-stream-wrapper/src/Interceptor/PharMetaDataInterceptor.php', + '/libraries/vendor/typo3/phar-stream-wrapper/src/Manager.php', + '/libraries/vendor/typo3/phar-stream-wrapper/src/Phar/Container.php', + '/libraries/vendor/typo3/phar-stream-wrapper/src/Phar/DeserializationException.php', + '/libraries/vendor/typo3/phar-stream-wrapper/src/Phar/Manifest.php', + '/libraries/vendor/typo3/phar-stream-wrapper/src/Phar/Reader.php', + '/libraries/vendor/typo3/phar-stream-wrapper/src/Phar/ReaderException.php', + '/libraries/vendor/typo3/phar-stream-wrapper/src/Phar/Stub.php', + '/libraries/vendor/typo3/phar-stream-wrapper/src/PharStreamWrapper.php', + '/libraries/vendor/typo3/phar-stream-wrapper/src/Resolvable.php', + '/libraries/vendor/typo3/phar-stream-wrapper/src/Resolver/PharInvocation.php', + '/libraries/vendor/typo3/phar-stream-wrapper/src/Resolver/PharInvocationCollection.php', + '/libraries/vendor/typo3/phar-stream-wrapper/src/Resolver/PharInvocationResolver.php', + '/libraries/vendor/voku/portable-ascii/.deepsource.toml', + '/libraries/vendor/voku/portable-ascii/LICENSE.txt', + '/libraries/vendor/voku/portable-ascii/src/voku/helper/ASCII.php', + '/libraries/vendor/voku/portable-ascii/src/voku/helper/data/ascii_by_languages.php', + '/libraries/vendor/voku/portable-ascii/src/voku/helper/data/ascii_extras_by_languages.php', + '/libraries/vendor/voku/portable-ascii/src/voku/helper/data/ascii_language_max_key.php', + '/libraries/vendor/voku/portable-ascii/src/voku/helper/data/ascii_ord.php', + '/libraries/vendor/voku/portable-ascii/src/voku/helper/data/x000.php', + '/libraries/vendor/voku/portable-ascii/src/voku/helper/data/x001.php', + '/libraries/vendor/voku/portable-ascii/src/voku/helper/data/x002.php', + '/libraries/vendor/voku/portable-ascii/src/voku/helper/data/x003.php', + '/libraries/vendor/voku/portable-ascii/src/voku/helper/data/x004.php', + '/libraries/vendor/voku/portable-ascii/src/voku/helper/data/x005.php', + '/libraries/vendor/voku/portable-ascii/src/voku/helper/data/x006.php', + '/libraries/vendor/voku/portable-ascii/src/voku/helper/data/x007.php', + '/libraries/vendor/voku/portable-ascii/src/voku/helper/data/x009.php', + '/libraries/vendor/voku/portable-ascii/src/voku/helper/data/x00a.php', + '/libraries/vendor/voku/portable-ascii/src/voku/helper/data/x00b.php', + '/libraries/vendor/voku/portable-ascii/src/voku/helper/data/x00c.php', + '/libraries/vendor/voku/portable-ascii/src/voku/helper/data/x00d.php', + '/libraries/vendor/voku/portable-ascii/src/voku/helper/data/x00e.php', + '/libraries/vendor/voku/portable-ascii/src/voku/helper/data/x00f.php', + '/libraries/vendor/voku/portable-ascii/src/voku/helper/data/x010.php', + '/libraries/vendor/voku/portable-ascii/src/voku/helper/data/x011.php', + '/libraries/vendor/voku/portable-ascii/src/voku/helper/data/x012.php', + '/libraries/vendor/voku/portable-ascii/src/voku/helper/data/x013.php', + '/libraries/vendor/voku/portable-ascii/src/voku/helper/data/x014.php', + '/libraries/vendor/voku/portable-ascii/src/voku/helper/data/x015.php', + '/libraries/vendor/voku/portable-ascii/src/voku/helper/data/x016.php', + '/libraries/vendor/voku/portable-ascii/src/voku/helper/data/x017.php', + '/libraries/vendor/voku/portable-ascii/src/voku/helper/data/x018.php', + '/libraries/vendor/voku/portable-ascii/src/voku/helper/data/x01d.php', + '/libraries/vendor/voku/portable-ascii/src/voku/helper/data/x01e.php', + '/libraries/vendor/voku/portable-ascii/src/voku/helper/data/x01f.php', + '/libraries/vendor/voku/portable-ascii/src/voku/helper/data/x020.php', + '/libraries/vendor/voku/portable-ascii/src/voku/helper/data/x021.php', + '/libraries/vendor/voku/portable-ascii/src/voku/helper/data/x022.php', + '/libraries/vendor/voku/portable-ascii/src/voku/helper/data/x023.php', + '/libraries/vendor/voku/portable-ascii/src/voku/helper/data/x024.php', + '/libraries/vendor/voku/portable-ascii/src/voku/helper/data/x025.php', + '/libraries/vendor/voku/portable-ascii/src/voku/helper/data/x026.php', + '/libraries/vendor/voku/portable-ascii/src/voku/helper/data/x027.php', + '/libraries/vendor/voku/portable-ascii/src/voku/helper/data/x028.php', + '/libraries/vendor/voku/portable-ascii/src/voku/helper/data/x029.php', + '/libraries/vendor/voku/portable-ascii/src/voku/helper/data/x02a.php', + '/libraries/vendor/voku/portable-ascii/src/voku/helper/data/x02c.php', + '/libraries/vendor/voku/portable-ascii/src/voku/helper/data/x02e.php', + '/libraries/vendor/voku/portable-ascii/src/voku/helper/data/x02f.php', + '/libraries/vendor/voku/portable-ascii/src/voku/helper/data/x030.php', + '/libraries/vendor/voku/portable-ascii/src/voku/helper/data/x031.php', + '/libraries/vendor/voku/portable-ascii/src/voku/helper/data/x032.php', + '/libraries/vendor/voku/portable-ascii/src/voku/helper/data/x033.php', + '/libraries/vendor/voku/portable-ascii/src/voku/helper/data/x04d.php', + '/libraries/vendor/voku/portable-ascii/src/voku/helper/data/x04e.php', + '/libraries/vendor/voku/portable-ascii/src/voku/helper/data/x04f.php', + '/libraries/vendor/voku/portable-ascii/src/voku/helper/data/x050.php', + '/libraries/vendor/voku/portable-ascii/src/voku/helper/data/x051.php', + '/libraries/vendor/voku/portable-ascii/src/voku/helper/data/x052.php', + '/libraries/vendor/voku/portable-ascii/src/voku/helper/data/x053.php', + '/libraries/vendor/voku/portable-ascii/src/voku/helper/data/x054.php', + '/libraries/vendor/voku/portable-ascii/src/voku/helper/data/x055.php', + '/libraries/vendor/voku/portable-ascii/src/voku/helper/data/x056.php', + '/libraries/vendor/voku/portable-ascii/src/voku/helper/data/x057.php', + '/libraries/vendor/voku/portable-ascii/src/voku/helper/data/x058.php', + '/libraries/vendor/voku/portable-ascii/src/voku/helper/data/x059.php', + '/libraries/vendor/voku/portable-ascii/src/voku/helper/data/x05a.php', + '/libraries/vendor/voku/portable-ascii/src/voku/helper/data/x05b.php', + '/libraries/vendor/voku/portable-ascii/src/voku/helper/data/x05c.php', + '/libraries/vendor/voku/portable-ascii/src/voku/helper/data/x05d.php', + '/libraries/vendor/voku/portable-ascii/src/voku/helper/data/x05e.php', + '/libraries/vendor/voku/portable-ascii/src/voku/helper/data/x05f.php', + '/libraries/vendor/voku/portable-ascii/src/voku/helper/data/x060.php', + '/libraries/vendor/voku/portable-ascii/src/voku/helper/data/x061.php', + '/libraries/vendor/voku/portable-ascii/src/voku/helper/data/x062.php', + '/libraries/vendor/voku/portable-ascii/src/voku/helper/data/x063.php', + '/libraries/vendor/voku/portable-ascii/src/voku/helper/data/x064.php', + '/libraries/vendor/voku/portable-ascii/src/voku/helper/data/x065.php', + '/libraries/vendor/voku/portable-ascii/src/voku/helper/data/x066.php', + '/libraries/vendor/voku/portable-ascii/src/voku/helper/data/x067.php', + '/libraries/vendor/voku/portable-ascii/src/voku/helper/data/x068.php', + '/libraries/vendor/voku/portable-ascii/src/voku/helper/data/x069.php', + '/libraries/vendor/voku/portable-ascii/src/voku/helper/data/x06a.php', + '/libraries/vendor/voku/portable-ascii/src/voku/helper/data/x06b.php', + '/libraries/vendor/voku/portable-ascii/src/voku/helper/data/x06c.php', + '/libraries/vendor/voku/portable-ascii/src/voku/helper/data/x06d.php', + '/libraries/vendor/voku/portable-ascii/src/voku/helper/data/x06e.php', + '/libraries/vendor/voku/portable-ascii/src/voku/helper/data/x06f.php', + '/libraries/vendor/voku/portable-ascii/src/voku/helper/data/x070.php', + '/libraries/vendor/voku/portable-ascii/src/voku/helper/data/x071.php', + '/libraries/vendor/voku/portable-ascii/src/voku/helper/data/x072.php', + '/libraries/vendor/voku/portable-ascii/src/voku/helper/data/x073.php', + '/libraries/vendor/voku/portable-ascii/src/voku/helper/data/x074.php', + '/libraries/vendor/voku/portable-ascii/src/voku/helper/data/x075.php', + '/libraries/vendor/voku/portable-ascii/src/voku/helper/data/x076.php', + '/libraries/vendor/voku/portable-ascii/src/voku/helper/data/x077.php', + '/libraries/vendor/voku/portable-ascii/src/voku/helper/data/x078.php', + '/libraries/vendor/voku/portable-ascii/src/voku/helper/data/x079.php', + '/libraries/vendor/voku/portable-ascii/src/voku/helper/data/x07a.php', + '/libraries/vendor/voku/portable-ascii/src/voku/helper/data/x07b.php', + '/libraries/vendor/voku/portable-ascii/src/voku/helper/data/x07c.php', + '/libraries/vendor/voku/portable-ascii/src/voku/helper/data/x07d.php', + '/libraries/vendor/voku/portable-ascii/src/voku/helper/data/x07e.php', + '/libraries/vendor/voku/portable-ascii/src/voku/helper/data/x07f.php', + '/libraries/vendor/voku/portable-ascii/src/voku/helper/data/x080.php', + '/libraries/vendor/voku/portable-ascii/src/voku/helper/data/x081.php', + '/libraries/vendor/voku/portable-ascii/src/voku/helper/data/x082.php', + '/libraries/vendor/voku/portable-ascii/src/voku/helper/data/x083.php', + '/libraries/vendor/voku/portable-ascii/src/voku/helper/data/x084.php', + '/libraries/vendor/voku/portable-ascii/src/voku/helper/data/x085.php', + '/libraries/vendor/voku/portable-ascii/src/voku/helper/data/x086.php', + '/libraries/vendor/voku/portable-ascii/src/voku/helper/data/x087.php', + '/libraries/vendor/voku/portable-ascii/src/voku/helper/data/x088.php', + '/libraries/vendor/voku/portable-ascii/src/voku/helper/data/x089.php', + '/libraries/vendor/voku/portable-ascii/src/voku/helper/data/x08a.php', + '/libraries/vendor/voku/portable-ascii/src/voku/helper/data/x08b.php', + '/libraries/vendor/voku/portable-ascii/src/voku/helper/data/x08c.php', + '/libraries/vendor/voku/portable-ascii/src/voku/helper/data/x08d.php', + '/libraries/vendor/voku/portable-ascii/src/voku/helper/data/x08e.php', + '/libraries/vendor/voku/portable-ascii/src/voku/helper/data/x08f.php', + '/libraries/vendor/voku/portable-ascii/src/voku/helper/data/x090.php', + '/libraries/vendor/voku/portable-ascii/src/voku/helper/data/x091.php', + '/libraries/vendor/voku/portable-ascii/src/voku/helper/data/x092.php', + '/libraries/vendor/voku/portable-ascii/src/voku/helper/data/x093.php', + '/libraries/vendor/voku/portable-ascii/src/voku/helper/data/x094.php', + '/libraries/vendor/voku/portable-ascii/src/voku/helper/data/x095.php', + '/libraries/vendor/voku/portable-ascii/src/voku/helper/data/x096.php', + '/libraries/vendor/voku/portable-ascii/src/voku/helper/data/x097.php', + '/libraries/vendor/voku/portable-ascii/src/voku/helper/data/x098.php', + '/libraries/vendor/voku/portable-ascii/src/voku/helper/data/x099.php', + '/libraries/vendor/voku/portable-ascii/src/voku/helper/data/x09a.php', + '/libraries/vendor/voku/portable-ascii/src/voku/helper/data/x09b.php', + '/libraries/vendor/voku/portable-ascii/src/voku/helper/data/x09c.php', + '/libraries/vendor/voku/portable-ascii/src/voku/helper/data/x09d.php', + '/libraries/vendor/voku/portable-ascii/src/voku/helper/data/x09e.php', + '/libraries/vendor/voku/portable-ascii/src/voku/helper/data/x09f.php', + '/libraries/vendor/voku/portable-ascii/src/voku/helper/data/x0a0.php', + '/libraries/vendor/voku/portable-ascii/src/voku/helper/data/x0a1.php', + '/libraries/vendor/voku/portable-ascii/src/voku/helper/data/x0a2.php', + '/libraries/vendor/voku/portable-ascii/src/voku/helper/data/x0a3.php', + '/libraries/vendor/voku/portable-ascii/src/voku/helper/data/x0a4.php', + '/libraries/vendor/voku/portable-ascii/src/voku/helper/data/x0ac.php', + '/libraries/vendor/voku/portable-ascii/src/voku/helper/data/x0ad.php', + '/libraries/vendor/voku/portable-ascii/src/voku/helper/data/x0ae.php', + '/libraries/vendor/voku/portable-ascii/src/voku/helper/data/x0af.php', + '/libraries/vendor/voku/portable-ascii/src/voku/helper/data/x0b0.php', + '/libraries/vendor/voku/portable-ascii/src/voku/helper/data/x0b1.php', + '/libraries/vendor/voku/portable-ascii/src/voku/helper/data/x0b2.php', + '/libraries/vendor/voku/portable-ascii/src/voku/helper/data/x0b3.php', + '/libraries/vendor/voku/portable-ascii/src/voku/helper/data/x0b4.php', + '/libraries/vendor/voku/portable-ascii/src/voku/helper/data/x0b5.php', + '/libraries/vendor/voku/portable-ascii/src/voku/helper/data/x0b6.php', + '/libraries/vendor/voku/portable-ascii/src/voku/helper/data/x0b7.php', + '/libraries/vendor/voku/portable-ascii/src/voku/helper/data/x0b8.php', + '/libraries/vendor/voku/portable-ascii/src/voku/helper/data/x0b9.php', + '/libraries/vendor/voku/portable-ascii/src/voku/helper/data/x0ba.php', + '/libraries/vendor/voku/portable-ascii/src/voku/helper/data/x0bb.php', + '/libraries/vendor/voku/portable-ascii/src/voku/helper/data/x0bc.php', + '/libraries/vendor/voku/portable-ascii/src/voku/helper/data/x0bd.php', + '/libraries/vendor/voku/portable-ascii/src/voku/helper/data/x0be.php', + '/libraries/vendor/voku/portable-ascii/src/voku/helper/data/x0bf.php', + '/libraries/vendor/voku/portable-ascii/src/voku/helper/data/x0c0.php', + '/libraries/vendor/voku/portable-ascii/src/voku/helper/data/x0c1.php', + '/libraries/vendor/voku/portable-ascii/src/voku/helper/data/x0c2.php', + '/libraries/vendor/voku/portable-ascii/src/voku/helper/data/x0c3.php', + '/libraries/vendor/voku/portable-ascii/src/voku/helper/data/x0c4.php', + '/libraries/vendor/voku/portable-ascii/src/voku/helper/data/x0c5.php', + '/libraries/vendor/voku/portable-ascii/src/voku/helper/data/x0c6.php', + '/libraries/vendor/voku/portable-ascii/src/voku/helper/data/x0c7.php', + '/libraries/vendor/voku/portable-ascii/src/voku/helper/data/x0c8.php', + '/libraries/vendor/voku/portable-ascii/src/voku/helper/data/x0c9.php', + '/libraries/vendor/voku/portable-ascii/src/voku/helper/data/x0ca.php', + '/libraries/vendor/voku/portable-ascii/src/voku/helper/data/x0cb.php', + '/libraries/vendor/voku/portable-ascii/src/voku/helper/data/x0cc.php', + '/libraries/vendor/voku/portable-ascii/src/voku/helper/data/x0cd.php', + '/libraries/vendor/voku/portable-ascii/src/voku/helper/data/x0ce.php', + '/libraries/vendor/voku/portable-ascii/src/voku/helper/data/x0cf.php', + '/libraries/vendor/voku/portable-ascii/src/voku/helper/data/x0d0.php', + '/libraries/vendor/voku/portable-ascii/src/voku/helper/data/x0d1.php', + '/libraries/vendor/voku/portable-ascii/src/voku/helper/data/x0d2.php', + '/libraries/vendor/voku/portable-ascii/src/voku/helper/data/x0d3.php', + '/libraries/vendor/voku/portable-ascii/src/voku/helper/data/x0d4.php', + '/libraries/vendor/voku/portable-ascii/src/voku/helper/data/x0d5.php', + '/libraries/vendor/voku/portable-ascii/src/voku/helper/data/x0d6.php', + '/libraries/vendor/voku/portable-ascii/src/voku/helper/data/x0d7.php', + '/libraries/vendor/voku/portable-ascii/src/voku/helper/data/x0f9.php', + '/libraries/vendor/voku/portable-ascii/src/voku/helper/data/x0fa.php', + '/libraries/vendor/voku/portable-ascii/src/voku/helper/data/x0fb.php', + '/libraries/vendor/voku/portable-ascii/src/voku/helper/data/x0fc.php', + '/libraries/vendor/voku/portable-ascii/src/voku/helper/data/x0fd.php', + '/libraries/vendor/voku/portable-ascii/src/voku/helper/data/x0fe.php', + '/libraries/vendor/voku/portable-ascii/src/voku/helper/data/x0ff.php', + '/libraries/vendor/voku/portable-ascii/src/voku/helper/data/x1d4.php', + '/libraries/vendor/voku/portable-ascii/src/voku/helper/data/x1d5.php', + '/libraries/vendor/voku/portable-ascii/src/voku/helper/data/x1d6.php', + '/libraries/vendor/voku/portable-ascii/src/voku/helper/data/x1d7.php', + '/libraries/vendor/voku/portable-ascii/src/voku/helper/data/x1f1.php', + '/libraries/vendor/voku/portable-utf8/.deepsource.toml', + '/libraries/vendor/voku/portable-utf8/bootstrap.php', + '/libraries/vendor/voku/portable-utf8/LICENSE-APACHE', + '/libraries/vendor/voku/portable-utf8/LICENSE-GPL', + '/libraries/vendor/voku/portable-utf8/src/voku/helper/Bootup.php', + '/libraries/vendor/voku/portable-utf8/src/voku/helper/data/caseFolding_full.php', + '/libraries/vendor/voku/portable-utf8/src/voku/helper/data/chr.php', + '/libraries/vendor/voku/portable-utf8/src/voku/helper/data/emoji.php', + '/libraries/vendor/voku/portable-utf8/src/voku/helper/data/encodings.php', + '/libraries/vendor/voku/portable-utf8/src/voku/helper/data/ord.php', + '/libraries/vendor/voku/portable-utf8/src/voku/helper/data/transliterator_list.php', + '/libraries/vendor/voku/portable-utf8/src/voku/helper/data/utf8_fix.php', + '/libraries/vendor/voku/portable-utf8/src/voku/helper/data/win1252_to_utf8.php', + '/libraries/vendor/voku/portable-utf8/src/voku/helper/UTF8.php', + '/media/legacy/joomla.asset.json', + '/media/legacy/js/jquery-noconflict.js', + '/media/legacy/js/jquery-noconflict.min.js', + '/media/legacy/js/jquery-noconflict.min.js.gz', + '/media/legacy/js/tabs-state.js', + '/media/legacy/js/tabs-state.min.js', + '/media/legacy/js/tabs-state.min.js.gz', + // From 6.0.0-alpha2 to 6.0.0-alpha3 '/administrator/modules/mod_menu/mod_menu.php', '/modules/mod_random_image/mod_random_image.php', - // From 5.4.0-alpha3 to 5.4.0-beta1 + // From 6.0.0-alpha3 to 6.0.0-beta1 '/administrator/modules/mod_latest/mod_latest.php', '/administrator/modules/mod_logged/mod_logged.php', + '/administrator/modules/mod_popular/mod_popular.php', '/administrator/modules/mod_privacy_dashboard/mod_privacy_dashboard.php', '/administrator/modules/mod_submenu/mod_submenu.php', + '/libraries/src/Adapter/Adapter.php', + '/libraries/src/Adapter/AdapterInstance.php', + '/libraries/src/MVC/Model/DatabaseAwareTrait.php', + '/libraries/vendor/doctrine/inflector/lib/Doctrine/Common/Inflector/Inflector.php', + '/libraries/vendor/joomla/database/src/Query/LimitableInterface.php', + '/libraries/vendor/joomla/database/src/Query/PreparableInterface.php', + '/libraries/vendor/joomla/string/src/phputf8/LICENSE', + '/libraries/vendor/joomla/string/src/phputf8/mbstring/core.php', + '/libraries/vendor/joomla/string/src/phputf8/native/core.php', + '/libraries/vendor/joomla/string/src/phputf8/ord.php', + '/libraries/vendor/joomla/string/src/phputf8/README', + '/libraries/vendor/joomla/string/src/phputf8/str_ireplace.php', + '/libraries/vendor/joomla/string/src/phputf8/str_pad.php', + '/libraries/vendor/joomla/string/src/phputf8/str_split.php', + '/libraries/vendor/joomla/string/src/phputf8/strcasecmp.php', + '/libraries/vendor/joomla/string/src/phputf8/strcspn.php', + '/libraries/vendor/joomla/string/src/phputf8/stristr.php', + '/libraries/vendor/joomla/string/src/phputf8/strrev.php', + '/libraries/vendor/joomla/string/src/phputf8/strspn.php', + '/libraries/vendor/joomla/string/src/phputf8/substr_replace.php', + '/libraries/vendor/joomla/string/src/phputf8/trim.php', + '/libraries/vendor/joomla/string/src/phputf8/ucfirst.php', + '/libraries/vendor/joomla/string/src/phputf8/ucwords.php', + '/libraries/vendor/joomla/string/src/phputf8/utf8.php', + '/libraries/vendor/joomla/string/src/phputf8/utils/ascii.php', + '/libraries/vendor/joomla/string/src/phputf8/utils/bad.php', + '/libraries/vendor/joomla/string/src/phputf8/utils/patterns.php', + '/libraries/vendor/joomla/string/src/phputf8/utils/position.php', + '/libraries/vendor/joomla/string/src/phputf8/utils/specials.php', + '/libraries/vendor/joomla/string/src/phputf8/utils/unicode.php', + '/libraries/vendor/joomla/string/src/phputf8/utils/validation.php', + '/libraries/vendor/laminas/laminas-diactoros/src/functions/create_uploaded_file.legacy.php', + '/libraries/vendor/laminas/laminas-diactoros/src/functions/marshal_headers_from_sapi.legacy.php', + '/libraries/vendor/laminas/laminas-diactoros/src/functions/marshal_method_from_sapi.legacy.php', + '/libraries/vendor/laminas/laminas-diactoros/src/functions/marshal_protocol_version_from_sapi.legacy.php', + '/libraries/vendor/laminas/laminas-diactoros/src/functions/marshal_uri_from_sapi.legacy.php', + '/libraries/vendor/laminas/laminas-diactoros/src/functions/marshal_uri_from_sapi.php', + '/libraries/vendor/laminas/laminas-diactoros/src/functions/normalize_server.legacy.php', + '/libraries/vendor/laminas/laminas-diactoros/src/functions/normalize_uploaded_files.legacy.php', + '/libraries/vendor/laminas/laminas-diactoros/src/functions/parse_cookie_header.legacy.php', + '/libraries/vendor/laminas/laminas-diactoros/src/PhpInputStream.php', + '/libraries/vendor/lcobucci/clock/renovate.json', + '/libraries/vendor/symfony/http-client/Internal/AmpBody.php', + '/libraries/vendor/symfony/http-client/Internal/AmpClientState.php', + '/libraries/vendor/symfony/http-client/Internal/AmpListener.php', + '/libraries/vendor/symfony/http-client/Internal/AmpResolver.php', + '/libraries/vendor/symfony/http-client/Internal/LegacyHttplugInterface.php', + '/libraries/vendor/symfony/http-client/Response/AmpResponse.php', + '/libraries/vendor/symfony/polyfill-php83/bootstrap.php', + '/libraries/vendor/symfony/polyfill-php83/bootstrap81.php', + '/libraries/vendor/symfony/polyfill-php83/LICENSE', + '/libraries/vendor/symfony/polyfill-php83/Php83.php', + '/libraries/vendor/symfony/polyfill-php83/Resources/stubs/DateError.php', + '/libraries/vendor/symfony/polyfill-php83/Resources/stubs/DateException.php', + '/libraries/vendor/symfony/polyfill-php83/Resources/stubs/DateInvalidOperationException.php', + '/libraries/vendor/symfony/polyfill-php83/Resources/stubs/DateInvalidTimeZoneException.php', + '/libraries/vendor/symfony/polyfill-php83/Resources/stubs/DateMalformedIntervalStringException.php', + '/libraries/vendor/symfony/polyfill-php83/Resources/stubs/DateMalformedPeriodStringException.php', + '/libraries/vendor/symfony/polyfill-php83/Resources/stubs/DateMalformedStringException.php', + '/libraries/vendor/symfony/polyfill-php83/Resources/stubs/DateObjectError.php', + '/libraries/vendor/symfony/polyfill-php83/Resources/stubs/DateRangeError.php', + '/libraries/vendor/symfony/polyfill-php83/Resources/stubs/Override.php', + '/libraries/vendor/symfony/polyfill-php83/Resources/stubs/SQLite3Exception.php', + '/media/legacy/js/ajax-chosen.js', + '/media/legacy/js/ajax-chosen.min.js', + '/media/legacy/js/ajax-chosen.min.js.gz', + '/media/legacy/js/joomla-chosen.js', + '/media/legacy/js/joomla-chosen.min.js', + '/media/legacy/js/joomla-chosen.min.js.gz', + '/media/system/js/fields/tag.js', + '/media/system/js/fields/tag.min.js', + '/media/system/js/fields/tag.min.js.gz', + '/media/templates/site/cassiopeia/scss/vendor/_chosen.scss', + '/media/vendor/chosen/css/chosen-sprite.png', + '/media/vendor/chosen/css/chosen-sprite@2x.png', + '/media/vendor/chosen/css/chosen.css', + '/media/vendor/chosen/js/chosen.jquery.js', + '/media/vendor/chosen/js/chosen.jquery.min.js', + '/media/vendor/chosen/js/chosen.jquery.min.js.gz', + '/media/vendor/tinymce/langs/af.js', + '/media/vendor/tinymce/langs/af.min.js', + '/media/vendor/tinymce/langs/af.min.js.gz', + '/media/vendor/tinymce/langs/bg.js', + '/media/vendor/tinymce/langs/bg.min.js', + '/media/vendor/tinymce/langs/bg.min.js.gz', + '/media/vendor/tinymce/langs/bs.js', + '/media/vendor/tinymce/langs/bs.min.js', + '/media/vendor/tinymce/langs/bs.min.js.gz', + '/media/vendor/tinymce/langs/fo.js', + '/media/vendor/tinymce/langs/fo.min.js', + '/media/vendor/tinymce/langs/fo.min.js.gz', + '/media/vendor/tinymce/langs/fr.js', + '/media/vendor/tinymce/langs/fr.min.js', + '/media/vendor/tinymce/langs/fr.min.js.gz', + '/media/vendor/tinymce/langs/he.js', + '/media/vendor/tinymce/langs/he.min.js', + '/media/vendor/tinymce/langs/he.min.js.gz', + '/media/vendor/tinymce/langs/hu.js', + '/media/vendor/tinymce/langs/hu.min.js', + '/media/vendor/tinymce/langs/hu.min.js.gz', + '/media/vendor/tinymce/langs/ka.js', + '/media/vendor/tinymce/langs/ka.min.js', + '/media/vendor/tinymce/langs/ka.min.js.gz', + '/media/vendor/tinymce/langs/km.js', + '/media/vendor/tinymce/langs/km.min.js', + '/media/vendor/tinymce/langs/km.min.js.gz', + '/media/vendor/tinymce/langs/ko.js', + '/media/vendor/tinymce/langs/ko.min.js', + '/media/vendor/tinymce/langs/ko.min.js.gz', + '/media/vendor/tinymce/langs/lb.js', + '/media/vendor/tinymce/langs/lb.min.js', + '/media/vendor/tinymce/langs/lb.min.js.gz', + '/media/vendor/tinymce/langs/mk.js', + '/media/vendor/tinymce/langs/mk.min.js', + '/media/vendor/tinymce/langs/mk.min.js.gz', + '/media/vendor/tinymce/langs/ms.js', + '/media/vendor/tinymce/langs/ms.min.js', + '/media/vendor/tinymce/langs/ms.min.js.gz', + '/media/vendor/tinymce/langs/nb.js', + '/media/vendor/tinymce/langs/nb.min.js', + '/media/vendor/tinymce/langs/nb.min.js.gz', + '/media/vendor/tinymce/langs/readme.md', + '/media/vendor/tinymce/langs/si-LK.js', + '/media/vendor/tinymce/langs/si-LK.min.js', + '/media/vendor/tinymce/langs/si-LK.min.js.gz', + '/media/vendor/tinymce/langs/sl.js', + '/media/vendor/tinymce/langs/sl.min.js', + '/media/vendor/tinymce/langs/sl.min.js.gz', + '/media/vendor/tinymce/langs/sv.js', + '/media/vendor/tinymce/langs/sv.min.js', + '/media/vendor/tinymce/langs/sv.min.js.gz', + '/media/vendor/tinymce/langs/sw.js', + '/media/vendor/tinymce/langs/sw.min.js', + '/media/vendor/tinymce/langs/sw.min.js.gz', + '/media/vendor/tinymce/langs/sy.js', + '/media/vendor/tinymce/langs/sy.min.js', + '/media/vendor/tinymce/langs/sy.min.js.gz', + '/media/vendor/tinymce/langs/th.js', + '/media/vendor/tinymce/langs/th.min.js', + '/media/vendor/tinymce/langs/th.min.js.gz', + '/media/vendor/tinymce/license.txt', + '/media/vendor/webcomponentsjs/js/webcomponents-bundle.js', + '/media/vendor/webcomponentsjs/js/webcomponents-bundle.min.js', + '/media/vendor/webcomponentsjs/js/webcomponents-bundle.min.js.gz', + '/media/vendor/webcomponentsjs/LICENSE.md', '/modules/mod_finder/mod_finder.php', '/modules/mod_login/mod_login.php', '/modules/mod_menu/mod_menu.php', '/modules/mod_whosonline/mod_whosonline.php', + // From 6.0.0-beta2 to 6.0.0-beta3 + '/media/templates/site/cassiopeia/css/global/colors_custom.css', + '/media/templates/site/cassiopeia/css/global/colors_custom.min.css', + '/media/templates/site/cassiopeia/css/global/colors_custom.min.css.gz', + '/media/templates/site/cassiopeia/css/global/font_advanced.css', + '/media/templates/site/cassiopeia/css/global/font_advanced.min.css', + '/media/templates/site/cassiopeia/css/global/font_advanced.min.css.gz', + '/media/templates/site/cassiopeia/scss/global/colors_custom.scss', + '/media/templates/site/cassiopeia/scss/global/font_advanced.scss', + // From 6.0.0-beta3 to 6.0.0-rc1 + '/administrator/language/en-GB/guidedtours.joomla_whatsnew_5_2.ini', + '/administrator/language/en-GB/guidedtours.joomla_whatsnew_5_2_steps.ini', + '/administrator/language/en-GB/guidedtours.joomla_whatsnew_5_3.ini', + '/administrator/language/en-GB/guidedtours.joomla_whatsnew_5_3_steps.ini', + '/administrator/language/en-GB/guidedtours.joomla_whatsnew_5_4.ini', + '/administrator/language/en-GB/guidedtours.joomla_whatsnew_5_4_steps.ini', + '/libraries/vendor/doctrine/inflector/lib/Doctrine/Inflector/CachedWordInflector.php', + '/libraries/vendor/doctrine/inflector/lib/Doctrine/Inflector/GenericLanguageInflectorFactory.php', + '/libraries/vendor/doctrine/inflector/lib/Doctrine/Inflector/Inflector.php', + '/libraries/vendor/doctrine/inflector/lib/Doctrine/Inflector/InflectorFactory.php', + '/libraries/vendor/doctrine/inflector/lib/Doctrine/Inflector/Language.php', + '/libraries/vendor/doctrine/inflector/lib/Doctrine/Inflector/LanguageInflectorFactory.php', + '/libraries/vendor/doctrine/inflector/lib/Doctrine/Inflector/NoopWordInflector.php', + '/libraries/vendor/doctrine/inflector/lib/Doctrine/Inflector/Rules/English/Inflectible.php', + '/libraries/vendor/doctrine/inflector/lib/Doctrine/Inflector/Rules/English/InflectorFactory.php', + '/libraries/vendor/doctrine/inflector/lib/Doctrine/Inflector/Rules/English/Rules.php', + '/libraries/vendor/doctrine/inflector/lib/Doctrine/Inflector/Rules/English/Uninflected.php', + '/libraries/vendor/doctrine/inflector/lib/Doctrine/Inflector/Rules/French/Inflectible.php', + '/libraries/vendor/doctrine/inflector/lib/Doctrine/Inflector/Rules/French/InflectorFactory.php', + '/libraries/vendor/doctrine/inflector/lib/Doctrine/Inflector/Rules/French/Rules.php', + '/libraries/vendor/doctrine/inflector/lib/Doctrine/Inflector/Rules/French/Uninflected.php', + '/libraries/vendor/doctrine/inflector/lib/Doctrine/Inflector/Rules/NorwegianBokmal/Inflectible.php', + '/libraries/vendor/doctrine/inflector/lib/Doctrine/Inflector/Rules/NorwegianBokmal/InflectorFactory.php', + '/libraries/vendor/doctrine/inflector/lib/Doctrine/Inflector/Rules/NorwegianBokmal/Rules.php', + '/libraries/vendor/doctrine/inflector/lib/Doctrine/Inflector/Rules/NorwegianBokmal/Uninflected.php', + '/libraries/vendor/doctrine/inflector/lib/Doctrine/Inflector/Rules/Pattern.php', + '/libraries/vendor/doctrine/inflector/lib/Doctrine/Inflector/Rules/Patterns.php', + '/libraries/vendor/doctrine/inflector/lib/Doctrine/Inflector/Rules/Portuguese/Inflectible.php', + '/libraries/vendor/doctrine/inflector/lib/Doctrine/Inflector/Rules/Portuguese/InflectorFactory.php', + '/libraries/vendor/doctrine/inflector/lib/Doctrine/Inflector/Rules/Portuguese/Rules.php', + '/libraries/vendor/doctrine/inflector/lib/Doctrine/Inflector/Rules/Portuguese/Uninflected.php', + '/libraries/vendor/doctrine/inflector/lib/Doctrine/Inflector/Rules/Ruleset.php', + '/libraries/vendor/doctrine/inflector/lib/Doctrine/Inflector/Rules/Spanish/Inflectible.php', + '/libraries/vendor/doctrine/inflector/lib/Doctrine/Inflector/Rules/Spanish/InflectorFactory.php', + '/libraries/vendor/doctrine/inflector/lib/Doctrine/Inflector/Rules/Spanish/Rules.php', + '/libraries/vendor/doctrine/inflector/lib/Doctrine/Inflector/Rules/Spanish/Uninflected.php', + '/libraries/vendor/doctrine/inflector/lib/Doctrine/Inflector/Rules/Substitution.php', + '/libraries/vendor/doctrine/inflector/lib/Doctrine/Inflector/Rules/Substitutions.php', + '/libraries/vendor/doctrine/inflector/lib/Doctrine/Inflector/Rules/Transformation.php', + '/libraries/vendor/doctrine/inflector/lib/Doctrine/Inflector/Rules/Transformations.php', + '/libraries/vendor/doctrine/inflector/lib/Doctrine/Inflector/Rules/Turkish/Inflectible.php', + '/libraries/vendor/doctrine/inflector/lib/Doctrine/Inflector/Rules/Turkish/InflectorFactory.php', + '/libraries/vendor/doctrine/inflector/lib/Doctrine/Inflector/Rules/Turkish/Rules.php', + '/libraries/vendor/doctrine/inflector/lib/Doctrine/Inflector/Rules/Turkish/Uninflected.php', + '/libraries/vendor/doctrine/inflector/lib/Doctrine/Inflector/Rules/Word.php', + '/libraries/vendor/doctrine/inflector/lib/Doctrine/Inflector/RulesetInflector.php', + '/libraries/vendor/doctrine/inflector/lib/Doctrine/Inflector/WordInflector.php', + '/media/com_guidedtours/images/5_2/enhancedtourheader.png', + '/media/com_guidedtours/images/5_2/mailtemplate.png', + '/media/com_guidedtours/images/5_3/filesdirectory.jpg', + '/media/com_guidedtours/images/5_4/automated-updates.jpg', ]; $folders = [ - // From 4.4 to 5.0 - '/plugins/system/webauthn/src/Hotfix', - '/plugins/multifactorauth/webauthn/src/Hotfix', - '/media/vendor/tinymce/themes/mobile', - '/media/vendor/tinymce/skins/ui/oxide/fonts', - '/media/vendor/tinymce/skins/ui/oxide-dark/fonts', - '/media/vendor/tinymce/plugins/toc', - '/media/vendor/tinymce/plugins/textpattern', - '/media/vendor/tinymce/plugins/textcolor', - '/media/vendor/tinymce/plugins/template', - '/media/vendor/tinymce/plugins/tabfocus', - '/media/vendor/tinymce/plugins/spellchecker', - '/media/vendor/tinymce/plugins/print', - '/media/vendor/tinymce/plugins/paste', - '/media/vendor/tinymce/plugins/noneditable', - '/media/vendor/tinymce/plugins/legacyoutput', - '/media/vendor/tinymce/plugins/imagetools', - '/media/vendor/tinymce/plugins/hr', - '/media/vendor/tinymce/plugins/fullpage', - '/media/vendor/tinymce/plugins/contextmenu', - '/media/vendor/tinymce/plugins/colorpicker', - '/media/vendor/tinymce/plugins/bbcode', - '/libraries/vendor/symfony/polyfill-php81/Resources/stubs', - '/libraries/vendor/symfony/polyfill-php81/Resources', - '/libraries/vendor/symfony/polyfill-php81', - '/libraries/vendor/symfony/polyfill-php80/Resources/stubs', - '/libraries/vendor/symfony/polyfill-php80/Resources', - '/libraries/vendor/symfony/polyfill-php80', - '/libraries/vendor/symfony/polyfill-php73/Resources/stubs', - '/libraries/vendor/symfony/polyfill-php73/Resources', - '/libraries/vendor/symfony/polyfill-php73', - '/libraries/vendor/symfony/polyfill-php72', - '/libraries/vendor/spomky-labs/base64url/src', - '/libraries/vendor/spomky-labs/base64url', - '/libraries/vendor/ramsey/uuid/src/Provider/Time', - '/libraries/vendor/ramsey/uuid/src/Provider/Node', - '/libraries/vendor/ramsey/uuid/src/Provider', - '/libraries/vendor/ramsey/uuid/src/Generator', - '/libraries/vendor/ramsey/uuid/src/Exception', - '/libraries/vendor/ramsey/uuid/src/Converter/Time', - '/libraries/vendor/ramsey/uuid/src/Converter/Number', - '/libraries/vendor/ramsey/uuid/src/Converter', - '/libraries/vendor/ramsey/uuid/src/Codec', - '/libraries/vendor/ramsey/uuid/src/Builder', - '/libraries/vendor/ramsey/uuid/src', - '/libraries/vendor/ramsey/uuid', - '/libraries/vendor/ramsey', - '/libraries/vendor/psr/log/Psr/Log', - '/libraries/vendor/psr/log/Psr', - '/libraries/vendor/nyholm/psr7/src/Factory', - '/libraries/vendor/nyholm/psr7/src', - '/libraries/vendor/nyholm/psr7', - '/libraries/vendor/nyholm', - '/libraries/vendor/lcobucci/jwt/src/Parsing', - '/libraries/vendor/lcobucci/jwt/src/Claim', - '/libraries/vendor/lcobucci/jwt/compat', - '/libraries/vendor/laminas/laminas-zendframework-bridge/src', - '/libraries/vendor/laminas/laminas-zendframework-bridge/config', - '/libraries/vendor/laminas/laminas-zendframework-bridge', - '/libraries/vendor/joomla/ldap/src', - '/libraries/vendor/joomla/ldap', - '/libraries/vendor/beberlei/assert/lib/Assert', - '/libraries/vendor/beberlei/assert/lib', - '/libraries/vendor/beberlei/assert', - '/libraries/vendor/beberlei', - '/administrator/components/com_admin/sql/others/mysql', - '/administrator/components/com_admin/sql/others', - // From 5.0.0-alpha2 to 5.0.0-alpha3 - '/plugins/editors/codemirror/src/Field', - '/media/vendor/codemirror/theme', - '/media/vendor/codemirror/mode/z80', - '/media/vendor/codemirror/mode/yaml-frontmatter', - '/media/vendor/codemirror/mode/yaml', - '/media/vendor/codemirror/mode/yacas', - '/media/vendor/codemirror/mode/xquery', - '/media/vendor/codemirror/mode/xml', - '/media/vendor/codemirror/mode/webidl', - '/media/vendor/codemirror/mode/wast', - '/media/vendor/codemirror/mode/vue', - '/media/vendor/codemirror/mode/vhdl', - '/media/vendor/codemirror/mode/verilog', - '/media/vendor/codemirror/mode/velocity', - '/media/vendor/codemirror/mode/vbscript', - '/media/vendor/codemirror/mode/vb', - '/media/vendor/codemirror/mode/twig', - '/media/vendor/codemirror/mode/turtle', - '/media/vendor/codemirror/mode/ttcn-cfg', - '/media/vendor/codemirror/mode/ttcn', - '/media/vendor/codemirror/mode/troff', - '/media/vendor/codemirror/mode/tornado', - '/media/vendor/codemirror/mode/toml', - '/media/vendor/codemirror/mode/tiki', - '/media/vendor/codemirror/mode/tiddlywiki', - '/media/vendor/codemirror/mode/textile', - '/media/vendor/codemirror/mode/tcl', - '/media/vendor/codemirror/mode/swift', - '/media/vendor/codemirror/mode/stylus', - '/media/vendor/codemirror/mode/stex', - '/media/vendor/codemirror/mode/sql', - '/media/vendor/codemirror/mode/spreadsheet', - '/media/vendor/codemirror/mode/sparql', - '/media/vendor/codemirror/mode/soy', - '/media/vendor/codemirror/mode/solr', - '/media/vendor/codemirror/mode/smarty', - '/media/vendor/codemirror/mode/smalltalk', - '/media/vendor/codemirror/mode/slim', - '/media/vendor/codemirror/mode/sieve', - '/media/vendor/codemirror/mode/shell', - '/media/vendor/codemirror/mode/scheme', - '/media/vendor/codemirror/mode/sass', - '/media/vendor/codemirror/mode/sas', - '/media/vendor/codemirror/mode/rust', - '/media/vendor/codemirror/mode/ruby', - '/media/vendor/codemirror/mode/rst', - '/media/vendor/codemirror/mode/rpm/changes', - '/media/vendor/codemirror/mode/rpm', - '/media/vendor/codemirror/mode/r', - '/media/vendor/codemirror/mode/q', - '/media/vendor/codemirror/mode/python', - '/media/vendor/codemirror/mode/puppet', - '/media/vendor/codemirror/mode/pug', - '/media/vendor/codemirror/mode/protobuf', - '/media/vendor/codemirror/mode/properties', - '/media/vendor/codemirror/mode/powershell', - '/media/vendor/codemirror/mode/pig', - '/media/vendor/codemirror/mode/php', - '/media/vendor/codemirror/mode/perl', - '/media/vendor/codemirror/mode/pegjs', - '/media/vendor/codemirror/mode/pascal', - '/media/vendor/codemirror/mode/oz', - '/media/vendor/codemirror/mode/octave', - '/media/vendor/codemirror/mode/ntriples', - '/media/vendor/codemirror/mode/nsis', - '/media/vendor/codemirror/mode/nginx', - '/media/vendor/codemirror/mode/mumps', - '/media/vendor/codemirror/mode/mscgen', - '/media/vendor/codemirror/mode/modelica', - '/media/vendor/codemirror/mode/mllike', - '/media/vendor/codemirror/mode/mirc', - '/media/vendor/codemirror/mode/mbox', - '/media/vendor/codemirror/mode/mathematica', - '/media/vendor/codemirror/mode/markdown', - '/media/vendor/codemirror/mode/lua', - '/media/vendor/codemirror/mode/livescript', - '/media/vendor/codemirror/mode/julia', - '/media/vendor/codemirror/mode/jsx', - '/media/vendor/codemirror/mode/jinja2', - '/media/vendor/codemirror/mode/javascript', - '/media/vendor/codemirror/mode/idl', - '/media/vendor/codemirror/mode/http', - '/media/vendor/codemirror/mode/htmlmixed', - '/media/vendor/codemirror/mode/htmlembedded', - '/media/vendor/codemirror/mode/haxe', - '/media/vendor/codemirror/mode/haskell-literate', - '/media/vendor/codemirror/mode/haskell', - '/media/vendor/codemirror/mode/handlebars', - '/media/vendor/codemirror/mode/haml', - '/media/vendor/codemirror/mode/groovy', - '/media/vendor/codemirror/mode/go', - '/media/vendor/codemirror/mode/gherkin', - '/media/vendor/codemirror/mode/gfm', - '/media/vendor/codemirror/mode/gas', - '/media/vendor/codemirror/mode/fortran', - '/media/vendor/codemirror/mode/forth', - '/media/vendor/codemirror/mode/fcl', - '/media/vendor/codemirror/mode/factor', - '/media/vendor/codemirror/mode/erlang', - '/media/vendor/codemirror/mode/elm', - '/media/vendor/codemirror/mode/eiffel', - '/media/vendor/codemirror/mode/ecl', - '/media/vendor/codemirror/mode/ebnf', - '/media/vendor/codemirror/mode/dylan', - '/media/vendor/codemirror/mode/dtd', - '/media/vendor/codemirror/mode/dockerfile', - '/media/vendor/codemirror/mode/django', - '/media/vendor/codemirror/mode/diff', - '/media/vendor/codemirror/mode/dart', - '/media/vendor/codemirror/mode/d', - '/media/vendor/codemirror/mode/cypher', - '/media/vendor/codemirror/mode/css', - '/media/vendor/codemirror/mode/crystal', - '/media/vendor/codemirror/mode/commonlisp', - '/media/vendor/codemirror/mode/coffeescript', - '/media/vendor/codemirror/mode/cobol', - '/media/vendor/codemirror/mode/cmake', - '/media/vendor/codemirror/mode/clojure', - '/media/vendor/codemirror/mode/clike', - '/media/vendor/codemirror/mode/brainfuck', - '/media/vendor/codemirror/mode/asterisk', - '/media/vendor/codemirror/mode/asn.1', - '/media/vendor/codemirror/mode/asciiarmor', - '/media/vendor/codemirror/mode/apl', - '/media/vendor/codemirror/mode', - '/media/vendor/codemirror/lib', - '/media/vendor/codemirror/keymap', - '/media/vendor/codemirror/addon/wrap', - '/media/vendor/codemirror/addon/tern', - '/media/vendor/codemirror/addon/selection', - '/media/vendor/codemirror/addon/search', - '/media/vendor/codemirror/addon/scroll', - '/media/vendor/codemirror/addon/runmode', - '/media/vendor/codemirror/addon/mode', - '/media/vendor/codemirror/addon/merge', - '/media/vendor/codemirror/addon/lint', - '/media/vendor/codemirror/addon/hint', - '/media/vendor/codemirror/addon/fold', - '/media/vendor/codemirror/addon/edit', - '/media/vendor/codemirror/addon/display', - '/media/vendor/codemirror/addon/dialog', - '/media/vendor/codemirror/addon/comment', - '/media/vendor/codemirror/addon', - // From 5.0.0-alpha3 to 5.0.0-alpha4 - '/templates/system/incompatible.html,/includes', - '/templates/system/incompatible.html,', - '/media/plg_system_compat', - '/media/plg_editors_tinymce/js/plugins/highlighter', - // From 5.0.0-beta2 to 5.0.0-beta3 - '/libraries/vendor/stella-maris/clock/src', - '/libraries/vendor/stella-maris/clock', - '/libraries/vendor/stella-maris', - '/libraries/vendor/fgrosse/phpasn1/lib/X509/SAN', - '/libraries/vendor/fgrosse/phpasn1/lib/X509/CSR', - '/libraries/vendor/fgrosse/phpasn1/lib/X509', - '/libraries/vendor/fgrosse/phpasn1/lib/Utility', - '/libraries/vendor/fgrosse/phpasn1/lib/ASN1/Universal', - '/libraries/vendor/fgrosse/phpasn1/lib/ASN1/Exception', - '/libraries/vendor/fgrosse/phpasn1/lib/ASN1/Composite', - '/libraries/vendor/fgrosse/phpasn1/lib/ASN1', - '/libraries/vendor/fgrosse/phpasn1/lib', - '/libraries/vendor/fgrosse/phpasn1', - '/libraries/vendor/fgrosse', - // From 5.1.0-alpha4 to 5.1.0-beta1 - '/media/vendor/joomla-a11y-checker', - '/media/plg_system_jooa11y/scss', - '/media/plg_system_jooa11y/css', - '/libraries/vendor/web-token/jwt-signature/Serializer', - '/libraries/vendor/web-token/jwt-signature/Algorithm', - '/libraries/vendor/web-token/jwt-signature-algorithm-rsa/Util', - '/libraries/vendor/web-token/jwt-signature', - '/libraries/vendor/web-token/jwt-core/Util', - '/libraries/vendor/web-token/jwt-core', - // From 5.1.0-beta1 to 5.1.0-beta2 - '/libraries/vendor/web-token/signature-pack', - '/libraries/vendor/web-token/jwt-signature-algorithm-rsa', - '/libraries/vendor/web-token/jwt-signature-algorithm-none', - '/libraries/vendor/web-token/jwt-signature-algorithm-hmac', - '/libraries/vendor/web-token/jwt-signature-algorithm-experimental', - '/libraries/vendor/web-token/jwt-signature-algorithm-eddsa', - '/libraries/vendor/web-token/jwt-signature-algorithm-ecdsa', - '/libraries/vendor/web-token/jwt-experimental/Signature', - '/libraries/vendor/web-token/jwt-experimental/KeyEncryption', - '/libraries/vendor/web-token/jwt-experimental/ContentEncryption', - '/libraries/vendor/web-token/jwt-experimental', - '/libraries/src/Event/Router', - // From 5.1.0-beta2 to 5.1.0-rc1 - '/media/vendor/punycode', - // From 5.1.0 to 5.1.1 - '/libraries/vendor/cweagans/composer-patches/tests', - '/libraries/vendor/cweagans/composer-patches/src', - '/libraries/vendor/cweagans/composer-patches', - '/libraries/vendor/cweagans', - // From 5.2.0-alpha2 to 5.2.0-alpha3 - '/libraries/vendor/maximebf/debugbar/src/DebugBar/Resources/vendor/font-awesome/fonts', - // From 5.3.0-alpha3 to 5.3.0-beta1 - '/libraries/vendor/maximebf/debugbar/src/DebugBar/Storage', - '/libraries/vendor/maximebf/debugbar/src/DebugBar/Resources/widgets/templates', - '/libraries/vendor/maximebf/debugbar/src/DebugBar/Resources/widgets/sqlqueries', - '/libraries/vendor/maximebf/debugbar/src/DebugBar/Resources/widgets/mails', - '/libraries/vendor/maximebf/debugbar/src/DebugBar/Resources/widgets', - '/libraries/vendor/maximebf/debugbar/src/DebugBar/Resources/vendor/jquery/dist', - '/libraries/vendor/maximebf/debugbar/src/DebugBar/Resources/vendor/jquery', - '/libraries/vendor/maximebf/debugbar/src/DebugBar/Resources/vendor/highlightjs/styles', - '/libraries/vendor/maximebf/debugbar/src/DebugBar/Resources/vendor/highlightjs', - '/libraries/vendor/maximebf/debugbar/src/DebugBar/Resources/vendor/font-awesome/css', - '/libraries/vendor/maximebf/debugbar/src/DebugBar/Resources/vendor/font-awesome', - '/libraries/vendor/maximebf/debugbar/src/DebugBar/Resources/vendor', - '/libraries/vendor/maximebf/debugbar/src/DebugBar/Resources', - '/libraries/vendor/maximebf/debugbar/src/DebugBar/DataFormatter/VarDumper', - '/libraries/vendor/maximebf/debugbar/src/DebugBar/DataFormatter', - '/libraries/vendor/maximebf/debugbar/src/DebugBar/DataCollector/PDO', - '/libraries/vendor/maximebf/debugbar/src/DebugBar/DataCollector', - '/libraries/vendor/maximebf/debugbar/src/DebugBar/Bridge/Twig', - '/libraries/vendor/maximebf/debugbar/src/DebugBar/Bridge/Symfony', - '/libraries/vendor/maximebf/debugbar/src/DebugBar/Bridge/SwiftMailer', - '/libraries/vendor/maximebf/debugbar/src/DebugBar/Bridge', - '/libraries/vendor/maximebf/debugbar/src/DebugBar', - '/libraries/vendor/maximebf/debugbar/src', - '/libraries/vendor/maximebf/debugbar', - '/libraries/vendor/maximebf', + // From 5.x to 6.0 + '/libraries/vendor/voku/portable-utf8/src/voku/helper/data', + '/libraries/vendor/voku/portable-utf8/src/voku/helper', + '/libraries/vendor/voku/portable-utf8/src/voku', + '/libraries/vendor/voku/portable-utf8/src', + '/libraries/vendor/voku/portable-utf8', + '/libraries/vendor/voku/portable-ascii/src/voku/helper/data', + '/libraries/vendor/voku/portable-ascii/src/voku/helper', + '/libraries/vendor/voku/portable-ascii/src/voku', + '/libraries/vendor/voku/portable-ascii/src', + '/libraries/vendor/voku/portable-ascii', + '/libraries/vendor/voku', + '/libraries/vendor/typo3/phar-stream-wrapper/src/Resolver', + '/libraries/vendor/typo3/phar-stream-wrapper/src/Phar', + '/libraries/vendor/typo3/phar-stream-wrapper/src/Interceptor', + '/libraries/vendor/typo3/phar-stream-wrapper/src', + '/libraries/vendor/typo3/phar-stream-wrapper', + '/libraries/vendor/typo3', + '/libraries/vendor/symfony/polyfill-iconv/Resources/charset', + '/libraries/vendor/symfony/polyfill-iconv/Resources', + '/libraries/vendor/symfony/polyfill-iconv', + '/libraries/src/Filesystem/Support', + '/libraries/src/Filesystem/Streams', + '/libraries/src/Filesystem/Meta/language/en-GB', + '/libraries/src/Filesystem/Meta/language', + '/libraries/src/Filesystem/Meta', + '/libraries/src/Filesystem', + '/libraries/src/Application/CLI/Output/Processor', + '/libraries/src/Application/CLI/Output', + '/libraries/src/Application/CLI', + '/administrator/components/com_finder/helpers/indexer', + '/administrator/components/com_content/tmpl/featured', + // From 6.0.0-alpha3 to 6.0.0-beta1 + '/media/vendor/webcomponentsjs/js', + '/media/vendor/webcomponentsjs', + '/media/vendor/chosen/js', + '/media/vendor/chosen/css', + '/media/vendor/chosen', + '/libraries/vendor/symfony/polyfill-php83/Resources/stubs', + '/libraries/vendor/symfony/polyfill-php83/Resources', + '/libraries/vendor/symfony/polyfill-php83', + '/libraries/vendor/joomla/string/src/phputf8/utils', + '/libraries/vendor/joomla/string/src/phputf8/native', + '/libraries/vendor/joomla/string/src/phputf8/mbstring', + '/libraries/vendor/joomla/string/src/phputf8', + '/libraries/vendor/doctrine/inflector/lib/Doctrine/Common/Inflector', + '/libraries/vendor/doctrine/inflector/lib/Doctrine/Common', + '/libraries/src/Adapter', + // From 6.0.0-beta3 to 6.0.0-rc1 + '/media/com_guidedtours/images/5_4', + '/media/com_guidedtours/images/5_3', + '/media/com_guidedtours/images/5_2', + '/libraries/vendor/doctrine/inflector/lib/Doctrine/Inflector/Rules/Turkish', + '/libraries/vendor/doctrine/inflector/lib/Doctrine/Inflector/Rules/Spanish', + '/libraries/vendor/doctrine/inflector/lib/Doctrine/Inflector/Rules/Portuguese', + '/libraries/vendor/doctrine/inflector/lib/Doctrine/Inflector/Rules/NorwegianBokmal', + '/libraries/vendor/doctrine/inflector/lib/Doctrine/Inflector/Rules/French', + '/libraries/vendor/doctrine/inflector/lib/Doctrine/Inflector/Rules/English', + '/libraries/vendor/doctrine/inflector/lib/Doctrine/Inflector/Rules', + '/libraries/vendor/doctrine/inflector/lib/Doctrine/Inflector', + '/libraries/vendor/doctrine/inflector/lib/Doctrine', + '/libraries/vendor/doctrine/inflector/lib', ]; $status['files_checked'] = $files; @@ -2810,13 +1145,6 @@ public function deleteUnexistingFiles($dryRun = false, $suppressOutput = false) $this->fixFilenameCasing(); - /** - * Fix filesystem permissions when updating a new 5.2.0 installation. - * - * @todo: Remove in 6.0 - */ - $this->fixFilesystemPermissions(); - if ($suppressOutput === false && \count($status['folders_errors'])) { echo implode('
', $status['folders_errors']); } @@ -2839,18 +1167,13 @@ public function deleteUnexistingFiles($dryRun = false, $suppressOutput = false) */ public function updateAssets($installer) { - // List all components added since 4.0 + // List all components added since 6.0 $newComponents = [ // Components to be added here - 'com_guidedtours', - 'com_mails', - 'com_scheduler', - 'com_workflow', ]; foreach ($newComponents as $component) { - /** @var \Joomla\CMS\Table\Asset $asset */ - $asset = Table::getInstance('Asset'); + $asset = new Asset(Factory::getDbo()); if ($asset->loadByName($component)) { continue; @@ -2912,24 +1235,11 @@ public function postflight($action, $installer) return true; } - if (empty($this->fromVersion) || version_compare($this->fromVersion, '5.0.0', 'ge')) { + if (empty($this->fromVersion) || version_compare($this->fromVersion, '6.0.0', 'ge')) { return true; } - // Add here code which shall be executed only when updating from an older version than 5.0.0 - if (!$this->migrateTinymceConfiguration()) { - return false; - } - - if (!$this->migrateDeleteActionlogsConfiguration()) { - return false; - } - - if (!$this->migratePrivacyconsentConfiguration()) { - return false; - } - - $this->setGuidedToursUid(); + // Add here code which shall be executed only when updating from an older version than 6.0.0 // Refresh versionable assets cache. Factory::getApplication()->flushAssets(); @@ -2937,315 +1247,6 @@ public function postflight($action, $installer) return true; } - /** - * Migrate Deleteactionlogs plugin configuration - * - * @return boolean True on success - * - * @since 5.0.0 - */ - private function migrateDeleteActionlogsConfiguration(): bool - { - $db = Factory::getDbo(); - - try { - // Get the ActionLogs system plugin's parameters - $row = $db->setQuery( - $db->getQuery(true) - ->select([$db->quotename('enabled'), $db->quoteName('params')]) - ->from($db->quoteName('#__extensions')) - ->where($db->quoteName('type') . ' = ' . $db->quote('plugin')) - ->where($db->quoteName('folder') . ' = ' . $db->quote('system')) - ->where($db->quoteName('element') . ' = ' . $db->quote('actionlogs')) - )->loadObject(); - } catch (Exception $e) { - $this->collectError(__METHOD__, $e); - - return false; - } - - // If not existing or disabled there is nothing to migrate - if (!$row || !$row->enabled) { - return true; - } - - $params = new Registry($row->params); - - // If deletion of outdated logs was disabled there is nothing to migrate - if (!$params->get('logDeletePeriod', 0)) { - return true; - } - - /** @var \Joomla\Component\Scheduler\Administrator\Extension\SchedulerComponent $component */ - $component = Factory::getApplication()->bootComponent('com_scheduler'); - - /** @var \Joomla\Component\Scheduler\Administrator\Model\TaskModel $model */ - $model = $component->getMVCFactory()->createModel('Task', 'Administrator', ['ignore_request' => true]); - $task = [ - 'title' => 'Delete Action Logs', - 'type' => 'delete.actionlogs', - 'execution_rules' => [ - 'rule-type' => 'interval-hours', - 'interval-hours' => 24, - 'exec-time' => gmdate('H:i', $params->get('lastrun', time())), - 'exec-day' => gmdate('d'), - ], - 'state' => 1, - 'params' => [ - 'logDeletePeriod' => $params->get('logDeletePeriod', 0), - ], - ]; - - try { - $model->save($task); - } catch (Exception $e) { - $this->collectError(__METHOD__, $e); - - return false; - } - - return true; - } - /** - * Migrate privacyconsents system plugin configuration - * - * @return boolean True on success - * - * @since 5.0.0 - */ - private function migratePrivacyconsentConfiguration(): bool - { - $db = Factory::getDbo(); - - try { - // Get the PrivacyConsent system plugin's parameters - $row = $db->setQuery( - $db->getQuery(true) - ->select([$db->quotename('enabled'), $db->quoteName('params')]) - ->from($db->quoteName('#__extensions')) - ->where($db->quoteName('type') . ' = ' . $db->quote('plugin')) - ->where($db->quoteName('folder') . ' = ' . $db->quote('system')) - ->where($db->quoteName('element') . ' = ' . $db->quote('privacyconsent')) - )->loadObject(); - } catch (Exception $e) { - $this->collectError(__METHOD__, $e); - - return false; - } - - // If not existing or disabled there is nothing to migrate - if (!$row || !$row->enabled) { - return true; - } - - $params = new Registry($row->params); - - // If consent expiration was disabled there is nothing to migrate - if (!$params->get('enabled', 0)) { - return true; - } - - /** @var \Joomla\Component\Scheduler\Administrator\Extension\SchedulerComponent $component */ - $component = Factory::getApplication()->bootComponent('com_scheduler'); - - /** @var \Joomla\Component\Scheduler\Administrator\Model\TaskModel $model */ - $model = $component->getMVCFactory()->createModel('Task', 'Administrator', ['ignore_request' => true]); - $task = [ - 'title' => 'Privacy Consent', - 'type' => 'privacy.consent', - 'execution_rules' => [ - 'rule-type' => 'interval-days', - 'interval-days' => $params->get('cachetimeout', 30), - 'exec-time' => gmdate('H:i', $params->get('lastrun', time())), - 'exec-day' => gmdate('d'), - ], - 'state' => 1, - 'params' => [ - 'consentexpiration' => $params->get('consentexpiration', 360), - 'remind' => $params->get('remind', 30), - ], - ]; - - try { - $model->save($task); - } catch (Exception $e) { - $this->collectError(__METHOD__, $e); - - return false; - } - - // Refresh versionable assets cache. - Factory::getApplication()->flushAssets(); - - return true; - } - - /** - * Migrate TinyMCE editor plugin configuration - * - * @return boolean True on success - * - * @since 5.0.0 - */ - private function migrateTinymceConfiguration(): bool - { - $db = Factory::getDbo(); - - try { - // Get the TinyMCE editor plugin's parameters - $params = $db->setQuery( - $db->getQuery(true) - ->select($db->quoteName('params')) - ->from($db->quoteName('#__extensions')) - ->where($db->quoteName('type') . ' = ' . $db->quote('plugin')) - ->where($db->quoteName('folder') . ' = ' . $db->quote('editors')) - ->where($db->quoteName('element') . ' = ' . $db->quote('tinymce')) - )->loadResult(); - } catch (Exception $e) { - $this->collectError(__METHOD__, $e); - - return false; - } - - $params = json_decode($params, true); - - // If there are no toolbars there is nothing to migrate - if (!isset($params['configuration']['toolbars'])) { - return true; - } - - // Each set has its own toolbar configuration - foreach ($params['configuration']['toolbars'] as $setIdx => $toolbarConfig) { - // Migrate menu items if there is a menu - if (isset($toolbarConfig['menu'])) { - /** - * Replace array values with menu item names ("old name" -> "new name"): - * "blockformats" -> "blocks" - * "fontformats" -> "fontfamily" - * "fontsizes" -> "fontsize" - * "formats" -> "styles" - * "template" -> "jtemplate" - */ - $search = ['blockformats', 'fontformats', 'fontsizes', 'formats']; - $replace = ['blocks', 'fontfamily', 'fontsize', 'styles']; - - // Don't redo the template - if (!\in_array('jtemplate', $params['configuration']['toolbars'][$setIdx]['menu'])) { - $search[] = 'template'; - $replace[] = 'jtemplate'; - } - - $params['configuration']['toolbars'][$setIdx]['menu'] = str_replace($search, $replace, $toolbarConfig['menu']); - } - - // There could be no toolbar at all, or only toolbar1, or both toolbar1 and toolbar2 - foreach (['toolbar1', 'toolbar2'] as $toolbarIdx) { - // Migrate toolbar buttons if that toolbar exists - if (isset($toolbarConfig[$toolbarIdx])) { - /** - * Replace array values with button names ("old name" -> "new name"): - * "fontselect" -> "fontfamily" - * "fontsizeselect" -> "fontsize" - * "formatselect" -> "blocks" - * "styleselect" -> "styles" - * "template" -> "jtemplate" - */ - $search = ['fontselect', 'fontsizeselect', 'formatselect', 'styleselect']; - $replace = ['fontfamily', 'fontsize', 'blocks', 'styles']; - - // Don't redo the template - if (!\in_array('jtemplate', $params['configuration']['toolbars'][$setIdx][$toolbarIdx])) { - $search[] = 'template'; - $replace[] = 'jtemplate'; - } - - $params['configuration']['toolbars'][$setIdx][$toolbarIdx] = str_replace($search, $replace, $toolbarConfig[$toolbarIdx]); - } - } - } - - $params = json_encode($params); - - $query = $db->getQuery(true) - ->update($db->quoteName('#__extensions')) - ->set($db->quoteName('params') . ' = ' . $db->quote($params)) - ->where($db->quoteName('type') . ' = ' . $db->quote('plugin')) - ->where($db->quoteName('folder') . ' = ' . $db->quote('editors')) - ->where($db->quoteName('element') . ' = ' . $db->quote('tinymce')); - - try { - $db->setQuery($query)->execute(); - } catch (Exception $e) { - $this->collectError(__METHOD__, $e); - - return false; - } - - return true; - } - - /** - * setup Guided Tours Unique Identifiers - * - * @return void - * - * @since 5.0.0 - */ - private function setGuidedToursUid() - { - /** @var \Joomla\Component\Cache\Administrator\Model\CacheModel $model */ - $model = Factory::getApplication()->bootComponent('com_guidedtours')->getMVCFactory() - ->createModel('Tours', 'Administrator', ['ignore_request' => true]); - - $items = $model->getItems(); - - foreach ($items as $item) { - // Set uid for tours where it is empty - if (empty($item->uid)) { - $tourItem = $model->getTable('Tour'); - $tourItem->load($item->id); - - // Tour follows Joomla naming convention - if (str_starts_with($tourItem->title, 'COM_GUIDEDTOURS_TOUR_') && str_ends_with($tourItem->title, '_TITLE')) { - $uidTitle = 'joomla_' . str_replace('COM_GUIDEDTOURS_TOUR_', '', $tourItem->title); - - // Remove the last _TITLE part - $pos = strrpos($uidTitle, '_TITLE'); - if ($pos !== false) { - $uidTitle = substr($uidTitle, 0, $pos); - } - } elseif (preg_match('#COM_(\w+)_TOUR_#', $tourItem->title) && str_ends_with($tourItem->title, '_TITLE')) { - // Tour follows component naming pattern - $uidTitle = preg_replace('#COM_(\w+)_TOUR_#', '$1.', $tourItem->title); - - // Remove the last _TITLE part - $pos = strrpos($uidTitle, "_TITLE"); - if ($pos !== false) { - $uidTitle = substr($uidTitle, 0, $pos); - } - } else { - $uri = Uri::getInstance(); - $host = $uri->toString(['host']); - $host = ApplicationHelper::stringURLSafe($host, $tourItem->language); - $uidTitle = $host . ' ' . str_replace('COM_GUIDEDTOURS_TOUR_', '', $tourItem->title); - // Remove the last _TITLE part - if (str_ends_with($uidTitle, '_TITLE')) { - $pos = strrpos($uidTitle, '_TITLE'); - $uidTitle = substr($uidTitle, 0, $pos); - } - } - // ApplicationHelper::stringURLSafe will replace a period (.) separator so we split the construction into multiple parts - $uidTitleParts = explode('.', $uidTitle); - array_walk($uidTitleParts, function (&$value, $key, $tourLanguage) { - $value = ApplicationHelper::stringURLSafe($value, $tourLanguage); - }, $tourItem->language); - $tourItem->uid = implode('.', $uidTitleParts); - - $tourItem->store(); - } - } - } - /** * Renames or removes incorrectly cased files. * @@ -3256,11 +1257,7 @@ private function setGuidedToursUid() protected function fixFilenameCasing() { $files = [ - // From 4.4 to 5.0 - '/libraries/vendor/web-auth/cose-lib/src/Algorithm/Signature/EdDSA/ED256.php' => '/libraries/vendor/web-auth/cose-lib/src/Algorithm/Signature/EdDSA/Ed256.php', - '/libraries/vendor/web-auth/cose-lib/src/Algorithm/Signature/EdDSA/ED512.php' => '/libraries/vendor/web-auth/cose-lib/src/Algorithm/Signature/EdDSA/Ed512.php', - // From 5.0.0-alpha3 to 5.0.0-alpha4 - '/plugins/schemaorg/blogposting/src/Extension/Blogposting.php' => '/plugins/schemaorg/blogposting/src/Extension/BlogPosting.php', + // From 5.x to 6.0 ]; foreach ($files as $old => $expected) { @@ -3304,426 +1301,4 @@ protected function fixFilenameCasing() } } } - - /** - * Fix filesystem permissions when updating a new 5.2.0 installation. - * - * @return void - * - * @since 5.2.2 - * - * @todo 6.0 Remove this method - * - * @deprecated 5.2.2 will be removed in 6.0 without replacement - */ - protected function fixFilesystemPermissions() - { - // Don't do anything if not updating from a 5.2.0 or 5.2.1 - if ( - empty($this->fromVersion) - || version_compare($this->fromVersion, '5.2.0', 'lt') - || version_compare($this->fromVersion, '5.2.1', 'gt') - ) { - return; - } - - // First check tmp folder if it has mode 777 - if (decoct(fileperms(JPATH_ROOT . '/tmp') & 0777) === '777') { - // We are either on Windows where folders always have 777, or we have to fix permissions - @chmod(JPATH_ROOT . '/tmp', 0755); - clearstatcache(true, JPATH_ROOT . '/tmp'); - } - - // Check tmp folder again if it still has mode 777 - if (decoct(fileperms(JPATH_ROOT . '/tmp') & 0777) === '777') { - // We are on Windows or chmod has no effect - return; - } - - try { - // Using hard-coded string because a new language string would not be available in all cases - Log::add('Fixing permissions for files and folders.', Log::INFO, 'Update'); - } catch (\RuntimeException) { - // Informational log only - } - - $files = [ - '/htaccess.txt', - '/index.php', - '/libraries/.htaccess', - '/libraries/vendor/jfcherng/php-diff/.phpstorm.meta.php', - '/libraries/vendor/joomla/http/.drone.jsonnet', - '/libraries/vendor/joomla/http/.drone.yml', - '/libraries/vendor/joomla/oauth1/.drone.jsonnet', - '/libraries/vendor/joomla/oauth1/.drone.yml', - '/libraries/vendor/joomla/oauth2/.drone.jsonnet', - '/libraries/vendor/joomla/oauth2/.drone.yml', - '/libraries/vendor/joomla/router/.drone.jsonnet', - '/libraries/vendor/joomla/router/.drone.yml', - '/libraries/vendor/joomla/string/.drone.jsonnet', - '/libraries/vendor/joomla/string/.drone.yml', - '/libraries/vendor/joomla/uri/.drone.jsonnet', - '/libraries/vendor/joomla/uri/.drone.yml', - '/libraries/vendor/joomla/utilities/.drone.jsonnet', - '/libraries/vendor/joomla/utilities/.drone.yml', - '/LICENSE.txt', - '/README.txt', - '/robots.txt', - '/robots.txt.dist', - '/tmp/index.html', - '/web.config.txt', - ]; - - $folders = [ - '/administrator', - '/administrator/cache', - '/administrator/components', - '/administrator/help', - '/administrator/help/en-GB', - '/administrator/includes', - '/administrator/language', - '/administrator/language/en-GB', - '/administrator/language/overrides', - '/administrator/logs', - '/administrator/manifests', - '/administrator/manifests/files', - '/administrator/manifests/libraries', - '/administrator/manifests/packages', - '/administrator/modules', - '/administrator/templates', - '/api', - '/api/components', - '/api/includes', - '/api/language', - '/api/language/en-GB', - '/cache', - '/cli', - '/components', - '/images', - '/images/banners', - '/images/headers', - '/images/sampledata', - '/images/sampledata/cassiopeia', - '/includes', - '/language', - '/language/en-GB', - '/language/overrides', - '/layouts', - '/layouts/chromes', - '/layouts/libraries', - '/layouts/libraries/html', - '/layouts/libraries/html/bootstrap', - '/layouts/libraries/html/bootstrap/modal', - '/layouts/libraries/html/bootstrap/tab', - '/libraries', - '/libraries/php-encryption', - '/libraries/phpass', - '/media', - '/media/cache', - '/media/templates', - '/media/templates/administrator', - '/media/templates/site', - '/media/vendor', - '/modules', - '/plugins', - '/templates', - ]; - - $foldersRecursive = [ - '/administrator/components/com_actionlogs', - '/administrator/components/com_admin', - '/administrator/components/com_ajax', - '/administrator/components/com_associations', - '/administrator/components/com_banners', - '/administrator/components/com_cache', - '/administrator/components/com_categories', - '/administrator/components/com_checkin', - '/administrator/components/com_config', - '/administrator/components/com_contact', - '/administrator/components/com_content', - '/administrator/components/com_contenthistory', - '/administrator/components/com_cpanel', - '/administrator/components/com_fields', - '/administrator/components/com_finder', - '/administrator/components/com_guidedtours', - '/administrator/components/com_installer', - '/administrator/components/com_joomlaupdate', - '/administrator/components/com_languages', - '/administrator/components/com_login', - '/administrator/components/com_mails', - '/administrator/components/com_media', - '/administrator/components/com_menus', - '/administrator/components/com_messages', - '/administrator/components/com_modules', - '/administrator/components/com_newsfeeds', - '/administrator/components/com_plugins', - '/administrator/components/com_postinstall', - '/administrator/components/com_privacy', - '/administrator/components/com_redirect', - '/administrator/components/com_scheduler', - '/administrator/components/com_tags', - '/administrator/components/com_templates', - '/administrator/components/com_users', - '/administrator/components/com_workflow', - '/administrator/components/com_wrapper', - '/administrator/modules/mod_custom', - '/administrator/modules/mod_feed', - '/administrator/modules/mod_frontend', - '/administrator/modules/mod_guidedtours', - '/administrator/modules/mod_latest', - '/administrator/modules/mod_latestactions', - '/administrator/modules/mod_logged', - '/administrator/modules/mod_login', - '/administrator/modules/mod_loginsupport', - '/administrator/modules/mod_menu', - '/administrator/modules/mod_messages', - '/administrator/modules/mod_multilangstatus', - '/administrator/modules/mod_popular', - '/administrator/modules/mod_post_installation_messages', - '/administrator/modules/mod_privacy_dashboard', - '/administrator/modules/mod_privacy_status', - '/administrator/modules/mod_quickicon', - '/administrator/modules/mod_sampledata', - '/administrator/modules/mod_stats_admin', - '/administrator/modules/mod_submenu', - '/administrator/modules/mod_title', - '/administrator/modules/mod_toolbar', - '/administrator/modules/mod_user', - '/administrator/modules/mod_version', - '/administrator/templates/atum', - '/administrator/templates/system', - '/api/components/com_banners', - '/api/components/com_categories', - '/api/components/com_config', - '/api/components/com_contact', - '/api/components/com_content', - '/api/components/com_contenthistory', - '/api/components/com_fields', - '/api/components/com_installer', - '/api/components/com_languages', - '/api/components/com_media', - '/api/components/com_menus', - '/api/components/com_messages', - '/api/components/com_modules', - '/api/components/com_newsfeeds', - '/api/components/com_plugins', - '/api/components/com_privacy', - '/api/components/com_redirect', - '/api/components/com_tags', - '/api/components/com_templates', - '/api/components/com_users', - '/components/com_ajax', - '/components/com_banners', - '/components/com_config', - '/components/com_contact', - '/components/com_content', - '/components/com_contenthistory', - '/components/com_fields', - '/components/com_finder', - '/components/com_media', - '/components/com_menus', - '/components/com_modules', - '/components/com_newsfeeds', - '/components/com_privacy', - '/components/com_tags', - '/components/com_users', - '/components/com_wrapper', - '/layouts/joomla', - '/layouts/plugins', - '/libraries/src', - '/libraries/vendor', - '/media/com_actionlogs', - '/media/com_admin', - '/media/com_associations', - '/media/com_banners', - '/media/com_cache', - '/media/com_categories', - '/media/com_config', - '/media/com_contact', - '/media/com_content', - '/media/com_contenthistory', - '/media/com_cpanel', - '/media/com_fields', - '/media/com_finder', - '/media/com_guidedtours', - '/media/com_installer', - '/media/com_joomlaupdate', - '/media/com_languages', - '/media/com_mails', - '/media/com_media', - '/media/com_menus', - '/media/com_modules', - '/media/com_scheduler', - '/media/com_tags', - '/media/com_templates', - '/media/com_users', - '/media/com_workflow', - '/media/com_wrapper', - '/media/layouts', - '/media/legacy', - '/media/mailto', - '/media/mod_articles', - '/media/mod_articles_news', - '/media/mod_languages', - '/media/mod_login', - '/media/mod_menu', - '/media/mod_quickicon', - '/media/mod_sampledata', - '/media/plg_behaviour_compat', - '/media/plg_captcha_recaptcha', - '/media/plg_captcha_recaptcha_invisible', - '/media/plg_content_vote', - '/media/plg_editors-xtd_image', - '/media/plg_editors_codemirror', - '/media/plg_editors_none', - '/media/plg_editors_tinymce', - '/media/plg_installer_folderinstaller', - '/media/plg_installer_packageinstaller', - '/media/plg_installer_urlinstaller', - '/media/plg_installer_webinstaller', - '/media/plg_media-action_crop', - '/media/plg_media-action_resize', - '/media/plg_media-action_rotate', - '/media/plg_multifactorauth_email', - '/media/plg_multifactorauth_fixed', - '/media/plg_multifactorauth_totp', - '/media/plg_multifactorauth_webauthn', - '/media/plg_multifactorauth_yubikey', - '/media/plg_quickicon_eos', - '/media/plg_quickicon_extensionupdate', - '/media/plg_quickicon_joomlaupdate', - '/media/plg_quickicon_overridecheck', - '/media/plg_quickicon_privacycheck', - '/media/plg_system_debug', - '/media/plg_system_guidedtours', - '/media/plg_system_jooa11y', - '/media/plg_system_schedulerunner', - '/media/plg_system_shortcut', - '/media/plg_system_stats', - '/media/plg_system_webauthn', - '/media/plg_user_token', - '/media/system', - '/media/templates/administrator/atum', - '/media/templates/site/cassiopeia', - '/media/vendor/accessibility', - '/media/vendor/awesomplete', - '/media/vendor/bootstrap', - '/media/vendor/choicesjs', - '/media/vendor/chosen', - '/media/vendor/codemirror', - '/media/vendor/cropperjs', - '/media/vendor/debugbar', - '/media/vendor/diff', - '/media/vendor/dragula', - '/media/vendor/es-module-shims', - '/media/vendor/focus-visible', - '/media/vendor/fontawesome-free', - '/media/vendor/hotkeysjs', - '/media/vendor/joomla-custom-elements', - '/media/vendor/jquery', - '/media/vendor/jquery-migrate', - '/media/vendor/mediaelement', - '/media/vendor/metismenujs', - '/media/vendor/minicolors', - '/media/vendor/qrcode', - '/media/vendor/roboto-fontface', - '/media/vendor/sa11y', - '/media/vendor/shepherdjs', - '/media/vendor/short-and-sweet', - '/media/vendor/skipto', - '/media/vendor/tinymce', - '/media/vendor/webcomponentsjs', - '/modules/mod_articles', - '/modules/mod_articles_archive', - '/modules/mod_articles_categories', - '/modules/mod_articles_category', - '/modules/mod_articles_latest', - '/modules/mod_articles_news', - '/modules/mod_articles_popular', - '/modules/mod_banners', - '/modules/mod_breadcrumbs', - '/modules/mod_custom', - '/modules/mod_feed', - '/modules/mod_finder', - '/modules/mod_footer', - '/modules/mod_languages', - '/modules/mod_login', - '/modules/mod_menu', - '/modules/mod_random_image', - '/modules/mod_related_items', - '/modules/mod_stats', - '/modules/mod_syndicate', - '/modules/mod_tags_popular', - '/modules/mod_tags_similar', - '/modules/mod_users_latest', - '/modules/mod_whosonline', - '/modules/mod_wrapper', - '/plugins/actionlog', - '/plugins/api-authentication', - '/plugins/authentication', - '/plugins/behaviour', - '/plugins/captcha', - '/plugins/content', - '/plugins/editors', - '/plugins/editors-xtd', - '/plugins/extension', - '/plugins/fields', - '/plugins/filesystem', - '/plugins/finder', - '/plugins/installer', - '/plugins/media-action', - '/plugins/multifactorauth', - '/plugins/privacy', - '/plugins/quickicon', - '/plugins/sampledata', - '/plugins/schemaorg', - '/plugins/system', - '/plugins/task', - '/plugins/user', - '/plugins/webservices', - '/plugins/workflow', - '/templates/cassiopeia', - '/templates/system', - ]; - - foreach ($files as $file) { - if (is_file(JPATH_ROOT . $file) && decoct(fileperms(JPATH_ROOT . $file) & 0777) === '777') { - @chmod(JPATH_ROOT . $file, 0644); - } - } - - foreach ($folders as $folder) { - if (is_dir(JPATH_ROOT . $folder)) { - if (decoct(fileperms(JPATH_ROOT . $folder) & 0777) === '777') { - @chmod(JPATH_ROOT . $folder, 0755); - } - - foreach (Folder::files(JPATH_ROOT . $folder, '.', false, true) as $file) { - if (decoct(fileperms($file) & 0777) === '777') { - @chmod($file, 0644); - } - } - } - } - - foreach ($foldersRecursive as $parentFolder) { - if (is_dir(JPATH_ROOT . $parentFolder)) { - if (decoct(fileperms(JPATH_ROOT . $parentFolder) & 0777) === '777') { - @chmod(JPATH_ROOT . $parentFolder, 0755); - } - - foreach (Folder::folders(JPATH_ROOT . $parentFolder, '.', true, true) as $folder) { - if (decoct(fileperms($folder) & 0777) === '777') { - @chmod($folder, 0755); - } - } - - foreach (Folder::files(JPATH_ROOT . $parentFolder, '.', true, true) as $file) { - if (decoct(fileperms($file) & 0777) === '777') { - @chmod($file, 0644); - } - } - } - } - } } diff --git a/administrator/components/com_admin/sql/updates/mysql/5.0.0-2023-03-11.sql b/administrator/components/com_admin/sql/updates/mysql/5.0.0-2023-03-11.sql deleted file mode 100644 index 59b59432ea959..0000000000000 --- a/administrator/components/com_admin/sql/updates/mysql/5.0.0-2023-03-11.sql +++ /dev/null @@ -1 +0,0 @@ -DROP TABLE IF EXISTS `#__utf8_conversion`; diff --git a/administrator/components/com_admin/sql/updates/mysql/5.0.0-2023-03-17.sql b/administrator/components/com_admin/sql/updates/mysql/5.0.0-2023-03-17.sql deleted file mode 100644 index 4f6aa1f79b567..0000000000000 --- a/administrator/components/com_admin/sql/updates/mysql/5.0.0-2023-03-17.sql +++ /dev/null @@ -1 +0,0 @@ -DELETE FROM `#__scheduler_tasks` WHERE `type` = 'demoTask_r1.sleep'; diff --git a/administrator/components/com_admin/sql/updates/mysql/5.0.0-2023-07-12.sql b/administrator/components/com_admin/sql/updates/mysql/5.0.0-2023-07-12.sql deleted file mode 100644 index 882f857346fd7..0000000000000 --- a/administrator/components/com_admin/sql/updates/mysql/5.0.0-2023-07-12.sql +++ /dev/null @@ -1,2 +0,0 @@ -ALTER TABLE `#__menu_types` ADD COLUMN `ordering` int NOT NULL DEFAULT 0 AFTER `client_id` /** CAN FAIL **/; -UPDATE `#__menu_types` SET `ordering` = `id` WHERE `client_id` = 0; diff --git a/administrator/components/com_admin/sql/updates/mysql/5.0.0-2023-07-25.sql b/administrator/components/com_admin/sql/updates/mysql/5.0.0-2023-07-25.sql deleted file mode 100644 index 897a721bfd927..0000000000000 --- a/administrator/components/com_admin/sql/updates/mysql/5.0.0-2023-07-25.sql +++ /dev/null @@ -1,28 +0,0 @@ --- --- Table structure for table `#__schemaorg` --- - -CREATE TABLE IF NOT EXISTS `#__schemaorg` ( - `id` int unsigned NOT NULL AUTO_INCREMENT, - `itemId` int unsigned, - `context` varchar(100), - `schemaType` varchar(100), - `schema` text, - PRIMARY KEY (`id`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 DEFAULT COLLATE=utf8mb4_unicode_ci; - --- Add plugins to `#__extensions` --- -------------------------------------------------------- --- The following INSERT statement has been modified to insert --- core plugins with locked=1. --- See https://github.com/joomla/joomla-cms/pull/45821 for details. --- -INSERT INTO `#__extensions` (`package_id`, `name`, `type`, `element`, `folder`, `client_id`, `enabled`, `access`, `protected`, `locked`, `manifest_cache`, `params`, `custom_data`, `ordering`, `state`) VALUES -(0, 'plg_schemaorg_blogposting', 'plugin', 'blogposting', 'schemaorg', 0, 1, 1, 0, 1, '', '{}', '', 1, 0), -(0, 'plg_schemaorg_book', 'plugin', 'book', 'schemaorg', 0, 1, 1, 0, 1, '', '{}', '', 2, 0), -(0, 'plg_schemaorg_event', 'plugin', 'event', 'schemaorg', 0, 1, 1, 0, 1, '', '{}', '', 3, 0), -(0, 'plg_schemaorg_organization', 'plugin', 'organization', 'schemaorg', 0, 1, 1, 0, 1, '', '{}', '', 4, 0), -(0, 'plg_schemaorg_person', 'plugin', 'person', 'schemaorg', 0, 1, 1, 0, 1, '', '{}', '', 5, 0), -(0, 'plg_schemaorg_recipe', 'plugin', 'recipe', 'schemaorg', 0, 1, 1, 0, 1, '', '{}', '', 6, 0), -(0, 'plg_schemaorg_jobposting', 'plugin', 'jobposting', 'schemaorg', 0, 1, 1, 0, 1, '', '{}', '', 7, 0), -(0, 'plg_system_schemaorg', 'plugin', 'schemaorg', 'system', 0, 1, 1, 0, 1, '', '{}', '', 0, 0); diff --git a/administrator/components/com_admin/sql/updates/mysql/5.0.0-2023-08-21.sql b/administrator/components/com_admin/sql/updates/mysql/5.0.0-2023-08-21.sql deleted file mode 100644 index 53a45aa687c0d..0000000000000 --- a/administrator/components/com_admin/sql/updates/mysql/5.0.0-2023-08-21.sql +++ /dev/null @@ -1,17 +0,0 @@ --- --- Attention: In the below SQL statements, the value of the filter is unescaped, i.e. uses "\\", while --- in base.sql the same value is using "\\\\". This is expected because of how JSON_REPLACE works. --- -UPDATE `#__extensions` - SET `params` = JSON_REPLACE(`params`, '$.filter' , '\\Joomla\\CMS\\Component\\ComponentHelper::filterText') - WHERE `type` = 'plugin' - AND `folder` = 'fields' - AND `element` IN ('editor', 'text', 'textarea') - AND `params` <> '' - AND JSON_EXTRACT(`params`, '$.filter') = 'JComponentHelper::filterText'; - -UPDATE `#__fields` - SET `fieldparams` = JSON_REPLACE(`fieldparams`, '$.filter' , '\\Joomla\\CMS\\Component\\ComponentHelper::filterText') - WHERE `type` IN ('editor', 'text', 'textarea') - AND `fieldparams` <> '' - AND JSON_EXTRACT(`fieldparams`, '$.filter') = 'JComponentHelper::filterText'; diff --git a/administrator/components/com_admin/sql/updates/mysql/5.0.0-2023-08-26.sql b/administrator/components/com_admin/sql/updates/mysql/5.0.0-2023-08-26.sql deleted file mode 100644 index 61c645749148f..0000000000000 --- a/administrator/components/com_admin/sql/updates/mysql/5.0.0-2023-08-26.sql +++ /dev/null @@ -1,7 +0,0 @@ --- -------------------------------------------------------- --- The following INSERT statement has been modified to insert --- this core plugin with locked=1. --- See https://github.com/joomla/joomla-cms/pull/45821 for details. --- -INSERT INTO `#__extensions` (`package_id`, `name`, `type`, `element`, `folder`, `client_id`, `enabled`, `access`, `protected`, `locked`, `manifest_cache`, `params`, `custom_data`, `ordering`, `state`) VALUES -(0, 'plg_task_globalcheckin', 'plugin', 'globalcheckin', 'task', 0, 1, 1, 0, 1, '', '{}', '', 5, 0); diff --git a/administrator/components/com_admin/sql/updates/mysql/5.0.0-2023-08-28.sql b/administrator/components/com_admin/sql/updates/mysql/5.0.0-2023-08-28.sql deleted file mode 100644 index 34c1d727cb1e7..0000000000000 --- a/administrator/components/com_admin/sql/updates/mysql/5.0.0-2023-08-28.sql +++ /dev/null @@ -1,13 +0,0 @@ -UPDATE `#__guidedtours` SET `extensions` = '["com_content","com_categories"]' WHERE `url` LIKE '%option=com_content%'; -UPDATE `#__guidedtours` SET `extensions` = '["com_content","com_categories"]' WHERE `url` LIKE '%option=com_categories%'; -UPDATE `#__guidedtours` SET `extensions` = '["com_menus"]' WHERE `url` LIKE '%com_menus%'; -UPDATE `#__guidedtours` SET `extensions` = '["com_tags"]' WHERE `url` LIKE '%com_tags%'; -UPDATE `#__guidedtours` SET `extensions` = '["com_banners"]' WHERE `url` LIKE '%com_banners%'; -UPDATE `#__guidedtours` SET `extensions` = '["com_contact"]' WHERE `url` LIKE '%com_contact%'; -UPDATE `#__guidedtours` SET `extensions` = '["com_newsfeeds"]' WHERE `url` LIKE '%com_newsfeeds%'; -UPDATE `#__guidedtours` SET `extensions` = '["com_finder"]' WHERE `url` LIKE '%com_finder%'; -UPDATE `#__guidedtours` SET `extensions` = '["com_users"]' WHERE `url` LIKE '%com_users%'; - -UPDATE `#__update_sites` - SET `location` = 'https://update.joomla.org/language/translationlist_5.xml' - WHERE `location` = 'https://update.joomla.org/language/translationlist_4.xml'; diff --git a/administrator/components/com_admin/sql/updates/mysql/5.0.0-2023-08-29.sql b/administrator/components/com_admin/sql/updates/mysql/5.0.0-2023-08-29.sql deleted file mode 100644 index 85790c1132a04..0000000000000 --- a/administrator/components/com_admin/sql/updates/mysql/5.0.0-2023-08-29.sql +++ /dev/null @@ -1,14 +0,0 @@ -ALTER TABLE `#__guidedtours` ADD COLUMN `uid` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL AFTER `title`/** CAN FAIL **/; -ALTER TABLE `#__guidedtours` ADD INDEX `idx_uid` (`uid`(191)) /** CAN FAIL **/; - -UPDATE `#__guidedtours` SET `uid` = 'joomla-guidedtours' WHERE `title` = 'COM_GUIDEDTOURS_TOUR_GUIDEDTOURS_TITLE'; -UPDATE `#__guidedtours` SET `uid` = 'joomla-guidedtoursteps' WHERE `title` = 'COM_GUIDEDTOURS_TOUR_GUIDEDTOURSTEPS_TITLE'; -UPDATE `#__guidedtours` SET `uid` = 'joomla-articles' WHERE `title` = 'COM_GUIDEDTOURS_TOUR_ARTICLES_TITLE'; -UPDATE `#__guidedtours` SET `uid` = 'joomla-categories' WHERE `title` = 'COM_GUIDEDTOURS_TOUR_CATEGORIES_TITLE'; -UPDATE `#__guidedtours` SET `uid` = 'joomla-menus' WHERE `title` = 'COM_GUIDEDTOURS_TOUR_MENUS_TITLE'; -UPDATE `#__guidedtours` SET `uid` = 'joomla-tags' WHERE `title` = 'COM_GUIDEDTOURS_TOUR_TAGS_TITLE'; -UPDATE `#__guidedtours` SET `uid` = 'joomla-banners' WHERE `title` = 'COM_GUIDEDTOURS_TOUR_BANNERS_TITLE'; -UPDATE `#__guidedtours` SET `uid` = 'joomla-contacts' WHERE `title` = 'COM_GUIDEDTOURS_TOUR_CONTACTS_TITLE'; -UPDATE `#__guidedtours` SET `uid` = 'joomla-newsfeeds' WHERE `title` = 'COM_GUIDEDTOURS_TOUR_NEWSFEEDS_TITLE'; -UPDATE `#__guidedtours` SET `uid` = 'joomla-smartsearch' WHERE `title` = 'COM_GUIDEDTOURS_TOUR_SMARTSEARCH_TITLE'; -UPDATE `#__guidedtours` SET `uid` = 'joomla-users' WHERE `title` = 'COM_GUIDEDTOURS_TOUR_USERS_TITLE'; diff --git a/administrator/components/com_admin/sql/updates/mysql/5.0.0-2023-08-30.sql b/administrator/components/com_admin/sql/updates/mysql/5.0.0-2023-08-30.sql deleted file mode 100644 index 8b144004d1147..0000000000000 --- a/administrator/components/com_admin/sql/updates/mysql/5.0.0-2023-08-30.sql +++ /dev/null @@ -1,3 +0,0 @@ -UPDATE `#__extensions` - SET `locked` = 0 - WHERE `type` = 'plugin' AND `element` = 'recaptcha_invisible' AND `folder` = 'captcha'; diff --git a/administrator/components/com_admin/sql/updates/mysql/5.0.0-2023-09-02.sql b/administrator/components/com_admin/sql/updates/mysql/5.0.0-2023-09-02.sql deleted file mode 100644 index 220f69cf47de2..0000000000000 --- a/administrator/components/com_admin/sql/updates/mysql/5.0.0-2023-09-02.sql +++ /dev/null @@ -1,14 +0,0 @@ -INSERT INTO `#__extensions` (`name`, `type`, `element`, `folder`, `client_id`, `enabled`, `access`, `protected`, `locked`, `manifest_cache`, `params`, `custom_data`, `checked_out`, `checked_out_time`, `ordering`, `state`) VALUES -('plg_task_deleteactionlogs', 'plugin', 'deleteactionlogs', 'task', 0, 1, 1, 0, 1, '', '{}', '', NULL, NULL, 0, 0), -('plg_task_privacyconsent', 'plugin', 'privacyconsent', 'task', 0, 1, 1, 0, 1, '', '{}', '', NULL, NULL, 0, 0), -('plg_task_rotatelogs', 'plugin', 'rotatelogs', 'task', 0, 1, 1, 0, 1, '', '{}', '', NULL, NULL, 0, 0), -('plg_task_sessiongc', 'plugin', 'sessiongc', 'task', 0, 1, 1, 0, 1, '', '{}', '', NULL, NULL, 0, 0), -('plg_task_updatenotification', 'plugin', 'updatenotification', 'task', 0, 1, 1, 0, 1, '', '{}', '', NULL, NULL, 0, 0); - -INSERT INTO `#__mail_templates` (`template_id`, `extension`, `language`, `subject`, `body`, `htmlbody`, `attachments`, `params`) VALUES -('plg_task_privacyconsent.request.reminder', 'plg_task_privacyconsent', '', 'PLG_TASK_PRIVACYCONSENT_EMAIL_REMIND_SUBJECT', 'PLG_TASK_PRIVACYCONSENT_EMAIL_REMIND_BODY', '', '', '{"tags":["sitename","url","tokenurl","formurl","token"]}'), -('plg_task_updatenotification.mail', 'plg_task_updatenotification', '', 'PLG_TASK_UPDATENOTIFICATION_EMAIL_SUBJECT', 'PLG_TASK_UPDATENOTIFICATION_EMAIL_BODY', '', '', '{"tags":["newversion","curversion","sitename","url","link","releasenews"]}'); - -DELETE FROM `#__mail_templates` WHERE `template_id` IN ('plg_system_privacyconsent.request.reminder', 'plg_system_updatenotification.mail'); - -DELETE FROM `#__postinstall_messages` WHERE `condition_file` = 'site://plugins/system/updatenotification/postinstall/updatecachetime.php'; diff --git a/administrator/components/com_admin/sql/updates/mysql/5.0.0-2023-09-06.sql b/administrator/components/com_admin/sql/updates/mysql/5.0.0-2023-09-06.sql deleted file mode 100644 index de42fa7b0b92f..0000000000000 --- a/administrator/components/com_admin/sql/updates/mysql/5.0.0-2023-09-06.sql +++ /dev/null @@ -1,5 +0,0 @@ -UPDATE `#__scheduler_tasks` SET `title` = 'Delete Action Logs' WHERE `type` = 'delete.actionlogs' AND `title` = 'DeleteActionLogs'; -UPDATE `#__scheduler_tasks` SET `title` = 'Privacy Consent' WHERE `type` = 'privacy.consent' AND `title` = 'PrivacyConsent'; -UPDATE `#__scheduler_tasks` SET `title` = 'Rotate Logs' WHERE `type` = 'rotation.logs' AND `title` = 'RotateLogs'; -UPDATE `#__scheduler_tasks` SET `title` = 'Session GC' WHERE `type` = 'session.gc' AND `title` = 'SessionGC'; -UPDATE `#__scheduler_tasks` SET `title` = 'Update Notification' WHERE `type` = 'update.notification' AND `title` = 'UpdateNotification'; diff --git a/administrator/components/com_admin/sql/updates/mysql/5.0.0-2023-09-09.sql b/administrator/components/com_admin/sql/updates/mysql/5.0.0-2023-09-09.sql deleted file mode 100644 index 9d90c87e0dd1a..0000000000000 --- a/administrator/components/com_admin/sql/updates/mysql/5.0.0-2023-09-09.sql +++ /dev/null @@ -1,5 +0,0 @@ --- Add com_fields to action logs -INSERT INTO `#__action_logs_extensions` (`extension`) VALUES ('com_fields'); - -INSERT INTO `#__action_log_config` (`type_title`, `type_alias`, `id_holder`, `title_holder`, `table_name`, `text_prefix`) VALUES -('field', 'com_fields.field', 'id', 'title', '#__fields', 'PLG_ACTIONLOG_JOOMLA'); diff --git a/administrator/components/com_admin/sql/updates/mysql/5.0.0-2023-09-11.sql b/administrator/components/com_admin/sql/updates/mysql/5.0.0-2023-09-11.sql deleted file mode 100644 index 1a7eec216bb13..0000000000000 --- a/administrator/components/com_admin/sql/updates/mysql/5.0.0-2023-09-11.sql +++ /dev/null @@ -1 +0,0 @@ -UPDATE `#__extensions` SET `enabled` = 1 WHERE `type` = 'plugin' AND `element` = 'schedulerunner' AND `folder` = 'system'; diff --git a/administrator/components/com_admin/sql/updates/mysql/5.1.0-2023-11-28.sql b/administrator/components/com_admin/sql/updates/mysql/5.1.0-2023-11-28.sql deleted file mode 100644 index b29feba9fa8d8..0000000000000 --- a/administrator/components/com_admin/sql/updates/mysql/5.1.0-2023-11-28.sql +++ /dev/null @@ -1,7 +0,0 @@ --- -------------------------------------------------------- --- The following INSERT statement has been modified to insert --- this core plugin with locked=1. --- See https://github.com/joomla/joomla-cms/pull/45821 for details. --- -INSERT INTO `#__extensions` (`package_id`, `name`, `type`, `element`, `folder`, `client_id`, `enabled`, `access`, `protected`, `locked`, `manifest_cache`, `params`, `custom_data`, `ordering`, `state`) VALUES -(0, 'plg_schemaorg_article', 'plugin', 'article', 'schemaorg', 0, 1, 1, 0, 1, '', '{}', '', 0, 0); diff --git a/administrator/components/com_admin/sql/updates/mysql/5.1.0-2024-01-04.sql b/administrator/components/com_admin/sql/updates/mysql/5.1.0-2024-01-04.sql deleted file mode 100644 index 38f38ee1ec202..0000000000000 --- a/administrator/components/com_admin/sql/updates/mysql/5.1.0-2024-01-04.sql +++ /dev/null @@ -1 +0,0 @@ -ALTER TABLE `#__fields_values` MODIFY `value` MEDIUMTEXT; diff --git a/administrator/components/com_admin/sql/updates/mysql/5.1.0-2024-02-10.sql b/administrator/components/com_admin/sql/updates/mysql/5.1.0-2024-02-10.sql deleted file mode 100644 index 946516cde5104..0000000000000 --- a/administrator/components/com_admin/sql/updates/mysql/5.1.0-2024-02-10.sql +++ /dev/null @@ -1 +0,0 @@ -ALTER TABLE `#__guidedtour_steps` ADD COLUMN `params` text NULL /** CAN FAIL **/; diff --git a/administrator/components/com_admin/sql/updates/mysql/5.1.0-2024-02-24.sql b/administrator/components/com_admin/sql/updates/mysql/5.1.0-2024-02-24.sql deleted file mode 100644 index 3716a866f8d64..0000000000000 --- a/administrator/components/com_admin/sql/updates/mysql/5.1.0-2024-02-24.sql +++ /dev/null @@ -1,34 +0,0 @@ --- --- Table structure for table `#__tuf_metadata` --- - -CREATE TABLE IF NOT EXISTS `#__tuf_metadata` ( - `id` int NOT NULL AUTO_INCREMENT, - `update_site_id` int DEFAULT 0, - `root` text DEFAULT NULL, - `targets` text DEFAULT NULL, - `snapshot` text DEFAULT NULL, - `timestamp` text DEFAULT NULL, - `mirrors` text DEFAULT NULL, - PRIMARY KEY (`id`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 DEFAULT COLLATE=utf8mb4_unicode_ci COMMENT='Secure TUF Updates'; - --- -------------------------------------------------------- --- The following INSERT statement has been modified to avoid an SQL error --- when there is more than 1 update site for the Joomla core. --- See https://github.com/joomla/joomla-cms/pull/43169 for details. --- -INSERT INTO `#__tuf_metadata` (`update_site_id`, `root`) -SELECT ue.`update_site_id`, - '{"signed":{"_type":"root","spec_version":"1.0","version":2,"expires":"2025-03-02T11:22:17Z","keys":{"07eb082f367c034a95878687f6648aa76d93652b6ee73e58817053d89af6c44f":{"keytype":"ed25519","scheme":"ed25519","keyid_hash_algorithms":["sha256","sha512"],"keyval":{"public":"9b2af2d9b9727227735253d795bd27ea8f0e294a5f3603e822dc5052b44802b9"}},"1b1b1dd55b2c1c7258714cf1c1ae06f23e4607b28c762d016a9d81c48ffe5669":{"keytype":"ed25519","scheme":"ed25519","keyid_hash_algorithms":["sha256","sha512"],"keyval":{"public":"a18e5ebabc19d5d5984b601a292ece61ba3662ab2d071dc520da5bd4f8948799"}},"2dcaf3d0e552f150792f7c636d45429246dcfa34ac35b46a44f5c87cd17d457e":{"keytype":"ed25519","scheme":"ed25519","keyid_hash_algorithms":["sha256","sha512"],"keyval":{"public":"cb0a7a131961a20edea051d6dc2b091fb650bd399bd8514adb67b3c60db9f8f9"}},"31dd7c7290d664c9b88c0dead2697175293ea7df81b7f24153a37370fd3901c3":{"keytype":"ed25519","scheme":"ed25519","keyid_hash_algorithms":["sha256","sha512"],"keyval":{"public":"589d029a68b470deff1ca16dbf3eea6b5b3fcba0ae7bb52c468abc7fb058b2a2"}},"9e41a9d62d94c6a1c8a304f62c5bd72d84a9f286f27e8327cedeacb09e5156cc":{"keytype":"ed25519","scheme":"ed25519","keyid_hash_algorithms":["sha256","sha512"],"keyval":{"public":"6043c8bacc76ac5c9750f45454dd865c6ca1fc57d69e14cc192cfd420f6a66a9"}}},"roles":{"root":{"keyids":["1b1b1dd55b2c1c7258714cf1c1ae06f23e4607b28c762d016a9d81c48ffe5669","2dcaf3d0e552f150792f7c636d45429246dcfa34ac35b46a44f5c87cd17d457e"],"threshold":1},"snapshot":{"keyids":["07eb082f367c034a95878687f6648aa76d93652b6ee73e58817053d89af6c44f","2dcaf3d0e552f150792f7c636d45429246dcfa34ac35b46a44f5c87cd17d457e"],"threshold":1},"targets":{"keyids":["31dd7c7290d664c9b88c0dead2697175293ea7df81b7f24153a37370fd3901c3"],"threshold":1},"timestamp":{"keyids":["9e41a9d62d94c6a1c8a304f62c5bd72d84a9f286f27e8327cedeacb09e5156cc"],"threshold":1}},"consistent_snapshot":true},"signatures":[{"keyid":"2dcaf3d0e552f150792f7c636d45429246dcfa34ac35b46a44f5c87cd17d457e","sig":"2a225a560ec0837b721d4c5e379fedbd3c7c9079a94e6b31e47e0184c8b95421b6036b4286c5d90f29ab4c468d79a712fdb65e96511394ceb3aa8e2b3983a501"},{"keyid":"1b1b1dd55b2c1c7258714cf1c1ae06f23e4607b28c762d016a9d81c48ffe5669","sig":"8ce0b2a7bdc1e6dcba12081f440510df0a593c072dcf591631c2dd0f456844a7da63be8e8ac31ffbddf42641fde84dc733a336031d182c2163b4c1eaf2117005"}]}' - FROM `#__update_sites_extensions` AS ue JOIN `#__extensions` AS e ON (e.`extension_id` = ue.`extension_id`) - WHERE e.`type`='file' AND e.`element`='joomla'; - --- -------------------------------------------------------- --- The following UPDATE statement has been modified to avoid an SQL error --- when there is more than 1 update site for the Joomla core. --- See https://github.com/joomla/joomla-cms/pull/42988 for details. --- -UPDATE `#__update_sites` - SET `type` = 'tuf', `location` = 'https://update.joomla.org/cms/' - WHERE `update_site_id` IN (SELECT ue.`update_site_id` FROM `#__update_sites_extensions` AS ue JOIN `#__extensions` AS e ON (e.`extension_id` = ue.`extension_id`) WHERE e.`type`='file' AND e.`element`='joomla'); diff --git a/administrator/components/com_admin/sql/updates/mysql/5.1.0-2024-02-25.sql b/administrator/components/com_admin/sql/updates/mysql/5.1.0-2024-02-25.sql deleted file mode 100644 index 2819a1016ef08..0000000000000 --- a/administrator/components/com_admin/sql/updates/mysql/5.1.0-2024-02-25.sql +++ /dev/null @@ -1,7 +0,0 @@ --- -------------------------------------------------------- --- The following INSERT statement has been modified to insert --- this core plugin with locked=1. --- See https://github.com/joomla/joomla-cms/pull/45821 for details. --- -INSERT INTO `#__extensions` (`package_id`, `name`, `type`, `element`, `folder`, `client_id`, `enabled`, `access`, `protected`, `locked`, `manifest_cache`, `params`, `custom_data`, `ordering`, `state`) VALUES -(0, 'plg_schemaorg_custom', 'plugin', 'custom', 'schemaorg', 0, 1, 1, 0, 1, '', '{}', '', 0, 0); diff --git a/administrator/components/com_admin/sql/updates/mysql/5.1.0-2024-03-08.sql b/administrator/components/com_admin/sql/updates/mysql/5.1.0-2024-03-08.sql deleted file mode 100644 index 458403a3454a4..0000000000000 --- a/administrator/components/com_admin/sql/updates/mysql/5.1.0-2024-03-08.sql +++ /dev/null @@ -1,13 +0,0 @@ -INSERT IGNORE INTO `#__guidedtour_steps` (`tour_id`, `title`, `published`, `description`, `ordering`, `position`, `target`, `type`, `interactive_type`, `url`, `created`, `created_by`, `modified`, `modified_by`, `language`) VALUES -(0, 'COM_GUIDEDTOURS_TOUR_WELCOMETOJOOMLA_STEP_MENUS_TITLE', 1, 'COM_GUIDEDTOURS_TOUR_WELCOMETOJOOMLA_STEP_MENUS_DESCRIPTION', 1, 'right', '#sidebarmenu', 0, 1, '', CURRENT_TIMESTAMP(), 0, CURRENT_TIMESTAMP(), 0, '*'), -(0, 'COM_GUIDEDTOURS_TOUR_WELCOMETOJOOMLA_STEP_QUICKACCESS_TITLE', 1, 'COM_GUIDEDTOURS_TOUR_WELCOMETOJOOMLA_STEP_QUICKACCESS_DESCRIPTION', 2, 'center', '', 0, 1, '', CURRENT_TIMESTAMP(), 0, CURRENT_TIMESTAMP(), 0, '*'), -(0, 'COM_GUIDEDTOURS_TOUR_WELCOMETOJOOMLA_STEP_NOTIFICATIONS_TITLE', 1, 'COM_GUIDEDTOURS_TOUR_WELCOMETOJOOMLA_STEP_NOTIFICATIONS_DESCRIPTION', 3, 'left', '.quickicons-for-update_quickicon .card', 0, 1, '', CURRENT_TIMESTAMP(), 0, CURRENT_TIMESTAMP(), 0, '*'), -(0, 'COM_GUIDEDTOURS_TOUR_WELCOMETOJOOMLA_STEP_TOPBAR_TITLE', 1, 'COM_GUIDEDTOURS_TOUR_WELCOMETOJOOMLA_STEP_TOPBAR_DESCRIPTION', 4, 'bottom', '#header', 0, 1, '', CURRENT_TIMESTAMP(), 0, CURRENT_TIMESTAMP(), 0, '*'), -(0, 'COM_GUIDEDTOURS_TOUR_WELCOMETOJOOMLA_STEP_FINALWORDS_TITLE', 1, 'COM_GUIDEDTOURS_TOUR_WELCOMETOJOOMLA_STEP_FINALWORDS_DESCRIPTION', 5, 'right', '#sidebarmenu nav > ul:first-of-type > li:last-child', 0, 1, '', CURRENT_TIMESTAMP(), 0, CURRENT_TIMESTAMP(), 0, '*'); - -ALTER TABLE `#__guidedtours` ADD COLUMN `autostart` int NOT NULL DEFAULT 0 /** CAN FAIL **/; - -INSERT IGNORE INTO `#__guidedtours` (`title`, `uid`, `description`, `ordering`, `extensions`, `url`, `created`, `created_by`, `modified`, `modified_by`, `published`, `language`, `access`, `autostart`) VALUES -('COM_GUIDEDTOURS_TOUR_WELCOMETOJOOMLA_TITLE', 'joomla-welcome', 'COM_GUIDEDTOURS_TOUR_WELCOMETOJOOMLA_DESCRIPTION', 1, '["com_cpanel"]', 'administrator/index.php', CURRENT_TIMESTAMP(), 0, CURRENT_TIMESTAMP(), 0, 1, '*', 1, 0); - -UPDATE `#__guidedtour_steps` SET `tour_id` = LAST_INSERT_ID() WHERE `tour_id`=0; diff --git a/administrator/components/com_admin/sql/updates/mysql/5.1.0-2024-03-28.sql b/administrator/components/com_admin/sql/updates/mysql/5.1.0-2024-03-28.sql deleted file mode 100644 index e76716010f9fd..0000000000000 --- a/administrator/components/com_admin/sql/updates/mysql/5.1.0-2024-03-28.sql +++ /dev/null @@ -1,12 +0,0 @@ --- --- Add post-installation message about Brotli compression in .htaccess --- --- This statement had to be modified to prevent duplicate postinstall messages --- when updating from 4.4. --- See https://github.com/joomla/joomla-cms/pull/43182 for details. --- -INSERT INTO `#__postinstall_messages` (`extension_id`, `title_key`, `description_key`, `action_key`, `language_extension`, `language_client_id`, `type`, `action_file`, `action`, `condition_file`, `condition_method`, `version_introduced`, `enabled`) -SELECT `extension_id`, 'COM_ADMIN_POSTINSTALL_MSG_HTACCESS_BROTLI_TITLE', 'COM_ADMIN_POSTINSTALL_MSG_HTACCESS_BROTLI_DESCRIPTION', '', 'com_admin', 1, 'message', '', '', 'admin://components/com_admin/postinstall/htaccessbrotli.php', 'admin_postinstall_htaccessbrotli_condition', '5.1.0', 1 - FROM `#__extensions` - WHERE `name` = 'files_joomla' - AND (SELECT COUNT(a.`postinstall_message_id`) FROM `#__postinstall_messages` a WHERE a.`title_key` = 'COM_ADMIN_POSTINSTALL_MSG_HTACCESS_BROTLI_TITLE') = 0; diff --git a/administrator/components/com_admin/sql/updates/mysql/5.1.1-2024-04-18.sql b/administrator/components/com_admin/sql/updates/mysql/5.1.1-2024-04-18.sql deleted file mode 100644 index 8e59290ac5607..0000000000000 --- a/administrator/components/com_admin/sql/updates/mysql/5.1.1-2024-04-18.sql +++ /dev/null @@ -1,10 +0,0 @@ --- --- Add a default value for the colorScheme in the Atum template on Joomla update --- only when a value is not already set. --- New installs will have the default value set in the installation sql. --- - -UPDATE `#__template_styles` -SET `params` = JSON_SET(`params`, '$.colorScheme', 'os') -WHERE `template` = 'atum' -AND JSON_EXTRACT(`params`, '$.colorScheme') IS NULL; diff --git a/administrator/components/com_admin/sql/updates/mysql/5.2.0-2024-07-02.sql b/administrator/components/com_admin/sql/updates/mysql/5.2.0-2024-07-02.sql deleted file mode 100644 index 23e79da2aad4d..0000000000000 --- a/administrator/components/com_admin/sql/updates/mysql/5.2.0-2024-07-02.sql +++ /dev/null @@ -1,3 +0,0 @@ --- Add mod_articles module -INSERT INTO `#__extensions` (`package_id`, `name`, `type`, `element`, `folder`, `client_id`, `enabled`, `access`, `protected`, `locked`, `manifest_cache`, `params`, `custom_data`) VALUES -(0, 'mod_articles', 'module', 'mod_articles', '', 0, 1, 0, 0, 1, '', '', ''); diff --git a/administrator/components/com_admin/sql/updates/mysql/5.2.0-2024-07-19.sql b/administrator/components/com_admin/sql/updates/mysql/5.2.0-2024-07-19.sql deleted file mode 100644 index 284938a777e2d..0000000000000 --- a/administrator/components/com_admin/sql/updates/mysql/5.2.0-2024-07-19.sql +++ /dev/null @@ -1,7 +0,0 @@ --- --- Add the Guided Tours selectable option to the User Action Logs --- -INSERT INTO `#__action_logs_extensions` (`extension`) VALUES ('com_guidedtours'); - -INSERT INTO `#__action_log_config` (`type_title`, `type_alias`, `id_holder`, `title_holder`, `table_name`, `text_prefix`) VALUES -('guidedtour', 'com_guidedtours.state', 'id', 'title', '#__guidedtours', 'PLG_ACTIONLOG_JOOMLA'); diff --git a/administrator/components/com_admin/sql/updates/mysql/5.2.0-2024-08-22.sql b/administrator/components/com_admin/sql/updates/mysql/5.2.0-2024-08-22.sql deleted file mode 100644 index 0876fa5024ede..0000000000000 --- a/administrator/components/com_admin/sql/updates/mysql/5.2.0-2024-08-22.sql +++ /dev/null @@ -1,6 +0,0 @@ -INSERT INTO `#__guidedtours` (`title`, `description`, `extensions`, `url`, `published`, `language`, `note`, `access`, `uid`, `autostart`, `created`, `created_by`, `modified`, `modified_by`) VALUES -('COM_GUIDEDTOURS_TOUR_WHATSNEW_5_2_TITLE', 'COM_GUIDEDTOURS_TOUR_WHATSNEW_5_2_DESCRIPTION', '["com_cpanel"]', 'administrator/index.php', 1, '*', '', 1, 'joomla-whatsnew-5-2', 1, CURRENT_TIMESTAMP(), 0, CURRENT_TIMESTAMP(), 0); -INSERT INTO `#__guidedtour_steps` (`title`, `description`, `position`, `target`, `type`, `interactive_type`, `url`, `published`, `language`, `note`, `params`, `tour_id`, `created`, `created_by`, `modified`, `modified_by`) -SELECT 'COM_GUIDEDTOURS_TOUR_WHATSNEW_5_2_STEP_0_TITLE', 'COM_GUIDEDTOURS_TOUR_WHATSNEW_5_2_STEP_0_DESCRIPTION', 'right', '#sidebarmenu nav > ul:first-of-type > li:last-child', 0, 1, '', 1, '*', '', '{"required":1,"requiredvalue":""}', MAX(`id`), CURRENT_TIMESTAMP(), 0, CURRENT_TIMESTAMP(), 0 - FROM `#__guidedtours` - WHERE `uid` = 'joomla-whatsnew-5-2'; diff --git a/administrator/components/com_admin/sql/updates/mysql/5.2.0-2024-09-17.sql b/administrator/components/com_admin/sql/updates/mysql/5.2.0-2024-09-17.sql deleted file mode 100644 index 26b21f399c57a..0000000000000 --- a/administrator/components/com_admin/sql/updates/mysql/5.2.0-2024-09-17.sql +++ /dev/null @@ -1,8 +0,0 @@ -UPDATE `#__guidedtour_steps` -SET `ordering` = `ordering` + 1 -WHERE `title` IN ('COM_GUIDEDTOURS_TOUR_GUIDEDTOURS_STEP_SAVECLOSE_TITLE', 'COM_GUIDEDTOURS_TOUR_GUIDEDTOURS_STEP_CONGRATULATIONS_TITLE'); - -INSERT INTO `#__guidedtour_steps` (`title`, `description`, `position`, `target`, `type`, `interactive_type`, `url`, `published`, `language`, `note`, `tour_id`, `created`, `created_by`, `modified`, `modified_by`, `ordering`) -SELECT 'COM_GUIDEDTOURS_TOUR_GUIDEDTOURS_STEP_AUTOSTART_TITLE', 'COM_GUIDEDTOURS_TOUR_GUIDEDTOURS_STEP_AUTOSTART_DESCRIPTION', 'bottom', '#jform_autostart0', 2, 3, '', 1, '*', '', `tour_id`, CURRENT_TIMESTAMP(), 0, CURRENT_TIMESTAMP(), 0, `ordering` + 1 - FROM `#__guidedtour_steps` - WHERE `title` = 'COM_GUIDEDTOURS_TOUR_GUIDEDTOURS_STEP_COMPONENT_TITLE'; diff --git a/administrator/components/com_admin/sql/updates/mysql/5.2.2-2024-09-24.sql b/administrator/components/com_admin/sql/updates/mysql/5.2.2-2024-09-24.sql deleted file mode 100644 index 1592aba38893f..0000000000000 --- a/administrator/components/com_admin/sql/updates/mysql/5.2.2-2024-09-24.sql +++ /dev/null @@ -1,7 +0,0 @@ -UPDATE `#__assets` SET `title` = 'PUBLISH' WHERE `name` LIKE 'com_content.transition.%' AND `title` = 'Publish'; -UPDATE `#__assets` SET `title` = 'UNPUBLISH' WHERE `name` LIKE 'com_content.transition.%' AND `title` = 'Unpublish'; -UPDATE `#__assets` SET `title` = 'TRASH' WHERE `name` LIKE 'com_content.transition.%' AND `title` = 'Trash'; -UPDATE `#__assets` SET `title` = 'ARCHIVE' WHERE `name` LIKE 'com_content.transition.%' AND `title` = 'Archive'; -UPDATE `#__assets` SET `title` = 'FEATURE' WHERE `name` LIKE 'com_content.transition.%' AND `title` = 'Feature'; -UPDATE `#__assets` SET `title` = 'UNFEATURE' WHERE `name` LIKE 'com_content.transition.%' AND `title` = 'Unfeature'; -UPDATE `#__assets` SET `title` = 'PUBLISH_AND_FEATURE' WHERE `name` LIKE 'com_content.transition.%' AND `title` = 'Publish & Feature'; diff --git a/administrator/components/com_admin/sql/updates/mysql/5.2.3-2025-01-09.sql b/administrator/components/com_admin/sql/updates/mysql/5.2.3-2025-01-09.sql deleted file mode 100644 index 8620500fb8c00..0000000000000 --- a/administrator/components/com_admin/sql/updates/mysql/5.2.3-2025-01-09.sql +++ /dev/null @@ -1,3 +0,0 @@ -UPDATE `#__mail_templates` -SET `params` = '{"tags":["messages","message","date","extension","username"]}' -WHERE `template_id` = 'com_actionlogs.notification'; diff --git a/administrator/components/com_admin/sql/updates/mysql/5.3.0-2024-10-13.sql b/administrator/components/com_admin/sql/updates/mysql/5.3.0-2024-10-13.sql deleted file mode 100644 index 6db2da7c57115..0000000000000 --- a/administrator/components/com_admin/sql/updates/mysql/5.3.0-2024-10-13.sql +++ /dev/null @@ -1 +0,0 @@ -ALTER TABLE `#__fields` MODIFY `fieldparams` MEDIUMTEXT NOT NULL; diff --git a/administrator/components/com_admin/sql/updates/mysql/5.3.0-2024-10-26.sql b/administrator/components/com_admin/sql/updates/mysql/5.3.0-2024-10-26.sql deleted file mode 100644 index b2e6c94cd0fcf..0000000000000 --- a/administrator/components/com_admin/sql/updates/mysql/5.3.0-2024-10-26.sql +++ /dev/null @@ -1,20 +0,0 @@ --- --- Table structure for table `#__scheduler_logs` --- - -CREATE TABLE IF NOT EXISTS `#__scheduler_logs` ( - `id` int unsigned NOT NULL AUTO_INCREMENT, - `taskname` varchar(255) NOT NULL DEFAULT '', - `tasktype` varchar(128) NOT NULL COMMENT 'unique identifier for job defined by plugin', - `duration` DECIMAL(5,3) NOT NULL, - `jobid` int UNSIGNED NOT NULL, - `taskid` int UNSIGNED NOT NULL, - `exitcode` int NOT NULL, - `lastdate` datetime COMMENT 'Timestamp of last run', - `nextdate` datetime COMMENT 'Timestamp of next (planned) run, referred for execution on trigger', - PRIMARY KEY (id), - KEY `idx_taskname` (`taskname`), - KEY `idx_tasktype` (`tasktype`), - KEY `idx_lastdate` (`lastdate`), - KEY `idx_nextdate` (`nextdate`) -) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 DEFAULT COLLATE = utf8mb4_unicode_ci; diff --git a/administrator/components/com_admin/sql/updates/mysql/5.3.0-2024-12-09.sql b/administrator/components/com_admin/sql/updates/mysql/5.3.0-2024-12-09.sql deleted file mode 100644 index ba1c2228248ed..0000000000000 --- a/administrator/components/com_admin/sql/updates/mysql/5.3.0-2024-12-09.sql +++ /dev/null @@ -1,2 +0,0 @@ -INSERT INTO `#__action_log_config` (`type_title`, `type_alias`, `id_holder`, `title_holder`, `table_name`, `text_prefix`) VALUES -('contact', 'com_contact.form', 'id', 'name', '#__contact_details', 'PLG_ACTIONLOG_JOOMLA'); \ No newline at end of file diff --git a/administrator/components/com_admin/sql/updates/mysql/5.3.0-2024-12-19.sql b/administrator/components/com_admin/sql/updates/mysql/5.3.0-2024-12-19.sql deleted file mode 100644 index ff569052be73d..0000000000000 --- a/administrator/components/com_admin/sql/updates/mysql/5.3.0-2024-12-19.sql +++ /dev/null @@ -1,6 +0,0 @@ --- -------------------------------------------------------- --- The following statement which was introduced with 5.3.0-alpha3 --- has been disabled as it was reverted with 5.3.0-beta1. --- See https://github.com/joomla/joomla-cms/pull/44845 for details. --- --- ALTER TABLE `#__action_logs_users` ADD COLUMN `exclude_self` tinyint NOT NULL DEFAULT 0; diff --git a/administrator/components/com_admin/sql/updates/mysql/5.3.0-2025-02-09.sql b/administrator/components/com_admin/sql/updates/mysql/5.3.0-2025-02-09.sql deleted file mode 100644 index 55ae2550444fe..0000000000000 --- a/administrator/components/com_admin/sql/updates/mysql/5.3.0-2025-02-09.sql +++ /dev/null @@ -1 +0,0 @@ -ALTER TABLE `#__action_logs_users` DROP COLUMN `exclude_self` /** CAN FAIL **/; diff --git a/administrator/components/com_admin/sql/updates/mysql/5.3.0-2025-02-22.sql b/administrator/components/com_admin/sql/updates/mysql/5.3.0-2025-02-22.sql deleted file mode 100644 index 426e088ca8979..0000000000000 --- a/administrator/components/com_admin/sql/updates/mysql/5.3.0-2025-02-22.sql +++ /dev/null @@ -1,3 +0,0 @@ --- Add plg_extension_joomlaupdate plugin -INSERT INTO `#__extensions` (`package_id`, `name`, `type`, `element`, `folder`, `client_id`, `enabled`, `access`, `protected`, `locked`, `manifest_cache`, `params`, `custom_data`, `ordering`, `state`) VALUES -(0, 'plg_extension_joomlaupdate', 'plugin', 'joomlaupdate', 'extension', 0, 1, 1, 0, 1, '', '', '', 0, 0); diff --git a/administrator/components/com_admin/sql/updates/mysql/5.3.0-2025-03-14.sql b/administrator/components/com_admin/sql/updates/mysql/5.3.0-2025-03-14.sql deleted file mode 100644 index 2eedbb010e52d..0000000000000 --- a/administrator/components/com_admin/sql/updates/mysql/5.3.0-2025-03-14.sql +++ /dev/null @@ -1,10 +0,0 @@ --- disable autostart for the previous tour -UPDATE `#__guidedtours` SET `autostart` = 0 WHERE `uid` = 'joomla-whatsnew-5-2'; - -INSERT INTO `#__guidedtours` (`title`, `description`, `extensions`, `url`, `published`, `language`, `note`, `access`, `uid`, `autostart`, `created`, `created_by`, `modified`, `modified_by`) VALUES -('COM_GUIDEDTOURS_TOUR_WHATSNEW_5_3_TITLE', 'COM_GUIDEDTOURS_TOUR_WHATSNEW_5_3_DESCRIPTION', '["com_cpanel"]', 'administrator/index.php', 1, '*', '', 1, 'joomla-whatsnew-5-3', 1, CURRENT_TIMESTAMP(), 0, CURRENT_TIMESTAMP(), 0); - -INSERT INTO `#__guidedtour_steps` (`title`, `description`, `position`, `target`, `type`, `interactive_type`, `url`, `published`, `language`, `note`, `params`, `tour_id`, `created`, `created_by`, `modified`, `modified_by`) -SELECT 'COM_GUIDEDTOURS_TOUR_WHATSNEW_5_3_STEP_0_TITLE', 'COM_GUIDEDTOURS_TOUR_WHATSNEW_5_3_STEP_0_DESCRIPTION', 'right', '#sidebarmenu nav > ul:first-of-type > li:last-child', 0, 1, '', 1, '*', '', '"{\"required\":1,\"requiredvalue\":\"\"}"', MAX(`id`), CURRENT_TIMESTAMP(), 0, CURRENT_TIMESTAMP(), 0 - FROM `#__guidedtours` - WHERE `uid` = 'joomla-whatsnew-5-3'; diff --git a/administrator/components/com_admin/sql/updates/mysql/5.3.4-2025-09-19.sql b/administrator/components/com_admin/sql/updates/mysql/5.3.4-2025-09-19.sql deleted file mode 100644 index cc18de1dfaf17..0000000000000 --- a/administrator/components/com_admin/sql/updates/mysql/5.3.4-2025-09-19.sql +++ /dev/null @@ -1,7 +0,0 @@ -UPDATE `#__content_types` -SET `field_mappings` = JSON_SET(`field_mappings`, '$.common.core_created_user_id', 'created_by') -WHERE `type_alias` = 'com_content.article'; - -UPDATE `#__content_types` -SET `field_mappings` = JSON_SET(`field_mappings`, '$.common.core_created_by_alias', 'created_by_alias') -WHERE `type_alias` = 'com_content.article'; diff --git a/administrator/components/com_admin/sql/updates/mysql/5.4.0-2025-04-23.sql b/administrator/components/com_admin/sql/updates/mysql/5.4.0-2025-04-23.sql deleted file mode 100644 index edad0d365e845..0000000000000 --- a/administrator/components/com_admin/sql/updates/mysql/5.4.0-2025-04-23.sql +++ /dev/null @@ -1,3 +0,0 @@ -INSERT INTO `#__extensions` (`package_id`, `name`, `type`, `element`, `folder`, `client_id`, `enabled`, `access`, `protected`, `locked`, `manifest_cache`, `params`, `custom_data`, `ordering`, `state`) -SELECT 0, 'plg_behaviour_compat6', 'plugin', 'compat6', 'behaviour', 0, 1, 1, 0, 1, '', '{"classes_aliases":"1","legacy_classes":"1"}', '', -1, 0 -WHERE NOT EXISTS (SELECT * FROM `#__extensions` e WHERE e.`type` = 'plugin' AND e.`element` = 'compat6' AND e.`folder` = 'behaviour' AND e.`client_id` = 0); diff --git a/administrator/components/com_admin/sql/updates/mysql/5.4.0-2025-05-10.sql b/administrator/components/com_admin/sql/updates/mysql/5.4.0-2025-05-10.sql deleted file mode 100644 index bbf6f3453946e..0000000000000 --- a/administrator/components/com_admin/sql/updates/mysql/5.4.0-2025-05-10.sql +++ /dev/null @@ -1,27 +0,0 @@ -INSERT INTO `#__extensions` (`package_id`, `name`, `type`, `element`, `folder`, `client_id`, `enabled`, `access`, `protected`, `locked`, `manifest_cache`, `params`, `custom_data`, `ordering`, `state`) -SELECT 0, 'plg_quickicon_autoupdate', 'plugin', 'autoupdate', 'quickicon', 0, 1, 1, 0, 1, '', '', '', -1, 0 -WHERE NOT EXISTS (SELECT * FROM `#__extensions` e WHERE e.`type` = 'plugin' AND e.`element` = 'autoupdate' AND e.`folder` = 'quickicon' AND e.`client_id` = 0); - -INSERT INTO `#__extensions` (`package_id`, `name`, `type`, `element`, `folder`, `client_id`, `enabled`, `access`, `protected`, `locked`, `manifest_cache`, `params`, `custom_data`, `ordering`, `state`) -SELECT 0, 'plg_webservices_joomlaupdate', 'plugin', 'joomlaupdate', 'webservices', 0, 1, 1, 0, 1, '', '', '', -1, 0 -WHERE NOT EXISTS (SELECT * FROM `#__extensions` e WHERE e.`type` = 'plugin' AND e.`element` = 'joomlaupdate' AND e.`folder` = 'webservices' AND e.`client_id` = 0); - -INSERT IGNORE INTO `#__mail_templates` (`template_id`, `extension`, `language`, `subject`, `body`, `htmlbody`, `attachments`, `params`) VALUES -('com_joomlaupdate.update.success', 'com_joomlaupdate', '', 'COM_JOOMLAUPDATE_UPDATE_SUCCESS_MAIL_SUBJECT', 'COM_JOOMLAUPDATE_UPDATE_SUCCESS_MAIL_BODY', '', '', '{"tags":["newversion","oldversion","sitename","url"]}'), -('com_joomlaupdate.update.failed', 'com_joomlaupdate', '', 'COM_JOOMLAUPDATE_UPDATE_FAILED_MAIL_SUBJECT', 'COM_JOOMLAUPDATE_UPDATE_FAILED_MAIL_BODY', '', '', '{"tags":["newversion","oldversion","sitename","url"]}'); - --- add post-installation message for automated updates -INSERT INTO `#__postinstall_messages` (`extension_id`, `title_key`, `description_key`, `action_key`, `language_extension`, `language_client_id`, `type`, `action_file`, `action`, `condition_file`, `condition_method`, `version_introduced`, `enabled`) -SELECT `extension_id`, 'COM_JOOMLAUPDATE_POSTINSTALL_MSG_AUTOMATED_UPDATES_TITLE', 'COM_JOOMLAUPDATE_POSTINSTALL_MSG_AUTOMATED_UPDATES_DESCRIPTION', 'COM_JOOMLAUPDATE_POSTINSTALL_MSG_AUTOMATED_UPDATES_ACTION', 'com_joomlaupdate', 1, 'action', 'admin://components/com_joomlaupdate/postinstall/autoupdate.php', 'com_joomlaupdate_postinstall_autoupdate_action', 'admin://components/com_joomlaupdate/postinstall/autoupdate.php', 'com_joomlaupdate_postinstall_autoupdate_condition', '5.4.0', 1 FROM `#__extensions` WHERE `name` = 'files_joomla'; - --- disable autostart for the previous tour -UPDATE `#__guidedtours` SET `autostart` = 0 WHERE `uid` = 'joomla-whatsnew-5-3'; - -INSERT INTO `#__guidedtours` (`title`, `description`, `extensions`, `url`, `published`, `language`, `note`, `access`, `uid`, `autostart`, `created`, `created_by`, `modified`, `modified_by`) -SELECT 'COM_GUIDEDTOURS_TOUR_WHATSNEW_5_4_TITLE', 'COM_GUIDEDTOURS_TOUR_WHATSNEW_5_4_DESCRIPTION', '["com_cpanel"]', 'administrator/index.php', 1, '*', '', 1, 'joomla-whatsnew-5-4', 1, CURRENT_TIMESTAMP(), 0, CURRENT_TIMESTAMP(), 0 -WHERE NOT EXISTS (SELECT * FROM `#__guidedtours` g WHERE g.`uid` = 'joomla-whatsnew-5-4'); - -INSERT INTO `#__guidedtour_steps` (`title`, `description`, `position`, `target`, `type`, `interactive_type`, `url`, `published`, `language`, `note`, `params`, `tour_id`, `created`, `created_by`, `modified`, `modified_by`) -SELECT 'COM_GUIDEDTOURS_TOUR_WHATSNEW_5_4_STEP_0_TITLE', 'COM_GUIDEDTOURS_TOUR_WHATSNEW_5_4_STEP_0_DESCRIPTION', 'right', '#sidebarmenu nav > ul:first-of-type > li:last-child', 0, 1, '', 1, '*', '', '"{\"required\":1,\"requiredvalue\":\"\"}"', MAX(`id`), CURRENT_TIMESTAMP(), 0, CURRENT_TIMESTAMP(), 0 -FROM `#__guidedtours` -WHERE `uid` = 'joomla-whatsnew-5-4'; diff --git a/administrator/components/com_admin/sql/updates/mysql/6.0.0-2024-08-11.sql b/administrator/components/com_admin/sql/updates/mysql/6.0.0-2024-08-11.sql new file mode 100644 index 0000000000000..fa9269cf76003 --- /dev/null +++ b/administrator/components/com_admin/sql/updates/mysql/6.0.0-2024-08-11.sql @@ -0,0 +1,6 @@ +-- Update link to featured + +UPDATE `#__menu` +SET `link` = 'index.php?option=com_content&view=articles&filter[featured]=1' +WHERE `link` = 'index.php?option=com_content&view=featured' +AND `client_id` = 1; diff --git a/administrator/components/com_admin/sql/updates/mysql/6.0.0-2025-03-25.sql b/administrator/components/com_admin/sql/updates/mysql/6.0.0-2025-03-25.sql new file mode 100644 index 0000000000000..16ac7a6efe7f2 --- /dev/null +++ b/administrator/components/com_admin/sql/updates/mysql/6.0.0-2025-03-25.sql @@ -0,0 +1,2 @@ +INSERT IGNORE INTO `#__mail_templates` (`template_id`, `extension`, `language`, `subject`, `body`, `htmlbody`, `attachments`, `params`) VALUES +('plg_content_joomla.newarticle', 'plg_content_joomla', '', 'PLG_CONTENT_JOOMLA_NEW_ARTICLE_SUBJECT', 'PLG_CONTENT_JOOMLA_NEW_ARTICLE_BODY', '', '', '{"tags":["sitename","name","email","title","url"]}'); diff --git a/administrator/components/com_admin/sql/updates/mysql/6.0.0-2025-05-20.sql b/administrator/components/com_admin/sql/updates/mysql/6.0.0-2025-05-20.sql new file mode 100644 index 0000000000000..64bf420d9bcd1 --- /dev/null +++ b/administrator/components/com_admin/sql/updates/mysql/6.0.0-2025-05-20.sql @@ -0,0 +1,3 @@ +UPDATE `#__extensions` + SET `params` = '' + WHERE `type` = 'plugin' AND `element` = 'stats' AND `folder` = 'system'; diff --git a/administrator/components/com_admin/sql/updates/mysql/5.4.0-2025-08-02.sql b/administrator/components/com_admin/sql/updates/mysql/6.0.0-2025-08-02.sql similarity index 100% rename from administrator/components/com_admin/sql/updates/mysql/5.4.0-2025-08-02.sql rename to administrator/components/com_admin/sql/updates/mysql/6.0.0-2025-08-02.sql diff --git a/administrator/components/com_admin/sql/updates/mysql/5.0.0-2023-07-29.sql b/administrator/components/com_admin/sql/updates/mysql/6.0.0-2025-08-16.sql similarity index 53% rename from administrator/components/com_admin/sql/updates/mysql/5.0.0-2023-07-29.sql rename to administrator/components/com_admin/sql/updates/mysql/6.0.0-2025-08-16.sql index ba16b0157b838..893721d854feb 100644 --- a/administrator/components/com_admin/sql/updates/mysql/5.0.0-2023-07-29.sql +++ b/administrator/components/com_admin/sql/updates/mysql/6.0.0-2025-08-16.sql @@ -1,3 +1,3 @@ INSERT INTO `#__extensions` (`package_id`, `name`, `type`, `element`, `folder`, `client_id`, `enabled`, `access`, `protected`, `locked`, `manifest_cache`, `params`, `custom_data`, `ordering`, `state`) -SELECT 0, 'plg_behaviour_compat', 'plugin', 'compat', 'behaviour', 0, 1, 1, 0, 1, '', '{"classes_aliases":"1","es5_assets":"1"}', '', -1, 0 -WHERE NOT EXISTS (SELECT * FROM `#__extensions` e WHERE e.`type` = 'plugin' AND e.`element` = 'compat' AND e.`folder` = 'behaviour' AND e.`client_id` = 0); +SELECT 0, 'plg_fields_note', 'plugin', 'note', 'fields', 0, 1, 1, 0, 1, '', '{"class":"alert alert-info","heading":"h4"}', '', -1, 0 +WHERE NOT EXISTS (SELECT * FROM `#__extensions` e WHERE e.`type` = 'plugin' AND e.`element` = 'note' AND e.`folder` = 'fields' AND e.`client_id` = 0); diff --git a/administrator/components/com_admin/sql/updates/mysql/6.0.0-2025-08-17.sql b/administrator/components/com_admin/sql/updates/mysql/6.0.0-2025-08-17.sql new file mode 100644 index 0000000000000..d3f9597ca175a --- /dev/null +++ b/administrator/components/com_admin/sql/updates/mysql/6.0.0-2025-08-17.sql @@ -0,0 +1,3 @@ +INSERT INTO `#__extensions` (`package_id`, `name`, `type`, `element`, `folder`, `client_id`, `enabled`, `access`, `protected`, `locked`, `manifest_cache`, `params`, `custom_data`, `ordering`, `state`) +SELECT 0, 'plg_fields_number', 'plugin', 'number', 'fields', 0, 1, 1, 0, 1, '', '{"min":"1.0","max":"100.0","step":"0.1","currency":"0","position":"0","decimals":"2"}', '', -1, 0 +WHERE NOT EXISTS (SELECT * FROM `#__extensions` e WHERE e.`type` = 'plugin' AND e.`element` = 'number' AND e.`folder` = 'fields' AND e.`client_id` = 0); diff --git a/administrator/components/com_admin/sql/updates/mysql/6.0.0-2025-09-05.sql b/administrator/components/com_admin/sql/updates/mysql/6.0.0-2025-09-05.sql new file mode 100644 index 0000000000000..f62641b6b130a --- /dev/null +++ b/administrator/components/com_admin/sql/updates/mysql/6.0.0-2025-09-05.sql @@ -0,0 +1,7 @@ +INSERT INTO `#__extensions` (`package_id`, `name`, `type`, `element`, `folder`, `client_id`, `enabled`, `access`, `protected`, `locked`, `manifest_cache`, `params`, `custom_data`, `ordering`, `state`) +SELECT 0, 'cassiopeia_extended', 'template', 'cassiopeia_extended', '', 0, 1, 1, 0, 1, '', '{"brand":"1","logoFile":"","siteTitle":"","siteDescription":"","useFontScheme":"0","systemFontBody":"","systemFontHeading":"","colorName":"colors_standard","fluidContainer":"0","stickyHeader":"0","backTop":"0","colorSettings":"0","headerbg":"rgb(193, 205, 207)","headercolor":"rgb(23, 23, 23)","bodybg":"rgb(254, 254, 254)","bodycolor":"rgb(23, 23, 23)","linkcolor":"rgb(29, 121, 137)","linkcolorh":"rgb(14, 59, 67)","btnbg":"rgb(206, 60, 55)","btnbgh":"rgb(131, 35, 32)","btncolor":"rgb(254, 254, 254)","btncolorh":"rgb(254, 254, 254)","footerbg":"rgb(29, 121, 137)","footercolor":"rgb(254, 254, 254)","fontSettings":"0","bodysize":"1","h1size":"2","h2size":"1.7","h3size":"1.5"}', '', 0, 0 +WHERE NOT EXISTS (SELECT * FROM `#__extensions` e WHERE e.`type` = 'template' AND e.`element` = 'cassiopeia_extended' AND e.`client_id` = 0); + +INSERT INTO `#__template_styles` (`template`, `client_id`, `home`, `title`, `inheritable`, `parent`, `params`) +SELECT 'cassiopeia_extended', 0, '0', 'Cassiopeia Extended - Default', 0, 'cassiopeia', '{"brand":"1","logoFile":"","siteTitle":"","siteDescription":"","useFontScheme":"0","systemFontBody":"","systemFontHeading":"","colorName":"colors_standard","fluidContainer":"0","stickyHeader":"0","backTop":"0","colorSettings":"0","headerbg":"rgb(193, 205, 207)","headercolor":"rgb(23, 23, 23)","bodybg":"rgb(254, 254, 254)","bodycolor":"rgb(23, 23, 23)","linkcolor":"rgb(29, 121, 137)","linkcolorh":"rgb(14, 59, 67)","btnbg":"rgb(206, 60, 55)","btnbgh":"rgb(131, 35, 32)","btncolor":"rgb(254, 254, 254)","btncolorh":"rgb(254, 254, 254)","footerbg":"rgb(29, 121, 137)","footercolor":"rgb(254, 254, 254)","fontSettings":"0","bodysize":"1","h1size":"2","h2size":"1.7","h3size":"1.5"}' +WHERE NOT EXISTS (SELECT * FROM `#__template_styles` t WHERE t.`template` = 'cassiopeia_extended' AND t.`client_id` = 0 AND t.`inheritable` = 0 AND t.`parent` = 'cassiopeia'); diff --git a/administrator/components/com_admin/sql/updates/mysql/6.0.0-2025-09-16.sql b/administrator/components/com_admin/sql/updates/mysql/6.0.0-2025-09-16.sql new file mode 100644 index 0000000000000..21c81bd3d6e09 --- /dev/null +++ b/administrator/components/com_admin/sql/updates/mysql/6.0.0-2025-09-16.sql @@ -0,0 +1,6 @@ +-- uninstall previous what's new tours +DELETE FROM `#__guidedtour_steps` + WHERE `tour_id` IN (SELECT `id` FROM `#__guidedtours` WHERE `uid` IN ('joomla-whatsnew-5-2', 'joomla-whatsnew-5-3', 'joomla-whatsnew-5-4')); + +DELETE FROM `#__guidedtours` + WHERE `uid` IN ('joomla-whatsnew-5-2', 'joomla-whatsnew-5-3', 'joomla-whatsnew-5-4'); diff --git a/administrator/components/com_admin/sql/updates/mysql/6.0.0-2025-09-17.sql b/administrator/components/com_admin/sql/updates/mysql/6.0.0-2025-09-17.sql new file mode 100644 index 0000000000000..a7ca699f6695d --- /dev/null +++ b/administrator/components/com_admin/sql/updates/mysql/6.0.0-2025-09-17.sql @@ -0,0 +1,13 @@ +INSERT INTO `#__guidedtours` (`title`, `description`, `extensions`, `url`, `published`, `language`, `note`, `access`, `uid`, `autostart`, `created`, `created_by`, `modified`, `modified_by`) +SELECT 'COM_GUIDEDTOURS_TOUR_WHATSNEW_6_0_TITLE', 'COM_GUIDEDTOURS_TOUR_WHATSNEW_6_0_DESCRIPTION', '["com_cpanel"]', 'administrator/index.php', 1, '*', '', 1, 'joomla-whatsnew-6-0', 1, CURRENT_TIMESTAMP(), 0, CURRENT_TIMESTAMP(), 0 +WHERE NOT EXISTS (SELECT * FROM `#__guidedtours` g WHERE g.`uid` = 'joomla-whatsnew-6-0'); + +INSERT INTO `#__guidedtour_steps` (`title`, `description`, `position`, `target`, `type`, `interactive_type`, `url`, `published`, `language`, `note`, `params`, `created`, `created_by`, `modified`, `modified_by`, `tour_id`) +SELECT 'COM_GUIDEDTOURS_TOUR_WHATSNEW_6_0_STEP_0_TITLE', 'COM_GUIDEDTOURS_TOUR_WHATSNEW_6_0_STEP_0_DESCRIPTION', 'center', '', 0, 1, '', 1, '*', '', '{"required":1,"requiredvalue":""}', CURRENT_TIMESTAMP(), 0, CURRENT_TIMESTAMP(), 0, MAX(`id`) + FROM `#__guidedtours` + WHERE `uid` = 'joomla-whatsnew-6-0'; + +INSERT INTO `#__guidedtour_steps` (`title`, `description`, `position`, `target`, `type`, `interactive_type`, `url`, `published`, `language`, `note`, `params`, `created`, `created_by`, `modified`, `modified_by`, `tour_id`) +SELECT 'COM_GUIDEDTOURS_TOUR_WHATSNEW_6_0_STEP_1_TITLE', 'COM_GUIDEDTOURS_TOUR_WHATSNEW_6_0_STEP_1_DESCRIPTION', 'right', '#sidebarmenu nav > ul:first-of-type > li:last-child', 0, 1, '', 1, '*', '', '"{\"required\":1,\"requiredvalue\":\"\"}"', CURRENT_TIMESTAMP(), 0, CURRENT_TIMESTAMP(), 0, MAX(`id`) + FROM `#__guidedtours` + WHERE `uid` = 'joomla-whatsnew-6-0'; diff --git a/administrator/components/com_admin/sql/updates/mysql/6.0.0-2025-09-23.sql b/administrator/components/com_admin/sql/updates/mysql/6.0.0-2025-09-23.sql new file mode 100644 index 0000000000000..6e81551f3530f --- /dev/null +++ b/administrator/components/com_admin/sql/updates/mysql/6.0.0-2025-09-23.sql @@ -0,0 +1,3 @@ +UPDATE `#__update_sites` + SET `location` = 'https://update.joomla.org/language/translationlist_6.xml' + WHERE `location` = 'https://update.joomla.org/language/translationlist_5.xml'; diff --git a/administrator/components/com_admin/sql/updates/mysql/6.0.0-2025-09-26.sql b/administrator/components/com_admin/sql/updates/mysql/6.0.0-2025-09-26.sql new file mode 100644 index 0000000000000..9ab43e38ab2b2 --- /dev/null +++ b/administrator/components/com_admin/sql/updates/mysql/6.0.0-2025-09-26.sql @@ -0,0 +1,32 @@ +-- Update content types for lookup tags + +UPDATE `#__content_types` +SET `content_history_options` = JSON_ARRAY_APPEND( + `content_history_options`, + '$.displayLookup', + JSON_OBJECT( + 'sourceColumn', 'tags', + 'targetTable', '#__tags', + 'targetColumn', 'id', + 'displayColumn', 'title' + ) + ) +WHERE `type_alias` IN ( + 'com_content.article', + 'com_contact.contact', + 'com_newsfeeds.newsfeed', + 'com_content.category', + 'com_contact.category', + 'com_newsfeeds.category', + 'com_banners.category', + 'com_users.category' + ) +AND NOT JSON_CONTAINS( + JSON_EXTRACT(`content_history_options`, '$.displayLookup'), + JSON_OBJECT( + 'sourceColumn', 'tags', + 'targetTable', '#__tags', + 'targetColumn', 'id', + 'displayColumn', 'title' + ) + ); diff --git a/administrator/components/com_admin/sql/updates/mysql/6.0.0-2025-10-11.sql b/administrator/components/com_admin/sql/updates/mysql/6.0.0-2025-10-11.sql new file mode 100644 index 0000000000000..18fbe9aaa21a6 --- /dev/null +++ b/administrator/components/com_admin/sql/updates/mysql/6.0.0-2025-10-11.sql @@ -0,0 +1,5 @@ +ALTER TABLE `#__history` + ADD COLUMN `is_current` TINYINT NOT NULL DEFAULT 0 /** CAN FAIL **/; +ALTER TABLE `#__history` + ADD COLUMN `is_legacy` TINYINT NOT NULL DEFAULT 0 /** CAN FAIL **/; +UPDATE `#__history` SET `is_legacy` = 1; diff --git a/administrator/components/com_admin/sql/updates/postgresql/5.0.0-2023-03-11.sql b/administrator/components/com_admin/sql/updates/postgresql/5.0.0-2023-03-11.sql deleted file mode 100644 index b214d01a96e05..0000000000000 --- a/administrator/components/com_admin/sql/updates/postgresql/5.0.0-2023-03-11.sql +++ /dev/null @@ -1 +0,0 @@ -DROP TABLE IF EXISTS "#__utf8_conversion"; diff --git a/administrator/components/com_admin/sql/updates/postgresql/5.0.0-2023-03-17.sql b/administrator/components/com_admin/sql/updates/postgresql/5.0.0-2023-03-17.sql deleted file mode 100644 index c3bb4daede595..0000000000000 --- a/administrator/components/com_admin/sql/updates/postgresql/5.0.0-2023-03-17.sql +++ /dev/null @@ -1 +0,0 @@ -DELETE FROM "#__scheduler_tasks" WHERE "type" = 'demoTask_r1.sleep'; diff --git a/administrator/components/com_admin/sql/updates/postgresql/5.0.0-2023-07-12.sql b/administrator/components/com_admin/sql/updates/postgresql/5.0.0-2023-07-12.sql deleted file mode 100644 index 0c83e0d5360fd..0000000000000 --- a/administrator/components/com_admin/sql/updates/postgresql/5.0.0-2023-07-12.sql +++ /dev/null @@ -1,2 +0,0 @@ -ALTER TABLE "#__menu_types" ADD COLUMN "ordering" int NOT NULL DEFAULT 0 /** CAN FAIL **/; -UPDATE "#__menu_types" SET "ordering" = "id" WHERE "client_id" = 0; diff --git a/administrator/components/com_admin/sql/updates/postgresql/5.0.0-2023-07-25.sql b/administrator/components/com_admin/sql/updates/postgresql/5.0.0-2023-07-25.sql deleted file mode 100644 index 851076bf0110d..0000000000000 --- a/administrator/components/com_admin/sql/updates/postgresql/5.0.0-2023-07-25.sql +++ /dev/null @@ -1,28 +0,0 @@ --- --- Table structure for table "#__schemaorg" --- - -CREATE TABLE IF NOT EXISTS "#__schemaorg" ( - "id" serial NOT NULL, - "itemId" bigint, - "context" varchar(100), - "schemaType" varchar(100), - "schema" text, - PRIMARY KEY ("id") -); - --- Add plugins to "#__extensions" --- -------------------------------------------------------- --- The following INSERT statement has been modified to insert --- core plugins with locked=1. --- See https://github.com/joomla/joomla-cms/pull/45821 for details. --- -INSERT INTO "#__extensions" ("package_id", "name", "type", "element", "folder", "client_id", "enabled", "access", "protected", "locked", "manifest_cache", "params", "custom_data", "ordering", "state") VALUES -(0, 'plg_schemaorg_blogposting', 'plugin', 'blogposting', 'schemaorg', 0, 1, 1, 0, 1, '', '{}', '', 1, 0), -(0, 'plg_schemaorg_book', 'plugin', 'book', 'schemaorg', 0, 1, 1, 0, 1, '', '{}', '', 2, 0), -(0, 'plg_schemaorg_event', 'plugin', 'event', 'schemaorg', 0, 1, 1, 0, 1, '', '{}', '', 3, 0), -(0, 'plg_schemaorg_organization', 'plugin', 'organization', 'schemaorg', 0, 1, 1, 0, 1, '', '{}', '', 4, 0), -(0, 'plg_schemaorg_person', 'plugin', 'person', 'schemaorg', 0, 1, 1, 0, 1, '', '{}', '', 5, 0), -(0, 'plg_schemaorg_recipe', 'plugin', 'recipe', 'schemaorg', 0, 1, 1, 0, 1, '', '{}', '', 6, 0), -(0, 'plg_schemaorg_jobposting', 'plugin', 'jobposting', 'schemaorg', 0, 1, 1, 0, 1, '', '{}', '', 7, 0), -(0, 'plg_system_schemaorg', 'plugin', 'schemaorg', 'system', 0, 1, 1, 0, 1, '', '{}', '', 0, 0); diff --git a/administrator/components/com_admin/sql/updates/postgresql/5.0.0-2023-08-21.sql b/administrator/components/com_admin/sql/updates/postgresql/5.0.0-2023-08-21.sql deleted file mode 100644 index bcca1d7e0835f..0000000000000 --- a/administrator/components/com_admin/sql/updates/postgresql/5.0.0-2023-08-21.sql +++ /dev/null @@ -1,13 +0,0 @@ -UPDATE "#__extensions" - SET "params" = jsonb_set("params"::jsonb, '{filter}' , '"\\\\Joomla\\\\CMS\\\\Component\\\\ComponentHelper::filterText"') - WHERE "type" = 'plugin' - AND "folder" = 'fields' - AND "element" IN ('editor', 'text', 'textarea') - AND "params" <> '' - AND "params"::jsonb->>'filter' = 'JComponentHelper::filterText'; - -UPDATE "#__fields" - SET "fieldparams" = jsonb_set("fieldparams"::jsonb, '{filter}' , '"\\\\Joomla\\\\CMS\\\\Component\\\\ComponentHelper::filterText"') - WHERE "type" IN ('editor', 'text', 'textarea') - AND "fieldparams" <> '' - AND "fieldparams"::jsonb->>'filter' = 'JComponentHelper::filterText'; diff --git a/administrator/components/com_admin/sql/updates/postgresql/5.0.0-2023-08-26.sql b/administrator/components/com_admin/sql/updates/postgresql/5.0.0-2023-08-26.sql deleted file mode 100644 index 8ac88dde34fc5..0000000000000 --- a/administrator/components/com_admin/sql/updates/postgresql/5.0.0-2023-08-26.sql +++ /dev/null @@ -1,7 +0,0 @@ --- -------------------------------------------------------- --- The following INSERT statement has been modified to insert --- this core plugin with locked=1. --- See https://github.com/joomla/joomla-cms/pull/45821 for details. --- -INSERT INTO "#__extensions" ("package_id", "name", "type", "element", "folder", "client_id", "enabled", "access", "protected", "locked", "manifest_cache", "params", "custom_data", "ordering", "state") VALUES -(0, 'plg_task_globalcheckin', 'plugin', 'globalcheckin', 'task', 0, 1, 1, 0, 1, '', '{}', '', 5, 0); diff --git a/administrator/components/com_admin/sql/updates/postgresql/5.0.0-2023-08-28.sql b/administrator/components/com_admin/sql/updates/postgresql/5.0.0-2023-08-28.sql deleted file mode 100644 index 252410f0e0baa..0000000000000 --- a/administrator/components/com_admin/sql/updates/postgresql/5.0.0-2023-08-28.sql +++ /dev/null @@ -1,14 +0,0 @@ - -UPDATE "#__guidedtours" SET "extensions" = '["com_content","com_categories"]' WHERE "url" LIKE '%option=com_content%'; -UPDATE "#__guidedtours" SET "extensions" = '["com_content","com_categories"]' WHERE "url" LIKE '%option=com_categories%'; -UPDATE "#__guidedtours" SET "extensions" = '["com_menus"]' WHERE "url" LIKE '%com_menus%'; -UPDATE "#__guidedtours" SET "extensions" = '["com_tags"]' WHERE "url" LIKE '%com_tags%'; -UPDATE "#__guidedtours" SET "extensions" = '["com_banners"]' WHERE "url" LIKE '%com_banners%'; -UPDATE "#__guidedtours" SET "extensions" = '["com_contact"]' WHERE "url" LIKE '%com_contact%'; -UPDATE "#__guidedtours" SET "extensions" = '["com_newsfeeds"]' WHERE "url" LIKE '%com_newsfeeds%'; -UPDATE "#__guidedtours" SET "extensions" = '["com_finder"]' WHERE "url" LIKE '%com_finder%'; -UPDATE "#__guidedtours" SET "extensions" = '["com_users"]' WHERE "url" LIKE '%com_users%'; - -UPDATE "#__update_sites" - SET "location" = 'https://update.joomla.org/language/translationlist_5.xml' - WHERE "location" = 'https://update.joomla.org/language/translationlist_4.xml'; diff --git a/administrator/components/com_admin/sql/updates/postgresql/5.0.0-2023-08-29.sql b/administrator/components/com_admin/sql/updates/postgresql/5.0.0-2023-08-29.sql deleted file mode 100644 index 21666a58eb649..0000000000000 --- a/administrator/components/com_admin/sql/updates/postgresql/5.0.0-2023-08-29.sql +++ /dev/null @@ -1,14 +0,0 @@ -ALTER TABLE "#__guidedtours" ADD COLUMN "uid" varchar(255) DEFAULT '' NOT NULL /** CAN FAIL **/; -CREATE INDEX "#__guidedtours_idx_uid" ON "#__guidedtours" ("uid") /** CAN FAIL **/; - -UPDATE "#__guidedtours" SET "uid" = 'joomla-guidedtours' WHERE "title" = 'COM_GUIDEDTOURS_TOUR_GUIDEDTOURS_TITLE'; -UPDATE "#__guidedtours" SET "uid" = 'joomla-guidedtoursteps' WHERE "title" = 'COM_GUIDEDTOURS_TOUR_GUIDEDTOURSTEPS_TITLE'; -UPDATE "#__guidedtours" SET "uid" = 'joomla-articles' WHERE "title" = 'COM_GUIDEDTOURS_TOUR_ARTICLES_TITLE'; -UPDATE "#__guidedtours" SET "uid" = 'joomla-categories' WHERE "title" = 'COM_GUIDEDTOURS_TOUR_CATEGORIES_TITLE'; -UPDATE "#__guidedtours" SET "uid" = 'joomla-menus' WHERE "title" = 'COM_GUIDEDTOURS_TOUR_MENUS_TITLE'; -UPDATE "#__guidedtours" SET "uid" = 'joomla-tags' WHERE "title" = 'COM_GUIDEDTOURS_TOUR_TAGS_TITLE'; -UPDATE "#__guidedtours" SET "uid" = 'joomla-banners' WHERE "title" = 'COM_GUIDEDTOURS_TOUR_BANNERS_TITLE'; -UPDATE "#__guidedtours" SET "uid" = 'joomla-contacts' WHERE "title" = 'COM_GUIDEDTOURS_TOUR_CONTACTS_TITLE'; -UPDATE "#__guidedtours" SET "uid" = 'joomla-newsfeeds' WHERE "title" = 'COM_GUIDEDTOURS_TOUR_NEWSFEEDS_TITLE'; -UPDATE "#__guidedtours" SET "uid" = 'joomla-smartsearch' WHERE "title" = 'COM_GUIDEDTOURS_TOUR_SMARTSEARCH_TITLE'; -UPDATE "#__guidedtours" SET "uid" = 'joomla-users' WHERE "title" = 'COM_GUIDEDTOURS_TOUR_USERS_TITLE'; diff --git a/administrator/components/com_admin/sql/updates/postgresql/5.0.0-2023-08-30.sql b/administrator/components/com_admin/sql/updates/postgresql/5.0.0-2023-08-30.sql deleted file mode 100644 index 6cdba7c66ee3c..0000000000000 --- a/administrator/components/com_admin/sql/updates/postgresql/5.0.0-2023-08-30.sql +++ /dev/null @@ -1,3 +0,0 @@ -UPDATE "#__extensions" - SET "locked" = 0 - WHERE "type" = 'plugin' AND "element" = 'recaptcha_invisible' AND "folder" = 'captcha'; diff --git a/administrator/components/com_admin/sql/updates/postgresql/5.0.0-2023-09-02.sql b/administrator/components/com_admin/sql/updates/postgresql/5.0.0-2023-09-02.sql deleted file mode 100644 index 42bdee445b720..0000000000000 --- a/administrator/components/com_admin/sql/updates/postgresql/5.0.0-2023-09-02.sql +++ /dev/null @@ -1,14 +0,0 @@ -INSERT INTO "#__extensions" ("name", "type", "element", "folder", "client_id", "enabled", "access", "protected", "locked", "manifest_cache", "params", "custom_data", "checked_out", "checked_out_time", "ordering", "state") VALUES -('plg_task_deleteactionlogs', 'plugin', 'deleteactionlogs', 'task', 0, 1, 1, 0, 1, '', '{}', '', NULL, NULL, 0, 0), -('plg_task_privacyconsent', 'plugin', 'privacyconsent', 'task', 0, 1, 1, 0, 1, '', '{}', '', NULL, NULL, 0, 0), -('plg_task_rotatelogs', 'plugin', 'rotatelogs', 'task', 0, 1, 1, 0, 1, '', '{}', '', NULL, NULL, 0, 0), -('plg_task_sessiongc', 'plugin', 'sessiongc', 'task', 0, 1, 1, 0, 1, '', '{}', '', NULL, NULL, 0, 0), -('plg_task_updatenotification', 'plugin', 'updatenotification', 'task', 0, 1, 1, 0, 1, '', '{}', '', NULL, NULL, 0, 0); - -INSERT INTO "#__mail_templates" ("template_id", "extension", "language", "subject", "body", "htmlbody", "attachments", "params") VALUES -('plg_task_privacyconsent.request.reminder', 'plg_task_privacyconsent', '', 'PLG_TASK_PRIVACYCONSENT_EMAIL_REMIND_SUBJECT', 'PLG_TASK_PRIVACYCONSENT_EMAIL_REMIND_BODY', '', '', '{"tags":["sitename","url","tokenurl","formurl","token"]}'), -('plg_task_updatenotification.mail', 'plg_task_updatenotification', '', 'PLG_TASK_UPDATENOTIFICATION_EMAIL_SUBJECT', 'PLG_TASK_UPDATENOTIFICATION_EMAIL_BODY', '', '', '{"tags":["newversion","curversion","sitename","url","link","releasenews"]}'); - -DELETE FROM "#__mail_templates" WHERE "template_id" IN ('plg_system_privacyconsent.request.reminder', 'plg_system_updatenotification.mail'); - -DELETE FROM "#__postinstall_messages" WHERE "condition_file" = 'site://plugins/system/updatenotification/postinstall/updatecachetime.php'; diff --git a/administrator/components/com_admin/sql/updates/postgresql/5.0.0-2023-09-06.sql b/administrator/components/com_admin/sql/updates/postgresql/5.0.0-2023-09-06.sql deleted file mode 100644 index 6561c6da33304..0000000000000 --- a/administrator/components/com_admin/sql/updates/postgresql/5.0.0-2023-09-06.sql +++ /dev/null @@ -1,5 +0,0 @@ -UPDATE "#__scheduler_tasks" SET "title" = 'Delete Action Logs' WHERE "type" = 'delete.actionlogs' AND "title" = 'DeleteActionLogs'; -UPDATE "#__scheduler_tasks" SET "title" = 'Privacy Consent' WHERE "type" = 'privacy.consent' AND "title" = 'PrivacyConsent'; -UPDATE "#__scheduler_tasks" SET "title" = 'Rotate Logs' WHERE "type" = 'rotation.logs' AND "title" = 'RotateLogs'; -UPDATE "#__scheduler_tasks" SET "title" = 'Session GC' WHERE "type" = 'session.gc' AND "title" = 'SessionGC'; -UPDATE "#__scheduler_tasks" SET "title" = 'Update Notification' WHERE "type" = 'update.notification' AND "title" = 'UpdateNotification'; diff --git a/administrator/components/com_admin/sql/updates/postgresql/5.0.0-2023-09-09.sql b/administrator/components/com_admin/sql/updates/postgresql/5.0.0-2023-09-09.sql deleted file mode 100644 index 4207b50a67858..0000000000000 --- a/administrator/components/com_admin/sql/updates/postgresql/5.0.0-2023-09-09.sql +++ /dev/null @@ -1,5 +0,0 @@ --- Add com_fields to action logs extensions -INSERT INTO "#__action_logs_extensions" ("extension") VALUES ('com_fields'); - -INSERT INTO "#__action_log_config" ("type_title", "type_alias", "id_holder", "title_holder", "table_name", "text_prefix") VALUES -('field', 'com_fields.field', 'id', 'title', '#__fields', 'PLG_ACTIONLOG_JOOMLA'); diff --git a/administrator/components/com_admin/sql/updates/postgresql/5.0.0-2023-09-11.sql b/administrator/components/com_admin/sql/updates/postgresql/5.0.0-2023-09-11.sql deleted file mode 100644 index c540fd45a0d52..0000000000000 --- a/administrator/components/com_admin/sql/updates/postgresql/5.0.0-2023-09-11.sql +++ /dev/null @@ -1 +0,0 @@ -UPDATE "#__extensions" SET "enabled" = 1 WHERE "type" = 'plugin' AND "element" = 'schedulerunner' AND "folder" = 'system'; diff --git a/administrator/components/com_admin/sql/updates/postgresql/5.1.0-2023-11-28.sql b/administrator/components/com_admin/sql/updates/postgresql/5.1.0-2023-11-28.sql deleted file mode 100644 index 32e80f5656d1d..0000000000000 --- a/administrator/components/com_admin/sql/updates/postgresql/5.1.0-2023-11-28.sql +++ /dev/null @@ -1,7 +0,0 @@ --- -------------------------------------------------------- --- The following INSERT statement has been modified to insert --- this core plugin with locked=1. --- See https://github.com/joomla/joomla-cms/pull/45821 for details. --- -INSERT INTO "#__extensions" ("package_id", "name", "type", "element", "folder", "client_id", "enabled", "access", "protected", "locked", "manifest_cache", "params", "custom_data", "ordering", "state") VALUES -(0, 'plg_schemaorg_article', 'plugin', 'article', 'schemaorg', 0, 1, 1, 0, 1, '', '{}', '', 0, 0); diff --git a/administrator/components/com_admin/sql/updates/postgresql/5.1.0-2024-02-10.sql b/administrator/components/com_admin/sql/updates/postgresql/5.1.0-2024-02-10.sql deleted file mode 100644 index 29375e78c1f50..0000000000000 --- a/administrator/components/com_admin/sql/updates/postgresql/5.1.0-2024-02-10.sql +++ /dev/null @@ -1 +0,0 @@ -ALTER TABLE "#__guidedtour_steps" ADD COLUMN "params" text NULL /** CAN FAIL **/; diff --git a/administrator/components/com_admin/sql/updates/postgresql/5.1.0-2024-02-24.sql b/administrator/components/com_admin/sql/updates/postgresql/5.1.0-2024-02-24.sql deleted file mode 100644 index 36692be7b3278..0000000000000 --- a/administrator/components/com_admin/sql/updates/postgresql/5.1.0-2024-02-24.sql +++ /dev/null @@ -1,37 +0,0 @@ --- --- Table structure for table "#__tuf_metadata" --- - -CREATE TABLE IF NOT EXISTS "#__tuf_metadata" ( -"id" serial NOT NULL, -"update_site_id" bigint DEFAULT 0 NOT NULL, -"root" text DEFAULT NULL, -"targets" text DEFAULT NULL, -"snapshot" text DEFAULT NULL, -"timestamp" text DEFAULT NULL, -"mirrors" text DEFAULT NULL, -PRIMARY KEY ("id") -); - -COMMENT ON TABLE "#__tuf_metadata" IS 'Secure TUF Updates'; - --- -------------------------------------------------------- --- The following INSERT statement has been modified to avoid an SQL error --- when there is more than 1 update site for the Joomla core. --- See https://github.com/joomla/joomla-cms/pull/43169 for details. --- -INSERT INTO "#__tuf_metadata" ("update_site_id", "root") -SELECT ue."update_site_id", - '{"signed":{"_type":"root","spec_version":"1.0","version":2,"expires":"2025-03-02T11:22:17Z","keys":{"07eb082f367c034a95878687f6648aa76d93652b6ee73e58817053d89af6c44f":{"keytype":"ed25519","scheme":"ed25519","keyid_hash_algorithms":["sha256","sha512"],"keyval":{"public":"9b2af2d9b9727227735253d795bd27ea8f0e294a5f3603e822dc5052b44802b9"}},"1b1b1dd55b2c1c7258714cf1c1ae06f23e4607b28c762d016a9d81c48ffe5669":{"keytype":"ed25519","scheme":"ed25519","keyid_hash_algorithms":["sha256","sha512"],"keyval":{"public":"a18e5ebabc19d5d5984b601a292ece61ba3662ab2d071dc520da5bd4f8948799"}},"2dcaf3d0e552f150792f7c636d45429246dcfa34ac35b46a44f5c87cd17d457e":{"keytype":"ed25519","scheme":"ed25519","keyid_hash_algorithms":["sha256","sha512"],"keyval":{"public":"cb0a7a131961a20edea051d6dc2b091fb650bd399bd8514adb67b3c60db9f8f9"}},"31dd7c7290d664c9b88c0dead2697175293ea7df81b7f24153a37370fd3901c3":{"keytype":"ed25519","scheme":"ed25519","keyid_hash_algorithms":["sha256","sha512"],"keyval":{"public":"589d029a68b470deff1ca16dbf3eea6b5b3fcba0ae7bb52c468abc7fb058b2a2"}},"9e41a9d62d94c6a1c8a304f62c5bd72d84a9f286f27e8327cedeacb09e5156cc":{"keytype":"ed25519","scheme":"ed25519","keyid_hash_algorithms":["sha256","sha512"],"keyval":{"public":"6043c8bacc76ac5c9750f45454dd865c6ca1fc57d69e14cc192cfd420f6a66a9"}}},"roles":{"root":{"keyids":["1b1b1dd55b2c1c7258714cf1c1ae06f23e4607b28c762d016a9d81c48ffe5669","2dcaf3d0e552f150792f7c636d45429246dcfa34ac35b46a44f5c87cd17d457e"],"threshold":1},"snapshot":{"keyids":["07eb082f367c034a95878687f6648aa76d93652b6ee73e58817053d89af6c44f","2dcaf3d0e552f150792f7c636d45429246dcfa34ac35b46a44f5c87cd17d457e"],"threshold":1},"targets":{"keyids":["31dd7c7290d664c9b88c0dead2697175293ea7df81b7f24153a37370fd3901c3"],"threshold":1},"timestamp":{"keyids":["9e41a9d62d94c6a1c8a304f62c5bd72d84a9f286f27e8327cedeacb09e5156cc"],"threshold":1}},"consistent_snapshot":true},"signatures":[{"keyid":"2dcaf3d0e552f150792f7c636d45429246dcfa34ac35b46a44f5c87cd17d457e","sig":"2a225a560ec0837b721d4c5e379fedbd3c7c9079a94e6b31e47e0184c8b95421b6036b4286c5d90f29ab4c468d79a712fdb65e96511394ceb3aa8e2b3983a501"},{"keyid":"1b1b1dd55b2c1c7258714cf1c1ae06f23e4607b28c762d016a9d81c48ffe5669","sig":"8ce0b2a7bdc1e6dcba12081f440510df0a593c072dcf591631c2dd0f456844a7da63be8e8ac31ffbddf42641fde84dc733a336031d182c2163b4c1eaf2117005"}]}' - FROM "#__update_sites_extensions" AS ue JOIN "#__extensions" AS e ON (e."extension_id" = ue."extension_id") - WHERE e."type"='file' AND e."element"='joomla'; - --- -------------------------------------------------------- --- The following UPDATE statement has been modified to avoid an SQL error --- when there is more than 1 update site for the Joomla core. --- See https://github.com/joomla/joomla-cms/pull/42988 for details. --- -UPDATE "#__update_sites" - SET "type" = 'tuf', "location" = 'https://update.joomla.org/cms/' - WHERE "update_site_id" IN (SELECT ue."update_site_id" FROM "#__update_sites_extensions" AS ue JOIN "#__extensions" AS e ON (e."extension_id" = ue."extension_id") WHERE e."type"='file' AND e."element"='joomla'); - diff --git a/administrator/components/com_admin/sql/updates/postgresql/5.1.0-2024-02-25.sql b/administrator/components/com_admin/sql/updates/postgresql/5.1.0-2024-02-25.sql deleted file mode 100644 index 0ec6c6793ffd9..0000000000000 --- a/administrator/components/com_admin/sql/updates/postgresql/5.1.0-2024-02-25.sql +++ /dev/null @@ -1,7 +0,0 @@ --- -------------------------------------------------------- --- The following INSERT statement has been modified to insert --- this core plugin with locked=1. --- See https://github.com/joomla/joomla-cms/pull/45821 for details. --- -INSERT INTO "#__extensions" ("package_id", "name", "type", "element", "folder", "client_id", "enabled", "access", "protected", "locked", "manifest_cache", "params", "custom_data", "ordering", "state") VALUES -(0, 'plg_schemaorg_custom', 'plugin', 'custom', 'schemaorg', 0, 1, 1, 0, 1, '', '{}', '', 0, 0); diff --git a/administrator/components/com_admin/sql/updates/postgresql/5.1.0-2024-03-08.sql b/administrator/components/com_admin/sql/updates/postgresql/5.1.0-2024-03-08.sql deleted file mode 100644 index dde57323da713..0000000000000 --- a/administrator/components/com_admin/sql/updates/postgresql/5.1.0-2024-03-08.sql +++ /dev/null @@ -1,15 +0,0 @@ -INSERT INTO "#__guidedtour_steps" ("tour_id", "title", "published", "description", "ordering", "position", "target", "type", "interactive_type", "url", "created", "created_by", "modified", "modified_by", "language") VALUES -(0, 'COM_GUIDEDTOURS_TOUR_WELCOMETOJOOMLA_STEP_MENUS_TITLE', 1, 'COM_GUIDEDTOURS_TOUR_WELCOMETOJOOMLA_STEP_MENUS_DESCRIPTION', 1, 'right', '#sidebarmenu', 0, 1, '', CURRENT_TIMESTAMP, 0, CURRENT_TIMESTAMP, 0, '*'), -(0, 'COM_GUIDEDTOURS_TOUR_WELCOMETOJOOMLA_STEP_QUICKACCESS_TITLE', 1, 'COM_GUIDEDTOURS_TOUR_WELCOMETOJOOMLA_STEP_QUICKACCESS_DESCRIPTION', 2, 'center', '', 0, 1, '', CURRENT_TIMESTAMP, 0, CURRENT_TIMESTAMP, 0, '*'), -(0, 'COM_GUIDEDTOURS_TOUR_WELCOMETOJOOMLA_STEP_NOTIFICATIONS_TITLE', 1, 'COM_GUIDEDTOURS_TOUR_WELCOMETOJOOMLA_STEP_NOTIFICATIONS_DESCRIPTION', 3, 'left', '.quickicons-for-update_quickicon .card', 0, 1, '', CURRENT_TIMESTAMP, 0, CURRENT_TIMESTAMP, 0, '*'), -(0, 'COM_GUIDEDTOURS_TOUR_WELCOMETOJOOMLA_STEP_TOPBAR_TITLE', 1, 'COM_GUIDEDTOURS_TOUR_WELCOMETOJOOMLA_STEP_TOPBAR_DESCRIPTION', 4, 'bottom', '#header', 0, 1, '', CURRENT_TIMESTAMP, 0, CURRENT_TIMESTAMP, 0, '*'), -(0, 'COM_GUIDEDTOURS_TOUR_WELCOMETOJOOMLA_STEP_FINALWORDS_TITLE', 1, 'COM_GUIDEDTOURS_TOUR_WELCOMETOJOOMLA_STEP_FINALWORDS_DESCRIPTION', 5, 'right', '#sidebarmenu nav > ul:first-of-type > li:last-child', 0, 1, '', CURRENT_TIMESTAMP, 0, CURRENT_TIMESTAMP, 0, '*') -ON CONFLICT DO NOTHING; - -ALTER TABLE "#__guidedtours" ADD COLUMN "autostart" int NOT NULL DEFAULT 0 /** CAN FAIL **/; - -INSERT INTO "#__guidedtours" ("title", "uid", "description", "ordering", "extensions", "url", "created", "created_by", "modified", "modified_by", "published", "language", "access", "autostart") VALUES -('COM_GUIDEDTOURS_TOUR_WELCOMETOJOOMLA_TITLE', 'joomla-welcome', 'COM_GUIDEDTOURS_TOUR_WELCOMETOJOOMLA_DESCRIPTION', 1, '["com_cpanel"]', 'administrator/index.php', CURRENT_TIMESTAMP, 0, CURRENT_TIMESTAMP, 0, 1, '*', 1, 0) -ON CONFLICT DO NOTHING; - -UPDATE "#__guidedtour_steps" SET "tour_id" = currval(pg_get_serial_sequence('#__guidedtours','id')) WHERE "tour_id"=0; diff --git a/administrator/components/com_admin/sql/updates/postgresql/5.1.0-2024-03-28.sql b/administrator/components/com_admin/sql/updates/postgresql/5.1.0-2024-03-28.sql deleted file mode 100644 index 82bf0d612608c..0000000000000 --- a/administrator/components/com_admin/sql/updates/postgresql/5.1.0-2024-03-28.sql +++ /dev/null @@ -1,12 +0,0 @@ --- --- Add post-installation message about Brotli compression in .htaccess --- --- This statement had to be modified to prevent duplicate postinstall messages --- when updating from 4.4. --- See https://github.com/joomla/joomla-cms/pull/43182 for details. --- -INSERT INTO "#__postinstall_messages" ("extension_id", "title_key", "description_key", "action_key", "language_extension", "language_client_id", "type", "action_file", "action", "condition_file", "condition_method", "version_introduced", "enabled") -SELECT "extension_id", 'COM_ADMIN_POSTINSTALL_MSG_HTACCESS_BROTLI_TITLE', 'COM_ADMIN_POSTINSTALL_MSG_HTACCESS_BROTLI_DESCRIPTION', '', 'com_admin', 1, 'message', '', '', 'admin://components/com_admin/postinstall/htaccessbrotli.php', 'admin_postinstall_htaccessbrotli_condition', '5.1.0', 1 - FROM "#__extensions" - WHERE "name" = 'files_joomla' - AND (SELECT COUNT(a."postinstall_message_id") FROM "#__postinstall_messages" a WHERE a."title_key" = 'COM_ADMIN_POSTINSTALL_MSG_HTACCESS_BROTLI_TITLE') = 0; diff --git a/administrator/components/com_admin/sql/updates/postgresql/5.1.1-2024-04-18.sql b/administrator/components/com_admin/sql/updates/postgresql/5.1.1-2024-04-18.sql deleted file mode 100644 index fc44f25a2a219..0000000000000 --- a/administrator/components/com_admin/sql/updates/postgresql/5.1.1-2024-04-18.sql +++ /dev/null @@ -1,10 +0,0 @@ --- --- Add a default value for the colorScheme in the Atum template on Joomla update --- only when a value is not already set. --- New installs will have the default value set in the installation sql. --- - -UPDATE "#__template_styles" -SET "params" = jsonb_set("params"::jsonb, '{colorScheme}', '"os"', true) -WHERE "template" = 'atum' -AND "params"::jsonb->>'colorScheme' IS NULL; diff --git a/administrator/components/com_admin/sql/updates/postgresql/5.2.0-2024-07-02.sql b/administrator/components/com_admin/sql/updates/postgresql/5.2.0-2024-07-02.sql deleted file mode 100644 index 26464101c0f84..0000000000000 --- a/administrator/components/com_admin/sql/updates/postgresql/5.2.0-2024-07-02.sql +++ /dev/null @@ -1,3 +0,0 @@ --- Add mod_articles module -INSERT INTO "#__extensions" ("package_id", "name", "type", "element", "folder", "client_id", "enabled", "access", "protected", "locked", "manifest_cache", "params", "custom_data", "ordering", "state") VALUES -(0, 'mod_articles', 'module', 'mod_articles', '', 0, 1, 0, 0, 1, '', '', '', 0, 0); diff --git a/administrator/components/com_admin/sql/updates/postgresql/5.2.0-2024-07-19.sql b/administrator/components/com_admin/sql/updates/postgresql/5.2.0-2024-07-19.sql deleted file mode 100644 index 66937855f9f0c..0000000000000 --- a/administrator/components/com_admin/sql/updates/postgresql/5.2.0-2024-07-19.sql +++ /dev/null @@ -1,7 +0,0 @@ --- --- Add the Guided Tours selectable option to the User Action Logs --- -INSERT INTO "#__action_logs_extensions" ("extension") VALUES ('com_guidedtours'); - -INSERT INTO "#__action_log_config" ("type_title", "type_alias", "id_holder", "title_holder", "table_name", "text_prefix") VALUES -('guidedtour', 'com_guidedtours.state', 'id', 'title', '#__guidedtours', 'PLG_ACTIONLOG_JOOMLA'); diff --git a/administrator/components/com_admin/sql/updates/postgresql/5.2.0-2024-08-22.sql b/administrator/components/com_admin/sql/updates/postgresql/5.2.0-2024-08-22.sql deleted file mode 100644 index a92672ae0efd7..0000000000000 --- a/administrator/components/com_admin/sql/updates/postgresql/5.2.0-2024-08-22.sql +++ /dev/null @@ -1,6 +0,0 @@ -INSERT INTO "#__guidedtours" ("title", "description", "extensions", "url", "published", "language", "note", "access", "uid", "autostart", "created", "created_by", "modified", "modified_by") VALUES -('COM_GUIDEDTOURS_TOUR_WHATSNEW_5_2_TITLE', 'COM_GUIDEDTOURS_TOUR_WHATSNEW_5_2_DESCRIPTION', '["com_cpanel"]', 'administrator/index.php', 1, '*', '', 1, 'joomla-whatsnew-5-2', 1, CURRENT_TIMESTAMP, 0, CURRENT_TIMESTAMP, 0); -INSERT INTO "#__guidedtour_steps" ("title", "description", "position", "target", "type", "interactive_type", "url", "published", "language", "note", "params", "tour_id", "created", "created_by", "modified", "modified_by") -SELECT 'COM_GUIDEDTOURS_TOUR_WHATSNEW_5_2_STEP_0_TITLE', 'COM_GUIDEDTOURS_TOUR_WHATSNEW_5_2_STEP_0_DESCRIPTION', 'right', '#sidebarmenu nav > ul:first-of-type > li:last-child', 0, 1, '', 1, '*', '', '{"required":1,"requiredvalue":""}', MAX("id"), CURRENT_TIMESTAMP, 0, CURRENT_TIMESTAMP, 0 - FROM "#__guidedtours" - WHERE "uid" = 'joomla-whatsnew-5-2'; diff --git a/administrator/components/com_admin/sql/updates/postgresql/5.2.0-2024-09-17.sql b/administrator/components/com_admin/sql/updates/postgresql/5.2.0-2024-09-17.sql deleted file mode 100644 index d05dd005e6615..0000000000000 --- a/administrator/components/com_admin/sql/updates/postgresql/5.2.0-2024-09-17.sql +++ /dev/null @@ -1,8 +0,0 @@ -UPDATE "#__guidedtour_steps" -SET "ordering" = "ordering" + 1 -WHERE "title" IN ('COM_GUIDEDTOURS_TOUR_GUIDEDTOURS_STEP_SAVECLOSE_TITLE', 'COM_GUIDEDTOURS_TOUR_GUIDEDTOURS_STEP_CONGRATULATIONS_TITLE'); - -INSERT INTO "#__guidedtour_steps" ("title", "description", "position", "target", "type", "interactive_type", "url", "published", "language", "note", "tour_id", "created", "created_by", "modified", "modified_by", "ordering") -SELECT 'COM_GUIDEDTOURS_TOUR_GUIDEDTOURS_STEP_AUTOSTART_TITLE', 'COM_GUIDEDTOURS_TOUR_GUIDEDTOURS_STEP_AUTOSTART_DESCRIPTION', 'bottom', '#jform_autostart0', 2, 3, '', 1, '*', '', "tour_id", CURRENT_TIMESTAMP, 0, CURRENT_TIMESTAMP, 0, "ordering" + 1 - FROM "#__guidedtour_steps" - WHERE "title" = 'COM_GUIDEDTOURS_TOUR_GUIDEDTOURS_STEP_COMPONENT_TITLE'; diff --git a/administrator/components/com_admin/sql/updates/postgresql/5.2.2-2024-09-24.sql b/administrator/components/com_admin/sql/updates/postgresql/5.2.2-2024-09-24.sql deleted file mode 100644 index 8da7f706d58f6..0000000000000 --- a/administrator/components/com_admin/sql/updates/postgresql/5.2.2-2024-09-24.sql +++ /dev/null @@ -1,7 +0,0 @@ -UPDATE "#__assets" SET "title" = 'PUBLISH' WHERE "name" LIKE 'com_content.transition.%' AND "title" = 'Publish'; -UPDATE "#__assets" SET "title" = 'UNPUBLISH' WHERE "name" LIKE 'com_content.transition.%' AND "title" = 'Unpublish'; -UPDATE "#__assets" SET "title" = 'TRASH' WHERE "name" LIKE 'com_content.transition.%' AND "title" = 'Trash'; -UPDATE "#__assets" SET "title" = 'ARCHIVE' WHERE "name" LIKE 'com_content.transition.%' AND "title" = 'Archive'; -UPDATE "#__assets" SET "title" = 'FEATURE' WHERE "name" LIKE 'com_content.transition.%' AND "title" = 'Feature'; -UPDATE "#__assets" SET "title" = 'UNFEATURE' WHERE "name" LIKE 'com_content.transition.%' AND "title" = 'Unfeature'; -UPDATE "#__assets" SET "title" = 'PUBLISH_AND_FEATURE' WHERE "name" LIKE 'com_content.transition.%' AND "title" = 'Publish & Feature'; diff --git a/administrator/components/com_admin/sql/updates/postgresql/5.2.3-2025-01-09.sql b/administrator/components/com_admin/sql/updates/postgresql/5.2.3-2025-01-09.sql deleted file mode 100644 index 27f126404b02e..0000000000000 --- a/administrator/components/com_admin/sql/updates/postgresql/5.2.3-2025-01-09.sql +++ /dev/null @@ -1,3 +0,0 @@ -UPDATE "#__mail_templates" -SET "params" = '{"tags":["messages","message","date","extension","username"]}' -WHERE "template_id" = 'com_actionlogs.notification'; diff --git a/administrator/components/com_admin/sql/updates/postgresql/5.3.0-2024-10-26.sql b/administrator/components/com_admin/sql/updates/postgresql/5.3.0-2024-10-26.sql deleted file mode 100644 index 49794391fb4c4..0000000000000 --- a/administrator/components/com_admin/sql/updates/postgresql/5.3.0-2024-10-26.sql +++ /dev/null @@ -1,20 +0,0 @@ --- --- Table structure for table "#__scheduler_logs" --- - -CREATE TABLE IF NOT EXISTS "#__scheduler_logs" ( - "id" serial NOT NULL, - "taskname" varchar(255) DEFAULT '' NOT NULL, - "tasktype" varchar(128) NOT NULL, - "duration" NUMERIC(5,3) NOT NULL, - "jobid" integer NOT NULL, - "taskid" integer NOT NULL, - "exitcode" integer NOT NULL, - "lastdate" timestamp without time zone, - "nextdate" timestamp without time zone, - PRIMARY KEY (id) -); -CREATE INDEX "#__scheduler_logs_idx_taskname" ON "#__scheduler_logs" ("taskname"); -CREATE INDEX "#__scheduler_logs_idx_tasktype" ON "#__scheduler_logs" ("tasktype"); -CREATE INDEX "#__scheduler_logs_idx_lastdate" ON "#__scheduler_logs" ("lastdate"); -CREATE INDEX "#__scheduler_logs_idx_nextdate" ON "#__scheduler_logs" ("nextdate"); diff --git a/administrator/components/com_admin/sql/updates/postgresql/5.3.0-2024-12-09.sql b/administrator/components/com_admin/sql/updates/postgresql/5.3.0-2024-12-09.sql deleted file mode 100644 index 2b4c0e2bed244..0000000000000 --- a/administrator/components/com_admin/sql/updates/postgresql/5.3.0-2024-12-09.sql +++ /dev/null @@ -1,2 +0,0 @@ -INSERT INTO "#__action_log_config" ("type_title", "type_alias", "id_holder", "title_holder", "table_name", "text_prefix") VALUES -('contact', 'com_contact.form', 'id', 'name', '#__contact_details', 'PLG_ACTIONLOG_JOOMLA'); \ No newline at end of file diff --git a/administrator/components/com_admin/sql/updates/postgresql/5.3.0-2024-12-19.sql b/administrator/components/com_admin/sql/updates/postgresql/5.3.0-2024-12-19.sql deleted file mode 100644 index 4e9852fa36751..0000000000000 --- a/administrator/components/com_admin/sql/updates/postgresql/5.3.0-2024-12-19.sql +++ /dev/null @@ -1,6 +0,0 @@ --- -------------------------------------------------------- --- The following statement which was introduced with 5.3.0-alpha3 --- has been disabled as it was reverted with 5.3.0-beta1. --- See https://github.com/joomla/joomla-cms/pull/44845 for details. --- --- ALTER TABLE "#__action_logs_users" ADD COLUMN "exclude_self" integer DEFAULT 0 NOT NULL; diff --git a/administrator/components/com_admin/sql/updates/postgresql/5.3.0-2025-02-09.sql b/administrator/components/com_admin/sql/updates/postgresql/5.3.0-2025-02-09.sql deleted file mode 100644 index b169f6a493fc2..0000000000000 --- a/administrator/components/com_admin/sql/updates/postgresql/5.3.0-2025-02-09.sql +++ /dev/null @@ -1 +0,0 @@ -ALTER TABLE "#__action_logs_users" DROP COLUMN "exclude_self" /** CAN FAIL **/; diff --git a/administrator/components/com_admin/sql/updates/postgresql/5.3.0-2025-02-22.sql b/administrator/components/com_admin/sql/updates/postgresql/5.3.0-2025-02-22.sql deleted file mode 100644 index 4f319c1a92d2d..0000000000000 --- a/administrator/components/com_admin/sql/updates/postgresql/5.3.0-2025-02-22.sql +++ /dev/null @@ -1,3 +0,0 @@ --- Add plg_extension_joomlaupdate module -INSERT INTO "#__extensions" ("package_id", "name", "type", "element", "folder", "client_id", "enabled", "access", "protected", "locked", "manifest_cache", "params", "custom_data", "ordering", "state") VALUES -(0, 'plg_extension_joomlaupdate', 'plugin', 'joomlaupdate', 'extension', 0, 1, 1, 0, 1, '', '', '', 0, 0); diff --git a/administrator/components/com_admin/sql/updates/postgresql/5.3.0-2025-03-14.sql b/administrator/components/com_admin/sql/updates/postgresql/5.3.0-2025-03-14.sql deleted file mode 100644 index cfb58259717f7..0000000000000 --- a/administrator/components/com_admin/sql/updates/postgresql/5.3.0-2025-03-14.sql +++ /dev/null @@ -1,10 +0,0 @@ --- disable autostart for the previous tour -UPDATE "#__guidedtours" SET "autostart" = 0 WHERE "uid" = 'joomla-whatsnew-5-2'; - -INSERT INTO "#__guidedtours" ("title", "description", "extensions", "url", "published", "language", "note", "access", "uid", "autostart", "created", "created_by", "modified", "modified_by") VALUES -('COM_GUIDEDTOURS_TOUR_WHATSNEW_5_3_TITLE', 'COM_GUIDEDTOURS_TOUR_WHATSNEW_5_3_DESCRIPTION', '["com_cpanel"]', 'administrator/index.php', 1, '*', '', 1, 'joomla-whatsnew-5-3', 1, CURRENT_TIMESTAMP, 0, CURRENT_TIMESTAMP, 0); - -INSERT INTO "#__guidedtour_steps" ("title", "description", "position", "target", "type", "interactive_type", "url", "published", "language", "note", "params", "tour_id", "created", "created_by", "modified", "modified_by") -SELECT 'COM_GUIDEDTOURS_TOUR_WHATSNEW_5_3_STEP_0_TITLE', 'COM_GUIDEDTOURS_TOUR_WHATSNEW_5_3_STEP_0_DESCRIPTION', 'right', '#sidebarmenu nav > ul:first-of-type > li:last-child', 0, 1, '', 1, '*', '', '"{\"required\":1,\"requiredvalue\":\"\"}"', MAX("id"), CURRENT_TIMESTAMP, 0, CURRENT_TIMESTAMP, 0 - FROM "#__guidedtours" - WHERE "uid" = 'joomla-whatsnew-5-3'; diff --git a/administrator/components/com_admin/sql/updates/postgresql/5.3.1-2025-04-27.sql b/administrator/components/com_admin/sql/updates/postgresql/5.3.1-2025-04-27.sql deleted file mode 100644 index 9cc623fb217ff..0000000000000 --- a/administrator/components/com_admin/sql/updates/postgresql/5.3.1-2025-04-27.sql +++ /dev/null @@ -1,4 +0,0 @@ -UPDATE "#__mail_templates" -SET "params" = '{"tags":["messages","message","date","extension","username"]}' -WHERE "template_id" = 'com_actionlogs.notification' -AND "params" = '"tags":["messages","message","date","extension","username"]}'; diff --git a/administrator/components/com_admin/sql/updates/postgresql/5.3.4-2025-09-19.sql b/administrator/components/com_admin/sql/updates/postgresql/5.3.4-2025-09-19.sql deleted file mode 100644 index 505eff0640add..0000000000000 --- a/administrator/components/com_admin/sql/updates/postgresql/5.3.4-2025-09-19.sql +++ /dev/null @@ -1,8 +0,0 @@ -UPDATE "#__content_types" -SET "field_mappings" = jsonb_set("field_mappings"::jsonb, '{common, core_created_user_id}' , '"created_by"', true) -WHERE "type_alias" = 'com_content.article'; - -UPDATE "#__content_types" -SET "field_mappings" = jsonb_set("field_mappings"::jsonb, '{common, core_created_by_alias}' , '"created_by_alias"', true) -WHERE "type_alias" = 'com_content.article'; - diff --git a/administrator/components/com_admin/sql/updates/postgresql/5.4.0-2025-04-23.sql b/administrator/components/com_admin/sql/updates/postgresql/5.4.0-2025-04-23.sql deleted file mode 100644 index 95cdc7a2653bc..0000000000000 --- a/administrator/components/com_admin/sql/updates/postgresql/5.4.0-2025-04-23.sql +++ /dev/null @@ -1,3 +0,0 @@ -INSERT INTO "#__extensions" ("package_id", "name", "type", "element", "folder", "client_id", "enabled", "access", "protected", "locked", "manifest_cache", "params", "custom_data", "ordering", "state") -SELECT 0, 'plg_behaviour_compat6', 'plugin', 'compat6', 'behaviour', 0, 1, 1, 0, 1, '', '{"classes_aliases":"1","legacy_classes":"1"}', '', -1, 0 -WHERE NOT EXISTS (SELECT * FROM "#__extensions" e WHERE e."type" = 'plugin' AND e."element" = 'compat6' AND e."folder" = 'behaviour' AND e."client_id" = 0); diff --git a/administrator/components/com_admin/sql/updates/postgresql/5.4.0-2025-05-10.sql b/administrator/components/com_admin/sql/updates/postgresql/5.4.0-2025-05-10.sql deleted file mode 100644 index 1c9a4100d726c..0000000000000 --- a/administrator/components/com_admin/sql/updates/postgresql/5.4.0-2025-05-10.sql +++ /dev/null @@ -1,28 +0,0 @@ -INSERT INTO "#__extensions" ("package_id", "name", "type", "element", "folder", "client_id", "enabled", "access", "protected", "locked", "manifest_cache", "params", "custom_data", "ordering", "state") -SELECT 0, 'plg_quickicon_autoupdate', 'plugin', 'autoupdate', 'quickicon', 0, 1, 1, 0, 1, '', '', '', -1, 0 -WHERE NOT EXISTS (SELECT * FROM "#__extensions" e WHERE e."type" = 'plugin' AND e."element" = 'autoupdate' AND e."folder" = 'quickicon' AND e."client_id" = 0); - -INSERT INTO "#__extensions" ("package_id", "name", "type", "element", "folder", "client_id", "enabled", "access", "protected", "locked", "manifest_cache", "params", "custom_data", "ordering", "state") -SELECT 0, 'plg_webservices_joomlaupdate', 'plugin', 'joomlaupdate', 'webservices', 0, 1, 1, 0, 1, '', '', '', -1, 0 -WHERE NOT EXISTS (SELECT * FROM "#__extensions" e WHERE e."type" = 'plugin' AND e."element" = 'joomlaupdate' AND e."folder" = 'webservices' AND e."client_id" = 0); - -INSERT INTO "#__mail_templates" ("template_id", "extension", "language", "subject", "body", "htmlbody", "attachments", "params") VALUES -('com_joomlaupdate.update.success', 'com_joomlaupdate', '', 'COM_JOOMLAUPDATE_UPDATE_SUCCESS_MAIL_SUBJECT', 'COM_JOOMLAUPDATE_UPDATE_SUCCESS_MAIL_BODY', '', '', '{"tags":["newversion","oldversion","sitename","url"]}'), -('com_joomlaupdate.update.failed', 'com_joomlaupdate', '', 'COM_JOOMLAUPDATE_UPDATE_FAILED_MAIL_SUBJECT', 'COM_JOOMLAUPDATE_UPDATE_FAILED_MAIL_BODY', '', '', '{"tags":["newversion","oldversion","sitename","url"]}') -ON CONFLICT DO NOTHING; - --- add post-installation message for automated updates -INSERT INTO "#__postinstall_messages" ("extension_id", "title_key", "description_key", "action_key", "language_extension", "language_client_id", "type", "action_file", "action", "condition_file", "condition_method", "version_introduced", "enabled") -SELECT "extension_id", 'COM_JOOMLAUPDATE_POSTINSTALL_MSG_AUTOMATED_UPDATES_TITLE', 'COM_JOOMLAUPDATE_POSTINSTALL_MSG_AUTOMATED_UPDATES_DESCRIPTION', 'COM_JOOMLAUPDATE_POSTINSTALL_MSG_AUTOMATED_UPDATES_ACTION', 'com_joomlaupdate', 1, 'action', 'admin://components/com_joomlaupdate/postinstall/autoupdate.php', 'com_joomlaupdate_postinstall_autoupdate_action', 'admin://components/com_joomlaupdate/postinstall/autoupdate.php', 'com_joomlaupdate_postinstall_autoupdate_condition', '5.4.0', 1 FROM "#__extensions" WHERE "name" = 'files_joomla'; - --- disable autostart for the previous tour -UPDATE "#__guidedtours" SET "autostart" = 0 WHERE "uid" = 'joomla-whatsnew-5-3'; - -INSERT INTO "#__guidedtours" ("title", "description", "extensions", "url", "published", "language", "note", "access", "uid", "autostart", "created", "created_by", "modified", "modified_by") -SELECT 'COM_GUIDEDTOURS_TOUR_WHATSNEW_5_4_TITLE', 'COM_GUIDEDTOURS_TOUR_WHATSNEW_5_4_DESCRIPTION', '["com_cpanel"]', 'administrator/index.php', 1, '*', '', 1, 'joomla-whatsnew-5-4', 1, CURRENT_TIMESTAMP, 0, CURRENT_TIMESTAMP, 0 -WHERE NOT EXISTS (SELECT * FROM "#__guidedtours" g WHERE g."uid" = 'joomla-whatsnew-5-4'); - -INSERT INTO "#__guidedtour_steps" ("title", "description", "position", "target", "type", "interactive_type", "url", "published", "language", "note", "params", "tour_id", "created", "created_by", "modified", "modified_by") -SELECT 'COM_GUIDEDTOURS_TOUR_WHATSNEW_5_4_STEP_0_TITLE', 'COM_GUIDEDTOURS_TOUR_WHATSNEW_5_4_STEP_0_DESCRIPTION', 'right', '#sidebarmenu nav > ul:first-of-type > li:last-child', 0, 1, '', 1, '*', '', '"{\"required\":1,\"requiredvalue\":\"\"}"', MAX("id"), CURRENT_TIMESTAMP, 0, CURRENT_TIMESTAMP, 0 -FROM "#__guidedtours" -WHERE "uid" = 'joomla-whatsnew-5-4'; diff --git a/administrator/components/com_admin/sql/updates/postgresql/6.0.0-2024-08-11.sql b/administrator/components/com_admin/sql/updates/postgresql/6.0.0-2024-08-11.sql new file mode 100644 index 0000000000000..e6fba47a2cfaa --- /dev/null +++ b/administrator/components/com_admin/sql/updates/postgresql/6.0.0-2024-08-11.sql @@ -0,0 +1,6 @@ +-- Update link to featured + +UPDATE "#__menu" +SET "link" = 'index.php?option=com_content&view=articles&filter[featured]=1' +WHERE "link" = 'index.php?option=com_content&view=featured' +AND "client_id" = 1; diff --git a/administrator/components/com_admin/sql/updates/postgresql/6.0.0-2025-03-25.sql b/administrator/components/com_admin/sql/updates/postgresql/6.0.0-2025-03-25.sql new file mode 100644 index 0000000000000..62797a72dfb48 --- /dev/null +++ b/administrator/components/com_admin/sql/updates/postgresql/6.0.0-2025-03-25.sql @@ -0,0 +1,3 @@ +INSERT INTO "#__mail_templates" ("template_id", "extension", "language", "subject", "body", "htmlbody", "attachments", "params") VALUES +('plg_content_joomla.newarticle', 'plg_content_joomla', '', 'PLG_CONTENT_JOOMLA_NEW_ARTICLE_SUBJECT', 'PLG_CONTENT_JOOMLA_NEW_ARTICLE_BODY', '', '', '{"tags":["sitename","name","email","title","url"]}') +ON CONFLICT DO NOTHING; diff --git a/administrator/components/com_admin/sql/updates/postgresql/6.0.0-2025-05-20.sql b/administrator/components/com_admin/sql/updates/postgresql/6.0.0-2025-05-20.sql new file mode 100644 index 0000000000000..bed03447d009e --- /dev/null +++ b/administrator/components/com_admin/sql/updates/postgresql/6.0.0-2025-05-20.sql @@ -0,0 +1,3 @@ +UPDATE "#__extensions" + SET "params" = '' + WHERE "type" = 'plugin' AND "element" = 'stats' AND "folder" = 'system'; diff --git a/administrator/components/com_admin/sql/updates/postgresql/5.4.0-2025-08-02.sql b/administrator/components/com_admin/sql/updates/postgresql/6.0.0-2025-08-02.sql similarity index 100% rename from administrator/components/com_admin/sql/updates/postgresql/5.4.0-2025-08-02.sql rename to administrator/components/com_admin/sql/updates/postgresql/6.0.0-2025-08-02.sql diff --git a/administrator/components/com_admin/sql/updates/postgresql/5.0.0-2023-07-29.sql b/administrator/components/com_admin/sql/updates/postgresql/6.0.0-2025-08-16.sql similarity index 53% rename from administrator/components/com_admin/sql/updates/postgresql/5.0.0-2023-07-29.sql rename to administrator/components/com_admin/sql/updates/postgresql/6.0.0-2025-08-16.sql index 0d7535b274353..1ed8a5e60113f 100644 --- a/administrator/components/com_admin/sql/updates/postgresql/5.0.0-2023-07-29.sql +++ b/administrator/components/com_admin/sql/updates/postgresql/6.0.0-2025-08-16.sql @@ -1,3 +1,3 @@ INSERT INTO "#__extensions" ("package_id", "name", "type", "element", "folder", "client_id", "enabled", "access", "protected", "locked", "manifest_cache", "params", "custom_data", "ordering", "state") -SELECT 0, 'plg_behaviour_compat', 'plugin', 'compat', 'behaviour', 0, 1, 1, 0, 1, '', '{"classes_aliases":"1","es5_assets":"1"}', '', -1, 0 -WHERE NOT EXISTS (SELECT * FROM "#__extensions" e WHERE e."type" = 'plugin' AND e."element" = 'compat' AND e."folder" = 'behaviour' AND e."client_id" = 0); +SELECT 0, 'plg_fields_note', 'plugin', 'note', 'fields', 0, 1, 1, 0, 1, '', '{"class":"alert alert-info","heading":"h4"}', '', -1, 0 +WHERE NOT EXISTS (SELECT * FROM "#__extensions" e WHERE e."type" = 'plugin' AND e."element" = 'note' AND e."folder" = 'fields' AND e."client_id" = 0); diff --git a/administrator/components/com_admin/sql/updates/postgresql/6.0.0-2025-08-17.sql b/administrator/components/com_admin/sql/updates/postgresql/6.0.0-2025-08-17.sql new file mode 100644 index 0000000000000..16731908df72b --- /dev/null +++ b/administrator/components/com_admin/sql/updates/postgresql/6.0.0-2025-08-17.sql @@ -0,0 +1,3 @@ +INSERT INTO "#__extensions" ("package_id", "name", "type", "element", "folder", "client_id", "enabled", "access", "protected", "locked", "manifest_cache", "params", "custom_data", "ordering", "state") +SELECT 0, 'plg_fields_number', 'plugin', 'number', 'fields', 0, 1, 1, 0, 1, '', '{"min":"1.0","max":"100.0","step":"0.1","currency":"0","position":"0","decimals":"2"}', '', -1, 0 +WHERE NOT EXISTS (SELECT * FROM "#__extensions" e WHERE e."type" = 'plugin' AND e."element" = 'number' AND e."folder" = 'fields' AND e."client_id" = 0); diff --git a/administrator/components/com_admin/sql/updates/postgresql/6.0.0-2025-09-05.sql b/administrator/components/com_admin/sql/updates/postgresql/6.0.0-2025-09-05.sql new file mode 100644 index 0000000000000..bb3bc6726fb37 --- /dev/null +++ b/administrator/components/com_admin/sql/updates/postgresql/6.0.0-2025-09-05.sql @@ -0,0 +1,8 @@ +INSERT INTO "#__extensions" ("package_id", "name", "type", "element", "folder", "client_id", "enabled", "access", "protected", "locked", "manifest_cache", "params", "custom_data", "ordering", "state") +SELECT 0, 'cassiopeia_extended', 'template', 'cassiopeia_extended', '', 0, 1, 1, 0, 1, '', '{"brand":"1","logoFile":"","siteTitle":"","siteDescription":"","useFontScheme":"0","systemFontBody":"","systemFontHeading":"","colorName":"colors_standard","fluidContainer":"0","stickyHeader":"0","backTop":"0","colorSettings":"0","headerbg":"rgb(193, 205, 207)","headercolor":"rgb(23, 23, 23)","bodybg":"rgb(254, 254, 254)","bodycolor":"rgb(23, 23, 23)","linkcolor":"rgb(29, 121, 137)","linkcolorh":"rgb(14, 59, 67)","btnbg":"rgb(206, 60, 55)","btnbgh":"rgb(131, 35, 32)","btncolor":"rgb(254, 254, 254)","btncolorh":"rgb(254, 254, 254)","footerbg":"rgb(29, 121, 137)","footercolor":"rgb(254, 254, 254)","fontSettings":"0","bodysize":"1","h1size":"2","h2size":"1.7","h3size":"1.5"}', '', 1, 0 +WHERE NOT EXISTS (SELECT * FROM "#__extensions" e WHERE e."type" = 'template' AND e."element" = 'cassiopeia_extended' AND e."client_id" = 0); + + +INSERT INTO "#__template_styles" ("template", "client_id", "home", "title", "inheritable", "parent", "params") +SELECT 'cassiopeia_extended', 0, '0', 'Cassiopeia Extended - Default', 0, 'cassiopeia', '{"brand":"1","logoFile":"","siteTitle":"","siteDescription":"","useFontScheme":"0","systemFontBody":"","systemFontHeading":"","colorName":"colors_standard","fluidContainer":"0","stickyHeader":"0","backTop":"0","colorSettings":"0","headerbg":"rgb(193, 205, 207)","headercolor":"rgb(23, 23, 23)","bodybg":"rgb(254, 254, 254)","bodycolor":"rgb(23, 23, 23)","linkcolor":"rgb(29, 121, 137)","linkcolorh":"rgb(14, 59, 67)","btnbg":"rgb(206, 60, 55)","btnbgh":"rgb(131, 35, 32)","btncolor":"rgb(254, 254, 254)","btncolorh":"rgb(254, 254, 254)","footerbg":"rgb(29, 121, 137)","footercolor":"rgb(254, 254, 254)","fontSettings":"0","bodysize":"1","h1size":"2","h2size":"1.7","h3size":"1.5"}' +WHERE NOT EXISTS (SELECT * FROM "#__template_styles" t WHERE t."template" = 'cassiopeia_extended' AND t."client_id" = 0 AND t."inheritable" = 0 AND t."parent" = 'cassiopeia'); \ No newline at end of file diff --git a/administrator/components/com_admin/sql/updates/postgresql/6.0.0-2025-09-16.sql b/administrator/components/com_admin/sql/updates/postgresql/6.0.0-2025-09-16.sql new file mode 100644 index 0000000000000..fea9098d5c027 --- /dev/null +++ b/administrator/components/com_admin/sql/updates/postgresql/6.0.0-2025-09-16.sql @@ -0,0 +1,6 @@ +-- uninstall previous What's New tours +DELETE FROM "#__guidedtour_steps" + WHERE "tour_id" IN (SELECT "id" FROM "#__guidedtours" WHERE "uid" IN ('joomla-whatsnew-5-2', 'joomla-whatsnew-5-3', 'joomla-whatsnew-5-4')); + +DELETE FROM "#__guidedtours" + WHERE "uid" IN ('joomla-whatsnew-5-2', 'joomla-whatsnew-5-3', 'joomla-whatsnew-5-4'); diff --git a/administrator/components/com_admin/sql/updates/postgresql/6.0.0-2025-09-17.sql b/administrator/components/com_admin/sql/updates/postgresql/6.0.0-2025-09-17.sql new file mode 100644 index 0000000000000..5a81db0d144de --- /dev/null +++ b/administrator/components/com_admin/sql/updates/postgresql/6.0.0-2025-09-17.sql @@ -0,0 +1,13 @@ +INSERT INTO "#__guidedtours" ("title", "description", "extensions", "url", "published", "language", "note", "access", "uid", "autostart", "created", "created_by", "modified", "modified_by") +SELECT 'COM_GUIDEDTOURS_TOUR_WHATSNEW_6_0_TITLE', 'COM_GUIDEDTOURS_TOUR_WHATSNEW_6_0_DESCRIPTION', '["com_cpanel"]', 'administrator/index.php', 1, '*', '', 1, 'joomla-whatsnew-6-0', 1, CURRENT_TIMESTAMP, 0, CURRENT_TIMESTAMP, 0 +WHERE NOT EXISTS (SELECT * FROM "#__guidedtours" g WHERE g."uid" = 'joomla-whatsnew-6-0'); + +INSERT INTO "#__guidedtour_steps" ("title", "description", "position", "target", "type", "interactive_type", "url", "published", "language", "note", "params", "created", "created_by", "modified", "modified_by", "tour_id") +SELECT 'COM_GUIDEDTOURS_TOUR_WHATSNEW_6_0_STEP_0_TITLE', 'COM_GUIDEDTOURS_TOUR_WHATSNEW_6_0_STEP_0_DESCRIPTION', 'center', '', 0, 1, '', 1, '*', '', '{"required":1,"requiredvalue":""}', CURRENT_TIMESTAMP, 0, CURRENT_TIMESTAMP, 0, MAX("id") + FROM "#__guidedtours" + WHERE "uid" = 'joomla-whatsnew-6-0'; + +INSERT INTO "#__guidedtour_steps" ("title", "description", "position", "target", "type", "interactive_type", "url", "published", "language", "note", "params", "created", "created_by", "modified", "modified_by", "tour_id") +SELECT 'COM_GUIDEDTOURS_TOUR_WHATSNEW_6_0_STEP_1_TITLE', 'COM_GUIDEDTOURS_TOUR_WHATSNEW_6_0_STEP_1_DESCRIPTION', 'right', '#sidebarmenu nav > ul:first-of-type > li:last-child', 0, 1, '', 1, '*', '', '"{\"required\":1,\"requiredvalue\":\"\"}"', CURRENT_TIMESTAMP, 0, CURRENT_TIMESTAMP, 0, MAX("id") + FROM "#__guidedtours" + WHERE "uid" = 'joomla-whatsnew-6-0'; diff --git a/administrator/components/com_admin/sql/updates/postgresql/6.0.0-2025-09-23.sql b/administrator/components/com_admin/sql/updates/postgresql/6.0.0-2025-09-23.sql new file mode 100644 index 0000000000000..d7f5708ce800c --- /dev/null +++ b/administrator/components/com_admin/sql/updates/postgresql/6.0.0-2025-09-23.sql @@ -0,0 +1,3 @@ +UPDATE "#__update_sites" + SET "location" = 'https://update.joomla.org/language/translationlist_6.xml' + WHERE "location" = 'https://update.joomla.org/language/translationlist_5.xml'; diff --git a/administrator/components/com_admin/sql/updates/postgresql/6.0.0-2025-09-26.sql b/administrator/components/com_admin/sql/updates/postgresql/6.0.0-2025-09-26.sql new file mode 100644 index 0000000000000..5f91914aa269c --- /dev/null +++ b/administrator/components/com_admin/sql/updates/postgresql/6.0.0-2025-09-26.sql @@ -0,0 +1,33 @@ +-- Update content types for lookup tags + +UPDATE "#__content_types" +SET "content_history_options" = jsonb_set( + "content_history_options"::jsonb, + '{displayLookup}', + "content_history_options"::jsonb->'displayLookup' || + jsonb_build_object( + 'sourceColumn', 'tags', + 'targetTable', '#__tags', + 'targetColumn', 'id', + 'displayColumn', 'title' + ) + ) +WHERE "type_alias" IN ( + 'com_content.article', + 'com_contact.contact', + 'com_newsfeeds.newsfeed', + 'com_content.category', + 'com_contact.category', + 'com_newsfeeds.category', + 'com_banners.category', + 'com_users.category' + ) +AND NOT EXISTS ( + SELECT * FROM jsonb_array_elements("content_history_options"::jsonb->'displayLookup') + WHERE value = jsonb_build_object( + 'sourceColumn', 'tags', + 'targetTable', '#__tags', + 'targetColumn', 'id', + 'displayColumn', 'title' + ) + ); diff --git a/administrator/components/com_admin/sql/updates/postgresql/5.4.0-2025-10-07.sql b/administrator/components/com_admin/sql/updates/postgresql/6.0.0-2025-10-10.sql similarity index 98% rename from administrator/components/com_admin/sql/updates/postgresql/5.4.0-2025-10-07.sql rename to administrator/components/com_admin/sql/updates/postgresql/6.0.0-2025-10-10.sql index 23407ee5a6a5a..c416183248cde 100644 --- a/administrator/components/com_admin/sql/updates/postgresql/5.4.0-2025-10-07.sql +++ b/administrator/components/com_admin/sql/updates/postgresql/6.0.0-2025-10-10.sql @@ -1,2 +1,2 @@ --- Remove wrong unique constraint from "#__ucm_content" table -ALTER TABLE "#__ucm_content" DROP CONSTRAINT "#__ucm_content_idx_type_alias_item_id" /** CAN FAIL **/; +-- Remove wrong unique constraint from "#__ucm_content" table +ALTER TABLE "#__ucm_content" DROP CONSTRAINT "#__ucm_content_idx_type_alias_item_id" /** CAN FAIL **/; diff --git a/administrator/components/com_admin/sql/updates/postgresql/6.0.0-2025-10-11.sql b/administrator/components/com_admin/sql/updates/postgresql/6.0.0-2025-10-11.sql new file mode 100644 index 0000000000000..db3fae581c1e6 --- /dev/null +++ b/administrator/components/com_admin/sql/updates/postgresql/6.0.0-2025-10-11.sql @@ -0,0 +1,5 @@ +ALTER TABLE "#__history" + ADD COLUMN "is_current" SMALLINT NOT NULL DEFAULT 0 /** CAN FAIL **/; +ALTER TABLE "#__history" + ADD COLUMN "is_legacy" SMALLINT NOT NULL DEFAULT 0 /** CAN FAIL **/; +UPDATE "#__history" SET "is_legacy" = 1; diff --git a/administrator/components/com_admin/src/Model/SysinfoModel.php b/administrator/components/com_admin/src/Model/SysinfoModel.php index d5a3eb239f48b..c40623f6e3912 100644 --- a/administrator/components/com_admin/src/Model/SysinfoModel.php +++ b/administrator/components/com_admin/src/Model/SysinfoModel.php @@ -456,7 +456,7 @@ public function getExtensions(): array { $installed = []; $db = $this->getDatabase(); - $query = $db->getQuery(true) + $query = $db->createQuery() ->select('*') ->from($db->quoteName('#__extensions')); $db->setQuery($query); diff --git a/administrator/components/com_associations/src/Helper/AssociationsHelper.php b/administrator/components/com_associations/src/Helper/AssociationsHelper.php index 6f591141a919e..3fb7a8d10446d 100644 --- a/administrator/components/com_associations/src/Helper/AssociationsHelper.php +++ b/administrator/components/com_associations/src/Helper/AssociationsHelper.php @@ -258,7 +258,7 @@ public static function getAssociationHtmlList($extensionName, $typeName, $itemId $db = Factory::getDbo(); // Get the category name - $query = $db->getQuery(true) + $query = $db->createQuery() ->select($db->quoteName('title')) ->from($db->quoteName('#__categories')) ->where($db->quoteName('id') . ' = :id') @@ -272,7 +272,7 @@ public static function getAssociationHtmlList($extensionName, $typeName, $itemId $db = Factory::getDbo(); // Get the menutype name - $query = $db->getQuery(true) + $query = $db->createQuery() ->select($db->quoteName('title')) ->from($db->quoteName('#__menu_types')) ->where($db->quoteName('menutype') . ' = :menutype') @@ -448,7 +448,7 @@ private static function getEnabledExtensions() { $db = Factory::getDbo(); - $query = $db->getQuery(true) + $query = $db->createQuery() ->select('*') ->from($db->quoteName('#__extensions')) ->where($db->quoteName('type') . ' = ' . $db->quote('component')) @@ -653,7 +653,7 @@ public static function getTypeFieldName($extensionName, $typeName, $fieldName) public static function getLanguagefilterPluginId() { $db = Factory::getDbo(); - $query = $db->getQuery(true) + $query = $db->createQuery() ->select($db->quoteName('extension_id')) ->from($db->quoteName('#__extensions')) ->where($db->quoteName('folder') . ' = ' . $db->quote('system')) diff --git a/administrator/components/com_associations/src/Model/AssociationsModel.php b/administrator/components/com_associations/src/Model/AssociationsModel.php index c0cffcc55f771..03adf17c33da7 100644 --- a/administrator/components/com_associations/src/Model/AssociationsModel.php +++ b/administrator/components/com_associations/src/Model/AssociationsModel.php @@ -14,7 +14,7 @@ use Joomla\CMS\Language\Text; use Joomla\CMS\MVC\Factory\MVCFactoryInterface; use Joomla\CMS\MVC\Model\ListModel; -use Joomla\CMS\Table\Table; +use Joomla\CMS\Table\Category; use Joomla\Component\Associations\Administrator\Helper\AssociationsHelper; use Joomla\Database\Exception\ExecutionFailureException; use Joomla\Database\ParameterType; @@ -170,7 +170,7 @@ protected function getListQuery() // Create a new query object. $user = $this->getCurrentUser(); $db = $this->getDatabase(); - $query = $db->getQuery(true); + $query = $db->createQuery(); $details = $type->get('details'); @@ -389,7 +389,7 @@ protected function getListQuery() $baselevel = 1; if ($categoryId = $this->getState('filter.category_id')) { - $categoryTable = Table::getInstance('Category', '\\Joomla\\CMS\\Table\\'); + $categoryTable = new Category($db); $categoryTable->load($categoryId); $baselevel = (int) $categoryTable->level; @@ -462,7 +462,7 @@ public function purge($context = '', $key = '') { $app = Factory::getApplication(); $db = $this->getDatabase(); - $query = $db->getQuery(true)->delete($db->quoteName('#__associations')); + $query = $db->createQuery()->delete($db->quoteName('#__associations')); // Filter by associations context. if ($context) { @@ -508,7 +508,7 @@ public function clean($context = '', $key = '') { $app = Factory::getApplication(); $db = $this->getDatabase(); - $query = $db->getQuery(true) + $query = $db->createQuery() ->select($db->quoteName('key') . ', COUNT(*)') ->from($db->quoteName('#__associations')) ->group($db->quoteName('key')) diff --git a/administrator/components/com_associations/src/View/Association/HtmlView.php b/administrator/components/com_associations/src/View/Association/HtmlView.php index 8e155d2aa4113..9b3e426fc6a05 100644 --- a/administrator/components/com_associations/src/View/Association/HtmlView.php +++ b/administrator/components/com_associations/src/View/Association/HtmlView.php @@ -317,6 +317,11 @@ public function display($tpl = null): void $this->addToolbar(); + // Add form control fields + $this->form + ->addControlField('task', '') + ->addControlField('target-id', '', ['id' => 'target-id']); + parent::display($tpl); } diff --git a/administrator/components/com_associations/src/View/Associations/HtmlView.php b/administrator/components/com_associations/src/View/Associations/HtmlView.php index 64a32d30d8ea7..4572f873e5dc4 100644 --- a/administrator/components/com_associations/src/View/Associations/HtmlView.php +++ b/administrator/components/com_associations/src/View/Associations/HtmlView.php @@ -135,6 +135,10 @@ public function display($tpl = null) $this->filterForm = $model->getFilterForm(); $this->activeFilters = $model->getActiveFilters(); + // Add form control fields + $this->filterForm + ->addControlField('task', ''); + if (!Associations::isEnabled()) { $link = Route::_('index.php?option=com_plugins&task=plugin.edit&extension_id=' . AssociationsHelper::getLanguagefilterPluginId()); Factory::getApplication()->enqueueMessage(Text::sprintf('COM_ASSOCIATIONS_ERROR_NO_ASSOC', $link), 'warning'); @@ -212,6 +216,11 @@ public function display($tpl = null) if ($forcedLanguage = Factory::getApplication()->getInput()->get('forcedLanguage', '', 'CMD')) { $this->filterForm->setFieldAttribute('category_id', 'language', '*,' . $forcedLanguage, 'filter'); } + + // Add extra form control fields for modal + $this->filterForm + ->addControlField('forcedItemType', Factory::getApplication()->getInput()->get('forcedItemType', '', 'string')) + ->addControlField('forcedLanguage', $forcedLanguage); } } diff --git a/administrator/components/com_associations/tmpl/association/edit.php b/administrator/components/com_associations/tmpl/association/edit.php index efbe432ed63df..3a37267c822e1 100644 --- a/administrator/components/com_associations/tmpl/association/edit.php +++ b/administrator/components/com_associations/tmpl/association/edit.php @@ -10,12 +10,10 @@ defined('_JEXEC') or die; -use Joomla\CMS\HTML\HTMLHelper; use Joomla\CMS\Language\Text; use Joomla\CMS\Router\Route; -use Joomla\Component\Associations\Administrator\View\Association\HtmlView; -/** @var HtmlView $this */ +/** @var \Joomla\Component\Associations\Administrator\View\Association\HtmlView $this */ /** @var Joomla\CMS\WebAsset\WebAssetManager $wa */ $wa = $this->getDocument()->getWebAssetManager(); @@ -83,7 +81,5 @@ - - - + form->renderControlFields(); ?>
diff --git a/administrator/components/com_associations/tmpl/associations/default.php b/administrator/components/com_associations/tmpl/associations/default.php index 3c6bcc2f202c7..290d9c5da1239 100644 --- a/administrator/components/com_associations/tmpl/associations/default.php +++ b/administrator/components/com_associations/tmpl/associations/default.php @@ -164,8 +164,8 @@ pagination->getListFooter(); ?> - - + + filterForm->renderControlFields(); ?> diff --git a/administrator/components/com_associations/tmpl/associations/modal.php b/administrator/components/com_associations/tmpl/associations/modal.php index 5a4b2214e4519..f945152d581eb 100644 --- a/administrator/components/com_associations/tmpl/associations/modal.php +++ b/administrator/components/com_associations/tmpl/associations/modal.php @@ -164,9 +164,6 @@ - - - - + filterForm->renderControlFields(); ?> diff --git a/administrator/components/com_banners/src/Helper/BannersHelper.php b/administrator/components/com_banners/src/Helper/BannersHelper.php index cd867e89e53e5..a74c0f0add8dc 100644 --- a/administrator/components/com_banners/src/Helper/BannersHelper.php +++ b/administrator/components/com_banners/src/Helper/BannersHelper.php @@ -15,7 +15,6 @@ use Joomla\CMS\Helper\ContentHelper; use Joomla\CMS\HTML\HTMLHelper; use Joomla\CMS\Language\Text; -use Joomla\CMS\Table\Table; use Joomla\Database\ParameterType; // phpcs:disable PSR1.Files.SideEffects @@ -43,7 +42,7 @@ public static function updateReset() $app = Factory::getApplication(); $user = $app->getIdentity(); - $query = $db->getQuery(true) + $query = $db->createQuery() ->select('*') ->from($db->quoteName('#__banners')) ->where( @@ -78,7 +77,7 @@ public static function updateReset() if ($purchaseType < 0 && $row->cid) { /** @var \Joomla\Component\Banners\Administrator\Table\ClientTable $client */ - $client = Table::getInstance('ClientTable', '\\Joomla\\Component\\Banners\\Administrator\\Table\\'); + $client = $app->bootComponent('com_banners')->getMVCFactory()->createTable('Client', 'Administrator'); $client->load($row->cid); $purchaseType = $client->purchase_type; } @@ -111,7 +110,7 @@ public static function updateReset() } // Update the row ordering field. - $query = $db->getQuery(true) + $query = $db->createQuery() ->update($db->quoteName('#__banners')) ->set( [ @@ -148,7 +147,7 @@ public static function getClientOptions() $options = []; $db = Factory::getDbo(); - $query = $db->getQuery(true) + $query = $db->createQuery() ->select( [ $db->quoteName('id', 'value'), diff --git a/administrator/components/com_banners/src/Model/BannerModel.php b/administrator/components/com_banners/src/Model/BannerModel.php index 9e7b1eb703edf..32b9e532809f0 100644 --- a/administrator/components/com_banners/src/Model/BannerModel.php +++ b/administrator/components/com_banners/src/Model/BannerModel.php @@ -16,6 +16,7 @@ use Joomla\CMS\MVC\Model\AdminModel; use Joomla\CMS\Table\Table; use Joomla\CMS\Table\TableInterface; +use Joomla\CMS\Versioning\VersionableModelInterface; use Joomla\CMS\Versioning\VersionableModelTrait; use Joomla\Component\Categories\Administrator\Helper\CategoriesHelper; use Joomla\Database\ParameterType; @@ -29,7 +30,7 @@ * * @since 1.6 */ -class BannerModel extends AdminModel +class BannerModel extends AdminModel implements VersionableModelInterface { use VersionableModelTrait; @@ -82,7 +83,7 @@ protected function cleanupPostBatchCopy(TableInterface $table, $newId, $oldId) // Initialise clicks and impmade $db = $this->getDatabase(); - $query = $db->getQuery(true) + $query = $db->createQuery() ->update($db->quoteName('#__banners')) ->set($db->quoteName('clicks') . ' = 0') ->set($db->quoteName('impmade') . ' = 0') @@ -264,7 +265,7 @@ protected function loadFormData() $filters = (array) $app->getUserState('com_banners.banners.filter'); $filterCatId = $filters['category_id'] ?? null; - $data->set('catid', $app->getInput()->getInt('catid', $filterCatId)); + $data->catid = $app->getInput()->getInt('catid', $filterCatId); } } @@ -352,7 +353,7 @@ protected function prepareTable($table) // Set ordering to the last item if not set if (empty($table->ordering)) { $db = $this->getDatabase(); - $query = $db->getQuery(true) + $query = $db->createQuery() ->select('MAX(' . $db->quoteName('ordering') . ')') ->from($db->quoteName('#__banners')); diff --git a/administrator/components/com_banners/src/Model/BannersModel.php b/administrator/components/com_banners/src/Model/BannersModel.php index a835d5bb23f5a..bd38b3a8f1fe3 100644 --- a/administrator/components/com_banners/src/Model/BannersModel.php +++ b/administrator/components/com_banners/src/Model/BannersModel.php @@ -78,7 +78,7 @@ public function &getCategoryOrders() { if (!isset($this->cache['categoryorders'])) { $db = $this->getDatabase(); - $query = $db->getQuery(true) + $query = $db->createQuery() ->select( [ 'MAX(' . $db->quoteName('ordering') . ') AS ' . $db->quoteName('max'), @@ -104,7 +104,7 @@ public function &getCategoryOrders() protected function getListQuery() { $db = $this->getDatabase(); - $query = $db->getQuery(true); + $query = $db->createQuery(); // Select the required fields from the table. $query->select( diff --git a/administrator/components/com_banners/src/Model/ClientModel.php b/administrator/components/com_banners/src/Model/ClientModel.php index 6378292da6ab2..fb672b14f9487 100644 --- a/administrator/components/com_banners/src/Model/ClientModel.php +++ b/administrator/components/com_banners/src/Model/ClientModel.php @@ -13,6 +13,7 @@ use Joomla\CMS\Factory; use Joomla\CMS\MVC\Model\AdminModel; use Joomla\CMS\Table\Table; +use Joomla\CMS\Versioning\VersionableModelInterface; use Joomla\CMS\Versioning\VersionableModelTrait; // phpcs:disable PSR1.Files.SideEffects @@ -24,7 +25,7 @@ * * @since 1.6 */ -class ClientModel extends AdminModel +class ClientModel extends AdminModel implements VersionableModelInterface { use VersionableModelTrait; diff --git a/administrator/components/com_banners/src/Model/ClientsModel.php b/administrator/components/com_banners/src/Model/ClientsModel.php index 54216dd4f553e..4d0105543bec7 100644 --- a/administrator/components/com_banners/src/Model/ClientsModel.php +++ b/administrator/components/com_banners/src/Model/ClientsModel.php @@ -103,7 +103,7 @@ protected function getListQuery() { // Create a new query object. $db = $this->getDatabase(); - $query = $db->getQuery(true); + $query = $db->createQuery(); $defaultPurchase = (int) ComponentHelper::getParams('com_banners')->get('purchase_type', 3); @@ -227,7 +227,7 @@ public function getItems() $db = $this->getDatabase(); $clientIds = array_column($items, 'id'); - $query = $db->getQuery(true) + $query = $db->createQuery() ->select( [ $db->quoteName('cid'), diff --git a/administrator/components/com_banners/src/Model/TracksModel.php b/administrator/components/com_banners/src/Model/TracksModel.php index 3656463c93cf2..c2f60ce7e468c 100644 --- a/administrator/components/com_banners/src/Model/TracksModel.php +++ b/administrator/components/com_banners/src/Model/TracksModel.php @@ -98,7 +98,7 @@ protected function getListQuery() { // Create a new query object. $db = $this->getDatabase(); - $query = $db->getQuery(true); + $query = $db->createQuery(); // Select the required fields from the table. $query->select( @@ -202,7 +202,7 @@ public function delete() if ($allow) { // Delete tracks from this banner $db = $this->getDatabase(); - $query = $db->getQuery(true) + $query = $db->createQuery() ->delete($db->quoteName('#__banner_tracks')); // Filter by type @@ -223,7 +223,7 @@ public function delete() ->bind(':end', $end); } - $subQuery = $db->getQuery(true); + $subQuery = $db->createQuery(); $subQuery->select($db->quoteName('id')) ->from($db->quoteName('#__banners')); @@ -344,7 +344,7 @@ protected function getCategoryName() if ($categoryId) { $db = $this->getDatabase(); - $query = $db->getQuery(true) + $query = $db->createQuery() ->select($db->quoteName('title')) ->from($db->quoteName('#__categories')) ->where($db->quoteName('id') . ' = :categoryId') @@ -378,7 +378,7 @@ protected function getClientName() if ($clientId) { $db = $this->getDatabase(); - $query = $db->getQuery(true) + $query = $db->createQuery() ->select($db->quoteName('name')) ->from($db->quoteName('#__banner_clients')) ->where($db->quoteName('id') . ' = :clientId') diff --git a/administrator/components/com_banners/src/Service/Html/Banner.php b/administrator/components/com_banners/src/Service/Html/Banner.php index 77314f24fd6f3..bf57f4b80742c 100644 --- a/administrator/components/com_banners/src/Service/Html/Banner.php +++ b/administrator/components/com_banners/src/Service/Html/Banner.php @@ -63,7 +63,7 @@ public function clients() public function clientlist() { $db = $this->getDatabase(); - $query = $db->getQuery(true) + $query = $db->createQuery() ->select( [ $db->quoteName('id', 'value'), diff --git a/administrator/components/com_banners/src/Table/BannerTable.php b/administrator/components/com_banners/src/Table/BannerTable.php index b26cd2b1782df..cbf5998929fea 100644 --- a/administrator/components/com_banners/src/Table/BannerTable.php +++ b/administrator/components/com_banners/src/Table/BannerTable.php @@ -15,7 +15,6 @@ use Joomla\CMS\Factory; use Joomla\CMS\Language\Text; use Joomla\CMS\Table\Table; -use Joomla\CMS\Versioning\VersionableTableInterface; use Joomla\Database\DatabaseInterface; use Joomla\Database\ParameterType; use Joomla\Event\DispatcherInterface; @@ -31,7 +30,7 @@ * * @since 1.5 */ -class BannerTable extends Table implements VersionableTableInterface +class BannerTable extends Table { /** * Indicates that columns fully support the NULL value in the database @@ -69,7 +68,7 @@ public function clicks() { $id = (int) $this->id; $db = $this->getDatabase(); - $query = $db->getQuery(true) + $query = $db->createQuery() ->update($db->quoteName('#__banners')) ->set($db->quoteName('clicks') . ' = ' . $db->quoteName('clicks') . ' + 1') ->where($db->quoteName('id') . ' = :id') diff --git a/administrator/components/com_banners/src/View/Banner/HtmlView.php b/administrator/components/com_banners/src/View/Banner/HtmlView.php index a8e16b6f90649..8d746ad885bfc 100644 --- a/administrator/components/com_banners/src/View/Banner/HtmlView.php +++ b/administrator/components/com_banners/src/View/Banner/HtmlView.php @@ -82,6 +82,10 @@ public function display($tpl = null): void $this->addToolbar(); + // Add form control fields + $this->form + ->addControlField('task', ''); + parent::display($tpl); } diff --git a/administrator/components/com_banners/src/View/Banners/HtmlView.php b/administrator/components/com_banners/src/View/Banners/HtmlView.php index 38a993977b8c7..88136e34e243c 100644 --- a/administrator/components/com_banners/src/View/Banners/HtmlView.php +++ b/administrator/components/com_banners/src/View/Banners/HtmlView.php @@ -10,16 +10,10 @@ namespace Joomla\Component\Banners\Administrator\View\Banners; -use Joomla\CMS\Form\Form; use Joomla\CMS\Helper\ContentHelper; use Joomla\CMS\Language\Multilanguage; -use Joomla\CMS\Language\Text; -use Joomla\CMS\MVC\View\HtmlView as BaseHtmlView; -use Joomla\CMS\Pagination\Pagination; -use Joomla\CMS\Toolbar\Button\DropdownButton; -use Joomla\CMS\Toolbar\ToolbarHelper; +use Joomla\CMS\MVC\View\ListView; use Joomla\Component\Banners\Administrator\Model\BannersModel; -use Joomla\Registry\Registry; // phpcs:disable PSR1.Files.SideEffects \defined('_JEXEC') or die; @@ -30,24 +24,8 @@ * * @since 1.6 */ -class HtmlView extends BaseHtmlView +class HtmlView extends ListView { - /** - * The search tools form - * - * @var Form - * @since 1.6 - */ - public $filterForm; - - /** - * The active search filters - * - * @var array - * @since 1.6 - */ - public $activeFilters = []; - /** * Category data * @@ -57,152 +35,53 @@ class HtmlView extends BaseHtmlView protected $categories = []; /** - * An array of items - * - * @var array - * @since 1.6 - */ - protected $items = []; - - /** - * The pagination object + * The help link for the view * - * @var Pagination - * @since 1.6 + * @var string */ - protected $pagination; + protected $helpLink = 'Banners'; /** - * The model state + * Constructor * - * @var Registry - * @since 1.6 - */ - protected $state; - - /** - * Is this view an Empty State + * @param array $config An optional associative array of configuration settings. * - * @var boolean - * @since 4.0.0 + * @since 6.0.0 */ - private $isEmptyState = false; - - /** - * Method to display the view. - * - * @param string $tpl A template file to load. [optional] - * - * @return void - * - * @since 1.6 - * @throws \Exception - */ - public function display($tpl = null): void + public function __construct(array $config) { - /** @var BannersModel $model */ - $model = $this->getModel(); - $model->setUseExceptions(true); - - $this->categories = $model->getCategoryOrders(); - $this->items = $model->getItems(); - $this->pagination = $model->getPagination(); - $this->state = $model->getState(); - $this->filterForm = $model->getFilterForm(); - $this->activeFilters = $model->getActiveFilters(); - - if (!\count($this->items) && $this->isEmptyState = $model->getIsEmptyState()) { - $this->setLayout('emptystate'); + if (empty($config['option'])) { + $config['option'] = 'com_banners'; } - $this->addToolbar(); - - // We do not need to filter by language when multilingual is disabled - if (!Multilanguage::isEnabled()) { - unset($this->activeFilters['language']); - $this->filterForm->removeField('language', 'filter'); - } + $config['toolbar_icon'] = 'bookmark banners'; + $config['supports_batch'] = true; + $config['category'] = 'com_banners'; - parent::display($tpl); + parent::__construct($config); } /** - * Add the page title and toolbar. + * Prepare view data * * @return void * - * @since 1.6 + * @since 6.0.0 */ - protected function addToolbar(): void + protected function initializeView() { - $canDo = ContentHelper::getActions('com_banners', 'category', $this->state->get('filter.category_id')); - $user = $this->getCurrentUser(); - $toolbar = $this->getDocument()->getToolbar(); - - ToolbarHelper::title(Text::_('COM_BANNERS_MANAGER_BANNERS'), 'bookmark banners'); - - if ($canDo->get('core.create') || \count($user->getAuthorisedCategories('com_banners', 'core.create')) > 0) { - $toolbar->addNew('banner.add'); - } - - if (!$this->isEmptyState && ($canDo->get('core.edit.state') || ($this->state->get('filter.published') == -2 && $canDo->get('core.delete')))) { - /** @var DropdownButton $dropdown */ - $dropdown = $toolbar->dropdownButton('status-group', 'JTOOLBAR_CHANGE_STATUS') - ->toggleSplit(false) - ->icon('icon-ellipsis-h') - ->buttonClass('btn btn-action') - ->listCheck(true); + parent::initializeView(); - $childBar = $dropdown->getChildToolbar(); - - if ($canDo->get('core.edit.state')) { - if ($this->state->get('filter.published') != 2) { - $childBar->publish('banners.publish')->listCheck(true); - - $childBar->unpublish('banners.unpublish')->listCheck(true); - } - - if ($this->state->get('filter.published') != -1) { - if ($this->state->get('filter.published') != 2) { - $childBar->archive('banners.archive')->listCheck(true); - } elseif ($this->state->get('filter.published') == 2) { - $childBar->publish('publish')->task('banners.publish')->listCheck(true); - } - } - - $childBar->checkin('banners.checkin'); - - if ($this->state->get('filter.published') != -2) { - $childBar->trash('banners.trash')->listCheck(true); - } - } + /** @var BannersModel $model */ + $model = $this->getModel(); - if ($this->state->get('filter.published') == -2 && $canDo->get('core.delete')) { - $toolbar->delete('banners.delete', 'JTOOLBAR_DELETE_FROM_TRASH') - ->message('JGLOBAL_CONFIRM_DELETE') - ->listCheck(true); - } + $this->categories = $model->getCategoryOrders(); + $this->canDo = ContentHelper::getActions('com_banners', 'category', $this->state->get('filter.category_id')); - // Add a batch button - if ( - $user->authorise('core.create', 'com_banners') - && $user->authorise('core.edit', 'com_banners') - && $user->authorise('core.edit.state', 'com_banners') - ) { - $childBar->popupButton('batch', 'JTOOLBAR_BATCH') - ->popupType('inline') - ->textHeader(Text::_('COM_BANNERS_BATCH_OPTIONS')) - ->url('#joomla-dialog-batch') - ->modalWidth('800px') - ->modalHeight('fit-content') - ->listCheck(true); - } - } - - if ($user->authorise('core.admin', 'com_banners') || $user->authorise('core.options', 'com_banners')) { - $toolbar->preferences('com_banners'); + // We do not need to filter by language when multilingual is disabled + if (!Multilanguage::isEnabled()) { + unset($this->activeFilters['language']); + $this->filterForm->removeField('language', 'filter'); } - - $toolbar->help('Banners'); } } diff --git a/administrator/components/com_banners/src/View/Client/HtmlView.php b/administrator/components/com_banners/src/View/Client/HtmlView.php index b00c442ff8c8f..e0b28273c26eb 100644 --- a/administrator/components/com_banners/src/View/Client/HtmlView.php +++ b/administrator/components/com_banners/src/View/Client/HtmlView.php @@ -91,6 +91,10 @@ public function display($tpl = null): void $this->addToolbar(); + // Add form control fields + $this->form + ->addControlField('task', ''); + parent::display($tpl); } diff --git a/administrator/components/com_banners/src/View/Clients/HtmlView.php b/administrator/components/com_banners/src/View/Clients/HtmlView.php index 314909b107932..34f4d1d8844d0 100644 --- a/administrator/components/com_banners/src/View/Clients/HtmlView.php +++ b/administrator/components/com_banners/src/View/Clients/HtmlView.php @@ -106,6 +106,11 @@ public function display($tpl = null): void $this->addToolbar(); + // Add form control fields + $this->filterForm + ->addControlField('task', '') + ->addControlField('boxchecked', '0'); + parent::display($tpl); } diff --git a/administrator/components/com_banners/src/View/Tracks/HtmlView.php b/administrator/components/com_banners/src/View/Tracks/HtmlView.php index ae53040ef7c08..97a67e3be241b 100644 --- a/administrator/components/com_banners/src/View/Tracks/HtmlView.php +++ b/administrator/components/com_banners/src/View/Tracks/HtmlView.php @@ -106,6 +106,11 @@ public function display($tpl = null): void $this->addToolbar(); + // Add form control fields + $this->filterForm + ->addControlField('task', '') + ->addControlField('boxchecked', '0'); + parent::display($tpl); } diff --git a/administrator/components/com_banners/tmpl/banner/edit.php b/administrator/components/com_banners/tmpl/banner/edit.php index 9ee378083f9c2..19faad9abe126 100644 --- a/administrator/components/com_banners/tmpl/banner/edit.php +++ b/administrator/components/com_banners/tmpl/banner/edit.php @@ -86,6 +86,5 @@ - - + form->renderControlFields(); ?> diff --git a/administrator/components/com_banners/tmpl/banners/default.php b/administrator/components/com_banners/tmpl/banners/default.php index 7b24a58ff792c..975ff5ea9e223 100644 --- a/administrator/components/com_banners/tmpl/banners/default.php +++ b/administrator/components/com_banners/tmpl/banners/default.php @@ -177,18 +177,12 @@ authorise('core.create', 'com_banners') - && $user->authorise('core.edit', 'com_banners') - && $user->authorise('core.edit.state', 'com_banners') - ) : ?> + if ($this->batchAllowed) : ?> - - - + filterForm->renderControlFields(); ?> diff --git a/administrator/components/com_banners/tmpl/banners/emptystate.php b/administrator/components/com_banners/tmpl/banners/emptystate.php index 24425a9e9ce4a..5af96b0ad5692 100644 --- a/administrator/components/com_banners/tmpl/banners/emptystate.php +++ b/administrator/components/com_banners/tmpl/banners/emptystate.php @@ -19,6 +19,8 @@ 'formURL' => 'index.php?option=com_banners&view=banners', 'helpURL' => 'https://docs.joomla.org/Special:MyLanguage/Help5.x:Banners', 'icon' => 'icon-bookmark banners', + + 'controlFields' => $this->filterForm->renderControlFields(), ]; $user = $this->getCurrentUser(); diff --git a/administrator/components/com_banners/tmpl/client/edit.php b/administrator/components/com_banners/tmpl/client/edit.php index f7eec3482db98..bc69e03f3ff2e 100644 --- a/administrator/components/com_banners/tmpl/client/edit.php +++ b/administrator/components/com_banners/tmpl/client/edit.php @@ -65,6 +65,5 @@ - - + form->renderControlFields(); ?> diff --git a/administrator/components/com_banners/tmpl/clients/default.php b/administrator/components/com_banners/tmpl/clients/default.php index 36e8899c727ad..5502d061aed39 100644 --- a/administrator/components/com_banners/tmpl/clients/default.php +++ b/administrator/components/com_banners/tmpl/clients/default.php @@ -189,9 +189,7 @@ - - - + filterForm->renderControlFields(); ?> diff --git a/administrator/components/com_banners/tmpl/clients/emptystate.php b/administrator/components/com_banners/tmpl/clients/emptystate.php index d97f2d15ffd22..6d897f271d3e5 100644 --- a/administrator/components/com_banners/tmpl/clients/emptystate.php +++ b/administrator/components/com_banners/tmpl/clients/emptystate.php @@ -19,6 +19,8 @@ 'formURL' => 'index.php?option=com_banners&view=clients', 'helpURL' => 'https://docs.joomla.org/Special:MyLanguage/Help5.x:Banners:_Clients', 'icon' => 'icon-bookmark banners', + + 'controlFields' => $this->filterForm->renderControlFields(), ]; if (count($this->getCurrentUser()->getAuthorisedCategories('com_banners', 'core.create')) > 0) { diff --git a/administrator/components/com_banners/tmpl/tracks/default.php b/administrator/components/com_banners/tmpl/tracks/default.php index 12c8c26b79dce..83e8ad4ae2cd0 100644 --- a/administrator/components/com_banners/tmpl/tracks/default.php +++ b/administrator/components/com_banners/tmpl/tracks/default.php @@ -92,9 +92,8 @@ pagination->getListFooter(); ?> - - - + + filterForm->renderControlFields(); ?> diff --git a/administrator/components/com_banners/tmpl/tracks/emptystate.php b/administrator/components/com_banners/tmpl/tracks/emptystate.php index 13913c3e7c7e8..336dd80ad4e69 100644 --- a/administrator/components/com_banners/tmpl/tracks/emptystate.php +++ b/administrator/components/com_banners/tmpl/tracks/emptystate.php @@ -16,6 +16,8 @@ 'textPrefix' => 'COM_BANNERS_TRACKS', 'helpURL' => 'https://docs.joomla.org/Special:MyLanguage/Help5.x:Banners:_Tracks', 'icon' => 'icon-bookmark banners', + + 'controlFields' => $this->filterForm->renderControlFields(), ]; echo LayoutHelper::render('joomla.content.emptystate', $displayData); diff --git a/administrator/components/com_cache/src/View/Cache/HtmlView.php b/administrator/components/com_cache/src/View/Cache/HtmlView.php index b30821e8fc67b..e954548af472e 100644 --- a/administrator/components/com_cache/src/View/Cache/HtmlView.php +++ b/administrator/components/com_cache/src/View/Cache/HtmlView.php @@ -107,6 +107,11 @@ public function display($tpl = null): void $this->addToolbar(); + // Add form control fields + $this->filterForm + ->addControlField('task', '') + ->addControlField('boxchecked', '0'); + parent::display($tpl); } diff --git a/administrator/components/com_cache/tmpl/cache/default.php b/administrator/components/com_cache/tmpl/cache/default.php index 77ae9c5836892..e107886cc6042 100644 --- a/administrator/components/com_cache/tmpl/cache/default.php +++ b/administrator/components/com_cache/tmpl/cache/default.php @@ -92,9 +92,8 @@ pagination->getListFooter(); ?> - - - + + filterForm->renderControlFields(); ?> diff --git a/administrator/components/com_cache/tmpl/cache/emptystate.php b/administrator/components/com_cache/tmpl/cache/emptystate.php index 386e358d53236..71692ae92fa0f 100644 --- a/administrator/components/com_cache/tmpl/cache/emptystate.php +++ b/administrator/components/com_cache/tmpl/cache/emptystate.php @@ -16,6 +16,8 @@ 'textPrefix' => 'COM_CACHE', 'helpURL' => 'https://docs.joomla.org/Special:MyLanguage/Cache', 'icon' => 'icon-bolt clear', + + 'controlFields' => $this->filterForm->renderControlFields(), ]; echo LayoutHelper::render('joomla.content.emptystate', $displayData); diff --git a/administrator/components/com_categories/src/Controller/AjaxController.php b/administrator/components/com_categories/src/Controller/AjaxController.php index bc6433e1d3996..a92004737c122 100644 --- a/administrator/components/com_categories/src/Controller/AjaxController.php +++ b/administrator/components/com_categories/src/Controller/AjaxController.php @@ -10,13 +10,14 @@ namespace Joomla\Component\Categories\Administrator\Controller; +use Joomla\CMS\Factory; use Joomla\CMS\Language\Associations; use Joomla\CMS\Language\LanguageHelper; use Joomla\CMS\Language\Text; use Joomla\CMS\MVC\Controller\BaseController; use Joomla\CMS\Response\JsonResponse; use Joomla\CMS\Session\Session; -use Joomla\CMS\Table\Table; +use Joomla\CMS\Table\Category; // phpcs:disable PSR1.Files.SideEffects \defined('_JEXEC') or die; @@ -63,8 +64,7 @@ public function fetchAssociations() unset($associations[$excludeLang]); // Add the title to each of the associated records - Table::addIncludePath(JPATH_ADMINISTRATOR . '/components/com_categories/tables'); - $categoryTable = Table::getInstance('Category', '\\Joomla\\CMS\\Table\\'); + $categoryTable = new Category(Factory::getDbo()); foreach ($associations as $association) { $categoryTable->load($association->id); diff --git a/administrator/components/com_categories/src/Field/CategoryeditField.php b/administrator/components/com_categories/src/Field/CategoryeditField.php index 42adbd6bd8462..ecea83040d1df 100644 --- a/administrator/components/com_categories/src/Field/CategoryeditField.php +++ b/administrator/components/com_categories/src/Field/CategoryeditField.php @@ -175,7 +175,7 @@ protected function getOptions() $db = $this->getDatabase(); $user = $this->getCurrentUser(); - $query = $db->getQuery(true) + $query = $db->createQuery() ->select( [ $db->quoteName('a.id', 'value'), @@ -316,7 +316,7 @@ protected function getOptions() && !isset($options[0]) && isset($this->element['show_root']) ) { - $rowQuery = $db->getQuery(true) + $rowQuery = $db->createQuery() ->select( [ $db->quoteName('a.id', 'value'), diff --git a/administrator/components/com_categories/src/Field/ComponentsCategoryField.php b/administrator/components/com_categories/src/Field/ComponentsCategoryField.php index c6599b83b6127..ede94cfa605df 100644 --- a/administrator/components/com_categories/src/Field/ComponentsCategoryField.php +++ b/administrator/components/com_categories/src/Field/ComponentsCategoryField.php @@ -47,7 +47,7 @@ protected function getOptions() $db = $this->getDatabase(); $options = []; - $query = $db->getQuery(true); + $query = $db->createQuery(); $query->select('DISTINCT ' . $db->quoteName('extension')) ->from($db->quoteName('#__categories')) ->where($db->quoteName('extension') . ' != ' . $db->quote('system')); diff --git a/administrator/components/com_categories/src/Field/Modal/CategoryField.php b/administrator/components/com_categories/src/Field/Modal/CategoryField.php index ba48fdcc64355..0541fa37e7dda 100644 --- a/administrator/components/com_categories/src/Field/Modal/CategoryField.php +++ b/administrator/components/com_categories/src/Field/Modal/CategoryField.php @@ -145,7 +145,7 @@ protected function getValueTitle() if ($value) { try { $db = $this->getDatabase(); - $query = $db->getQuery(true) + $query = $db->createQuery() ->select($db->quoteName('title')) ->from($db->quoteName('#__categories')) ->where($db->quoteName('id') . ' = :value') diff --git a/administrator/components/com_categories/src/Helper/CategoriesHelper.php b/administrator/components/com_categories/src/Helper/CategoriesHelper.php index 36d247022ff4a..7fd0c43956930 100644 --- a/administrator/components/com_categories/src/Helper/CategoriesHelper.php +++ b/administrator/components/com_categories/src/Helper/CategoriesHelper.php @@ -12,7 +12,7 @@ use Joomla\CMS\Factory; use Joomla\CMS\Language\Associations; -use Joomla\CMS\Table\Table; +use Joomla\Component\Categories\Administrator\Table\CategoryTable; use Joomla\Database\ParameterType; // phpcs:disable PSR1.Files.SideEffects @@ -47,7 +47,7 @@ public static function getAssociations($pk, $extension = 'com_content') $assocId = (int) $arrId[0]; $db = Factory::getDbo(); - $query = $db->getQuery(true) + $query = $db->createQuery() ->select($db->quoteName('published')) ->from($db->quoteName('#__categories')) ->whereIn($db->quoteName('access'), $groups) @@ -74,7 +74,7 @@ public static function getAssociations($pk, $extension = 'com_content') */ public static function validateCategoryId($catid, $extension) { - $categoryTable = Table::getInstance('CategoryTable', '\\Joomla\\Component\\Categories\\Administrator\\Table\\'); + $categoryTable = new CategoryTable(Factory::getDbo()); $data = []; $data['id'] = $catid; diff --git a/administrator/components/com_categories/src/Model/CategoriesModel.php b/administrator/components/com_categories/src/Model/CategoriesModel.php index 1b37ffd09caa8..f5a016a9fedbc 100644 --- a/administrator/components/com_categories/src/Model/CategoriesModel.php +++ b/administrator/components/com_categories/src/Model/CategoriesModel.php @@ -16,7 +16,7 @@ use Joomla\CMS\Language\Associations; use Joomla\CMS\MVC\Factory\MVCFactoryInterface; use Joomla\CMS\MVC\Model\ListModel; -use Joomla\CMS\Table\Table; +use Joomla\CMS\Table\Category; use Joomla\Database\ParameterType; use Joomla\Database\QueryInterface; use Joomla\Utilities\ArrayHelper; @@ -164,7 +164,7 @@ protected function getListQuery() { // Create a new query object. $db = $this->getDatabase(); - $query = $db->getQuery(true); + $query = $db->createQuery(); $user = $this->getCurrentUser(); // Select the required fields from the table. @@ -251,7 +251,7 @@ protected function getListQuery() if (\count($categoryId)) { // Case: Using both categories filter and by level filter - $categoryTable = Table::getInstance('Category', 'JTable'); + $categoryTable = new Category($db); $subCatItemsWhere = []; foreach ($categoryId as $filterCatId) { @@ -341,7 +341,7 @@ protected function getListQuery() $includeNone = true; } - $subQuery = $db->getQuery(true) + $subQuery = $db->createQuery() ->select('DISTINCT ' . $db->quoteName('content_item_id')) ->from($db->quoteName('#__contentitem_tag_map')) ->where( @@ -359,7 +359,7 @@ protected function getListQuery() ->bind(':typeAlias', $typeAlias); if ($includeNone) { - $subQuery2 = $db->getQuery(true) + $subQuery2 = $db->createQuery() ->select('DISTINCT ' . $db->quoteName('content_item_id')) ->from($db->quoteName('#__contentitem_tag_map')) ->where($db->quoteName('type_alias') . ' = :typeAlias2'); @@ -378,7 +378,7 @@ protected function getListQuery() $tag = (int) $tag; if ($tag === 0) { - $subQuery = $db->getQuery(true) + $subQuery = $db->createQuery() ->select('DISTINCT ' . $db->quoteName('content_item_id')) ->from($db->quoteName('#__contentitem_tag_map')) ->where($db->quoteName('type_alias') . ' = :typeAlias'); diff --git a/administrator/components/com_categories/src/Model/CategoryModel.php b/administrator/components/com_categories/src/Model/CategoryModel.php index 41f4da1973033..ec48c2cae5781 100644 --- a/administrator/components/com_categories/src/Model/CategoryModel.php +++ b/administrator/components/com_categories/src/Model/CategoryModel.php @@ -26,6 +26,7 @@ use Joomla\CMS\Plugin\PluginHelper; use Joomla\CMS\Table\Category; use Joomla\CMS\UCM\UCMType; +use Joomla\CMS\Versioning\VersionableModelInterface; use Joomla\CMS\Versioning\VersionableModelTrait; use Joomla\Component\Categories\Administrator\Helper\CategoriesHelper; use Joomla\Database\ParameterType; @@ -43,7 +44,7 @@ * * @since 1.6 */ -class CategoryModel extends AdminModel +class CategoryModel extends AdminModel implements VersionableModelInterface { use VersionableModelTrait; @@ -337,18 +338,12 @@ protected function loadFormData() $extension = substr($app->getUserState('com_categories.categories.filter.extension', ''), 4); $filters = (array) $app->getUserState('com_categories.categories.' . $extension . '.filter'); - $data->set( + $data->published = $app->getInput()->getInt( 'published', - $app->getInput()->getInt( - 'published', - ((isset($filters['published']) && $filters['published'] !== '') ? $filters['published'] : null) - ) - ); - $data->set('language', $app->getInput()->getString('language', (!empty($filters['language']) ? $filters['language'] : null))); - $data->set( - 'access', - $app->getInput()->getInt('access', (!empty($filters['access']) ? $filters['access'] : $app->get('access'))) + ((isset($filters['published']) && $filters['published'] !== '') ? $filters['published'] : null) ); + $data->language = $app->getInput()->getString('language', (!empty($filters['language']) ? $filters['language'] : null)); + $data->access = $app->getInput()->getInt('access', (!empty($filters['access']) ? $filters['access'] : $app->get('access'))); } } @@ -611,7 +606,7 @@ public function save($data) // Get associationskey for edited item $db = $this->getDatabase(); $id = (int) $table->id; - $query = $db->getQuery(true) + $query = $db->createQuery() ->select($db->quoteName('key')) ->from($db->quoteName('#__associations')) ->where($db->quoteName('context') . ' = :associationscontext') @@ -625,7 +620,7 @@ public function save($data) $where = []; // Deleting old associations for the associated items - $query = $db->getQuery(true) + $query = $db->createQuery() ->delete($db->quoteName('#__associations')) ->where($db->quoteName('context') . ' = :associationscontext') ->bind(':associationscontext', $this->associationsContext); @@ -715,6 +710,12 @@ public function save($data) $this->setState($this->getName() . '.id', $table->id); + /** + * Save the version history. We need to call saveHistory method manually because category model does not + * call parent::save() + */ + $this->saveHistory($data, $this->typeAlias); + if (Factory::getApplication()->getInput()->get('task') == 'editAssociations') { return $this->redirectToAssociations($data); } @@ -825,7 +826,7 @@ protected function batchFlipordering($value, $pks, $contexts) $successful = []; $db = $this->getDatabase(); - $query = $db->getQuery(true); + $query = $db->createQuery(); /** * For each category get the max ordering value @@ -934,7 +935,7 @@ protected function batchCopy($value, $pks, $contexts) $parents = []; // Calculate the emergency stop count as a precaution against a runaway loop bug - $query = $db->getQuery(true) + $query = $db->createQuery() ->select('COUNT(' . $db->quoteName('id') . ')') ->from($db->quoteName('#__categories')); $db->setQuery($query); @@ -1085,7 +1086,7 @@ protected function batchMove($value, $pks, $contexts) $this->type = $type->getTypeByAlias($this->typeAlias); $db = $this->getDatabase(); - $query = $db->getQuery(true); + $query = $db->createQuery(); $extension = Factory::getApplication()->getInput()->get('extension', '', 'word'); // Check that the parent exists. @@ -1217,15 +1218,13 @@ protected function batchMove($value, $pks, $contexts) /** * Custom clean the cache of com_content and content modules * - * @param string $group Cache group name. - * @param integer $clientId No longer used, will be removed without replacement - * @deprecated 4.3 will be removed in 6.0 + * @param string $group Cache group name. * * @return void * * @since 1.6 */ - protected function cleanCache($group = null, $clientId = 0) + protected function cleanCache($group = null) { $extension = Factory::getApplication()->getInput()->get('extension'); diff --git a/administrator/components/com_categories/src/Service/HTML/AdministratorService.php b/administrator/components/com_categories/src/Service/HTML/AdministratorService.php index c2c819e1f5960..cddb935cf5517 100644 --- a/administrator/components/com_categories/src/Service/HTML/AdministratorService.php +++ b/administrator/components/com_categories/src/Service/HTML/AdministratorService.php @@ -52,7 +52,7 @@ public function association($catid, $extension = 'com_content') // Get the associated categories $db = Factory::getDbo(); - $query = $db->getQuery(true) + $query = $db->createQuery() ->select( [ $db->quoteName('c.id'), diff --git a/administrator/components/com_categories/tmpl/categories/default.php b/administrator/components/com_categories/tmpl/categories/default.php index 1535e9eeeb213..a628212d6bccc 100644 --- a/administrator/components/com_categories/tmpl/categories/default.php +++ b/administrator/components/com_categories/tmpl/categories/default.php @@ -10,13 +10,13 @@ defined('_JEXEC') or die; +use Doctrine\Inflector\InflectorFactory; use Joomla\CMS\HTML\HTMLHelper; use Joomla\CMS\Language\Multilanguage; use Joomla\CMS\Language\Text; use Joomla\CMS\Layout\LayoutHelper; use Joomla\CMS\Router\Route; use Joomla\CMS\Session\Session; -use Joomla\String\Inflector; /** @var \Joomla\Component\Categories\Administrator\View\Categories\HtmlView $this */ @@ -38,10 +38,10 @@ if (count($parts) > 1) { $section = $parts[1]; - $inflector = Inflector::getInstance(); + $inflector = InflectorFactory::create()->build(); - if (!$inflector->isPlural($section)) { - $section = $inflector->toPlural($section); + if ($inflector->pluralize($inflector->singularize($section)) !== $section) { + $section = $inflector->pluralize($section); } } diff --git a/administrator/components/com_categories/tmpl/categories/emptystate.php b/administrator/components/com_categories/tmpl/categories/emptystate.php index 96049dd3532aa..7ddf8b16f99ec 100644 --- a/administrator/components/com_categories/tmpl/categories/emptystate.php +++ b/administrator/components/com_categories/tmpl/categories/emptystate.php @@ -42,6 +42,8 @@ 'helpURL' => 'https://docs.joomla.org/Special:MyLanguage/Category', 'title' => $title, 'icon' => 'icon-folder categories content-categories', + + 'controlFields' => $this->filterForm->renderControlFields(), ]; if ($this->getCurrentUser()->authorise('core.create', $extension)) { diff --git a/administrator/components/com_checkin/src/Model/CheckinModel.php b/administrator/components/com_checkin/src/Model/CheckinModel.php index d468199f9c0e1..4d57e06515d69 100644 --- a/administrator/components/com_checkin/src/Model/CheckinModel.php +++ b/administrator/components/com_checkin/src/Model/CheckinModel.php @@ -106,7 +106,7 @@ public function checkin($ids = []) continue; } - $query = $db->getQuery(true) + $query = $db->createQuery() ->update($db->quoteName($tn)) ->set($db->quoteName('checked_out') . ' = DEFAULT'); @@ -187,7 +187,7 @@ public function getItems() continue; } - $query = $db->getQuery(true) + $query = $db->createQuery() ->select('COUNT(*)') ->from($db->quoteName($tn)); diff --git a/administrator/components/com_checkin/src/View/Checkin/HtmlView.php b/administrator/components/com_checkin/src/View/Checkin/HtmlView.php index f1bdb14870839..078be5aa8feff 100644 --- a/administrator/components/com_checkin/src/View/Checkin/HtmlView.php +++ b/administrator/components/com_checkin/src/View/Checkin/HtmlView.php @@ -108,6 +108,11 @@ public function display($tpl = null) $this->addToolbar(); + // Add form control fields + $this->filterForm + ->addControlField('task', '') + ->addControlField('boxchecked', '0'); + parent::display($tpl); } diff --git a/administrator/components/com_checkin/tmpl/checkin/default.php b/administrator/components/com_checkin/tmpl/checkin/default.php index 4067943b59336..2951960cec7b1 100644 --- a/administrator/components/com_checkin/tmpl/checkin/default.php +++ b/administrator/components/com_checkin/tmpl/checkin/default.php @@ -72,9 +72,8 @@ pagination->getListFooter(); ?> - - - + + filterForm->renderControlFields(); ?> diff --git a/administrator/components/com_checkin/tmpl/checkin/emptystate.php b/administrator/components/com_checkin/tmpl/checkin/emptystate.php index 5f8dfdada745f..6ecb1cc0a0716 100644 --- a/administrator/components/com_checkin/tmpl/checkin/emptystate.php +++ b/administrator/components/com_checkin/tmpl/checkin/emptystate.php @@ -18,6 +18,8 @@ 'helpURL' => 'https://docs.joomla.org/Special:MyLanguage/Help5.x:Maintenance:_Global_Check-in', 'icon' => 'icon-check-square', 'title' => Text::_('COM_CHECKIN_GLOBAL_CHECK_IN'), + + 'controlFields' => $this->filterForm->renderControlFields(), ]; echo LayoutHelper::render('joomla.content.emptystate', $displayData); diff --git a/administrator/components/com_config/src/Field/ConfigComponentsField.php b/administrator/components/com_config/src/Field/ConfigComponentsField.php index 7ec5fb115417f..d63b17e649693 100644 --- a/administrator/components/com_config/src/Field/ConfigComponentsField.php +++ b/administrator/components/com_config/src/Field/ConfigComponentsField.php @@ -44,7 +44,7 @@ class ConfigComponentsField extends ListField protected function getOptions() { $db = $this->getDatabase(); - $query = $db->getQuery(true) + $query = $db->createQuery() ->select('name AS text, element AS value') ->from('#__extensions') ->where('enabled >= 1') diff --git a/administrator/components/com_config/src/Field/FiltersField.php b/administrator/components/com_config/src/Field/FiltersField.php index d2b5a6a9cc2e5..d851735ae21e9 100644 --- a/administrator/components/com_config/src/Field/FiltersField.php +++ b/administrator/components/com_config/src/Field/FiltersField.php @@ -162,7 +162,7 @@ protected function getUserGroups() $db = $this->getDatabase(); // Get the user groups from the database. - $query = $db->getQuery(true); + $query = $db->createQuery(); $query->select('a.id AS value, a.title AS text, COUNT(DISTINCT b.id) AS level, a.parent_id as parent'); $query->from('#__usergroups AS a'); $query->join('LEFT', '#__usergroups AS b on a.lft > b.lft AND a.rgt < b.rgt'); diff --git a/administrator/components/com_config/src/Helper/ConfigHelper.php b/administrator/components/com_config/src/Helper/ConfigHelper.php index 115d384402162..92c472b351057 100644 --- a/administrator/components/com_config/src/Helper/ConfigHelper.php +++ b/administrator/components/com_config/src/Helper/ConfigHelper.php @@ -36,7 +36,7 @@ class ConfigHelper extends ContentHelper public static function getAllComponents() { $db = Factory::getDbo(); - $query = $db->getQuery(true) + $query = $db->createQuery() ->select('element') ->from('#__extensions') ->where('type = ' . $db->quote('component')) diff --git a/administrator/components/com_config/src/Model/ApplicationModel.php b/administrator/components/com_config/src/Model/ApplicationModel.php index e4160f5ed3d13..41f4087f8fe18 100644 --- a/administrator/components/com_config/src/Model/ApplicationModel.php +++ b/administrator/components/com_config/src/Model/ApplicationModel.php @@ -18,7 +18,6 @@ use Joomla\CMS\Event\Application\AfterSaveConfigurationEvent; use Joomla\CMS\Event\Application\BeforeSaveConfigurationEvent; use Joomla\CMS\Factory; -use Joomla\CMS\Http\HttpFactory; use Joomla\CMS\Language\Text; use Joomla\CMS\Log\Log; use Joomla\CMS\Mail\Exception\MailDisabledException; @@ -27,7 +26,7 @@ use Joomla\CMS\Mail\MailTemplate; use Joomla\CMS\MVC\Model\FormModel; use Joomla\CMS\Table\Asset; -use Joomla\CMS\Table\Table; +use Joomla\CMS\Table\Extension; use Joomla\CMS\Uri\Uri; use Joomla\CMS\User\UserHelper; use Joomla\Database\DatabaseDriver; @@ -36,6 +35,7 @@ use Joomla\Filesystem\Folder; use Joomla\Filesystem\Path; use Joomla\Filter\OutputFilter; +use Joomla\Http\HttpFactory; use Joomla\Registry\Registry; use Joomla\Utilities\ArrayHelper; use PHPMailer\PHPMailer\Exception as phpMailerException; @@ -364,7 +364,7 @@ public function save($data) CURLOPT_PROXYUSERPWD => null, ] ); - $response = HttpFactory::getHttp($options)->get('https://' . $host . Uri::root(true) . '/', ['Host' => $host], 10); + $response = (new HttpFactory())->getHttp($options)->get('https://' . $host . Uri::root(true) . '/', ['Host' => $host], 10); // If available in HTTPS check also the status code. if (!\in_array($response->getStatusCode(), [200, 503, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 401], true)) { @@ -397,7 +397,7 @@ public function save($data) return false; } - $asset = Table::getInstance('asset'); + $asset = new Asset($this->getDatabase()); if ($asset->loadByName('root.1')) { $asset->rules = (string) $rules; @@ -420,7 +420,7 @@ public function save($data) if (isset($data['filters'])) { $registry = new Registry(['filters' => $data['filters']]); - $extension = Table::getInstance('extension'); + $extension = new Extension($this->getDatabase()); // Get extension_id $extensionId = $extension->find(['name' => 'com_config']); @@ -461,7 +461,7 @@ public function save($data) // Purge the database session table if we are changing to the database handler. if ($prev['session_handler'] != 'database' && $data['session_handler'] == 'database') { $db = $this->getDatabase(); - $query = $db->getQuery(true) + $query = $db->createQuery() ->delete($db->quoteName('#__session')) ->where($db->quoteName('time') . ' < ' . (time() - 1)); $db->setQuery($query); @@ -474,7 +474,7 @@ public function save($data) // If we are are using the session handler, purge the extra columns, otherwise truncate the whole session table if ($data['session_handler'] === 'database') { $revisedDbo->setQuery( - $revisedDbo->getQuery(true) + $revisedDbo->createQuery() ->update('#__session') ->set( [ @@ -941,8 +941,7 @@ public function storePermissions($permission = null) } try { - /** @var Asset $asset */ - $asset = Table::getInstance('asset'); + $asset = new Asset($this->getDatabase()); $result = $asset->loadByName($permission['component']); if ($result === false) { @@ -954,8 +953,7 @@ public function storePermissions($permission = null) $asset->title = (string) $permission['title']; // Get the parent asset id so we have a correct tree. - /** @var Asset $parentAsset */ - $parentAsset = Table::getInstance('Asset'); + $parentAsset = new Asset($this->getDatabase()); if (str_contains($asset->name, '.')) { $assetParts = explode('.', $asset->name); @@ -1036,7 +1034,7 @@ public function storePermissions($permission = null) $db = $this->getDatabase(); // Get the asset id by the name of the component. - $query = $db->getQuery(true) + $query = $db->createQuery() ->select($db->quoteName('id')) ->from($db->quoteName('#__assets')) ->where($db->quoteName('name') . ' = :component') diff --git a/administrator/components/com_config/src/Model/ComponentModel.php b/administrator/components/com_config/src/Model/ComponentModel.php index 0a80503e4e836..3c1f1bf5ca6c3 100644 --- a/administrator/components/com_config/src/Model/ComponentModel.php +++ b/administrator/components/com_config/src/Model/ComponentModel.php @@ -18,7 +18,8 @@ use Joomla\CMS\Language\Text; use Joomla\CMS\MVC\Model\FormModel; use Joomla\CMS\Plugin\PluginHelper; -use Joomla\CMS\Table\Table; +use Joomla\CMS\Table\Asset; +use Joomla\CMS\Table\Extension; use Joomla\Filesystem\Path; // phpcs:disable PSR1.Files.SideEffects @@ -156,7 +157,7 @@ public function getComponent() */ public function save($data) { - $table = Table::getInstance('extension'); + $table = new Extension($this->getDatabase()); $context = $this->option . '.' . $this->name; PluginHelper::importPlugin('extension'); @@ -184,10 +185,10 @@ public function save($data) } $rules = new Rules($data['params']['rules']); - $asset = Table::getInstance('asset'); + $asset = new Asset($this->getDatabase()); if (!$asset->loadByName($data['option'])) { - $root = Table::getInstance('asset'); + $root = new Asset($this->getDatabase()); $root->loadByName('root.1'); $asset->name = $data['option']; $asset->title = $data['option']; diff --git a/administrator/components/com_config/src/View/Application/HtmlView.php b/administrator/components/com_config/src/View/Application/HtmlView.php index 6ec11ecb289a1..cebecc38b18a8 100644 --- a/administrator/components/com_config/src/View/Application/HtmlView.php +++ b/administrator/components/com_config/src/View/Application/HtmlView.php @@ -125,6 +125,10 @@ public function display($tpl = null) $this->addToolbar(); + // Add form control fields + $this->form + ->addControlField('task', ''); + parent::display($tpl); } diff --git a/administrator/components/com_config/src/View/Component/HtmlView.php b/administrator/components/com_config/src/View/Component/HtmlView.php index 486824d9f564d..90c5ffa34351f 100644 --- a/administrator/components/com_config/src/View/Component/HtmlView.php +++ b/administrator/components/com_config/src/View/Component/HtmlView.php @@ -125,6 +125,13 @@ public function display($tpl = null) $this->addToolbar(); + // Add form control fields + $this->form + ->addControlField('task', '') + ->addControlField('id', $this->component->id) + ->addControlField('component', $this->component->option) + ->addControlField('return', $this->return); + parent::display($tpl); } diff --git a/administrator/components/com_config/tmpl/application/default.php b/administrator/components/com_config/tmpl/application/default.php index 9ae86ea05fb60..a7f0de88f559e 100644 --- a/administrator/components/com_config/tmpl/application/default.php +++ b/administrator/components/com_config/tmpl/application/default.php @@ -77,8 +77,7 @@ - - + form->renderControlFields(); ?> diff --git a/administrator/components/com_config/tmpl/component/default.php b/administrator/components/com_config/tmpl/component/default.php index 0ffc394ad285b..fb439f77db7ab 100644 --- a/administrator/components/com_config/tmpl/component/default.php +++ b/administrator/components/com_config/tmpl/component/default.php @@ -135,10 +135,6 @@ - - - - - + form->renderControlFields(); ?> diff --git a/administrator/components/com_contact/src/Field/Modal/ContactField.php b/administrator/components/com_contact/src/Field/Modal/ContactField.php index 7dc872ac6db99..6832f18b7e8e0 100644 --- a/administrator/components/com_contact/src/Field/Modal/ContactField.php +++ b/administrator/components/com_contact/src/Field/Modal/ContactField.php @@ -138,7 +138,7 @@ protected function getValueTitle() if ($value) { try { $db = $this->getDatabase(); - $query = $db->getQuery(true) + $query = $db->createQuery() ->select($db->quoteName('name')) ->from($db->quoteName('#__contact_details')) ->where($db->quoteName('id') . ' = :value') diff --git a/administrator/components/com_contact/src/Helper/AssociationsHelper.php b/administrator/components/com_contact/src/Helper/AssociationsHelper.php index 35ee395ac5dfd..f98624830373d 100644 --- a/administrator/components/com_contact/src/Helper/AssociationsHelper.php +++ b/administrator/components/com_contact/src/Helper/AssociationsHelper.php @@ -11,8 +11,11 @@ namespace Joomla\Component\Contact\Administrator\Helper; use Joomla\CMS\Association\AssociationExtensionHelper; +use Joomla\CMS\Factory; use Joomla\CMS\Language\Associations; +use Joomla\CMS\Table\Category; use Joomla\CMS\Table\Table; +use Joomla\Component\Contact\Administrator\Table\ContactTable; use Joomla\Component\Contact\Site\Helper\AssociationHelper; // phpcs:disable PSR1.Files.SideEffects @@ -124,11 +127,11 @@ public function getItem($typeName, $id) switch ($typeName) { case 'contact': - $table = Table::getInstance('ContactTable', 'Joomla\\Component\\Contact\\Administrator\\Table\\'); + $table = new ContactTable(Factory::getDbo()); break; case 'category': - $table = Table::getInstance('Category'); + $table = new Category(Factory::getDbo()); break; } diff --git a/administrator/components/com_contact/src/Model/ContactModel.php b/administrator/components/com_contact/src/Model/ContactModel.php index 58d26e525c95c..44604ecc47887 100644 --- a/administrator/components/com_contact/src/Model/ContactModel.php +++ b/administrator/components/com_contact/src/Model/ContactModel.php @@ -18,6 +18,7 @@ use Joomla\CMS\Language\Text; use Joomla\CMS\MVC\Model\AdminModel; use Joomla\CMS\String\PunycodeHelper; +use Joomla\CMS\Versioning\VersionableModelInterface; use Joomla\CMS\Versioning\VersionableModelTrait; use Joomla\Component\Categories\Administrator\Helper\CategoriesHelper; use Joomla\Database\ParameterType; @@ -33,7 +34,7 @@ * * @since 1.6 */ -class ContactModel extends AdminModel +class ContactModel extends AdminModel implements VersionableModelInterface { use VersionableModelTrait; @@ -258,7 +259,7 @@ protected function loadFormData() // Prime some default values. if ($this->getState('contact.id') == 0) { - $data->set('catid', $app->getInput()->get('catid', $app->getUserState('com_contact.contacts.filter.category_id'), 'int')); + $data->catid = $app->getInput()->get('catid', $app->getUserState('com_contact.contacts.filter.category_id'), 'int'); } } @@ -368,7 +369,7 @@ protected function prepareTable($table) // Set ordering to the last item if not set if (empty($table->ordering)) { $db = $this->getDatabase(); - $query = $db->getQuery(true) + $query = $db->createQuery() ->select('MAX(ordering)') ->from($db->quoteName('#__contact_details')); $db->setQuery($query); @@ -478,7 +479,7 @@ public function featured($pks, $value = 0) try { $db = $this->getDatabase(); - $query = $db->getQuery(true); + $query = $db->createQuery(); $query->update($db->quoteName('#__contact_details')); $query->set($db->quoteName('featured') . ' = :featured'); $query->whereIn($db->quoteName('id'), $pks); diff --git a/administrator/components/com_contact/src/Model/ContactsModel.php b/administrator/components/com_contact/src/Model/ContactsModel.php index a783ac5a8bd43..a781a3ca4e6f4 100644 --- a/administrator/components/com_contact/src/Model/ContactsModel.php +++ b/administrator/components/com_contact/src/Model/ContactsModel.php @@ -14,7 +14,7 @@ use Joomla\CMS\Language\Associations; use Joomla\CMS\MVC\Factory\MVCFactoryInterface; use Joomla\CMS\MVC\Model\ListModel; -use Joomla\CMS\Table\Table; +use Joomla\CMS\Table\Category; use Joomla\Database\ParameterType; use Joomla\Database\QueryInterface; use Joomla\Utilities\ArrayHelper; @@ -146,7 +146,7 @@ protected function getListQuery() { // Create a new query object. $db = $this->getDatabase(); - $query = $db->getQuery(true); + $query = $db->createQuery(); $user = $this->getCurrentUser(); // Select the required fields from the table. @@ -208,7 +208,7 @@ protected function getListQuery() // Join over the associations. if (Associations::isEnabled()) { - $subQuery = $db->getQuery(true) + $subQuery = $db->createQuery() ->select('COUNT(' . $db->quoteName('asso1.id') . ') > 1') ->from($db->quoteName('#__associations', 'asso1')) ->join('INNER', $db->quoteName('#__associations', 'asso2'), $db->quoteName('asso1.key') . ' = ' . $db->quoteName('asso2.key')) @@ -291,7 +291,7 @@ protected function getListQuery() $includeNone = true; } - $subQuery = $db->getQuery(true) + $subQuery = $db->createQuery() ->select('DISTINCT ' . $db->quoteName('content_item_id')) ->from($db->quoteName('#__contentitem_tag_map')) ->where( @@ -308,7 +308,7 @@ protected function getListQuery() ); if ($includeNone) { - $subQuery2 = $db->getQuery(true) + $subQuery2 = $db->createQuery() ->select('DISTINCT ' . $db->quoteName('content_item_id')) ->from($db->quoteName('#__contentitem_tag_map')) ->where($db->quoteName('type_alias') . ' = ' . $db->quote('com_contact.contact')); @@ -326,7 +326,7 @@ protected function getListQuery() $tag = (int) $tag; if ($tag === 0) { - $subQuery = $db->getQuery(true) + $subQuery = $db->createQuery() ->select('DISTINCT ' . $db->quoteName('content_item_id')) ->from($db->quoteName('#__contentitem_tag_map')) ->where($db->quoteName('type_alias') . ' = ' . $db->quote('com_contact.contact')); @@ -365,7 +365,7 @@ protected function getListQuery() // Case: Using both categories filter and by level filter if (\count($categoryId)) { $categoryId = ArrayHelper::toInteger($categoryId); - $categoryTable = Table::getInstance('Category', '\\Joomla\\CMS\\Table\\'); + $categoryTable = new Category($db); $subCatItemsWhere = []; // @todo: Convert to prepared statement diff --git a/administrator/components/com_contact/src/Service/HTML/AdministratorService.php b/administrator/components/com_contact/src/Service/HTML/AdministratorService.php index d99c69510bb38..4c6a829bec937 100644 --- a/administrator/components/com_contact/src/Service/HTML/AdministratorService.php +++ b/administrator/components/com_contact/src/Service/HTML/AdministratorService.php @@ -52,7 +52,7 @@ public function association($contactid) // Get the associated contact items $db = Factory::getDbo(); - $query = $db->getQuery(true) + $query = $db->createQuery() ->select( [ $db->quoteName('c.id'), diff --git a/administrator/components/com_contact/src/Service/HTML/Icon.php b/administrator/components/com_contact/src/Service/HTML/Icon.php index 9073e21a66395..02b6c7f8f4684 100644 --- a/administrator/components/com_contact/src/Service/HTML/Icon.php +++ b/administrator/components/com_contact/src/Service/HTML/Icon.php @@ -100,7 +100,7 @@ public function create($category, $params, $attribs = []) */ public function edit($contact, $params, $attribs = [], $legacy = false) { - $user = Factory::getUser(); + $user = Factory::getApplication()->getIdentity(); $uri = Uri::getInstance(); // Ignore if in a popup window. diff --git a/administrator/components/com_contact/src/Table/ContactTable.php b/administrator/components/com_contact/src/Table/ContactTable.php index f3b369cdd92d5..c5d1d9c397420 100644 --- a/administrator/components/com_contact/src/Table/ContactTable.php +++ b/administrator/components/com_contact/src/Table/ContactTable.php @@ -20,7 +20,6 @@ use Joomla\CMS\Tag\TaggableTableTrait; use Joomla\CMS\User\CurrentUserInterface; use Joomla\CMS\User\CurrentUserTrait; -use Joomla\CMS\Versioning\VersionableTableInterface; use Joomla\Database\DatabaseInterface; use Joomla\Event\DispatcherInterface; use Joomla\String\StringHelper; @@ -34,7 +33,7 @@ * * @since 1.0 */ -class ContactTable extends Table implements VersionableTableInterface, TaggableTableInterface, CurrentUserInterface +class ContactTable extends Table implements TaggableTableInterface, CurrentUserInterface { use TaggableTableTrait; use CurrentUserTrait; diff --git a/administrator/components/com_contact/src/View/Contact/HtmlView.php b/administrator/components/com_contact/src/View/Contact/HtmlView.php index 5abfe5c972d58..f001c9b2e23ac 100644 --- a/administrator/components/com_contact/src/View/Contact/HtmlView.php +++ b/administrator/components/com_contact/src/View/Contact/HtmlView.php @@ -10,16 +10,11 @@ namespace Joomla\Component\Contact\Administrator\View\Contact; -use Joomla\CMS\Component\ComponentHelper; use Joomla\CMS\Factory; use Joomla\CMS\Helper\ContentHelper; -use Joomla\CMS\Language\Associations; use Joomla\CMS\Language\Text; -use Joomla\CMS\MVC\View\GenericDataException; -use Joomla\CMS\MVC\View\HtmlView as BaseHtmlView; -use Joomla\CMS\Toolbar\Toolbar; +use Joomla\CMS\MVC\View\FormView; use Joomla\CMS\Toolbar\ToolbarHelper; -use Joomla\Component\Contact\Administrator\Model\ContactModel; // phpcs:disable PSR1.Files.SideEffects \defined('_JEXEC') or die; @@ -30,68 +25,62 @@ * * @since 1.6 */ -class HtmlView extends BaseHtmlView +class HtmlView extends FormView { /** - * The Form object + * Set to true, if saving to menu should be supported * - * @var \Joomla\CMS\Form\Form + * @var boolean */ - protected $form; + protected $supportSaveMenu = true; /** - * The active item + * Holds the extension for categories, if available * - * @var object + * @var string */ - protected $item; + protected $categorySection = 'com_contact'; /** - * The model state + * Constructor * - * @var \Joomla\Registry\Registry - */ - protected $state; - - /** - * Array of fieldsets not to display - * - * @var string[] + * @param array $config An optional associative array of configuration settings. * - * @since 5.2.0 + * @since 6.0.0 */ - public $ignore_fieldsets = []; + public function __construct(array $config) + { + if (empty($config['option'])) { + $config['option'] = 'com_contact'; + } + + $config['help_link'] = 'Contacts:_Edit'; + $config['toolbar_icon'] = 'address-book contact'; + + parent::__construct($config); + } /** - * Display the view. - * - * @param string $tpl The name of the template file to parse; automatically searches through the template paths. + * Prepare view data * * @return void + * + * @since 6.0.0 */ - public function display($tpl = null) + protected function initializeView() { - /** @var ContactModel $model */ - $model = $this->getModel(); + parent::initializeView(); - // Initialise variables. - $this->form = $model->getForm(); - $this->item = $model->getItem(); - $this->state = $model->getState(); + $this->canDo = ContentHelper::getActions('com_contact', 'category', $this->item->catid); if ($this->getLayout() === 'modalreturn') { - parent::display($tpl); - return; } - // Check for errors. - if (\count($errors = $model->getErrors())) { - throw new GenericDataException(implode("\n", $errors), 500); - } - // If we are forcing a language in modal (used for associations). - if ($this->getLayout() === 'modal' && $forcedLanguage = Factory::getApplication()->getInput()->get('forcedLanguage', '', 'cmd')) { + $forcedLanguage = Factory::getApplication()->getInput()->get('forcedLanguage', '', 'cmd'); + + if ($this->getLayout() === 'modal' && $forcedLanguage) { // Set the language field to the forcedLanguage and disable changing it. $this->form->setValue('language', null, $forcedLanguage); $this->form->setFieldAttribute('language', 'readonly', 'true'); @@ -103,13 +92,10 @@ public function display($tpl = null) $this->form->setFieldAttribute('tags', 'language', '*,' . $forcedLanguage); } - if ($this->getLayout() !== 'modal') { - $this->addToolbar(); - } else { - $this->addModalToolbar(); - } - - parent::display($tpl); + // Add form control fields + $this->form + ->addControlField('task', '') + ->addControlField('forcedLanguage', $forcedLanguage); } /** @@ -121,91 +107,15 @@ public function display($tpl = null) */ protected function addToolbar() { - Factory::getApplication()->getInput()->set('hidemainmenu', true); - - $user = $this->getCurrentUser(); - $userId = $user->id; - $isNew = ($this->item->id == 0); - $checkedOut = !(\is_null($this->item->checked_out) || $this->item->checked_out == $userId); - $toolbar = $this->getDocument()->getToolbar(); - - // Since we don't track these assets at the item level, use the category id. - $canDo = ContentHelper::getActions('com_contact', 'category', $this->item->catid); - - ToolbarHelper::title($isNew ? Text::_('COM_CONTACT_MANAGER_CONTACT_NEW') : Text::_('COM_CONTACT_MANAGER_CONTACT_EDIT'), 'address-book contact'); + if ($this->getLayout() === 'modal') { + $this->addModalToolbar(); - // Build the actions for new and existing records. - if ($isNew) { - // For new records, check the create permission. - if (\count($user->getAuthorisedCategories('com_contact', 'core.create')) > 0) { - $toolbar->apply('contact.apply'); - - $saveGroup = $toolbar->dropdownButton('save-group'); - - $saveGroup->configure( - function (Toolbar $childBar) use ($user) { - $childBar->save('contact.save'); - - if ($user->authorise('core.create', 'com_menus.menu')) { - $childBar->save('contact.save2menu', 'JTOOLBAR_SAVE_TO_MENU'); - } - - $childBar->save2new('contact.save2new'); - } - ); - } - - $toolbar->cancel('contact.cancel', 'JTOOLBAR_CANCEL'); - } else { - // Since it's an existing record, check the edit permission, or fall back to edit own if the owner. - $itemEditable = $canDo->get('core.edit') || ($canDo->get('core.edit.own') && $this->item->created_by == $userId); - - // Can't save the record if it's checked out and editable - if (!$checkedOut && $itemEditable) { - $toolbar->apply('contact.apply'); - } - - $saveGroup = $toolbar->dropdownButton('save-group'); - - $saveGroup->configure( - function (Toolbar $childBar) use ($checkedOut, $itemEditable, $canDo, $user) { - // Can't save the record if it's checked out and editable - if (!$checkedOut && $itemEditable) { - $childBar->save('contact.save'); - - // We can save this record, but check the create permission to see if we can return to make a new one. - if ($canDo->get('core.create')) { - $childBar->save2new('contact.save2new'); - } - } - - // If checked out, we can still save2menu - if ($user->authorise('core.create', 'com_menus.menu')) { - $childBar->save('contact.save2menu', 'JTOOLBAR_SAVE_TO_MENU'); - } - - // If checked out, we can still save - if ($canDo->get('core.create')) { - $childBar->save2copy('contact.save2copy'); - } - } - ); - - $toolbar->cancel('contact.cancel'); - - if (ComponentHelper::isEnabled('com_contenthistory') && $this->state->get('params')->get('save_history', 0) && $itemEditable) { - $toolbar->versions('com_contact.contact', $this->item->id); - } - - if (Associations::isEnabled() && ComponentHelper::isEnabled('com_associations')) { - $toolbar->standardButton('contract', 'JTOOLBAR_ASSOCIATIONS', 'contact.editAssociations') - ->icon('icon-contract') - ->listCheck(false); - } + return; } - $toolbar->divider(); - $toolbar->help('Contacts:_Edit'); + parent::addToolbar(); + + return; } /** diff --git a/administrator/components/com_contact/src/View/Contacts/HtmlView.php b/administrator/components/com_contact/src/View/Contacts/HtmlView.php index 31cc14d977f47..135ff1867725b 100644 --- a/administrator/components/com_contact/src/View/Contacts/HtmlView.php +++ b/administrator/components/com_contact/src/View/Contacts/HtmlView.php @@ -13,11 +13,7 @@ use Joomla\CMS\Factory; use Joomla\CMS\Helper\ContentHelper; use Joomla\CMS\Language\Multilanguage; -use Joomla\CMS\Language\Text; -use Joomla\CMS\MVC\View\HtmlView as BaseHtmlView; -use Joomla\CMS\Toolbar\Button\DropdownButton; -use Joomla\CMS\Toolbar\ToolbarHelper; -use Joomla\Component\Contact\Administrator\Model\ContactsModel; +use Joomla\CMS\MVC\View\ListView; // phpcs:disable PSR1.Files.SideEffects \defined('_JEXEC') or die; @@ -28,79 +24,52 @@ * * @since 1.6 */ -class HtmlView extends BaseHtmlView +class HtmlView extends ListView { /** - * An array of items + * The help link for the view * - * @var array + * @var string */ - protected $items; + protected $helpLink = 'Contacts'; /** - * The pagination object + * Constructor * - * @var \Joomla\CMS\Pagination\Pagination + * @param array $config An optional associative array of configuration settings. */ - protected $pagination; - - /** - * The model state - * - * @var \Joomla\Registry\Registry - */ - protected $state; - - /** - * Form object for search filters - * - * @var \Joomla\CMS\Form\Form - */ - public $filterForm; + public function __construct(array $config) + { + if (empty($config['option'])) { + $config['option'] = 'com_contact'; + } - /** - * The active search filters - * - * @var array - */ - public $activeFilters; + $config['toolbar_icon'] = 'address-book contact'; + $config['supports_batch'] = true; - /** - * Is this view an Empty State - * - * @var boolean - * - * @since 4.0.0 - */ - private $isEmptyState = false; + parent::__construct($config); + } /** - * Display the view. - * - * @param string $tpl The name of the template file to parse; automatically searches through the template paths. + * Prepare view data * * @return void */ - public function display($tpl = null) + protected function initializeView() { - /** @var ContactsModel $model */ - $model = $this->getModel(); - $model->setUseExceptions(true); - - $this->items = $model->getItems(); - $this->pagination = $model->getPagination(); - $this->state = $model->getState(); - $this->filterForm = $model->getFilterForm(); - $this->activeFilters = $model->getActiveFilters(); - - if (!\count($this->items) && $this->isEmptyState = $model->getIsEmptyState()) { - $this->setLayout('emptystate'); + parent::initializeView(); + + $user = $this->getCurrentUser(); + + $this->canDo = ContentHelper::getActions('com_contact', 'category', $this->state->get('filter.category_id')); + + // Special case of we can create contact for specific categories show add button + if (\count($user->getAuthorisedCategories('com_contact', 'core.create')) > 0) { + $this->canDo->set('core.create', true); } // We don't need toolbar in the modal window. if ($this->getLayout() !== 'modal') { - $this->addToolbar(); - // We do not need to filter by language when multilingual is disabled if (!Multilanguage::isEnabled()) { unset($this->activeFilters['language']); @@ -109,7 +78,9 @@ public function display($tpl = null) } else { // In article associations modal we need to remove language filter if forcing a language. // We also need to change the category filter to show show categories with All or the forced language. - if ($forcedLanguage = Factory::getApplication()->getInput()->get('forcedLanguage', '', 'CMD')) { + $forcedLanguage = Factory::getApplication()->getInput()->get('forcedLanguage', '', 'CMD'); + + if ($forcedLanguage) { // If the language is forced we can't allow to select the language, so transform the language selector filter into a hidden field. $languageXml = new \SimpleXMLElement(''); $this->filterForm->setField($languageXml, 'filter', true); @@ -120,84 +91,9 @@ public function display($tpl = null) // One last changes needed is to change the category filter to just show categories with All language or with the forced language. $this->filterForm->setFieldAttribute('category_id', 'language', '*,' . $forcedLanguage, 'filter'); } - } - - parent::display($tpl); - } - - /** - * Add the page title and toolbar. - * - * @return void - * - * @since 1.6 - */ - protected function addToolbar() - { - $canDo = ContentHelper::getActions('com_contact', 'category', $this->state->get('filter.category_id')); - $user = $this->getCurrentUser(); - - // Get the toolbar object instance - $toolbar = $this->getDocument()->getToolbar(); - - ToolbarHelper::title(Text::_('COM_CONTACT_MANAGER_CONTACTS'), 'address-book contact'); - if ($canDo->get('core.create') || \count($user->getAuthorisedCategories('com_contact', 'core.create')) > 0) { - $toolbar->addNew('contact.add'); + $this->filterForm + ->addControlField('forcedLanguage', $forcedLanguage); } - - if (!$this->isEmptyState && $canDo->get('core.edit.state')) { - /** @var DropdownButton $dropdown */ - $dropdown = $toolbar->dropdownButton('status-group', 'JTOOLBAR_CHANGE_STATUS') - ->toggleSplit(false) - ->icon('icon-ellipsis-h') - ->buttonClass('btn btn-action') - ->listCheck(true); - - $childBar = $dropdown->getChildToolbar(); - - $childBar->publish('contacts.publish')->listCheck(true); - $childBar->unpublish('contacts.unpublish')->listCheck(true); - $childBar->standardButton('featured', 'JFEATURE', 'contacts.featured') - ->listCheck(true); - $childBar->standardButton('unfeatured', 'JUNFEATURE', 'contacts.unfeatured') - ->listCheck(true); - $childBar->archive('contacts.archive')->listCheck(true); - - if ($user->authorise('core.admin')) { - $childBar->checkin('contacts.checkin'); - } - - if ($this->state->get('filter.published') != -2) { - $childBar->trash('contacts.trash')->listCheck(true); - } - - // Add a batch button - if ( - $user->authorise('core.create', 'com_contact') - && $user->authorise('core.edit', 'com_contact') - && $user->authorise('core.edit.state', 'com_contact') - ) { - $childBar->popupButton('batch', 'JTOOLBAR_BATCH') - ->popupType('inline') - ->textHeader(Text::_('COM_CONTACT_BATCH_OPTIONS')) - ->url('#joomla-dialog-batch') - ->modalWidth('800px') - ->modalHeight('fit-content') - ->listCheck(true); - } - } - - if (!$this->isEmptyState && $this->state->get('filter.published') == -2 && $canDo->get('core.delete')) { - $toolbar->delete('contacts.delete', 'JTOOLBAR_DELETE_FROM_TRASH') - ->message('JGLOBAL_CONFIRM_DELETE') - ->listCheck(true); - } - - if ($user->authorise('core.admin', 'com_contact') || $user->authorise('core.options', 'com_contact')) { - $toolbar->preferences('com_contact'); - } - - $toolbar->help('Contacts'); } } diff --git a/administrator/components/com_contact/tmpl/contact/edit.php b/administrator/components/com_contact/tmpl/contact/edit.php index dddda905f7305..c45ef221aaafd 100644 --- a/administrator/components/com_contact/tmpl/contact/edit.php +++ b/administrator/components/com_contact/tmpl/contact/edit.php @@ -130,7 +130,6 @@ - - - + + form->renderControlFields(); ?> diff --git a/administrator/components/com_contact/tmpl/contacts/default.php b/administrator/components/com_contact/tmpl/contacts/default.php index 83049cc92f6be..b83f040feabb8 100644 --- a/administrator/components/com_contact/tmpl/contacts/default.php +++ b/administrator/components/com_contact/tmpl/contacts/default.php @@ -187,17 +187,12 @@ authorise('core.create', 'com_contact') - && $user->authorise('core.edit', 'com_contact') - && $user->authorise('core.edit.state', 'com_contact') - ) : ?> + if ($this->batchAllowed) : ?> - - - + + filterForm->renderControlFields(); ?> diff --git a/administrator/components/com_contact/tmpl/contacts/emptystate.php b/administrator/components/com_contact/tmpl/contacts/emptystate.php index c42bdffdf487b..2c0df25d1af6a 100644 --- a/administrator/components/com_contact/tmpl/contacts/emptystate.php +++ b/administrator/components/com_contact/tmpl/contacts/emptystate.php @@ -19,6 +19,8 @@ 'formURL' => 'index.php?option=com_contact', 'helpURL' => 'https://docs.joomla.org/Special:MyLanguage/Help5.x:Contacts', 'icon' => 'icon-address-book contact', + + 'controlFields' => $this->filterForm->renderControlFields(), ]; $user = $this->getCurrentUser(); diff --git a/administrator/components/com_contact/tmpl/contacts/modal.php b/administrator/components/com_contact/tmpl/contacts/modal.php index ed2579532dc83..8b44a1751b008 100644 --- a/administrator/components/com_contact/tmpl/contacts/modal.php +++ b/administrator/components/com_contact/tmpl/contacts/modal.php @@ -161,9 +161,7 @@ - - - + filterForm->renderControlFields(); ?> diff --git a/administrator/components/com_content/forms/filter_articles.xml b/administrator/components/com_content/forms/filter_articles.xml index 88211741e70ef..6b9be58d6a399 100644 --- a/administrator/components/com_content/forms/filter_articles.xml +++ b/administrator/components/com_content/forms/filter_articles.xml @@ -14,8 +14,8 @@ name="featured" type="list" label="JFEATURED" + filtermode="selector" class="js-select-submit-on-change" - default="" validate="options" > diff --git a/administrator/components/com_content/forms/filter_featured.xml b/administrator/components/com_content/forms/filter_featured.xml deleted file mode 100644 index 5fdeefc9a2a9a..0000000000000 --- a/administrator/components/com_content/forms/filter_featured.xml +++ /dev/null @@ -1,156 +0,0 @@ - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
diff --git a/administrator/components/com_content/presets/content.xml b/administrator/components/com_content/presets/content.xml index 214cf4c8ce64c..3b64b9cbb73da 100644 --- a/administrator/components/com_content/presets/content.xml +++ b/administrator/components/com_content/presets/content.xml @@ -32,7 +32,7 @@ title="COM_CONTENT_MENUS_FEATURED" type="component" element="com_content" - link="index.php?option=com_content&view=featured" + link="index.php?option=com_content&view=articles&filter[featured]=1" class="class:featured" /> diff --git a/administrator/components/com_content/src/Controller/AjaxController.php b/administrator/components/com_content/src/Controller/AjaxController.php index 9b8047b685320..144e0ff504551 100644 --- a/administrator/components/com_content/src/Controller/AjaxController.php +++ b/administrator/components/com_content/src/Controller/AjaxController.php @@ -10,13 +10,14 @@ namespace Joomla\Component\Content\Administrator\Controller; +use Joomla\CMS\Factory; use Joomla\CMS\Language\Associations; use Joomla\CMS\Language\LanguageHelper; use Joomla\CMS\Language\Text; use Joomla\CMS\MVC\Controller\BaseController; use Joomla\CMS\Response\JsonResponse; use Joomla\CMS\Session\Session; -use Joomla\CMS\Table\Table; +use Joomla\CMS\Table\Content; // phpcs:disable PSR1.Files.SideEffects \defined('_JEXEC') or die; @@ -61,7 +62,7 @@ public function fetchAssociations() unset($associations[$excludeLang]); // Add the title to each of the associated records - $contentTable = Table::getInstance('Content', '\\Joomla\\CMS\\Table\\'); + $contentTable = new Content(Factory::getDbo()); foreach ($associations as $association) { $contentTable->load($association->id); diff --git a/administrator/components/com_content/src/Controller/ArticlesController.php b/administrator/components/com_content/src/Controller/ArticlesController.php index dc86b71f090e5..4794e167e1c0f 100644 --- a/administrator/components/com_content/src/Controller/ArticlesController.php +++ b/administrator/components/com_content/src/Controller/ArticlesController.php @@ -16,6 +16,7 @@ use Joomla\CMS\MVC\Factory\MVCFactoryInterface; use Joomla\CMS\Response\JsonResponse; use Joomla\CMS\Router\Route; +use Joomla\Component\Content\Administrator\Model\ArticlesModel; use Joomla\Input\Input; use Joomla\Utilities\ArrayHelper; @@ -145,9 +146,7 @@ public function getQuickiconContent() { $model = $this->getModel('articles'); - $model->setState('filter.published', 1); - - $amount = (int) $model->getTotal(); + $amount = (int) $model->getTotal($featured = ''); $result = []; @@ -157,4 +156,31 @@ public function getQuickiconContent() echo new JsonResponse($result); } + + /** + * Method to get the number of published featured articles for quickicons + * + * @return void + * + * @since 6.0.0 + */ + public function getQuickiconFeatured() + { + /** + * @var ArticlesModel $model + */ + $model = $this->getModel('articles'); + + $model->setState('filter.featured', '1'); + + $amount = (int) $model->getTotal(); + + $result = []; + + $result['amount'] = $amount; + $result['sronly'] = Text::plural('COM_CONTENT_FEATURED_N_QUICKICON_SRONLY', $amount); + $result['name'] = Text::plural('COM_CONTENT_FEATURED_N_QUICKICON', $amount); + + echo new JsonResponse($result); + } } diff --git a/administrator/components/com_content/src/Controller/DisplayController.php b/administrator/components/com_content/src/Controller/DisplayController.php index 158c8f3a17ce3..1afb8032bd43d 100644 --- a/administrator/components/com_content/src/Controller/DisplayController.php +++ b/administrator/components/com_content/src/Controller/DisplayController.php @@ -62,6 +62,11 @@ public function display($cachable = false, $urlparams = []) return false; } + if ($view === 'featured' || $this->input->getInt('featured')) { + $this->setRedirect(Route::_('index.php?option=com_content&view=articles&filter[featured]=1', false)); + return false; + } + return parent::display(); } } diff --git a/administrator/components/com_content/src/Controller/FeaturedController.php b/administrator/components/com_content/src/Controller/FeaturedController.php index 92756c9fc89c6..49fc019fc21d7 100644 --- a/administrator/components/com_content/src/Controller/FeaturedController.php +++ b/administrator/components/com_content/src/Controller/FeaturedController.php @@ -10,9 +10,6 @@ namespace Joomla\Component\Content\Administrator\Controller; -use Joomla\CMS\Language\Text; -use Joomla\CMS\Response\JsonResponse; - // phpcs:disable PSR1.Files.SideEffects \defined('_JEXEC') or die; // phpcs:enable PSR1.Files.SideEffects @@ -21,107 +18,11 @@ * Featured content controller class. * * @since 1.6 + * + * @deprecated 6.0 will be removed in 8.0 + * Use \Joomla\Component\Content\Administrator\Controller\ArticlesController instead + * For Quickicons use articles.getQuickiconFeatured() */ class FeaturedController extends ArticlesController { - /** - * Removes an item. - * - * @return void - * - * @since 1.6 - */ - public function delete() - { - // Check for request forgeries - $this->checkToken(); - - $user = $this->app->getIdentity(); - $ids = (array) $this->input->get('cid', [], 'int'); - - // Access checks. - foreach ($ids as $i => $id) { - // Remove zero value resulting from input filter - if ($id === 0) { - unset($ids[$i]); - - continue; - } - - if (!$user->authorise('core.delete', 'com_content.article.' . (int) $id)) { - // Prune items that you can't delete. - unset($ids[$i]); - $this->app->enqueueMessage(Text::_('JERROR_CORE_DELETE_NOT_PERMITTED'), 'notice'); - } - } - - if (empty($ids)) { - $this->app->enqueueMessage(Text::_('JERROR_NO_ITEMS_SELECTED'), 'error'); - } else { - /** @var \Joomla\Component\Content\Administrator\Model\FeatureModel $model */ - $model = $this->getModel(); - - // Remove the items. - if (!$model->featured($ids, 0)) { - $this->app->enqueueMessage($model->getError(), 'error'); - } - } - - $this->setRedirect('index.php?option=com_content&view=featured'); - } - - /** - * Method to publish a list of articles. - * - * @return void - * - * @since 1.0 - */ - public function publish() - { - parent::publish(); - - $this->setRedirect('index.php?option=com_content&view=featured'); - } - - /** - * Method to get a model object, loading it if required. - * - * @param string $name The model name. Optional. - * @param string $prefix The class prefix. Optional. - * @param array $config Configuration array for model. Optional. - * - * @return \Joomla\CMS\MVC\Model\BaseDatabaseModel The model. - * - * @since 1.6 - */ - public function getModel($name = 'Feature', $prefix = 'Administrator', $config = ['ignore_request' => true]) - { - return parent::getModel($name, $prefix, $config); - } - - /** - * Method to get the number of published featured articles for quickicons - * - * @return void - * - * @since 4.3.0 - */ - public function getQuickiconContent() - { - $model = $this->getModel('articles'); - - $model->setState('filter.published', 1); - $model->setState('filter.featured', 1); - - $amount = (int) $model->getTotal(); - - $result = []; - - $result['amount'] = $amount; - $result['sronly'] = Text::plural('COM_CONTENT_FEATURED_N_QUICKICON_SRONLY', $amount); - $result['name'] = Text::plural('COM_CONTENT_FEATURED_N_QUICKICON', $amount); - - echo new JsonResponse($result); - } } diff --git a/administrator/components/com_content/src/Field/Modal/ArticleField.php b/administrator/components/com_content/src/Field/Modal/ArticleField.php index c173321bbf6c0..478227bb2dbb0 100644 --- a/administrator/components/com_content/src/Field/Modal/ArticleField.php +++ b/administrator/components/com_content/src/Field/Modal/ArticleField.php @@ -138,7 +138,7 @@ protected function getValueTitle() if ($value) { try { $db = $this->getDatabase(); - $query = $db->getQuery(true) + $query = $db->createQuery() ->select($db->quoteName('title')) ->from($db->quoteName('#__content')) ->where($db->quoteName('id') . ' = :value') diff --git a/administrator/components/com_content/src/Helper/AssociationsHelper.php b/administrator/components/com_content/src/Helper/AssociationsHelper.php index 7a0c73cc48c0e..3580bf942559f 100644 --- a/administrator/components/com_content/src/Helper/AssociationsHelper.php +++ b/administrator/components/com_content/src/Helper/AssociationsHelper.php @@ -11,7 +11,10 @@ namespace Joomla\Component\Content\Administrator\Helper; use Joomla\CMS\Association\AssociationExtensionHelper; +use Joomla\CMS\Factory; use Joomla\CMS\Language\Associations; +use Joomla\CMS\Table\Category; +use Joomla\CMS\Table\Content; use Joomla\CMS\Table\Table; use Joomla\Component\Content\Site\Helper\AssociationHelper; @@ -124,11 +127,11 @@ public function getItem($typeName, $id) switch ($typeName) { case 'article': - $table = Table::getInstance('Content'); + $table = new Content(Factory::getDbo()); break; case 'category': - $table = Table::getInstance('Category'); + $table = new Category(Factory::getDbo()); break; } diff --git a/administrator/components/com_content/src/Helper/ContentHelper.php b/administrator/components/com_content/src/Helper/ContentHelper.php index 46aa32889767d..db9da991acba1 100644 --- a/administrator/components/com_content/src/Helper/ContentHelper.php +++ b/administrator/components/com_content/src/Helper/ContentHelper.php @@ -41,7 +41,7 @@ class ContentHelper extends \Joomla\CMS\Helper\ContentHelper public static function canDeleteState(int $id): bool { $db = Factory::getDbo(); - $query = $db->getQuery(true); + $query = $db->createQuery(); $query->select('id') ->from($db->quoteName('#__content')) @@ -110,7 +110,7 @@ public static function onPrepareForm(Form $form, $data) return; } - $query = $db->getQuery(true); + $query = $db->createQuery(); $query->select($db->quoteName('title')) ->from($db->quoteName('#__workflows')) @@ -139,7 +139,7 @@ public static function onPrepareForm(Form $form, $data) if (!empty($categories)) { $categories = array_reverse($categories); - $query = $db->getQuery(true); + $query = $db->createQuery(); $query->select($db->quoteName('title')) ->from($db->quoteName('#__workflows')) diff --git a/administrator/components/com_content/src/Model/ArticleModel.php b/administrator/components/com_content/src/Model/ArticleModel.php index fb96bf9ff815d..f4f94e90c643e 100644 --- a/administrator/components/com_content/src/Model/ArticleModel.php +++ b/administrator/components/com_content/src/Model/ArticleModel.php @@ -29,6 +29,7 @@ use Joomla\CMS\Table\TableInterface; use Joomla\CMS\Tag\TaggableTableInterface; use Joomla\CMS\UCM\UCMType; +use Joomla\CMS\Versioning\VersionableModelInterface; use Joomla\CMS\Versioning\VersionableModelTrait; use Joomla\CMS\Workflow\Workflow; use Joomla\Component\Categories\Administrator\Helper\CategoriesHelper; @@ -49,7 +50,7 @@ * @since 1.6 */ -class ArticleModel extends AdminModel implements WorkflowModelInterface +class ArticleModel extends AdminModel implements WorkflowModelInterface, VersionableModelInterface { use WorkflowBehaviorTrait; use VersionableModelTrait; @@ -140,7 +141,7 @@ protected function cleanupPostBatchCopy(TableInterface $table, $newId, $oldId) // Check if the article was featured and update the #__content_frontpage table if ($table->featured == 1) { $db = $this->getDatabase(); - $query = $db->getQuery(true) + $query = $db->createQuery() ->select( [ $db->quoteName('featured_up'), @@ -154,7 +155,7 @@ protected function cleanupPostBatchCopy(TableInterface $table, $newId, $oldId) $featured = $db->setQuery($query)->loadObject(); if ($featured) { - $query = $db->getQuery(true) + $query = $db->createQuery() ->insert($db->quoteName('#__content_frontpage')) ->values(':newId, 0, :featuredUp, :featuredDown') ->bind(':newId', $newId, ParameterType::INTEGER) @@ -410,7 +411,7 @@ public function getItem($pk = null) if ($item->featured) { // Get featured dates. $db = $this->getDatabase(); - $query = $db->getQuery(true) + $query = $db->createQuery() ->select( [ $db->quoteName('featured_up'), @@ -579,13 +580,10 @@ protected function loadFormData() // Pre-select some filters (Status, Category, Language, Access) in edit form if those have been selected in Article Manager: Articles if ($this->getState('article.id') == 0) { - $filters = (array) $app->getUserState('com_content.articles.filter'); - $data->set( + $filters = (array) $app->getUserState('com_content.articles.filter'); + $data->state = $app->getInput()->getInt( 'state', - $app->getInput()->getInt( - 'state', - ((isset($filters['published']) && $filters['published'] !== '') ? $filters['published'] : null) - ) + ((isset($filters['published']) && $filters['published'] !== '') ? $filters['published'] : null) ); // If multiple categories are filtered, pick the first one to avoid loading all fields @@ -598,16 +596,13 @@ protected function loadFormData() $selectedCatId = (int) $filteredCategories; } - $data->set('catid', $app->getInput()->getInt('catid', $selectedCatId)); + $data->catid = $app->getInput()->getInt('catid', $selectedCatId); if ($app->isClient('administrator')) { - $data->set('language', $app->getInput()->getString('language', (!empty($filters['language']) ? $filters['language'] : null))); + $data->language = $app->getInput()->getString('language', (!empty($filters['language']) ? $filters['language'] : null)); } - $data->set( - 'access', - $app->getInput()->getInt('access', (!empty($filters['access']) ? $filters['access'] : $app->get('access'))) - ); + $data->access = $app->getInput()->getInt('access', (!empty($filters['access']) ? $filters['access'] : $app->get('access'))); } } @@ -880,7 +875,7 @@ public function featured($pks, $value = 0, $featuredUp = null, $featuredDown = n try { $db = $this->getDatabase(); - $query = $db->getQuery(true) + $query = $db->createQuery() ->update($db->quoteName('#__content')) ->set($db->quoteName('featured') . ' = :featured') ->whereIn($db->quoteName('id'), $pks) @@ -891,14 +886,14 @@ public function featured($pks, $value = 0, $featuredUp = null, $featuredDown = n if ($value === 0) { // Adjust the mapping table. // Clear the existing features settings. - $query = $db->getQuery(true) + $query = $db->createQuery() ->delete($db->quoteName('#__content_frontpage')) ->whereIn($db->quoteName('content_id'), $pks); $db->setQuery($query); $db->execute(); } else { // First, we find out which of our new featured articles are already featured. - $query = $db->getQuery(true) + $query = $db->createQuery() ->select($db->quoteName('content_id')) ->from($db->quoteName('#__content_frontpage')) ->whereIn($db->quoteName('content_id'), $pks); @@ -908,7 +903,7 @@ public function featured($pks, $value = 0, $featuredUp = null, $featuredDown = n // Update old featured articles if (\count($oldFeatured)) { - $query = $db->getQuery(true) + $query = $db->createQuery() ->update($db->quoteName('#__content_frontpage')) ->set( [ @@ -928,7 +923,7 @@ public function featured($pks, $value = 0, $featuredUp = null, $featuredDown = n // Featuring. if ($newFeatured) { - $query = $db->getQuery(true) + $query = $db->createQuery() ->insert($db->quoteName('#__content_frontpage')) ->columns( [ @@ -1055,15 +1050,13 @@ protected function preprocessForm(Form $form, $data, $group = 'content') /** * Custom clean the cache of com_content and content modules * - * @param string $group The cache group - * @param integer $clientId No longer used, will be removed without replacement - * @deprecated 4.3 will be removed in 6.0 + * @param string $group Cache group name. * * @return void * * @since 1.6 */ - protected function cleanCache($group = null, $clientId = 0) + protected function cleanCache($group = null) { parent::cleanCache('com_content'); parent::cleanCache('mod_articles_archive'); @@ -1113,7 +1106,7 @@ public function delete(&$pks) if ($return) { // Now check to see if this articles was featured if so delete it from the #__content_frontpage table $db = $this->getDatabase(); - $query = $db->getQuery(true) + $query = $db->createQuery() ->delete($db->quoteName('#__content_frontpage')) ->whereIn($db->quoteName('content_id'), $pks); $db->setQuery($query); diff --git a/administrator/components/com_content/src/Model/ArticlesModel.php b/administrator/components/com_content/src/Model/ArticlesModel.php index 8add698bad7bf..aa5ba437569ee 100644 --- a/administrator/components/com_content/src/Model/ArticlesModel.php +++ b/administrator/components/com_content/src/Model/ArticlesModel.php @@ -17,7 +17,7 @@ use Joomla\CMS\MVC\Factory\MVCFactoryInterface; use Joomla\CMS\MVC\Model\ListModel; use Joomla\CMS\Plugin\PluginHelper; -use Joomla\CMS\Table\Table; +use Joomla\CMS\Table\Category; use Joomla\Component\Content\Administrator\Extension\ContentComponent; use Joomla\Database\ParameterType; use Joomla\Database\QueryInterface; @@ -76,6 +76,7 @@ public function __construct($config = [], ?MVCFactoryInterface $factory = null) 'rating_count', 'rating', 'stage', 'wa.stage_id', 'ws.title', + 'fp.ordering', ]; if (Associations::isEnabled()) { @@ -176,6 +177,7 @@ protected function getStoreId($id = '') $id .= ':' . $this->getState('filter.search'); $id .= ':' . serialize($this->getState('filter.access')); $id .= ':' . $this->getState('filter.published'); + $id .= ':' . $this->getState('filter.featured'); $id .= ':' . serialize($this->getState('filter.category_id')); $id .= ':' . serialize($this->getState('filter.author_id')); $id .= ':' . $this->getState('filter.language'); @@ -196,7 +198,7 @@ protected function getListQuery() { // Create a new query object. $db = $this->getDatabase(); - $query = $db->getQuery(true); + $query = $db->createQuery(); $user = $this->getCurrentUser(); $params = ComponentHelper::getParams('com_content'); @@ -285,7 +287,7 @@ protected function getListQuery() // Join over the associations. if (Associations::isEnabled()) { - $subQuery = $db->getQuery(true) + $subQuery = $db->createQuery() ->select('COUNT(' . $db->quoteName('asso1.id') . ') > 1') ->from($db->quoteName('#__associations', 'asso1')) ->join('INNER', $db->quoteName('#__associations', 'asso2'), $db->quoteName('asso1.key') . ' = ' . $db->quoteName('asso2.key')) @@ -312,12 +314,19 @@ protected function getListQuery() } // Filter by featured. - $featured = (string) $this->getState('filter.featured'); + $featured = $this->getState('filter.featured'); - if (\in_array($featured, ['0','1'])) { + $defaultOrdering = 'a.id'; + + if (is_numeric($featured) && \in_array($featured, [0, 1])) { $featured = (int) $featured; $query->where($db->quoteName('a.featured') . ' = :featured') ->bind(':featured', $featured, ParameterType::INTEGER); + + if ($featured) { + $query->select($db->quoteName('fp.ordering')); + $defaultOrdering = 'fp.ordering'; + } } // Filter by access level on categories. @@ -365,7 +374,7 @@ protected function getListQuery() // Case: Using both categories filter and by level filter if (\count($categoryId)) { $categoryId = ArrayHelper::toInteger($categoryId); - $categoryTable = Table::getInstance('Category', '\\Joomla\\CMS\\Table\\'); + $categoryTable = new Category($db); $subCatItemsWhere = []; foreach ($categoryId as $key => $filter_catid) { @@ -405,7 +414,7 @@ protected function getListQuery() if ($authorId === 0) { // Only show deleted authors' articles - $subQuery = $db->getQuery(true) + $subQuery = $db->createQuery() ->select($db->quoteName('id')) ->from($db->quoteName('#__users')); @@ -431,7 +440,7 @@ protected function getListQuery() $authorId = array_filter($authorId); // Subquery for deleted users - $subQuery = $db->getQuery(true) + $subQuery = $db->createQuery() ->select($db->quoteName('id')) ->from($db->quoteName('#__users')); @@ -519,7 +528,7 @@ protected function getListQuery() $includeNone = true; } - $subQuery = $db->getQuery(true) + $subQuery = $db->createQuery() ->select('DISTINCT ' . $db->quoteName('content_item_id')) ->from($db->quoteName('#__contentitem_tag_map')) ->where( @@ -536,7 +545,7 @@ protected function getListQuery() ); if ($includeNone) { - $subQuery2 = $db->getQuery(true) + $subQuery2 = $db->createQuery() ->select('DISTINCT ' . $db->quoteName('content_item_id')) ->from($db->quoteName('#__contentitem_tag_map')) ->where($db->quoteName('type_alias') . ' = ' . $db->quote('com_content.article')); @@ -554,7 +563,7 @@ protected function getListQuery() $tag = (int) $tag; if ($tag === 0) { - $subQuery = $db->getQuery(true) + $subQuery = $db->createQuery() ->select('DISTINCT ' . $db->quoteName('content_item_id')) ->from($db->quoteName('#__contentitem_tag_map')) ->where($db->quoteName('type_alias') . ' = ' . $db->quote('com_content.article')); @@ -582,8 +591,24 @@ protected function getListQuery() } } + // Filter by date after modified date. + $modifiedStartDateTime = $this->getState('filter.modified_start'); + + if (!empty($modifiedStartDateTime)) { + $query->where($db->quoteName('a.modified') . ' >= :startDate') + ->bind(':startDate', $modifiedStartDateTime); + } + + // Filter by date before modified date. + $modifiedEndDateTime = $this->getState('filter.modified_end'); + + if (!empty($modifiedEndDateTime)) { + $query->where($db->quoteName('a.modified') . ' <= :endDate') + ->bind(':endDate', $modifiedEndDateTime); + } + // Add the list ordering clause. - $orderCol = $this->state->get('list.ordering', 'a.id'); + $orderCol = $this->state->get('list.ordering', $defaultOrdering); $orderDirn = $this->state->get('list.direction', 'DESC'); if ($orderCol === 'a.ordering' || $orderCol === 'category_title') { @@ -640,7 +665,7 @@ public function getTransitions() if (\count($stage_ids) || \count($workflow_ids)) { Factory::getLanguage()->load('com_workflow', JPATH_ADMINISTRATOR); - $query = $db->getQuery(true); + $query = $db->createQuery(); $query ->select( [ diff --git a/administrator/components/com_content/src/Model/FeaturedModel.php b/administrator/components/com_content/src/Model/FeaturedModel.php index 4491380af7a88..a9ecfb6378781 100644 --- a/administrator/components/com_content/src/Model/FeaturedModel.php +++ b/administrator/components/com_content/src/Model/FeaturedModel.php @@ -10,9 +10,6 @@ namespace Joomla\Component\Content\Administrator\Model; -use Joomla\CMS\MVC\Factory\MVCFactoryInterface; -use Joomla\Database\QueryInterface; - // phpcs:disable PSR1.Files.SideEffects \defined('_JEXEC') or die; // phpcs:enable PSR1.Files.SideEffects @@ -21,87 +18,11 @@ * Methods supporting a list of featured article records. * * @since 1.6 + * + * @deprecated 6.0 will be removed in 8.0 + * Use \Joomla\Component\Content\Administrator\Model\ArticlesModel instead + * set the filter.featured state to 1 to get only featured articles */ class FeaturedModel extends ArticlesModel { - /** - * Constructor. - * - * @param array $config An optional associative array of configuration settings. - * @param ?MVCFactoryInterface $factory The factory. - * - * @see \Joomla\CMS\MVC\Controller\BaseController - * @since 1.6 - */ - public function __construct($config = [], ?MVCFactoryInterface $factory = null) - { - if (empty($config['filter_fields'])) { - $config['filter_fields'] = [ - 'id', 'a.id', - 'title', 'a.title', - 'alias', 'a.alias', - 'checked_out', 'a.checked_out', - 'checked_out_time', 'a.checked_out_time', - 'catid', 'a.catid', 'category_title', - 'state', 'a.state', - 'access', 'a.access', 'access_level', - 'created', 'a.created', - 'created_by', 'a.created_by', - 'created_by_alias', 'a.created_by_alias', - 'ordering', 'a.ordering', - 'featured_up', 'fp.featured_up', - 'featured_down', 'fp.featured_down', - 'language', 'a.language', - 'hits', 'a.hits', - 'publish_up', 'a.publish_up', - 'publish_down', 'a.publish_down', - 'fp.ordering', - 'published', 'a.published', - 'author_id', - 'category_id', - 'level', - 'tag', - 'rating_count', 'rating', - 'ws.title', - ]; - } - - parent::__construct($config, $factory); - } - - /** - * Method to auto-populate the model state. - * - * Note. Calling getState in this method will result in recursion. - * - * @param string $ordering An optional ordering field. - * @param string $direction An optional direction (asc|desc). - * - * @return void - * - * @since 3.5 - */ - protected function populateState($ordering = 'a.title', $direction = 'asc') - { - parent::populateState($ordering, $direction); - - // Filter by featured articles. - $this->setState('filter.featured', 1); - } - - /** - * Build an SQL query to load the list data. - * - * @return QueryInterface - * - * @since 4.0.0 - */ - protected function getListQuery() - { - $query = parent::getListQuery(); - - $query->select($this->getDatabase()->quoteName('fp.ordering')); - - return $query; - } } diff --git a/administrator/components/com_content/src/Service/HTML/AdministratorService.php b/administrator/components/com_content/src/Service/HTML/AdministratorService.php index bc6836e6897a4..651637a1ea09d 100644 --- a/administrator/components/com_content/src/Service/HTML/AdministratorService.php +++ b/administrator/components/com_content/src/Service/HTML/AdministratorService.php @@ -51,7 +51,7 @@ public function association($articleid) // Get the associated menu items $db = Factory::getDbo(); - $query = $db->getQuery(true) + $query = $db->createQuery() ->select( [ 'c.*', diff --git a/administrator/components/com_content/src/View/Article/HtmlView.php b/administrator/components/com_content/src/View/Article/HtmlView.php index 1cebea5ae0abe..7ad630a259bc9 100644 --- a/administrator/components/com_content/src/View/Article/HtmlView.php +++ b/administrator/components/com_content/src/View/Article/HtmlView.php @@ -10,17 +10,11 @@ namespace Joomla\Component\Content\Administrator\View\Article; -use Joomla\CMS\Component\ComponentHelper; use Joomla\CMS\Factory; use Joomla\CMS\Helper\ContentHelper; -use Joomla\CMS\Language\Associations; use Joomla\CMS\Language\Text; -use Joomla\CMS\MVC\View\HtmlView as BaseHtmlView; -use Joomla\CMS\Plugin\PluginHelper; -use Joomla\CMS\Router\Route; -use Joomla\CMS\Toolbar\Toolbar; +use Joomla\CMS\MVC\View\FormView; use Joomla\CMS\Toolbar\ToolbarHelper; -use Joomla\Component\Content\Administrator\Model\ArticleModel; use Joomla\Component\Content\Site\Helper\RouteHelper; // phpcs:disable PSR1.Files.SideEffects @@ -32,83 +26,71 @@ * * @since 1.6 */ -class HtmlView extends BaseHtmlView +class HtmlView extends FormView { /** - * The \JForm object + * Pagebreak TOC alias * - * @var \Joomla\CMS\Form\Form + * @var string */ - protected $form; + protected $eName; /** - * The active item + * Set to true, if saving to menu should be supported * - * @var object + * @var boolean */ - protected $item; + protected $supportSaveMenu = true; /** - * The model state + * Holds the extension for categories, if available * - * @var object + * @var string */ - protected $state; + protected $categorySection = 'com_content'; /** - * The actions the user is authorised to perform + * Constructor * - * @var \Joomla\Registry\Registry - */ - protected $canDo; - - /** - * Pagebreak TOC alias + * @param array $config An optional associative array of configuration settings. * - * @var string + * @since 6.0.0 */ - protected $eName; + public function __construct(array $config) + { + if (empty($config['option'])) { + $config['option'] = 'com_content'; + } - /** - * Array of fieldsets not to display - * - * @var string[] - * - * @since 5.2.0 - */ - public $ignore_fieldsets = []; + $config['help_link'] = 'Articles:_Edit'; + $config['toolbar_icon'] = 'pencil-alt article-add'; + + parent::__construct($config); + } /** - * Execute and display a template script. - * - * @param string $tpl The name of the template file to parse; automatically searches through the template paths. + * Prepare view data * * @return void * - * @since 1.6 - * - * @throws \Exception + * @since 6.0.0 */ - public function display($tpl = null) + protected function initializeView() { if ($this->getLayout() == 'pagebreak') { - parent::display($tpl); - return; } - /** @var ArticleModel $model */ - $model = $this->getModel(); - $model->setUseExceptions(true); + parent::initializeView(); - $this->form = $model->getForm(); - $this->item = $model->getItem(); - $this->state = $model->getState(); $this->canDo = ContentHelper::getActions('com_content', 'article', $this->item->id); - if ($this->getLayout() === 'modalreturn') { - parent::display($tpl); + $url = RouteHelper::getArticleRoute($this->item->id . ':' . $this->item->alias, $this->item->catid, $this->item->language); + $this->previewLink = $url; + $this->jooa11yLink = $url . '&jooa11y=1'; + + if ($this->getLayout() === 'modalreturn') { return; } @@ -133,14 +115,6 @@ public function display($tpl = null) ->addControlField('task', '') ->addControlField('return', $input->getBase64('return', '')) ->addControlField('forcedLanguage', $forcedLanguage); - - if ($this->getLayout() !== 'modal') { - $this->addToolbar(); - } else { - $this->addModalToolbar(); - } - - parent::display($tpl); } /** @@ -154,104 +128,20 @@ public function display($tpl = null) */ protected function addToolbar() { - Factory::getApplication()->getInput()->set('hidemainmenu', true); + if ($this->getLayout() === 'modal') { + $this->addModalToolbar(); + + return; + } + $user = $this->getCurrentUser(); $userId = $user->id; $isNew = ($this->item->id == 0); $checkedOut = !(\is_null($this->item->checked_out) || $this->item->checked_out == $userId); - $toolbar = $this->getDocument()->getToolbar(); - // Built the actions for new and existing records. - $canDo = $this->canDo; - - ToolbarHelper::title( - Text::_('COM_CONTENT_PAGE_' . ($checkedOut ? 'VIEW_ARTICLE' : ($isNew ? 'ADD_ARTICLE' : 'EDIT_ARTICLE'))), - 'pencil-alt article-add' - ); - - // For new records, check the create permission. - if ($isNew && (\count($user->getAuthorisedCategories('com_content', 'core.create')) > 0)) { - $toolbar->apply('article.apply'); - - $saveGroup = $toolbar->dropdownButton('save-group'); - - $saveGroup->configure( - function (Toolbar $childBar) use ($user) { - $childBar->save('article.save'); - - if ($user->authorise('core.create', 'com_menus.menu')) { - $childBar->save('article.save2menu', 'JTOOLBAR_SAVE_TO_MENU'); - } - - $childBar->save2new('article.save2new'); - } - ); - - $toolbar->cancel('article.cancel', 'JTOOLBAR_CANCEL'); - } else { - // Since it's an existing record, check the edit permission, or fall back to edit own if the owner. - $itemEditable = $canDo->get('core.edit') || ($canDo->get('core.edit.own') && $this->item->created_by == $userId); - - if (!$checkedOut && $itemEditable) { - $toolbar->apply('article.apply'); - } - - $saveGroup = $toolbar->dropdownButton('save-group'); - - $saveGroup->configure( - function (Toolbar $childBar) use ($checkedOut, $itemEditable, $canDo, $user) { - // Can't save the record if it's checked out and editable - if (!$checkedOut && $itemEditable) { - $childBar->save('article.save'); - - // We can save this record, but check the create permission to see if we can return to make a new one. - if ($canDo->get('core.create')) { - $childBar->save2new('article.save2new'); - } - } - - // If checked out, we can still save2menu - if ($user->authorise('core.create', 'com_menus.menu')) { - $childBar->save('article.save2menu', 'JTOOLBAR_SAVE_TO_MENU'); - } - - // If checked out, we can still save - if ($canDo->get('core.create')) { - $childBar->save2copy('article.save2copy'); - } - } - ); - - $toolbar->cancel('article.cancel', 'JTOOLBAR_CLOSE'); - - if (!$isNew) { - if (ComponentHelper::isEnabled('com_contenthistory') && $this->state->get('params')->get('save_history', 0) && $itemEditable) { - $toolbar->versions('com_content.article', $this->item->id); - } - - $url = RouteHelper::getArticleRoute($this->item->id . ':' . $this->item->alias, $this->item->catid, $this->item->language); - - $toolbar->preview(Route::link('site', $url, true), 'JGLOBAL_PREVIEW') - ->bodyHeight(80) - ->modalWidth(90); - - if (PluginHelper::isEnabled('system', 'jooa11y')) { - $toolbar->jooa11y(Route::link('site', $url . '&jooa11y=1', true), 'JGLOBAL_JOOA11Y') - ->bodyHeight(80) - ->modalWidth(90); - } - - if (Associations::isEnabled() && ComponentHelper::isEnabled('com_associations')) { - $toolbar->standardButton('associations', 'JTOOLBAR_ASSOCIATIONS', 'article.editAssociations') - ->icon('icon-contract') - ->listCheck(false); - } - } - } + $this->toolbarTitle = Text::_('COM_CONTENT_PAGE_' . ($checkedOut ? 'VIEW_ARTICLE' : ($isNew ? 'ADD_ARTICLE' : 'EDIT_ARTICLE'))); - $toolbar->divider(); - $toolbar->inlinehelp(); - $toolbar->help('Articles:_Edit'); + parent::addToolbar(); } /** diff --git a/administrator/components/com_content/src/View/Articles/HtmlView.php b/administrator/components/com_content/src/View/Articles/HtmlView.php index 86657ea2107e5..364feaf4d3e11 100644 --- a/administrator/components/com_content/src/View/Articles/HtmlView.php +++ b/administrator/components/com_content/src/View/Articles/HtmlView.php @@ -176,9 +176,9 @@ public function display($tpl = null) */ protected function addToolbar() { - $canDo = ContentHelper::getActions('com_content', 'category', $this->state->get('filter.category_id')); - $user = $this->getCurrentUser(); - $toolbar = $this->getDocument()->getToolbar(); + $canDo = ContentHelper::getActions('com_content', 'category', $this->state->get('filter.category_id')); + $user = $this->getCurrentUser(); + $toolbar = $this->getDocument()->getToolbar(); ToolbarHelper::title(Text::_('COM_CONTENT_ARTICLES_TITLE'), 'copy article'); @@ -222,11 +222,9 @@ protected function addToolbar() $childBar->unpublish('articles.unpublish')->listCheck(true); - $childBar->standardButton('featured', 'JFEATURE', 'articles.featured') - ->listCheck(true); + $childBar->standardButton('featured', 'JFEATURE', 'articles.featured')->listCheck(true); - $childBar->standardButton('unfeatured', 'JUNFEATURE', 'articles.unfeatured') - ->listCheck(true); + $childBar->standardButton('unfeatured', 'JUNFEATURE', 'articles.unfeatured')->listCheck(true); $childBar->archive('articles.archive')->listCheck(true); diff --git a/administrator/components/com_content/src/View/Featured/HtmlView.php b/administrator/components/com_content/src/View/Featured/HtmlView.php index 842c38d6b5a34..7a7730b551e35 100644 --- a/administrator/components/com_content/src/View/Featured/HtmlView.php +++ b/administrator/components/com_content/src/View/Featured/HtmlView.php @@ -10,16 +10,7 @@ namespace Joomla\Component\Content\Administrator\View\Featured; -use Joomla\CMS\Component\ComponentHelper; -use Joomla\CMS\Language\Multilanguage; -use Joomla\CMS\Language\Text; use Joomla\CMS\MVC\View\HtmlView as BaseHtmlView; -use Joomla\CMS\Plugin\PluginHelper; -use Joomla\CMS\Toolbar\Button\DropdownButton; -use Joomla\CMS\Toolbar\ToolbarHelper; -use Joomla\Component\Content\Administrator\Extension\ContentComponent; -use Joomla\Component\Content\Administrator\Helper\ContentHelper; -use Joomla\Component\Content\Administrator\Model\FeaturedModel; // phpcs:disable PSR1.Files.SideEffects \defined('_JEXEC') or die; @@ -29,177 +20,9 @@ * View class for a list of featured articles. * * @since 1.6 + * + * @deprecated 6.0 will be removed in 8.0 is integrated in Articles view */ class HtmlView extends BaseHtmlView { - /** - * An array of items - * - * @var array - */ - protected $items; - - /** - * The pagination object - * - * @var \Joomla\CMS\Pagination\Pagination - */ - protected $pagination; - - /** - * The model state - * - * @var \Joomla\Registry\Registry - */ - protected $state; - - /** - * Form object for search filters - * - * @var \Joomla\CMS\Form\Form - */ - public $filterForm; - - /** - * The active search filters - * - * @var array - */ - public $activeFilters; - - /** - * All transition, which can be executed of one if the items - * - * @var array - */ - protected $transitions = []; - - /** - * Is this view an Empty State - * - * @var boolean - * @since 4.0.0 - */ - private $isEmptyState = false; - - /** - * Display the view - * - * @param string $tpl The name of the template file to parse; automatically searches through the template paths. - * - * @return void - */ - public function display($tpl = null) - { - /** @var FeaturedModel $model */ - $model = $this->getModel(); - $model->setUseExceptions(true); - - $this->items = $model->getItems(); - $this->pagination = $model->getPagination(); - $this->state = $model->getState(); - $this->filterForm = $model->getFilterForm(); - $this->activeFilters = $model->getActiveFilters(); - $this->vote = PluginHelper::isEnabled('content', 'vote'); - $this->hits = ComponentHelper::getParams('com_content')->get('record_hits', 1); - - if (!\count($this->items) && $this->isEmptyState = $model->getIsEmptyState()) { - $this->setLayout('emptystate'); - } - - if (ComponentHelper::getParams('com_content')->get('workflow_enabled')) { - PluginHelper::importPlugin('workflow'); - - $this->transitions = $model->getTransitions(); - } - - $this->addToolbar(); - - // We do not need to filter by language when multilingual is disabled - if (!Multilanguage::isEnabled()) { - unset($this->activeFilters['language']); - $this->filterForm->removeField('language', 'filter'); - } - - parent::display($tpl); - } - - /** - * Add the page title and toolbar. - * - * @return void - * - * @since 1.6 - */ - protected function addToolbar() - { - $canDo = ContentHelper::getActions('com_content', 'category', $this->state->get('filter.category_id')); - $user = $this->getCurrentUser(); - $toolbar = $this->getDocument()->getToolbar(); - - ToolbarHelper::title(Text::_('COM_CONTENT_FEATURED_TITLE'), 'star featured'); - - if ($canDo->get('core.create') || \count($user->getAuthorisedCategories('com_content', 'core.create')) > 0) { - $toolbar->addNew('article.add'); - } - - if (!$this->isEmptyState && ($canDo->get('core.edit.state') || \count($this->transitions))) { - /** @var DropdownButton $dropdown */ - $dropdown = $toolbar->dropdownButton('status-group', 'JTOOLBAR_CHANGE_STATUS') - ->toggleSplit(false) - ->icon('icon-ellipsis-h') - ->buttonClass('btn btn-action') - ->listCheck(true); - - $childBar = $dropdown->getChildToolbar(); - - if (\count($this->transitions)) { - $childBar->separatorButton('transition-headline', 'COM_CONTENT_RUN_TRANSITIONS') - ->buttonClass('text-center py-2 h3'); - - $cmd = "Joomla.submitbutton('articles.runTransition');"; - $messages = "{error: [Joomla.JText._('JLIB_HTML_PLEASE_MAKE_A_SELECTION_FROM_THE_LIST')]}"; - $alert = 'Joomla.renderMessages(' . $messages . ')'; - $cmd = 'if (document.adminForm.boxchecked.value == 0) { ' . $alert . ' } else { ' . $cmd . ' }'; - - foreach ($this->transitions as $transition) { - $childBar->standardButton('transition', $transition['text']) - ->buttonClass('transition-' . (int) $transition['value']) - ->icon('icon-project-diagram') - ->onclick('document.adminForm.transition_id.value=' . (int) $transition['value'] . ';' . $cmd); - } - - $childBar->separatorButton('transition-separator'); - } - - if ($canDo->get('core.edit.state')) { - $childBar->publish('articles.publish')->listCheck(true); - - $childBar->unpublish('articles.unpublish')->listCheck(true); - - $childBar->standardButton('unfeatured', 'JUNFEATURE') - ->task('articles.unfeatured') - ->listCheck(true); - - $childBar->archive('articles.archive')->listCheck(true); - $childBar->checkin('articles.checkin'); - - if (!$this->state->get('filter.published') == ContentComponent::CONDITION_TRASHED) { - $childBar->trash('articles.trash')->listCheck(true); - } - } - } - - if (!$this->isEmptyState && $this->state->get('filter.published') == ContentComponent::CONDITION_TRASHED && $canDo->get('core.delete')) { - $toolbar->delete('articles.delete', 'JTOOLBAR_DELETE_FROM_TRASH') - ->message('JGLOBAL_CONFIRM_DELETE') - ->listCheck(true); - } - - if ($user->authorise('core.admin', 'com_content') || $user->authorise('core.options', 'com_content')) { - $toolbar->preferences('com_content'); - } - - $toolbar->help('Articles:_Featured'); - } } diff --git a/administrator/components/com_content/tmpl/articles/default.php b/administrator/components/com_content/tmpl/articles/default.php index 60a826de318e2..78dc4bceadf74 100644 --- a/administrator/components/com_content/tmpl/articles/default.php +++ b/administrator/components/com_content/tmpl/articles/default.php @@ -37,7 +37,9 @@ $userId = $user->id; $listOrder = $this->escape($this->state->get('list.ordering')); $listDirn = $this->escape($this->state->get('list.direction')); -$saveOrder = $listOrder == 'a.ordering'; +$featured = $this->state->get('filter.featured'); +$orderName = $featured === '1' ? 'fp.ordering' : 'a.ordering'; +$saveOrder = $listOrder == $orderName; if (strpos($listOrder, 'publish_up') !== false) { $orderingColumn = 'publish_up'; @@ -78,7 +80,7 @@
$this]); + echo LayoutHelper::render('joomla.searchtools.default', ['view' => $this, 'options' => ['selectorFieldName' => 'featured']]); ?> items)) : ?>
@@ -88,7 +90,7 @@ @@ -98,15 +100,15 @@ - + - $value) : ?> - value) && isset($object2->$name->value) && $value->value != $object2->$name->value) : ?> - value)) : ?> - - - - value as $subName => $subValue) : ?> - $name->value->$subName->value ?? ''; ?> - value || $newSubValue) : ?> - value != $newSubValue) : ?> - - - - - - + $value1) : ?> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - $name->value = is_object($object2->$name->value) ? json_encode($object2->$name->value) : $object2->$name->value; ?> - - - + - - +
- , + , ,
- + - - + + - + @@ -156,6 +158,9 @@ endif; ?>> items as $i => $item) : $item->max_ordering = 0; + $ordering = ($listOrder == 'fp.ordering'); + $assetId = 'com_content.article.' . $item->id; + $canCreate = $user->authorise('core.create', 'com_content.category.' . $item->catid); $canEdit = $user->authorise('core.edit', 'com_content.article.' . $item->id); $canCheckin = $user->authorise('core.manage', 'com_checkin') || $item->checked_out == $userId || is_null($item->checked_out); $canEditOwn = $user->authorise('core.edit.own', 'com_content.article.' . $item->id) && $item->created_by == $userId; diff --git a/administrator/components/com_content/tmpl/articles/emptystate.php b/administrator/components/com_content/tmpl/articles/emptystate.php index 90cf4415edadb..03e2c62c2a751 100644 --- a/administrator/components/com_content/tmpl/articles/emptystate.php +++ b/administrator/components/com_content/tmpl/articles/emptystate.php @@ -19,6 +19,8 @@ 'formURL' => 'index.php?option=com_content&view=articles', 'helpURL' => 'https://docs.joomla.org/Special:MyLanguage/Adding_a_new_article', 'icon' => 'icon-copy article', + + 'controlFields' => $this->filterForm->renderControlFields(), ]; $user = $this->getCurrentUser(); diff --git a/administrator/components/com_content/tmpl/featured/default.php b/administrator/components/com_content/tmpl/featured/default.php deleted file mode 100644 index a6541223ffeb8..0000000000000 --- a/administrator/components/com_content/tmpl/featured/default.php +++ /dev/null @@ -1,400 +0,0 @@ - - * @license GNU General Public License version 2 or later; see LICENSE.txt - */ - -defined('_JEXEC') or die; - -use Joomla\CMS\Button\FeaturedButton; -use Joomla\CMS\Button\PublishedButton; -use Joomla\CMS\Button\TransitionButton; -use Joomla\CMS\Component\ComponentHelper; -use Joomla\CMS\Factory; -use Joomla\CMS\HTML\HTMLHelper; -use Joomla\CMS\Language\Associations; -use Joomla\CMS\Language\Multilanguage; -use Joomla\CMS\Language\Text; -use Joomla\CMS\Layout\LayoutHelper; -use Joomla\CMS\Router\Route; -use Joomla\CMS\Session\Session; -use Joomla\Component\Content\Administrator\Helper\ContentHelper; -use Joomla\Utilities\ArrayHelper; - -/** @var \Joomla\Component\Content\Administrator\View\Featured\HtmlView $this */ - -/** @var \Joomla\CMS\WebAsset\WebAssetManager $wa */ -$wa = $this->getDocument()->getWebAssetManager(); -$wa->useScript('table.columns') - ->useScript('multiselect'); - -$app = Factory::getApplication(); -$user = $this->getCurrentUser(); -$userId = $user->id; -$listOrder = $this->escape($this->state->get('list.ordering')); -$listDirn = $this->escape($this->state->get('list.direction')); -$saveOrder = $listOrder == 'fp.ordering'; - -if (strpos($listOrder, 'publish_up') !== false) { - $orderingColumn = 'publish_up'; -} elseif (strpos($listOrder, 'publish_down') !== false) { - $orderingColumn = 'publish_down'; -} elseif (strpos($listOrder, 'modified') !== false) { - $orderingColumn = 'modified'; -} else { - $orderingColumn = 'created'; -} - - -if ($saveOrder && !empty($this->items)) { - $saveOrderingUrl = 'index.php?option=com_content&task=featured.saveOrderAjax&tmpl=component&' . Session::getFormToken() . '=1'; - HTMLHelper::_('draggablelist.draggable'); -} - -$workflow_enabled = ComponentHelper::getParams('com_content')->get('workflow_enabled'); -$workflow_state = false; -$workflow_featured = false; - -if ($workflow_enabled) : - $wa->getRegistry()->addExtensionRegistryFile('com_workflow'); - $wa->useScript('com_workflow.admin-items-workflow-buttons') - ->useScript('com_content.articles-status'); - - $workflow_state = Factory::getApplication()->bootComponent('com_content')->isFunctionalityUsed('core.state', 'com_content.article'); - $workflow_featured = Factory::getApplication()->bootComponent('com_content')->isFunctionalityUsed('core.featured', 'com_content.article'); -endif; - -$assoc = Associations::isEnabled(); - -?> - -
-
-
-
- $this]); - ?> - items)) : ?> -
- - -
- - - - - - - - - - - - - - - - - - - - - - - hits) : ?> - - - vote) : ?> - - - - - - - class="js-draggable" data-url="" data-direction=""> - items); ?> - items as $i => $item) : - $item->max_ordering = 0; - $ordering = ($listOrder == 'fp.ordering'); - $assetId = 'com_content.article.' . $item->id; - $canCreate = $user->authorise('core.create', 'com_content.category.' . $item->catid); - $canEdit = $user->authorise('core.edit', 'com_content.article.' . $item->id); - $canCheckin = $user->authorise('core.manage', 'com_checkin') || $item->checked_out == $userId || is_null($item->checked_out); - $canChange = $user->authorise('core.edit.state', 'com_content.article.' . $item->id) && $canCheckin; - $canEditCat = $user->authorise('core.edit', 'com_content.category.' . $item->catid); - $canEditOwnCat = $user->authorise('core.edit.own', 'com_content.category.' . $item->catid) && $item->category_uid == $userId; - $canEditParCat = $user->authorise('core.edit', 'com_content.category.' . $item->parent_category_id); - $canEditOwnParCat = $user->authorise('core.edit.own', 'com_content.category.' . $item->parent_category_id) && $item->parent_category_uid == $userId; - - $transitions = ContentHelper::filterTransitions($this->transitions, (int) $item->stage_id, (int) $item->workflow_id); - - $transition_ids = ArrayHelper::getColumn($transitions, 'value'); - $transition_ids = ArrayHelper::toInteger($transition_ids); - - ?> - - - - - - - - - - - - - - - - - - - hits) : ?> - - - vote) : ?> - - - - - - - -
- , - , - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- id, false, 'cid', 'cb', $item->title); ?> - - - - - - - - - - $transitions, - 'title' => Text::_($item->stage_title), - 'tip_content' => Text::sprintf('JWORKFLOW', Text::_($item->workflow_title)), - 'id' => 'workflow-' . $item->id, - 'task' => 'articles.runTransition' - ]; - - echo (new TransitionButton($options)) - ->render(0, $i); - ?> -
- stage_title); ?> -
-
- 'articles.', - 'disabled' => $workflow_featured || !$canChange, - 'id' => 'featured-' . $item->id - ]; - - echo (new FeaturedButton()) - ->render((int) $item->featured, $i, $options, $item->featured_up, $item->featured_down); - ?> - - 'articles.', - 'disabled' => $workflow_state || !$canChange, - 'id' => 'state-' . $item->id, - 'category_published' => $item->category_published - ]; - - echo (new PublishedButton())->render((int) $item->state, $i, $options, $item->publish_up, $item->publish_down); - ?> - -
- checked_out) : ?> - editor, $item->checked_out_time, 'articles.', $canCheckin); ?> - - - - escape($item->title); ?> - - escape($item->title); ?> - -
- note)) : ?> - escape($item->alias)); ?> - - escape($item->alias), $this->escape($item->note)); ?> - -
-
- parent_category_id . '&extension=com_content'); - $CurrentCatUrl = Route::_('index.php?option=com_categories&task=category.edit&id=' . $item->catid . '&extension=com_content'); - $EditCatTxt = Text::_('COM_CONTENT_EDIT_CATEGORY'); - echo Text::_('JCATEGORY') . ': '; - if ($item->category_level != '1') : - if ($item->parent_category_level != '1') : - echo ' » '; - endif; - endif; - if ($this->getLanguage()->isRtl()) { - if ($canEditCat || $canEditOwnCat) : - echo ''; - endif; - echo $this->escape($item->category_title); - if ($canEditCat || $canEditOwnCat) : - echo ''; - endif; - if ($item->category_level != '1') : - echo ' « '; - if ($canEditParCat || $canEditOwnParCat) : - echo ''; - endif; - echo $this->escape($item->parent_category_title); - if ($canEditParCat || $canEditOwnParCat) : - echo ''; - endif; - endif; - } else { - if ($item->category_level != '1') : - if ($canEditParCat || $canEditOwnParCat) : - echo ''; - endif; - echo $this->escape($item->parent_category_title); - if ($canEditParCat || $canEditOwnParCat) : - echo ''; - endif; - echo ' » '; - endif; - if ($canEditCat || $canEditOwnCat) : - echo ''; - endif; - echo $this->escape($item->category_title); - if ($canEditCat || $canEditOwnCat) : - echo ''; - endif; - } - if ($item->category_published < '1') : - echo $item->category_published == '0' ? ' (' . Text::_('JUNPUBLISHED') . ')' : ' (' . Text::_('JTRASHED') . ')'; - endif; - ?> -
-
-
- escape($item->access_level); ?> - - author_name)) : ?> - - escape($item->author_name); ?> - - - [ ] - - created_by_alias) : ?> -
escape($item->created_by_alias)); ?>
- -
- association) : ?> - id); ?> - - - - - {$orderingColumn}; - echo $date > 0 ? HTMLHelper::_('date', $date, Text::_('DATE_FORMAT_LC4')) : '-'; - ?> - - - hits; ?> - - - - rating_count; ?> - - - - rating; ?> - - - id; ?> -
- - - pagination->getListFooter(); ?> - - Text::_('JTOOLBAR_CHANGE_STATUS'), - 'footer' => $this->loadTemplate('stage_footer'), - ], - $this->loadTemplate('stage_body') - ); ?> - - - - - - - - - - - -
-
-
-
diff --git a/administrator/components/com_content/tmpl/featured/default.xml b/administrator/components/com_content/tmpl/featured/default.xml deleted file mode 100644 index 34a2929f6e8e1..0000000000000 --- a/administrator/components/com_content/tmpl/featured/default.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - - diff --git a/administrator/components/com_content/tmpl/featured/default_stage_body.php b/administrator/components/com_content/tmpl/featured/default_stage_body.php deleted file mode 100644 index d5f510e40a892..0000000000000 --- a/administrator/components/com_content/tmpl/featured/default_stage_body.php +++ /dev/null @@ -1,25 +0,0 @@ - - * @license GNU General Public License version 2 or later; see LICENSE.txt - */ - -defined('_JEXEC') or die; - -use Joomla\CMS\Language\Text; - -?> - -
-
-
-

-
-
-
-
-
diff --git a/administrator/components/com_content/tmpl/featured/default_stage_footer.php b/administrator/components/com_content/tmpl/featured/default_stage_footer.php deleted file mode 100644 index 8c6d2bfccdad4..0000000000000 --- a/administrator/components/com_content/tmpl/featured/default_stage_footer.php +++ /dev/null @@ -1,27 +0,0 @@ - - * @license GNU General Public License version 2 or later; see LICENSE.txt - */ - -defined('_JEXEC') or die; - -use Joomla\CMS\Language\Text; - -/** @var \Joomla\Component\Content\Administrator\View\Featured\HtmlView $this */ - -/** @var Joomla\CMS\WebAsset\WebAssetManager $wa */ -$wa = $this->getDocument()->getWebAssetManager(); -$wa->useScript('com_content.admin-articles-stage'); - -?> - - diff --git a/administrator/components/com_content/tmpl/featured/emptystate.php b/administrator/components/com_content/tmpl/featured/emptystate.php deleted file mode 100644 index 3f20dbd6f98e9..0000000000000 --- a/administrator/components/com_content/tmpl/featured/emptystate.php +++ /dev/null @@ -1,29 +0,0 @@ - - * @license GNU General Public License version 2 or later; see LICENSE.txt - */ - -defined('_JEXEC') or die; - -use Joomla\CMS\Layout\LayoutHelper; - -/** @var \Joomla\Component\Content\Administrator\View\Featured\HtmlView $this */ - -$displayData = [ - 'textPrefix' => 'COM_CONTENT', - 'formURL' => 'index.php?option=com_content&view=featured', - 'helpURL' => 'https://docs.joomla.org/Special:MyLanguage/Adding_a_new_article', -]; - -$user = $this->getCurrentUser(); - -if ($user->authorise('core.create', 'com_content') || count($user->getAuthorisedCategories('com_content', 'core.create')) > 0) { - $displayData['createURL'] = 'index.php?option=com_content&task=article.add'; -} - -echo LayoutHelper::render('joomla.content.emptystate', $displayData); diff --git a/administrator/components/com_contenthistory/src/Helper/ContenthistoryHelper.php b/administrator/components/com_contenthistory/src/Helper/ContenthistoryHelper.php index aa501e65ce981..ade226ba68bc4 100644 --- a/administrator/components/com_contenthistory/src/Helper/ContenthistoryHelper.php +++ b/administrator/components/com_contenthistory/src/Helper/ContenthistoryHelper.php @@ -14,11 +14,11 @@ use Joomla\CMS\Language\Text; use Joomla\CMS\Table\ContentHistory; use Joomla\CMS\Table\ContentType; -use Joomla\CMS\Table\Table; use Joomla\Database\ParameterType; use Joomla\Filesystem\File; use Joomla\Filesystem\Folder; use Joomla\Filesystem\Path; +use Joomla\Utilities\ArrayHelper; // phpcs:disable PSR1.Files.SideEffects \defined('_JEXEC') or die; @@ -76,8 +76,18 @@ public static function decodeFields($jsonString) if (\is_object($object)) { foreach ($object as $name => $value) { - if (!\is_null($value) && $subObject = json_decode($value)) { - $object->$name = $subObject; + if (!\is_null($value)) { + if (\is_object($value)) { + $object->$name = ArrayHelper::fromObject($value); + continue; + } + + if (str_starts_with($value, '{')) { + $object->$name = json_decode($value); + continue; + } + + $object->$name = $value; } } } @@ -192,7 +202,7 @@ public static function getLookupValue($lookup, $value) if (isset($lookup->sourceColumn, $lookup->targetTable, $lookup->targetColumn, $lookup->displayColumn)) { $db = Factory::getDbo(); $value = (int) $value; - $query = $db->getQuery(true); + $query = $db->createQuery(); $query->select($db->quoteName($lookup->displayColumn)) ->from($db->quoteName($lookup->targetTable)) ->where($db->quoteName($lookup->targetColumn) . ' = :value') @@ -320,7 +330,7 @@ public static function mergeLabels($object, $formValues) public static function prepareData(ContentHistory $table) { $object = static::decodeFields($table->version_data); - $typesTable = Table::getInstance('ContentType', 'Joomla\\CMS\\Table\\'); + $typesTable = new ContentType(Factory::getDbo()); $typeAlias = explode('.', $table->item_id); array_pop($typeAlias); $typesTable->load(['type_alias' => implode('.', $typeAlias)]); @@ -351,8 +361,24 @@ public static function processLookupFields($object, ContentType $typesTable) $sourceColumn = $lookup->sourceColumn ?? false; $sourceValue = $object->$sourceColumn->value ?? false; - if ($sourceColumn && $sourceValue && ($lookupValue = static::getLookupValue($lookup, $sourceValue))) { - $object->$sourceColumn->value = $lookupValue; + if (!\is_array($sourceValue)) { + if ($sourceColumn && $sourceValue && ($lookupValue = static::getLookupValue($lookup, $sourceValue))) { + $object->$sourceColumn->value = $lookupValue; + } + + continue; + } + + if (\is_array($sourceValue)) { + $result = []; + + foreach ($sourceValue as $key => $subValue) { + if ($sourceColumn && $subValue && ($lookupValue = static::getLookupValue($lookup, $subValue))) { + $result[$key] = $lookupValue; + } + + $object->$sourceColumn->value = $result; + } } } } diff --git a/administrator/components/com_contenthistory/src/Model/HistoryModel.php b/administrator/components/com_contenthistory/src/Model/HistoryModel.php index fa06f07b33773..60ef3d2c3a905 100644 --- a/administrator/components/com_contenthistory/src/Model/HistoryModel.php +++ b/administrator/components/com_contenthistory/src/Model/HistoryModel.php @@ -305,7 +305,6 @@ protected function populateState($ordering = 'h.save_date', $direction = 'DESC') $itemId = $input->get('item_id', '', 'string'); $this->setState('item_id', $itemId); - $this->setState('sha1_hash', $this->getSha1Hash()); // Load the parameters. $params = ComponentHelper::getParams('com_contenthistory'); @@ -326,7 +325,7 @@ protected function getListQuery() { // Create a new query object. $db = $this->getDatabase(); - $query = $db->getQuery(true); + $query = $db->createQuery(); $itemId = $this->getState('item_id'); // Select the required fields from the table. @@ -343,6 +342,7 @@ protected function getListQuery() $db->quoteName('h.sha1_hash'), $db->quoteName('h.version_data'), $db->quoteName('h.keep_forever'), + $db->quoteName('h.is_current'), ] ) ) @@ -373,17 +373,33 @@ protected function getListQuery() * * @since 3.2 */ - protected function getSha1Hash() + public function getSha1Hash() { + /** + * From Joomla 6, we use is_current field to determine the current version, so no need to calculate sha1 hash + * if there is already a current version + */ + + $items = $this->getItems(); + + foreach ($items as $item) { + if ($item->is_current == 1) { + return $item->sha1_hash; + } + } + + // Legacy code for history concept before 6.0.0, deprecated 6.0.0 will be removed with 8.0.0 $result = false; - $item_id = Factory::getApplication()->getInput()->getCmd('item_id', ''); - $typeAlias = explode('.', $item_id); - Table::addIncludePath(JPATH_ADMINISTRATOR . '/components/' . $typeAlias[0] . '/tables'); + $item_id = $this->state->get('item_id', ''); + + [$extension, $type, $id] = explode('.', $item_id); + + Table::addIncludePath(JPATH_ADMINISTRATOR . '/components/' . $extension . '/tables'); $typeTable = $this->getTable('ContentType'); - $typeTable->load(['type_alias' => $typeAlias[0] . '.' . $typeAlias[1]]); + $typeTable->load(['type_alias' => $extension . '.' . $type]); $contentTable = $typeTable->getContentTable(); - if ($contentTable && $contentTable->load($typeAlias[2])) { + if ($contentTable && $contentTable->load($id)) { $helper = new CMSHelper(); $dataObject = $helper->getDataObject($contentTable); diff --git a/administrator/components/com_contenthistory/src/View/History/HtmlView.php b/administrator/components/com_contenthistory/src/View/History/HtmlView.php index 9167863588c04..2c29e9ee77b9d 100644 --- a/administrator/components/com_contenthistory/src/View/History/HtmlView.php +++ b/administrator/components/com_contenthistory/src/View/History/HtmlView.php @@ -59,6 +59,13 @@ class HtmlView extends BaseHtmlView */ protected $toolbar; + /** + * The SHA1 hash of the current version of the item being viewed + * + * @var string + */ + protected $currentVersionHash; + /** * Method to display the view. * @@ -74,9 +81,10 @@ public function display($tpl = null) $model = $this->getModel(); $model->setUseExceptions(true); - $this->state = $model->getState(); - $this->items = $model->getItems(); - $this->pagination = $model->getPagination(); + $this->state = $model->getState(); + $this->items = $model->getItems(); + $this->pagination = $model->getPagination(); + $this->currentVersionHash = $model->getSha1Hash(); $this->toolbar = $this->addToolbar(); diff --git a/administrator/components/com_contenthistory/tmpl/compare/compare.php b/administrator/components/com_contenthistory/tmpl/compare/compare.php index 8f855b92c1ad8..fd9812febac91 100644 --- a/administrator/components/com_contenthistory/tmpl/compare/compare.php +++ b/administrator/components/com_contenthistory/tmpl/compare/compare.php @@ -12,6 +12,7 @@ use Joomla\CMS\Language\Text; use Joomla\CMS\Session\Session; +use Joomla\Utilities\ArrayHelper; /** @var \Joomla\Component\Contenthistory\Administrator\View\Compare\HtmlView $this */ @@ -19,8 +20,8 @@ $version2 = $this->items[0]; $version1 = $this->items[1]; -$object1 = $version1->data; -$object2 = $version2->data; +$object1 = ArrayHelper::fromObject($version1->data); +$object2 = ArrayHelper::fromObject($version2->data); /** @var Joomla\CMS\WebAsset\WebAssetManager $wa */ $wa = $this->getDocument()->getWebAssetManager(); @@ -43,40 +44,69 @@
- label; ?> -
  label; ?>value, ENT_COMPAT, 'UTF-8'); ?> 
+ +
+ + + + + + + + + + + + + + + + + + + +  
+ +  
- label; ?> - value); ?>$name->value, ENT_COMPAT, 'UTF-8'); ?> 
diff --git a/administrator/components/com_contenthistory/tmpl/history/modal.php b/administrator/components/com_contenthistory/tmpl/history/modal.php index 759607d4cbfd9..64d90c2502168 100644 --- a/administrator/components/com_contenthistory/tmpl/history/modal.php +++ b/administrator/components/com_contenthistory/tmpl/history/modal.php @@ -19,7 +19,7 @@ Session::checkToken('get') or die(Text::_('JINVALID_TOKEN')); -$hash = $this->state->get('sha1_hash'); +$hash = $this->currentVersionHash; $formUrl = 'index.php?option=com_contenthistory&view=history&layout=modal&tmpl=component&item_id=' . $this->state->get('item_id') . '&' . Session::getFormToken() . '=1'; Text::script('COM_CONTENTHISTORY_BUTTON_SELECT_ONE_VERSION', true); diff --git a/administrator/components/com_contenthistory/tmpl/preview/preview.php b/administrator/components/com_contenthistory/tmpl/preview/preview.php index fca9e66163ee0..ff46dd7cc5788 100644 --- a/administrator/components/com_contenthistory/tmpl/preview/preview.php +++ b/administrator/components/com_contenthistory/tmpl/preview/preview.php @@ -51,14 +51,27 @@ value = (\is_object($subValue->value) || \is_array($subValue->value)) ? \json_encode($subValue->value, \JSON_UNESCAPED_UNICODE) : $subValue->value; ?>   label; ?> - value; ?> + + value)) : ?> + value); ?> + + value; ?> + + + label; ?> - value; ?> + + value)) : ?> + value); ?> + + value; ?> + + diff --git a/administrator/components/com_fields/src/Field/ComponentsFieldgroupField.php b/administrator/components/com_fields/src/Field/ComponentsFieldgroupField.php index a0a846231577e..988e1a552947d 100644 --- a/administrator/components/com_fields/src/Field/ComponentsFieldgroupField.php +++ b/administrator/components/com_fields/src/Field/ComponentsFieldgroupField.php @@ -48,7 +48,7 @@ protected function getOptions() // Initialise variable. $db = $this->getDatabase(); - $query = $db->getQuery(true) + $query = $db->createQuery() ->select('DISTINCT a.name AS text, a.element AS value') ->from('#__extensions as a') ->where('a.enabled >= 1') diff --git a/administrator/components/com_fields/src/Field/ComponentsFieldsField.php b/administrator/components/com_fields/src/Field/ComponentsFieldsField.php index 5e63972a75754..6991a493afa1d 100644 --- a/administrator/components/com_fields/src/Field/ComponentsFieldsField.php +++ b/administrator/components/com_fields/src/Field/ComponentsFieldsField.php @@ -48,7 +48,7 @@ protected function getOptions() // Initialise variable. $db = $this->getDatabase(); - $query = $db->getQuery(true) + $query = $db->createQuery() ->select('DISTINCT a.name AS text, a.element AS value') ->from('#__extensions as a') ->where('a.enabled >= 1') diff --git a/administrator/components/com_fields/src/Field/FieldLayoutField.php b/administrator/components/com_fields/src/Field/FieldLayoutField.php index 95216b097eadb..b5d4c26b39166 100644 --- a/administrator/components/com_fields/src/Field/FieldLayoutField.php +++ b/administrator/components/com_fields/src/Field/FieldLayoutField.php @@ -51,7 +51,7 @@ protected function getInput() if ($extension) { // Get the database object and a new query object. $db = $this->getDatabase(); - $query = $db->getQuery(true); + $query = $db->createQuery(); // Build the query. $query->select('element, name') diff --git a/administrator/components/com_fields/src/Field/FieldgroupsField.php b/administrator/components/com_fields/src/Field/FieldgroupsField.php index 65e0110c776d0..bdaf402a17f84 100644 --- a/administrator/components/com_fields/src/Field/FieldgroupsField.php +++ b/administrator/components/com_fields/src/Field/FieldgroupsField.php @@ -46,7 +46,7 @@ protected function getOptions() $viewlevels = ArrayHelper::toInteger($user->getAuthorisedViewLevels()); $db = $this->getDatabase(); - $query = $db->getQuery(true); + $query = $db->createQuery(); $query->select( [ $db->quoteName('title', 'text'), diff --git a/administrator/components/com_fields/src/Helper/FieldsHelper.php b/administrator/components/com_fields/src/Helper/FieldsHelper.php index 96b05e66eb986..4fe03217b2b64 100644 --- a/administrator/components/com_fields/src/Helper/FieldsHelper.php +++ b/administrator/components/com_fields/src/Helper/FieldsHelper.php @@ -591,7 +591,7 @@ public static function getAssignedCategoriesIds($fieldId) } $db = Factory::getDbo(); - $query = $db->getQuery(true); + $query = $db->createQuery(); $query->select($db->quoteName('a.category_id')) ->from($db->quoteName('#__fields_categories', 'a')) @@ -620,7 +620,7 @@ public static function getAssignedCategoriesTitles($fieldId) } $db = Factory::getDbo(); - $query = $db->getQuery(true); + $query = $db->createQuery(); $query->select($db->quoteName('c.title')) ->from($db->quoteName('#__fields_categories', 'a')) @@ -643,7 +643,7 @@ public static function getAssignedCategoriesTitles($fieldId) public static function getFieldsPluginId() { $db = Factory::getDbo(); - $query = $db->getQuery(true) + $query = $db->createQuery() ->select($db->quoteName('extension_id')) ->from($db->quoteName('#__extensions')) ->where($db->quoteName('folder') . ' = ' . $db->quote('system')) diff --git a/administrator/components/com_fields/src/Model/FieldModel.php b/administrator/components/com_fields/src/Model/FieldModel.php index cdb173524567c..8c59c1c849c61 100644 --- a/administrator/components/com_fields/src/Model/FieldModel.php +++ b/administrator/components/com_fields/src/Model/FieldModel.php @@ -202,7 +202,7 @@ public function save($data) } // First delete all assigned categories - $query = $db->getQuery(true); + $query = $db->createQuery(); $query->delete('#__fields_categories') ->where($db->quoteName('field_id') . ' = :fieldid') ->bind(':fieldid', $id, ParameterType::INTEGER); @@ -239,7 +239,7 @@ public function save($data) $names = array_column((array) $newParams, 'value'); $fieldId = (int) $field->id; - $query = $db->getQuery(true); + $query = $db->createQuery(); $query->delete($db->quoteName('#__fields_values')) ->where($db->quoteName('field_id') . ' = :fieldid') ->bind(':fieldid', $fieldId, ParameterType::INTEGER); @@ -407,7 +407,7 @@ public function getItem($pk = null) } $db = $this->getDatabase(); - $query = $db->getQuery(true); + $query = $db->createQuery(); $fieldId = (int) $result->id; $query->select($db->quoteName('category_id')) ->from($db->quoteName('#__fields_categories')) @@ -491,7 +491,7 @@ public function delete(&$pks) if (!empty($pks)) { // Delete Values - $query = $db->getQuery(true); + $query = $db->createQuery(); $query->delete($db->quoteName('#__fields_values')) ->whereIn($db->quoteName('field_id'), $pks); @@ -499,7 +499,7 @@ public function delete(&$pks) $db->setQuery($query)->execute(); // Delete Assigned Categories - $query = $db->getQuery(true); + $query = $db->createQuery(); $query->delete($db->quoteName('#__fields_categories')) ->whereIn($db->quoteName('field_id'), $pks); @@ -643,7 +643,7 @@ public function setFieldValue($fieldId, $itemId, $value) // Deleting the existing record as it is a reset $db = $this->getDatabase(); - $query = $db->getQuery(true); + $query = $db->createQuery(); $query->delete($db->quoteName('#__fields_values')) ->where($db->quoteName('field_id') . ' = :fieldid') @@ -727,7 +727,7 @@ public function getFieldValues(array $fieldIds, $itemId) if (!\array_key_exists($key, $this->valueCache)) { // Create the query $db = $this->getDatabase(); - $query = $db->getQuery(true); + $query = $db->createQuery(); $query->select($db->quoteName(['field_id', 'value'])) ->from($db->quoteName('#__fields_values')) @@ -782,12 +782,12 @@ public function cleanupValues($context, $itemId) { // Delete with inner join is not possible so we need to do a subquery $db = $this->getDatabase(); - $fieldsQuery = $db->getQuery(true); + $fieldsQuery = $db->createQuery(); $fieldsQuery->select($db->quoteName('id')) ->from($db->quoteName('#__fields')) ->where($db->quoteName('context') . ' = :context'); - $query = $db->getQuery(true); + $query = $db->createQuery(); $query->delete($db->quoteName('#__fields_values')) ->where($db->quoteName('field_id') . ' IN (' . $fieldsQuery . ')') @@ -938,24 +938,18 @@ protected function loadFormData() // get selected fields $filters = (array) $app->getUserState('com_fields.fields.filter'); - $data->set('state', $input->getInt('state', ((isset($filters['state']) && $filters['state'] !== '') ? $filters['state'] : null))); - $data->set('language', $input->getString('language', (!empty($filters['language']) ? $filters['language'] : null))); - $data->set('group_id', $input->getString('group_id', (!empty($filters['group_id']) ? $filters['group_id'] : null))); - $data->set( + $data->state = $input->getInt('state', ((isset($filters['state']) && $filters['state'] !== '') ? $filters['state'] : null)); + $data->language = $input->getString('language', (!empty($filters['language']) ? $filters['language'] : null)); + $data->group_id = $input->getString('group_id', (!empty($filters['group_id']) ? $filters['group_id'] : null)); + $data->assigned_cat_ids = $input->get( 'assigned_cat_ids', - $input->get( - 'assigned_cat_ids', - (!empty($filters['assigned_cat_ids']) ? (array)$filters['assigned_cat_ids'] : [0]), - 'array' - ) - ); - $data->set( - 'access', - $input->getInt('access', (!empty($filters['access']) ? $filters['access'] : $app->get('access'))) + (!empty($filters['assigned_cat_ids']) ? (array)$filters['assigned_cat_ids'] : [0]), + 'array' ); + $data->access = $input->getInt('access', (!empty($filters['access']) ? $filters['access'] : $app->get('access'))); // Set the type if available from the request - $data->set('type', $input->getWord('type', $this->state->get('field.type', $data->get('type')))); + $data->type = $input->getWord('type', $this->state->get('field.type', $data->type)); } if ($data->label && !isset($data->params['label'])) { @@ -1118,15 +1112,13 @@ function () use ($component, $section) { /** * Clean the cache * - * @param string $group The cache group - * @param integer $clientId No longer used, will be removed without replacement - * @deprecated 4.3 will be removed in 6.0 + * @param string $group Cache group name. * * @return void * * @since 3.7.0 */ - protected function cleanCache($group = null, $clientId = 0) + protected function cleanCache($group = null) { $context = Factory::getApplication()->getInput()->get('context'); @@ -1170,7 +1162,7 @@ protected function batchCopy($value, $pks, $contexts) if ($user->authorise('core.create', $component . '.fieldgroup.' . $value)) { // Find all assigned categories to this field $db = $this->getDatabase(); - $query = $db->getQuery(true); + $query = $db->createQuery(); $query->select($db->quoteName('category_id')) ->from($db->quoteName('#__fields_categories')) diff --git a/administrator/components/com_fields/src/Model/FieldsModel.php b/administrator/components/com_fields/src/Model/FieldsModel.php index 4993a1cfd1ca0..665c8ac44503c 100644 --- a/administrator/components/com_fields/src/Model/FieldsModel.php +++ b/administrator/components/com_fields/src/Model/FieldsModel.php @@ -140,7 +140,7 @@ protected function getListQuery() { // Create a new query object. $db = $this->getDatabase(); - $query = $db->getQuery(true); + $query = $db->createQuery(); $user = $this->getCurrentUser(); $app = Factory::getApplication(); @@ -444,7 +444,7 @@ public function getGroups() $context = $this->state->get('filter.context'); $db = $this->getDatabase(); - $query = $db->getQuery(true); + $query = $db->createQuery(); $query->select( [ $db->quoteName('title', 'text'), diff --git a/administrator/components/com_fields/src/Model/GroupModel.php b/administrator/components/com_fields/src/Model/GroupModel.php index 196b956b0d73d..94d2f82c6be55 100644 --- a/administrator/components/com_fields/src/Model/GroupModel.php +++ b/administrator/components/com_fields/src/Model/GroupModel.php @@ -318,18 +318,9 @@ protected function loadFormData() $context = substr($app->getUserState('com_fields.groups.filter.context', ''), 4); $filters = (array) $app->getUserState('com_fields.groups.' . $context . '.filter'); - $data->set( - 'state', - $input->getInt('state', (!empty($filters['state']) ? $filters['state'] : null)) - ); - $data->set( - 'language', - $input->getString('language', (!empty($filters['language']) ? $filters['language'] : null)) - ); - $data->set( - 'access', - $input->getInt('access', (!empty($filters['access']) ? $filters['access'] : $app->get('access'))) - ); + $data->state = $input->getInt('state', (!empty($filters['state']) ? $filters['state'] : null)); + $data->language = $input->getString('language', (!empty($filters['language']) ? $filters['language'] : null)); + $data->access = $input->getInt('access', (!empty($filters['access']) ? $filters['access'] : $app->get('access'))); } } @@ -366,15 +357,13 @@ public function getItem($pk = null) /** * Clean the cache * - * @param string $group The cache group - * @param integer $clientId No longer used, will be removed without replacement - * @deprecated 4.3 will be removed in 6.0 + * @param string $group Cache group name. * * @return void * * @since 3.7.0 */ - protected function cleanCache($group = null, $clientId = 0) + protected function cleanCache($group = null) { $context = Factory::getApplication()->getInput()->get('context'); diff --git a/administrator/components/com_fields/src/Model/GroupsModel.php b/administrator/components/com_fields/src/Model/GroupsModel.php index 5ad10277f1c23..e5b270899e020 100644 --- a/administrator/components/com_fields/src/Model/GroupsModel.php +++ b/administrator/components/com_fields/src/Model/GroupsModel.php @@ -128,7 +128,7 @@ protected function getListQuery() { // Create a new query object. $db = $this->getDatabase(); - $query = $db->getQuery(true); + $query = $db->createQuery(); $user = $this->getCurrentUser(); // Select the required fields from the table. diff --git a/administrator/components/com_fields/src/Table/FieldTable.php b/administrator/components/com_fields/src/Table/FieldTable.php index de2620c2fc057..3277fa04b7967 100644 --- a/administrator/components/com_fields/src/Table/FieldTable.php +++ b/administrator/components/com_fields/src/Table/FieldTable.php @@ -299,7 +299,7 @@ protected function _getAssetParentId(?Table $table = null, $id = null) private function getAssetId($name) { $db = $this->getDatabase(); - $query = $db->getQuery(true) + $query = $db->createQuery() ->select($db->quoteName('id')) ->from($db->quoteName('#__assets')) ->where($db->quoteName('name') . ' = :name') diff --git a/administrator/components/com_fields/src/Table/GroupTable.php b/administrator/components/com_fields/src/Table/GroupTable.php index 2e9eb93ffc324..aecbecf4f2ea5 100644 --- a/administrator/components/com_fields/src/Table/GroupTable.php +++ b/administrator/components/com_fields/src/Table/GroupTable.php @@ -204,7 +204,7 @@ protected function _getAssetParentId(?Table $table = null, $id = null) { $component = explode('.', $this->context); $db = $this->getDatabase(); - $query = $db->getQuery(true) + $query = $db->createQuery() ->select($db->quoteName('id')) ->from($db->quoteName('#__assets')) ->where($db->quoteName('name') . ' = :name') diff --git a/administrator/components/com_fields/src/View/Field/HtmlView.php b/administrator/components/com_fields/src/View/Field/HtmlView.php index 647743895cb23..52301cdd89c7b 100644 --- a/administrator/components/com_fields/src/View/Field/HtmlView.php +++ b/administrator/components/com_fields/src/View/Field/HtmlView.php @@ -78,6 +78,10 @@ public function display($tpl = null) $this->addToolbar(); + // Add form control fields + $this->form + ->addControlField('task', ''); + parent::display($tpl); } diff --git a/administrator/components/com_fields/src/View/Fields/HtmlView.php b/administrator/components/com_fields/src/View/Fields/HtmlView.php index 8f395bc2db3c7..0848bda2d3626 100644 --- a/administrator/components/com_fields/src/View/Fields/HtmlView.php +++ b/administrator/components/com_fields/src/View/Fields/HtmlView.php @@ -109,6 +109,11 @@ public function display($tpl = null) } } + // Add form control fields + $this->filterForm + ->addControlField('task', '') + ->addControlField('boxchecked', '0'); + parent::display($tpl); } diff --git a/administrator/components/com_fields/src/View/Group/HtmlView.php b/administrator/components/com_fields/src/View/Group/HtmlView.php index b6ebc8d9bd778..8e8452ef32fdd 100644 --- a/administrator/components/com_fields/src/View/Group/HtmlView.php +++ b/administrator/components/com_fields/src/View/Group/HtmlView.php @@ -96,6 +96,10 @@ public function display($tpl = null) $this->addToolbar(); + // Add form control fields + $this->form + ->addControlField('task', ''); + parent::display($tpl); } diff --git a/administrator/components/com_fields/src/View/Groups/HtmlView.php b/administrator/components/com_fields/src/View/Groups/HtmlView.php index b2c15e384f39e..d17b992b4a40e 100644 --- a/administrator/components/com_fields/src/View/Groups/HtmlView.php +++ b/administrator/components/com_fields/src/View/Groups/HtmlView.php @@ -106,6 +106,11 @@ public function display($tpl = null) $this->filterForm->removeField('language', 'filter'); } + // Add form control fields + $this->filterForm + ->addControlField('task', '') + ->addControlField('boxchecked', '0'); + parent::display($tpl); } diff --git a/administrator/components/com_fields/tmpl/field/edit.php b/administrator/components/com_fields/tmpl/field/edit.php index ff044f1040eca..a6e0eaa7585c6 100644 --- a/administrator/components/com_fields/tmpl/field/edit.php +++ b/administrator/components/com_fields/tmpl/field/edit.php @@ -95,7 +95,7 @@ form->getInput('context'); ?> - - + + form->renderControlFields(); ?>
diff --git a/administrator/components/com_fields/tmpl/fields/default.php b/administrator/components/com_fields/tmpl/fields/default.php index 0c237e1ddde3b..21955fd2e5079 100644 --- a/administrator/components/com_fields/tmpl/fields/default.php +++ b/administrator/components/com_fields/tmpl/fields/default.php @@ -210,9 +210,8 @@ - - - + + filterForm->renderControlFields(); ?> diff --git a/administrator/components/com_fields/tmpl/fields/modal.php b/administrator/components/com_fields/tmpl/fields/modal.php index 717d6f07b9fd3..7a4e9794febcb 100644 --- a/administrator/components/com_fields/tmpl/fields/modal.php +++ b/administrator/components/com_fields/tmpl/fields/modal.php @@ -135,9 +135,6 @@ - - - - + filterForm->renderControlFields(); ?> diff --git a/administrator/components/com_fields/tmpl/group/edit.php b/administrator/components/com_fields/tmpl/group/edit.php index a527ca814d36a..9190bf7d937a0 100644 --- a/administrator/components/com_fields/tmpl/group/edit.php +++ b/administrator/components/com_fields/tmpl/group/edit.php @@ -78,7 +78,7 @@ form->getInput('context'); ?> - - + + form->renderControlFields(); ?> diff --git a/administrator/components/com_fields/tmpl/groups/default.php b/administrator/components/com_fields/tmpl/groups/default.php index d72ad1d5cb4c9..6ead0edaf2600 100644 --- a/administrator/components/com_fields/tmpl/groups/default.php +++ b/administrator/components/com_fields/tmpl/groups/default.php @@ -178,9 +178,8 @@ - - - + + filterForm->renderControlFields(); ?> diff --git a/administrator/components/com_finder/helpers/indexer/adapter.php b/administrator/components/com_finder/helpers/indexer/adapter.php deleted file mode 100644 index 0c4f653b6aae0..0000000000000 --- a/administrator/components/com_finder/helpers/indexer/adapter.php +++ /dev/null @@ -1,20 +0,0 @@ - - * @license GNU General Public License version 2 or later; see LICENSE.txt - */ - -\defined('_JEXEC') or die; - -/** - * Finder Indexer Adapter class. - * - * @since 2.5 - * - * @deprecated 4.3 will be removed in 6.0 - * Use \Joomla\Component\Finder\Administrator\Indexer\Adapter instead - */ diff --git a/administrator/components/com_finder/helpers/indexer/helper.php b/administrator/components/com_finder/helpers/indexer/helper.php deleted file mode 100644 index 155fb6e74b641..0000000000000 --- a/administrator/components/com_finder/helpers/indexer/helper.php +++ /dev/null @@ -1,20 +0,0 @@ - - * @license GNU General Public License version 2 or later; see LICENSE.txt - */ - -\defined('_JEXEC') or die; - -/** - * Finder Indexer Helper class. - * - * @since 2.5 - * - * @deprecated 4.3 will be removed in 6.0 - * Use \Joomla\Component\Finder\Administrator\Indexer\Helper instead - */ diff --git a/administrator/components/com_finder/helpers/indexer/parser.php b/administrator/components/com_finder/helpers/indexer/parser.php deleted file mode 100644 index 79465a956d971..0000000000000 --- a/administrator/components/com_finder/helpers/indexer/parser.php +++ /dev/null @@ -1,20 +0,0 @@ - - * @license GNU General Public License version 2 or later; see LICENSE.txt - */ - -\defined('_JEXEC') or die; - -/** - * Finder Indexer Parser class. - * - * @since 2.5 - * - * @deprecated 4.3 will be removed in 6.0 - * 5.0 Use \Joomla\Component\Finder\Administrator\Indexer\Parser instead - */ diff --git a/administrator/components/com_finder/helpers/indexer/query.php b/administrator/components/com_finder/helpers/indexer/query.php deleted file mode 100644 index a1bec5b312162..0000000000000 --- a/administrator/components/com_finder/helpers/indexer/query.php +++ /dev/null @@ -1,20 +0,0 @@ - - * @license GNU General Public License version 2 or later; see LICENSE.txt - */ - -\defined('_JEXEC') or die; - -/** - * Finder Indexer Query class. - * - * @since 2.5 - * - * @deprecated 4.3 will be removed in 6.0 - * Use \Joomla\Component\Finder\Administrator\Indexer\Query instead - */ diff --git a/administrator/components/com_finder/helpers/indexer/result.php b/administrator/components/com_finder/helpers/indexer/result.php deleted file mode 100644 index 70c3ded2ab226..0000000000000 --- a/administrator/components/com_finder/helpers/indexer/result.php +++ /dev/null @@ -1,20 +0,0 @@ - - * @license GNU General Public License version 2 or later; see LICENSE.txt - */ - -\defined('_JEXEC') or die; - -/** - * Finder Indexer Result class. - * - * @since 2.5 - * - * @deprecated 4.3 will be removed in 6.0 - * Use \Joomla\Component\Finder\Administrator\Indexer\Result instead - */ diff --git a/administrator/components/com_finder/helpers/indexer/taxonomy.php b/administrator/components/com_finder/helpers/indexer/taxonomy.php deleted file mode 100644 index e539e7f7d4391..0000000000000 --- a/administrator/components/com_finder/helpers/indexer/taxonomy.php +++ /dev/null @@ -1,19 +0,0 @@ - - * @license GNU General Public License version 2 or later; see LICENSE.txt - */ - -\defined('_JEXEC') or die; - -/** - * Finder Indexer Taxonomy class. - * - * @since 2.5 - * @deprecated 4.3 will be removed in 6.0 - * Use \Joomla\Component\Finder\Administrator\Indexer\Taxonomy instead - */ diff --git a/administrator/components/com_finder/helpers/indexer/token.php b/administrator/components/com_finder/helpers/indexer/token.php deleted file mode 100644 index 1d24a63a58562..0000000000000 --- a/administrator/components/com_finder/helpers/indexer/token.php +++ /dev/null @@ -1,20 +0,0 @@ - - * @license GNU General Public License version 2 or later; see LICENSE.txt - */ - -\defined('_JEXEC') or die; - -/** - * Finder Indexer Token class. - * - * @since 2.5 - * - * @deprecated 4.3 will be removed in 6.0 - * Use \Joomla\Component\Finder\Administrator\Indexer\Token instead - */ diff --git a/administrator/components/com_finder/src/Field/ContentmapField.php b/administrator/components/com_finder/src/Field/ContentmapField.php index ea005dc8e581d..d38fc8cb48cf2 100644 --- a/administrator/components/com_finder/src/Field/ContentmapField.php +++ b/administrator/components/com_finder/src/Field/ContentmapField.php @@ -50,7 +50,7 @@ protected function getGroups() $db = $this->getDatabase(); // Main query. - $query = $db->getQuery(true) + $query = $db->createQuery() ->select($db->quoteName('a.title', 'text')) ->select($db->quoteName('a.id', 'value')) ->select($db->quoteName('a.parent_id')) diff --git a/administrator/components/com_finder/src/Field/ContenttypesField.php b/administrator/components/com_finder/src/Field/ContenttypesField.php index 45d78df38e5be..5e0eedc3afce7 100644 --- a/administrator/components/com_finder/src/Field/ContenttypesField.php +++ b/administrator/components/com_finder/src/Field/ContenttypesField.php @@ -49,7 +49,7 @@ public function getOptions() $options = []; $db = $this->getDatabase(); - $query = $db->getQuery(true) + $query = $db->createQuery() ->select($db->quoteName('id', 'value')) ->select($db->quoteName('title', 'text')) ->from($db->quoteName('#__finder_types')); diff --git a/administrator/components/com_finder/src/Field/SearchfilterField.php b/administrator/components/com_finder/src/Field/SearchfilterField.php index 7925b42e01ab9..e22ec7ddf9b47 100644 --- a/administrator/components/com_finder/src/Field/SearchfilterField.php +++ b/administrator/components/com_finder/src/Field/SearchfilterField.php @@ -44,7 +44,7 @@ public function getOptions() { // Build the query. $db = $this->getDatabase(); - $query = $db->getQuery(true) + $query = $db->createQuery() ->select('f.title AS text, f.filter_id AS value') ->from($db->quoteName('#__finder_filters') . ' AS f') ->where('f.state = 1') diff --git a/administrator/components/com_finder/src/Indexer/Adapter.php b/administrator/components/com_finder/src/Indexer/Adapter.php index 0f25a148d22d7..48de309632dc5 100644 --- a/administrator/components/com_finder/src/Indexer/Adapter.php +++ b/administrator/components/com_finder/src/Indexer/Adapter.php @@ -292,8 +292,8 @@ public function onFinderGarbageCollection() $db = $this->db; $type_id = $this->getTypeId(); - $query = $db->getQuery(true); - $subquery = $db->getQuery(true); + $query = $db->createQuery(); + $subquery = $db->createQuery(); $subquery->select('CONCAT(' . $db->quote($this->getUrl('', $this->extension, $this->layout)) . ', id)') ->from($db->quoteName($this->table)); $query->select($db->quoteName('l.link_id')) @@ -336,7 +336,7 @@ protected function change($id, $property, $value) $item = $this->db->quote($this->getUrl($id, $this->extension, $this->layout)); // Update the content items. - $query = $this->db->getQuery(true) + $query = $this->db->createQuery() ->update($this->db->quoteName('#__finder_links')) ->set($this->db->quoteName($property) . ' = ' . (int) $value) ->where($this->db->quoteName('url') . ' = ' . $item); @@ -399,7 +399,7 @@ protected function remove($id, $removeTaxonomies = true) $url = $this->db->quote($this->getUrl($id, $this->extension, $this->layout)); // Get the link ids for the content items. - $query = $this->db->getQuery(true) + $query = $this->db->createQuery() ->select($this->db->quoteName('link_id')) ->from($this->db->quoteName('#__finder_links')) ->where($this->db->quoteName('url') . ' = ' . $url); @@ -506,7 +506,7 @@ protected function categoryStateChange($pks, $value) */ protected function checkCategoryAccess($row) { - $query = $this->db->getQuery(true) + $query = $this->db->createQuery() ->select($this->db->quoteName('access')) ->from($this->db->quoteName('#__categories')) ->where($this->db->quoteName('id') . ' = ' . (int) $row->id); @@ -527,7 +527,7 @@ protected function checkCategoryAccess($row) */ protected function checkItemAccess($row) { - $query = $this->db->getQuery(true) + $query = $this->db->createQuery() ->select($this->db->quoteName('access')) ->from($this->db->quoteName($this->table)) ->where($this->db->quoteName('id') . ' = ' . (int) $row->id); @@ -649,7 +649,7 @@ protected function getItems($offset, $limit, $query = null) protected function getListQuery($query = null) { // Check if we can use the supplied SQL query. - return $query instanceof QueryInterface ? $query : $this->db->getQuery(true); + return $query instanceof QueryInterface ? $query : $this->db->createQuery(); } /** @@ -664,7 +664,7 @@ protected function getListQuery($query = null) protected function getPluginType($id) { // Prepare the query - $query = $this->db->getQuery(true) + $query = $this->db->createQuery() ->select($this->db->quoteName('element')) ->from($this->db->quoteName('#__extensions')) ->where($this->db->quoteName('folder') . ' = ' . $this->db->quote('finder')) @@ -684,7 +684,7 @@ protected function getPluginType($id) */ protected function getStateQuery() { - $query = $this->db->getQuery(true); + $query = $this->db->createQuery(); // Item ID $query->select('a.id'); @@ -712,7 +712,7 @@ protected function getStateQuery() protected function getUpdateQueryByTime($time) { // Build an SQL query based on the modified time. - $query = $this->db->getQuery(true) + $query = $this->db->createQuery() ->where('a.modified >= ' . $this->db->quote($time)); return $query; @@ -730,7 +730,7 @@ protected function getUpdateQueryByTime($time) protected function getUpdateQueryByIds($ids) { // Build an SQL query based on the item ids. - $query = $this->db->getQuery(true) + $query = $this->db->createQuery() ->where('a.id IN(' . implode(',', $ids) . ')'); return $query; @@ -747,7 +747,7 @@ protected function getUpdateQueryByIds($ids) protected function getTypeId() { // Get the type id from the database. - $query = $this->db->getQuery(true) + $query = $this->db->createQuery() ->select($this->db->quoteName('id')) ->from($this->db->quoteName('#__finder_types')) ->where($this->db->quoteName('title') . ' = ' . $this->db->quote($this->type_title)); @@ -793,7 +793,7 @@ protected function getItemMenuTitle($url) $groups = implode(',', $user->getAuthorisedViewLevels()); // Build a query to get the menu params. - $query = $this->db->getQuery(true) + $query = $this->db->createQuery() ->select($this->db->quoteName('params')) ->from($this->db->quoteName('#__menu')) ->where($this->db->quoteName('link') . ' = ' . $this->db->quote($url)) diff --git a/administrator/components/com_finder/src/Indexer/DebugAdapter.php b/administrator/components/com_finder/src/Indexer/DebugAdapter.php index 11f5ea49d0f7d..c28b64c2da835 100644 --- a/administrator/components/com_finder/src/Indexer/DebugAdapter.php +++ b/administrator/components/com_finder/src/Indexer/DebugAdapter.php @@ -284,8 +284,8 @@ public function onFinderGarbageCollection() $db = $this->db; $type_id = $this->getTypeId(); - $query = $db->getQuery(true); - $subquery = $db->getQuery(true); + $query = $db->createQuery(); + $subquery = $db->createQuery(); $subquery->select('CONCAT(' . $db->quote($this->getUrl('', $this->extension, $this->layout)) . ', id)') ->from($db->quoteName($this->table)); $query->select($db->quoteName('l.link_id')) @@ -328,7 +328,7 @@ protected function change($id, $property, $value) $item = $this->db->quote($this->getUrl($id, $this->extension, $this->layout)); // Update the content items. - $query = $this->db->getQuery(true) + $query = $this->db->createQuery() ->update($this->db->quoteName('#__finder_links')) ->set($this->db->quoteName($property) . ' = ' . (int) $value) ->where($this->db->quoteName('url') . ' = ' . $item); @@ -394,7 +394,7 @@ protected function remove($id, $removeTaxonomies = true) $url = $this->db->quote($this->getUrl($id, $this->extension, $this->layout)); // Get the link ids for the content items. - $query = $this->db->getQuery(true) + $query = $this->db->createQuery() ->select($this->db->quoteName('link_id')) ->from($this->db->quoteName('#__finder_links')) ->where($this->db->quoteName('url') . ' = ' . $url); @@ -501,7 +501,7 @@ protected function categoryStateChange($pks, $value) */ protected function checkCategoryAccess($row) { - $query = $this->db->getQuery(true) + $query = $this->db->createQuery() ->select($this->db->quoteName('access')) ->from($this->db->quoteName('#__categories')) ->where($this->db->quoteName('id') . ' = ' . (int) $row->id); @@ -522,7 +522,7 @@ protected function checkCategoryAccess($row) */ protected function checkItemAccess($row) { - $query = $this->db->getQuery(true) + $query = $this->db->createQuery() ->select($this->db->quoteName('access')) ->from($this->db->quoteName($this->table)) ->where($this->db->quoteName('id') . ' = ' . (int) $row->id); @@ -644,7 +644,7 @@ protected function getItems($offset, $limit, $query = null) protected function getListQuery($query = null) { // Check if we can use the supplied SQL query. - return $query instanceof QueryInterface ? $query : $this->db->getQuery(true); + return $query instanceof QueryInterface ? $query : $this->db->createQuery(); } /** @@ -659,7 +659,7 @@ protected function getListQuery($query = null) protected function getPluginType($id) { // Prepare the query - $query = $this->db->getQuery(true) + $query = $this->db->createQuery() ->select($this->db->quoteName('element')) ->from($this->db->quoteName('#__extensions')) ->where($this->db->quoteName('extension_id') . ' = ' . (int) $id); @@ -678,7 +678,7 @@ protected function getPluginType($id) */ protected function getStateQuery() { - $query = $this->db->getQuery(true); + $query = $this->db->createQuery(); // Item ID $query->select('a.id'); @@ -706,7 +706,7 @@ protected function getStateQuery() protected function getUpdateQueryByTime($time) { // Build an SQL query based on the modified time. - $query = $this->db->getQuery(true) + $query = $this->db->createQuery() ->where('a.modified >= ' . $this->db->quote($time)); return $query; @@ -724,7 +724,7 @@ protected function getUpdateQueryByTime($time) protected function getUpdateQueryByIds($ids) { // Build an SQL query based on the item ids. - $query = $this->db->getQuery(true) + $query = $this->db->createQuery() ->where('a.id IN(' . implode(',', $ids) . ')'); return $query; @@ -741,7 +741,7 @@ protected function getUpdateQueryByIds($ids) protected function getTypeId() { // Get the type id from the database. - $query = $this->db->getQuery(true) + $query = $this->db->createQuery() ->select($this->db->quoteName('id')) ->from($this->db->quoteName('#__finder_types')) ->where($this->db->quoteName('title') . ' = ' . $this->db->quote($this->type_title)); @@ -787,7 +787,7 @@ protected function getItemMenuTitle($url) $groups = implode(',', $user->getAuthorisedViewLevels()); // Build a query to get the menu params. - $query = $this->db->getQuery(true) + $query = $this->db->createQuery() ->select($this->db->quoteName('params')) ->from($this->db->quoteName('#__menu')) ->where($this->db->quoteName('link') . ' = ' . $this->db->quote($url)) diff --git a/administrator/components/com_finder/src/Indexer/Helper.php b/administrator/components/com_finder/src/Indexer/Helper.php index b57cdbdb83de8..b0795e1cb0e7a 100644 --- a/administrator/components/com_finder/src/Indexer/Helper.php +++ b/administrator/components/com_finder/src/Indexer/Helper.php @@ -15,7 +15,7 @@ use Joomla\CMS\Factory; use Joomla\CMS\Language\Multilanguage; use Joomla\CMS\Plugin\PluginHelper; -use Joomla\CMS\Table\Table; +use Joomla\CMS\Table\Content; use Joomla\Component\Fields\Administrator\Helper\FieldsHelper; use Joomla\Registry\Registry; use Joomla\String\StringHelper; @@ -228,7 +228,7 @@ public static function addContentType($title, $mime = null) static $types; $db = Factory::getDbo(); - $query = $db->getQuery(true); + $query = $db->createQuery(); // Check if the types are loaded. if (empty($types)) { @@ -321,7 +321,7 @@ public static function getCommonWords($lang) $db = Factory::getDbo(); // Create the query to load all the common terms for the language. - $query = $db->getQuery(true) + $query = $db->createQuery() ->select($db->quoteName('term')) ->from($db->quoteName('#__finder_terms_common')) ->where($db->quoteName('language') . ' = ' . $db->quote($lang)); @@ -472,7 +472,7 @@ public static function prepareContent($text, $params = null, ?Result $item = nul } // Create a mock content object. - $content = Table::getInstance('Content'); + $content = new Content(Factory::getDbo()); $content->text = $text; if ($item) { diff --git a/administrator/components/com_finder/src/Indexer/Indexer.php b/administrator/components/com_finder/src/Indexer/Indexer.php index 1ed61b79faf90..3b73bb0715dd3 100644 --- a/administrator/components/com_finder/src/Indexer/Indexer.php +++ b/administrator/components/com_finder/src/Indexer/Indexer.php @@ -12,7 +12,6 @@ use Joomla\CMS\Component\ComponentHelper; use Joomla\CMS\Factory; -use Joomla\CMS\Object\CMSObject; use Joomla\CMS\Plugin\PluginHelper; use Joomla\CMS\Profiler\Profiler; use Joomla\Database\DatabaseInterface; @@ -83,7 +82,7 @@ class Indexer /** * The indexer state object. * - * @var CMSObject + * @var \stdClass * @since 2.5 */ public static $state; @@ -129,7 +128,7 @@ public function __construct(?DatabaseInterface $db = null) $this->db = $db; // Set up query template for addTokensToDb - $this->addTokensToDbQueryTemplate = $db->getQuery(true)->insert($db->quoteName('#__finder_tokens')) + $this->addTokensToDbQueryTemplate = $db->createQuery()->insert($db->quoteName('#__finder_tokens')) ->columns( [ $db->quoteName('term'), @@ -146,7 +145,7 @@ public function __construct(?DatabaseInterface $db = null) /** * Method to get the indexer state. * - * @return CMSObject The indexer state object. + * @return \stdClass The indexer state object. * * @since 2.5 */ @@ -163,7 +162,7 @@ public static function getState() // If the state is empty, load the values for the first time. if (empty($data)) { - $data = new CMSObject(); + $data = new \stdClass(); $data->force = false; // Load the default configuration options. @@ -228,7 +227,7 @@ public static function getState() /** * Method to set the indexer state. * - * @param CMSObject $data A new indexer state object. + * @param \stdClass $data A new indexer state object. * * @return boolean True on success, false on failure. * @@ -237,7 +236,7 @@ public static function getState() public static function setState($data) { // Check the state object. - if (empty($data) || !$data instanceof CMSObject) { + if (empty($data) || !$data instanceof \stdClass) { return false; } @@ -285,7 +284,7 @@ public function index($item, $format = 'html') $serverType = strtolower($db->getServerType()); // Check if the item is in the database. - $query = $db->getQuery(true) + $query = $db->createQuery() ->select($db->quoteName('link_id') . ', ' . $db->quoteName('md5sum')) ->from($db->quoteName('#__finder_links')) ->where($db->quoteName('url') . ' = ' . $db->quote($item->url)); @@ -541,7 +540,7 @@ public function index($item, $format = 'html') * so we need to go back and update the aggregate table with all the * new term ids. */ - $query = $db->getQuery(true) + $query = $db->createQuery() ->update($db->quoteName('#__finder_tokens_aggregate', 'ta')) ->innerJoin($db->quoteName('#__finder_terms', 't'), 't.term = ta.term AND t.language = ta.language') ->where('ta.term_id = 0'); @@ -651,7 +650,7 @@ public function index($item, $format = 'html') public function remove($linkId, $removeTaxonomies = true) { $db = $this->db; - $query = $db->getQuery(true); + $query = $db->createQuery(); $linkId = (int) $linkId; // Update the link counts for the terms. @@ -713,25 +712,25 @@ public function optimize() $serverType = strtolower($db->getServerType()); // Delete all broken links. (Links missing the object) - $query = $db->getQuery(true) + $query = $db->createQuery() ->delete('#__finder_links') ->where($db->quoteName('object') . ' = ' . $db->quote('')); $db->setQuery($query); $db->execute(); // Delete all orphaned mappings of terms to links - $query2 = $db->getQuery(true) + $query2 = $db->createQuery() ->select($db->quoteName('link_id')) ->from($db->quoteName('#__finder_links')); - $query = $db->getQuery(true) + $query = $db->createQuery() ->delete($db->quoteName('#__finder_links_terms')) ->where($db->quoteName('link_id') . ' NOT IN (' . $query2 . ')'); $db->setQuery($query); $db->execute(); // Update count of links in terms table - $query = $db->getQuery(true); - $query2 = $db->getQuery(true); + $query = $db->createQuery(); + $query2 = $db->createQuery(); $query2->select('COUNT(lt.link_id)') ->from($db->quoteName('#__finder_links_terms', 'lt')) ->where($db->quoteName('lt.term_id') . ' = ' . $db->quoteName('t.term_id')); @@ -741,7 +740,7 @@ public function optimize() $db->execute(); // Delete all orphaned terms. - $query = $db->getQuery(true); + $query = $db->createQuery(); $query->delete($db->quoteName('#__finder_terms')) ->where($db->quoteName('links') . ' <= 0'); $db->setQuery($query); @@ -749,10 +748,10 @@ public function optimize() // Delete all orphaned terms - $query2 = $db->getQuery(true) + $query2 = $db->createQuery() ->select($db->quoteName('term_id')) ->from($db->quoteName('#__finder_links_terms')); - $query = $db->getQuery(true) + $query = $db->createQuery() ->delete($db->quoteName('#__finder_terms')) ->where($db->quoteName('term_id') . ' NOT IN (' . $query2 . ')'); $db->setQuery($query); diff --git a/administrator/components/com_finder/src/Indexer/Query.php b/administrator/components/com_finder/src/Indexer/Query.php index 76c4503e4af4d..69f64ec84bfe6 100644 --- a/administrator/components/com_finder/src/Indexer/Query.php +++ b/administrator/components/com_finder/src/Indexer/Query.php @@ -505,7 +505,7 @@ protected function processStaticTaxonomy($filterId) $groups = implode(',', Factory::getUser()->getAuthorisedViewLevels()); // Load the predefined filter. - $query = $db->getQuery(true) + $query = $db->createQuery() ->select('f.data, f.params') ->from($db->quoteName('#__finder_filters') . ' AS f') ->where('f.filter_id = ' . (int) $filterId); @@ -609,7 +609,7 @@ protected function processDynamicTaxonomy($filters) // Get the database object. $db = $this->getDatabase(); - $query = $db->getQuery(true); + $query = $db->createQuery(); /* * Create the query to get filters from the database. We do this for @@ -1242,7 +1242,7 @@ protected function getTokenData($token) $db = $this->getDatabase(); // Create a database query to build match the token. - $query = $db->getQuery(true) + $query = $db->createQuery() ->select('t.term, t.term_id') ->from('#__finder_terms AS t'); diff --git a/administrator/components/com_finder/src/Indexer/Taxonomy.php b/administrator/components/com_finder/src/Indexer/Taxonomy.php index 28414eeef34bc..5091a21b92d4a 100644 --- a/administrator/components/com_finder/src/Indexer/Taxonomy.php +++ b/administrator/components/com_finder/src/Indexer/Taxonomy.php @@ -174,7 +174,7 @@ protected static function storeNode($node, $parentId) // Check to see if the node is in the table. $db = Factory::getDbo(); - $query = $db->getQuery(true) + $query = $db->createQuery() ->select('*') ->from($db->quoteName('#__finder_taxonomy')) ->where($db->quoteName('parent_id') . ' = ' . $db->quote($parentId)) @@ -277,7 +277,7 @@ public static function addMap($linkId, $nodeId) // Insert the map. $db = Factory::getDbo(); - $query = $db->getQuery(true) + $query = $db->createQuery() ->select($db->quoteName('link_id')) ->from($db->quoteName('#__finder_taxonomy_map')) ->where($db->quoteName('link_id') . ' = ' . (int) $linkId) @@ -315,7 +315,7 @@ public static function getBranchTitles() $groups = implode(',', Factory::getUser()->getAuthorisedViewLevels()); // Create a query to get the taxonomy branch titles. - $query = $db->getQuery(true) + $query = $db->createQuery() ->select($db->quoteName('title')) ->from($db->quoteName('#__finder_taxonomy')) ->where($db->quoteName('parent_id') . ' = 1') @@ -350,7 +350,7 @@ public static function getNodeByTitle($branch, $title) $groups = implode(',', Factory::getUser()->getAuthorisedViewLevels()); // Create a query to get the node. - $query = $db->getQuery(true) + $query = $db->createQuery() ->select('t1.*') ->from($db->quoteName('#__finder_taxonomy') . ' AS t1') ->join('INNER', $db->quoteName('#__finder_taxonomy') . ' AS t2 ON t2.id = t1.parent_id') @@ -382,7 +382,7 @@ public static function removeMaps($linkId) { // Delete the maps. $db = Factory::getDbo(); - $query = $db->getQuery(true) + $query = $db->createQuery() ->delete($db->quoteName('#__finder_taxonomy_map')) ->where($db->quoteName('link_id') . ' = ' . (int) $linkId); $db->setQuery($query); @@ -403,10 +403,10 @@ public static function removeOrphanMaps() { // Delete all orphaned maps $db = Factory::getDbo(); - $query2 = $db->getQuery(true) + $query2 = $db->createQuery() ->select($db->quoteName('link_id')) ->from($db->quoteName('#__finder_links')); - $query = $db->getQuery(true) + $query = $db->createQuery() ->delete($db->quoteName('#__finder_taxonomy_map')) ->where($db->quoteName('link_id') . ' NOT IN (' . $query2 . ')'); $db->setQuery($query); @@ -430,8 +430,8 @@ public static function removeOrphanNodes() $affectedRows = 0; $db = Factory::getDbo(); $nodeTable = new MapTable($db); - $query = $db->getQuery(true); - $query2 = $db->getQuery(true); + $query = $db->createQuery(); + $query2 = $db->createQuery(); $query->select($db->quoteName('t.id')) ->from($db->quoteName('#__finder_taxonomy', 't')) @@ -473,7 +473,7 @@ public static function getTaxonomy($id = 0) { if (!\count(self::$taxonomies)) { $db = Factory::getDbo(); - $query = $db->getQuery(true); + $query = $db->createQuery(); $query->select(['id','parent_id','lft','rgt','level','path','title','alias','state','access','language']) ->from($db->quoteName('#__finder_taxonomy')) diff --git a/administrator/components/com_finder/src/Model/FilterModel.php b/administrator/components/com_finder/src/Model/FilterModel.php index f785e07312386..7b50fc0316f8f 100644 --- a/administrator/components/com_finder/src/Model/FilterModel.php +++ b/administrator/components/com_finder/src/Model/FilterModel.php @@ -45,15 +45,13 @@ class FilterModel extends AdminModel /** * Custom clean cache method. * - * @param string $group The component name. [optional] - * @param integer $clientId No longer used, will be removed without replacement - * @deprecated 4.3 will be removed in 6.0 + * @param string $group The component name. [optional] * * @return void * * @since 2.5 */ - protected function cleanCache($group = 'com_finder', $clientId = 0) + protected function cleanCache($group = 'com_finder') { parent::cleanCache($group); } @@ -145,7 +143,7 @@ protected function loadFormData() public function getTotal() { $db = $this->getDatabase(); - $query = $db->getQuery(true) + $query = $db->createQuery() ->select('MAX(link_id)') ->from('#__finder_links'); diff --git a/administrator/components/com_finder/src/Model/FiltersModel.php b/administrator/components/com_finder/src/Model/FiltersModel.php index ec05f535ba67e..23d98fbf8a932 100644 --- a/administrator/components/com_finder/src/Model/FiltersModel.php +++ b/administrator/components/com_finder/src/Model/FiltersModel.php @@ -61,7 +61,7 @@ public function __construct($config = [], ?MVCFactoryInterface $factory = null) protected function getListQuery() { $db = $this->getDatabase(); - $query = $db->getQuery(true); + $query = $db->createQuery(); // Select all fields from the table. $query->select('a.*') diff --git a/administrator/components/com_finder/src/Model/IndexModel.php b/administrator/components/com_finder/src/Model/IndexModel.php index b8cb0f99e005c..a292e08ba1c8d 100644 --- a/administrator/components/com_finder/src/Model/IndexModel.php +++ b/administrator/components/com_finder/src/Model/IndexModel.php @@ -182,7 +182,7 @@ public function delete(&$pks) protected function getListQuery() { $db = $this->getDatabase(); - $query = $db->getQuery(true) + $query = $db->createQuery() ->select('l.*') ->select($db->quoteName('t.title', 't_title')) ->from($db->quoteName('#__finder_links', 'l')) @@ -259,7 +259,7 @@ protected function getListQuery() public function getPluginState() { $db = $this->getDatabase(); - $query = $db->getQuery(true) + $query = $db->createQuery() ->select('name, enabled') ->from($db->quoteName('#__extensions')) ->where($db->quoteName('type') . ' = ' . $db->quote('plugin')) @@ -304,7 +304,7 @@ protected function getStoreId($id = '') public function getTotalIndexed() { $db = $this->getDatabase(); - $query = $db->getQuery(true) + $query = $db->createQuery() ->select('COUNT(link_id)') ->from($db->quoteName('#__finder_links')); $db->setQuery($query); diff --git a/administrator/components/com_finder/src/Model/ItemModel.php b/administrator/components/com_finder/src/Model/ItemModel.php index fdb9b268bc054..cdeaf3b1a44be 100644 --- a/administrator/components/com_finder/src/Model/ItemModel.php +++ b/administrator/components/com_finder/src/Model/ItemModel.php @@ -46,7 +46,7 @@ public function getItem() { $link_id = (int) $this->getState('item.link_id'); $db = $this->getDatabase(); - $query = $db->getQuery(true) + $query = $db->createQuery() ->select('*') ->from($db->quoteName('#__finder_links', 'l')) ->where($db->quoteName('l.link_id') . ' = :link_id') @@ -68,7 +68,7 @@ public function getTerms() { $link_id = (int) $this->getState('item.link_id'); $db = $this->getDatabase(); - $query = $db->getQuery(true) + $query = $db->createQuery() ->select('t.*, l.*') ->from($db->quoteName('#__finder_links_terms', 'l')) ->leftJoin($db->quoteName('#__finder_terms', 't') . ' ON ' . $db->quoteName('t.term_id') . ' = ' . $db->quoteName('l.term_id')) @@ -92,7 +92,7 @@ public function getTaxonomies() { $link_id = (int) $this->getState('item.link_id'); $db = $this->getDatabase(); - $query = $db->getQuery(true) + $query = $db->createQuery() ->select('t.*, m.*') ->from($db->quoteName('#__finder_taxonomy_map', 'm')) ->leftJoin($db->quoteName('#__finder_taxonomy', 't') . ' ON ' . $db->quoteName('t.id') . ' = ' . $db->quoteName('m.node_id')) diff --git a/administrator/components/com_finder/src/Model/MapsModel.php b/administrator/components/com_finder/src/Model/MapsModel.php index 98231c4d188bf..08032b8fcd1aa 100644 --- a/administrator/components/com_finder/src/Model/MapsModel.php +++ b/administrator/components/com_finder/src/Model/MapsModel.php @@ -165,7 +165,7 @@ protected function getListQuery() $db = $this->getDatabase(); // Select all fields from the table. - $query = $db->getQuery(true) + $query = $db->createQuery() ->select('a.id, a.parent_id, a.lft, a.rgt, a.level, a.path, a.title, a.alias, a.state, a.access, a.language') ->from($db->quoteName('#__finder_taxonomy', 'a')) ->where('a.parent_id != 0'); @@ -175,7 +175,7 @@ protected function getListQuery() ->leftJoin($db->quoteName('#__finder_taxonomy', 'b') . ' ON b.level = 1 AND b.lft <= a.lft AND a.rgt <= b.rgt'); // Join to get the map links. - $stateQuery = $db->getQuery(true) + $stateQuery = $db->createQuery() ->select('m.node_id') ->select('COUNT(NULLIF(l.published, 0)) AS count_published') ->select('COUNT(NULLIF(l.published, 1)) AS count_unpublished') @@ -363,7 +363,7 @@ public function publish(&$pks, $value = 1) public function purge() { $db = $this->getDatabase(); - $query = $db->getQuery(true) + $query = $db->createQuery() ->delete($db->quoteName('#__finder_taxonomy')) ->where($db->quoteName('parent_id') . ' > 1'); $db->setQuery($query); diff --git a/administrator/components/com_finder/src/Model/SearchesModel.php b/administrator/components/com_finder/src/Model/SearchesModel.php index 5cdff1385b1c2..6ae77a2022e39 100644 --- a/administrator/components/com_finder/src/Model/SearchesModel.php +++ b/administrator/components/com_finder/src/Model/SearchesModel.php @@ -105,7 +105,7 @@ protected function getListQuery() { // Create a new query object. $db = $this->getDatabase(); - $query = $db->getQuery(true); + $query = $db->createQuery(); // Select the required fields from the table. $query->select( diff --git a/administrator/components/com_finder/src/Model/StatisticsModel.php b/administrator/components/com_finder/src/Model/StatisticsModel.php index 8845712b15b58..2d066e0cca76c 100644 --- a/administrator/components/com_finder/src/Model/StatisticsModel.php +++ b/administrator/components/com_finder/src/Model/StatisticsModel.php @@ -12,7 +12,6 @@ use Joomla\CMS\Factory; use Joomla\CMS\MVC\Model\BaseDatabaseModel; -use Joomla\CMS\Object\CMSObject; use Joomla\CMS\Plugin\PluginHelper; // phpcs:disable PSR1.Files.SideEffects @@ -29,7 +28,7 @@ class StatisticsModel extends BaseDatabaseModel /** * Method to get the component statistics * - * @return CMSObject The component statistics + * @return \stdClass The component statistics * * @since 2.5 */ @@ -37,8 +36,8 @@ public function getData() { // Initialise $db = $this->getDatabase(); - $query = $db->getQuery(true); - $data = new CMSObject(); + $query = $db->createQuery(); + $data = new \stdClass(); $query->select('COUNT(term_id)') ->from($db->quoteName('#__finder_terms')); diff --git a/administrator/components/com_finder/src/Service/HTML/Filter.php b/administrator/components/com_finder/src/Service/HTML/Filter.php index 0d238cca30ad3..cf26d73e15dcb 100644 --- a/administrator/components/com_finder/src/Service/HTML/Filter.php +++ b/administrator/components/com_finder/src/Service/HTML/Filter.php @@ -47,7 +47,7 @@ class Filter public function slider($options = []) { $db = $this->getDatabase(); - $query = $db->getQuery(true); + $query = $db->createQuery(); $user = Factory::getUser(); $groups = implode(',', $user->getAuthorisedViewLevels()); $html = ''; @@ -225,7 +225,7 @@ public function select($idxQuery, $options) $branches = $cache->get($cacheId); } else { $db = $this->getDatabase(); - $query = $db->getQuery(true); + $query = $db->createQuery(); // Load the predefined filter if specified. if (!empty($idxQuery->filter)) { diff --git a/administrator/components/com_finder/src/Service/HTML/Finder.php b/administrator/components/com_finder/src/Service/HTML/Finder.php index fa62a601879e0..fad16340e01f7 100644 --- a/administrator/components/com_finder/src/Service/HTML/Finder.php +++ b/administrator/components/com_finder/src/Service/HTML/Finder.php @@ -41,7 +41,7 @@ public function typeslist() { // Load the finder types. $db = $this->getDatabase(); - $query = $db->getQuery(true) + $query = $db->createQuery() ->select('DISTINCT t.title AS text, t.id AS value') ->from($db->quoteName('#__finder_types') . ' AS t') ->join('LEFT', $db->quoteName('#__finder_links') . ' AS l ON l.type_id = t.id') @@ -78,7 +78,7 @@ public function mapslist() { // Load the finder types. $db = $this->getDatabase(); - $query = $db->getQuery(true) + $query = $db->createQuery() ->select($db->quoteName('title', 'text')) ->select($db->quoteName('id', 'value')) ->from($db->quoteName('#__finder_taxonomy')) diff --git a/administrator/components/com_finder/src/View/Filter/HtmlView.php b/administrator/components/com_finder/src/View/Filter/HtmlView.php index dc0cbebf16502..22881548a78cf 100644 --- a/administrator/components/com_finder/src/View/Filter/HtmlView.php +++ b/administrator/components/com_finder/src/View/Filter/HtmlView.php @@ -110,6 +110,11 @@ public function display($tpl = null) throw new GenericDataException(implode("\n", $errors), 500); } + // Add form control fields + $this->form + ->addControlField('task', '') + ->addControlField('return', Factory::getApplication()->getInput()->get('return', '', 'BASE64')); + // Configure the toolbar. $this->addToolbar(); diff --git a/administrator/components/com_finder/src/View/Filters/HtmlView.php b/administrator/components/com_finder/src/View/Filters/HtmlView.php index 555aec748934c..d6bd67322c0ee 100644 --- a/administrator/components/com_finder/src/View/Filters/HtmlView.php +++ b/administrator/components/com_finder/src/View/Filters/HtmlView.php @@ -112,9 +112,10 @@ public function display($tpl = null) $this->filterForm = $model->getFilterForm(); $this->activeFilters = $model->getActiveFilters(); - if (\count($this->items) === 0 && $this->isEmptyState = $model->getIsEmptyState()) { - $this->setLayout('emptystate'); - } + // Add form control fields + $this->filterForm + ->addControlField('task', '') + ->addControlField('boxchecked', '0'); // Configure the toolbar. $this->addToolbar(); diff --git a/administrator/components/com_finder/src/View/Index/HtmlView.php b/administrator/components/com_finder/src/View/Index/HtmlView.php index 5434f680f1152..cb075a499c31b 100644 --- a/administrator/components/com_finder/src/View/Index/HtmlView.php +++ b/administrator/components/com_finder/src/View/Index/HtmlView.php @@ -166,6 +166,11 @@ public function display($tpl = null) $this->finderPlugins = false; } + // Add form control fields + $this->filterForm + ->addControlField('task', '') + ->addControlField('boxchecked', '0'); + // Configure the toolbar. $this->addToolbar(); diff --git a/administrator/components/com_finder/src/View/Maps/HtmlView.php b/administrator/components/com_finder/src/View/Maps/HtmlView.php index f9bc5d7be75bc..8b8af14c9fd9d 100644 --- a/administrator/components/com_finder/src/View/Maps/HtmlView.php +++ b/administrator/components/com_finder/src/View/Maps/HtmlView.php @@ -120,6 +120,11 @@ public function display($tpl = null) $this->setLayout('emptystate'); } + // Add form control fields + $this->filterForm + ->addControlField('task', 'display') + ->addControlField('boxchecked', '0'); + // Prepare the view. $this->addToolbar(); diff --git a/administrator/components/com_finder/src/View/Searches/HtmlView.php b/administrator/components/com_finder/src/View/Searches/HtmlView.php index f2af9b33c6d46..4aee1468da44a 100644 --- a/administrator/components/com_finder/src/View/Searches/HtmlView.php +++ b/administrator/components/com_finder/src/View/Searches/HtmlView.php @@ -132,6 +132,11 @@ public function display($tpl = null) } } + // Add form control fields + $this->filterForm + ->addControlField('task', '') + ->addControlField('boxchecked', '0'); + // Prepare the view. $this->addToolbar(); diff --git a/administrator/components/com_finder/src/View/Statistics/HtmlView.php b/administrator/components/com_finder/src/View/Statistics/HtmlView.php index c4fbcb5aad878..635f690058f19 100644 --- a/administrator/components/com_finder/src/View/Statistics/HtmlView.php +++ b/administrator/components/com_finder/src/View/Statistics/HtmlView.php @@ -27,7 +27,7 @@ class HtmlView extends BaseHtmlView /** * The index statistics * - * @var \Joomla\CMS\Object\CMSObject + * @var \stdClass * * @since 3.6.1 */ diff --git a/administrator/components/com_finder/tmpl/filter/edit.php b/administrator/components/com_finder/tmpl/filter/edit.php index 8d0f660cffe46..10c4e69139e60 100644 --- a/administrator/components/com_finder/tmpl/filter/edit.php +++ b/administrator/components/com_finder/tmpl/filter/edit.php @@ -10,7 +10,6 @@ defined('_JEXEC') or die; -use Joomla\CMS\Factory; use Joomla\CMS\HTML\HTMLHelper; use Joomla\CMS\Language\Text; use Joomla\CMS\Layout\LayoutHelper; @@ -87,8 +86,6 @@ - - - + form->renderControlFields(); ?> diff --git a/administrator/components/com_finder/tmpl/filters/default.php b/administrator/components/com_finder/tmpl/filters/default.php index a75c842ed8ec5..88e5acbbc7bdb 100644 --- a/administrator/components/com_finder/tmpl/filters/default.php +++ b/administrator/components/com_finder/tmpl/filters/default.php @@ -124,9 +124,8 @@ pagination->getListFooter(); ?> - - - + + filterForm->renderControlFields(); ?> diff --git a/administrator/components/com_finder/tmpl/filters/emptystate.php b/administrator/components/com_finder/tmpl/filters/emptystate.php index 416a26b972689..31767871bfb98 100644 --- a/administrator/components/com_finder/tmpl/filters/emptystate.php +++ b/administrator/components/com_finder/tmpl/filters/emptystate.php @@ -23,6 +23,8 @@ 'btnadd' => Text::_('COM_FINDER_FILTERS_EMPTYSTATE_BUTTON_ADD'), 'content' => Text::_('COM_FINDER_FILTERS_EMPTYSTATE_CONTENT'), 'title' => Text::_('COM_FINDER_FILTERS_TOOLBAR_TITLE'), + + 'controlFields' => $this->filterForm->renderControlFields(), ]; if ($this->getCurrentUser()->authorise('core.create', 'com_finder')) { diff --git a/administrator/components/com_finder/tmpl/index/default.php b/administrator/components/com_finder/tmpl/index/default.php index da5fe365c863c..10065d9d8ed3c 100644 --- a/administrator/components/com_finder/tmpl/index/default.php +++ b/administrator/components/com_finder/tmpl/index/default.php @@ -169,9 +169,7 @@ pagination->getListFooter(); ?> - - - + filterForm->renderControlFields(); ?> diff --git a/administrator/components/com_finder/tmpl/index/emptystate.php b/administrator/components/com_finder/tmpl/index/emptystate.php index 10a2395144ea6..3f48e714c3643 100644 --- a/administrator/components/com_finder/tmpl/index/emptystate.php +++ b/administrator/components/com_finder/tmpl/index/emptystate.php @@ -26,6 +26,8 @@ 'content' => Text::_('COM_FINDER_INDEX_NO_DATA') . '
' . Text::_('COM_FINDER_INDEX_TIP'), 'title' => Text::_('COM_FINDER_HEADING_INDEXER'), 'createURL' => "javascript:document.getElementsByClassName('button-index')[0].click();", + + 'controlFields' => $this->filterForm->renderControlFields(), ]; echo LayoutHelper::render('joomla.content.emptystate', $displayData); diff --git a/administrator/components/com_finder/tmpl/maps/default.php b/administrator/components/com_finder/tmpl/maps/default.php index 2b9ca870ffecc..1e14cc6b72653 100644 --- a/administrator/components/com_finder/tmpl/maps/default.php +++ b/administrator/components/com_finder/tmpl/maps/default.php @@ -168,9 +168,7 @@ - - - + filterForm->renderControlFields(); ?> diff --git a/administrator/components/com_finder/tmpl/maps/emptystate.php b/administrator/components/com_finder/tmpl/maps/emptystate.php index 00bb16722d867..a7337a0766db4 100644 --- a/administrator/components/com_finder/tmpl/maps/emptystate.php +++ b/administrator/components/com_finder/tmpl/maps/emptystate.php @@ -18,7 +18,9 @@ 'formURL' => 'index.php?option=com_finder&view=maps', 'helpURL' => 'https://docs.joomla.org/Special:MyLanguage/Help5.x:Smart_Search:_Content_Maps', 'icon' => 'icon-search-plus finder', - 'title' => Text::_('COM_FINDER_MAPS_TOOLBAR_TITLE') + 'title' => Text::_('COM_FINDER_MAPS_TOOLBAR_TITLE'), + + 'controlFields' => $this->filterForm->renderControlFields(), ]; echo LayoutHelper::render('joomla.content.emptystate', $displayData); diff --git a/administrator/components/com_finder/tmpl/searches/default.php b/administrator/components/com_finder/tmpl/searches/default.php index e6cf3b29731e4..d892b3163ecb9 100644 --- a/administrator/components/com_finder/tmpl/searches/default.php +++ b/administrator/components/com_finder/tmpl/searches/default.php @@ -76,9 +76,8 @@ pagination->getListFooter(); ?> - - - + + filterForm->renderControlFields(); ?> diff --git a/administrator/components/com_finder/tmpl/searches/emptystate.php b/administrator/components/com_finder/tmpl/searches/emptystate.php index 31d49307f0a37..3534093a67c53 100644 --- a/administrator/components/com_finder/tmpl/searches/emptystate.php +++ b/administrator/components/com_finder/tmpl/searches/emptystate.php @@ -20,6 +20,8 @@ 'icon' => 'icon-search', 'title' => Text::_('COM_FINDER_MANAGER_SEARCHES'), 'content' => Text::_('COM_FINDER_EMPTYSTATE_SEARCHES_CONTENT'), + + 'controlFields' => $this->filterForm->renderControlFields(), ]; echo LayoutHelper::render('joomla.content.emptystate', $displayData); diff --git a/administrator/components/com_guidedtours/src/Model/StepModel.php b/administrator/components/com_guidedtours/src/Model/StepModel.php index e78e4a221ef0b..6a45bbe30b45b 100644 --- a/administrator/components/com_guidedtours/src/Model/StepModel.php +++ b/administrator/components/com_guidedtours/src/Model/StepModel.php @@ -129,7 +129,7 @@ protected function prepareTable($table) // Set ordering to the last item if not set if (empty($table->ordering)) { $db = $this->getDatabase(); - $query = $db->getQuery(true) + $query = $db->createQuery() ->select('MAX(ordering)') ->from($db->quoteName('#__guidedtour_steps')); $db->setQuery($query); diff --git a/administrator/components/com_guidedtours/src/Model/StepsModel.php b/administrator/components/com_guidedtours/src/Model/StepsModel.php index d3daaa4685b81..1a6886b56c6f5 100644 --- a/administrator/components/com_guidedtours/src/Model/StepsModel.php +++ b/administrator/components/com_guidedtours/src/Model/StepsModel.php @@ -148,7 +148,7 @@ protected function getListQuery() { // Create a new query object. $db = $this->getDatabase(); - $query = $db->getQuery(true); + $query = $db->createQuery(); // Select the required fields from the table. $query->select( diff --git a/administrator/components/com_guidedtours/src/Model/TourModel.php b/administrator/components/com_guidedtours/src/Model/TourModel.php index d39e479885b25..c6b652d6da6aa 100644 --- a/administrator/components/com_guidedtours/src/Model/TourModel.php +++ b/administrator/components/com_guidedtours/src/Model/TourModel.php @@ -15,7 +15,6 @@ use Joomla\CMS\Language\Text; use Joomla\CMS\Log\Log; use Joomla\CMS\MVC\Model\AdminModel; -use Joomla\CMS\Object\CMSObject; use Joomla\CMS\Plugin\PluginHelper; use Joomla\Component\Guidedtours\Administrator\Helper\GuidedtoursHelper; use Joomla\Database\ParameterType; @@ -105,7 +104,7 @@ protected function prepareTable($table) // Set ordering to the last item if not set if (empty($table->ordering)) { $db = $this->getDatabase(); - $query = $db->getQuery(true) + $query = $db->createQuery() ->select('MAX(ordering)') ->from($db->quoteName('#__guidedtours')); $db->setQuery($query); @@ -221,9 +220,9 @@ public function getItem($pk = null) return false; } - // Convert to the CMSObject before adding other data. + // Convert to an object before adding other data. $properties = $table->getProperties(1); - $item = ArrayHelper::toObject($properties, CMSObject::class); + $item = ArrayHelper::toObject($properties); if (property_exists($item, 'params')) { $registry = new Registry($item->params); @@ -284,7 +283,7 @@ public function delete(&$pks) // Delete of the tour has been successful, now delete the steps $db = $this->getDatabase(); - $query = $db->getQuery(true) + $query = $db->createQuery() ->delete($db->quoteName('#__guidedtour_steps')) ->where($db->quoteName('tour_id') . '=' . $tourId); $db->setQuery($query); @@ -356,7 +355,7 @@ public function duplicate(&$pks) $pk = (int) $pk; - $query = $db->getQuery(true) + $query = $db->createQuery() ->select( $db->quoteName( [ @@ -386,7 +385,7 @@ public function duplicate(&$pks) $rows = $db->loadObjectList(); if ($rows) { - $query = $db->getQuery(true) + $query = $db->createQuery() ->insert($db->quoteName('#__guidedtour_steps')) ->columns( [ @@ -495,7 +494,7 @@ protected function setStepsLanguage(int $id, string $language = '*'): bool } $db = $this->getDatabase(); - $query = $db->getQuery(true) + $query = $db->createQuery() ->update($db->quoteName('#__guidedtour_steps')) ->set($db->quoteName('language') . ' = :language') ->where($db->quoteName('tour_id') . ' = :tourId') @@ -518,7 +517,7 @@ public function setAutostart($id, $autostart) { $db = $this->getDatabase(); - $query = $db->getQuery(true) + $query = $db->createQuery() ->update($db->quoteName('#__guidedtours')) ->set($db->quoteName('autostart') . ' = :autostart') ->where($db->quoteName('id') . ' = :tourId') @@ -542,7 +541,7 @@ public function isAutostart($pk): bool { $db = $this->getDatabase(); - $query = $db->getQuery(true) + $query = $db->createQuery() ->select($db->quoteName('autostart')) ->from($db->quoteName('#__guidedtours')) ->where($db->quoteName('published') . ' = 1'); @@ -587,7 +586,7 @@ public function saveTourUserState($id, $state = ''): bool $profileKey = 'guidedtour.id.' . $id; // Check if the profile key already exists. - $query = $db->getQuery(true) + $query = $db->createQuery() ->select($db->quoteName('profile_value')) ->from($db->quoteName('#__user_profiles')) ->where($db->quoteName('user_id') . ' = :user_id') diff --git a/administrator/components/com_guidedtours/src/Model/ToursModel.php b/administrator/components/com_guidedtours/src/Model/ToursModel.php index 3179b7d79f91c..6f0358dcb0735 100644 --- a/administrator/components/com_guidedtours/src/Model/ToursModel.php +++ b/administrator/components/com_guidedtours/src/Model/ToursModel.php @@ -113,7 +113,7 @@ public function getListQuery() { // Create a new query object. $db = $this->getDatabase(); - $query = $db->getQuery(true); + $query = $db->createQuery(); // Select the required fields from the table. $query->select( @@ -123,7 +123,7 @@ public function getListQuery() ) ); - $subQuery = $db->getQuery(true) + $subQuery = $db->createQuery() ->select('COUNT(' . $db->quoteName('s.id') . ')') ->from($db->quoteName('#__guidedtour_steps', 's')) ->where( diff --git a/administrator/components/com_guidedtours/src/View/Step/HtmlView.php b/administrator/components/com_guidedtours/src/View/Step/HtmlView.php index 47f974e1092cb..c6801d2182b37 100644 --- a/administrator/components/com_guidedtours/src/View/Step/HtmlView.php +++ b/administrator/components/com_guidedtours/src/View/Step/HtmlView.php @@ -16,6 +16,7 @@ use Joomla\CMS\MVC\View\HtmlView as BaseHtmlView; use Joomla\CMS\Toolbar\ToolbarHelper; use Joomla\Component\Guidedtours\Administrator\Model\StepModel; +use Joomla\Registry\Registry; // phpcs:disable PSR1.Files.SideEffects \defined('_JEXEC') or die; @@ -52,7 +53,7 @@ class HtmlView extends BaseHtmlView /** * The actions the user is authorised to perform * - * @var \Joomla\CMS\Object\CMSObject + * @var Registry */ protected $canDo; @@ -76,6 +77,10 @@ public function display($tpl = null) $this->item = $model->getItem(); $this->state = $model->getState(); + // Add form control fields + $this->form + ->addControlField('task', ''); + $this->addToolbar(); parent::display($tpl); diff --git a/administrator/components/com_guidedtours/src/View/Steps/HtmlView.php b/administrator/components/com_guidedtours/src/View/Steps/HtmlView.php index 66e8e659d9a48..ce5dde35eace9 100644 --- a/administrator/components/com_guidedtours/src/View/Steps/HtmlView.php +++ b/administrator/components/com_guidedtours/src/View/Steps/HtmlView.php @@ -108,6 +108,11 @@ public function display($tpl = null) // Unset the tour_id field from activeFilters as we don't filter by tour here. unset($this->activeFilters['tour_id']); + // Add form control fields + $this->filterForm + ->addControlField('task', '') + ->addControlField('boxchecked', '0'); + $this->addToolbar(); parent::display($tpl); diff --git a/administrator/components/com_guidedtours/src/View/Tour/HtmlView.php b/administrator/components/com_guidedtours/src/View/Tour/HtmlView.php index a65a5bc1f4e33..6562855bba535 100644 --- a/administrator/components/com_guidedtours/src/View/Tour/HtmlView.php +++ b/administrator/components/com_guidedtours/src/View/Tour/HtmlView.php @@ -76,6 +76,10 @@ public function display($tpl = null) $this->item = $model->getItem(); $this->state = $model->getState(); + // Add form control fields + $this->form + ->addControlField('task', ''); + $this->addToolbar(); parent::display($tpl); diff --git a/administrator/components/com_guidedtours/src/View/Tours/HtmlView.php b/administrator/components/com_guidedtours/src/View/Tours/HtmlView.php index ef8929999dd8e..11cb418e214cf 100644 --- a/administrator/components/com_guidedtours/src/View/Tours/HtmlView.php +++ b/administrator/components/com_guidedtours/src/View/Tours/HtmlView.php @@ -103,6 +103,11 @@ public function display($tpl = null) $this->filterForm->removeField('language', 'filter'); } + // Add form control fields + $this->filterForm + ->addControlField('task', '') + ->addControlField('boxchecked', '0'); + parent::display($tpl); } diff --git a/administrator/components/com_guidedtours/tmpl/step/edit.php b/administrator/components/com_guidedtours/tmpl/step/edit.php index 6f0fac755e907..a529e494035ff 100644 --- a/administrator/components/com_guidedtours/tmpl/step/edit.php +++ b/administrator/components/com_guidedtours/tmpl/step/edit.php @@ -104,7 +104,7 @@ - form->getInput('tour_id'); ?> - + + form->renderControlFields(); ?> diff --git a/administrator/components/com_guidedtours/tmpl/steps/default.php b/administrator/components/com_guidedtours/tmpl/steps/default.php index 97a0217a49c86..fccae6e1fb487 100644 --- a/administrator/components/com_guidedtours/tmpl/steps/default.php +++ b/administrator/components/com_guidedtours/tmpl/steps/default.php @@ -17,9 +17,8 @@ use Joomla\CMS\Router\Route; use Joomla\CMS\Session\Session; use Joomla\Component\Guidedtours\Administrator\Extension\GuidedtoursComponent; -use Joomla\Component\Guidedtours\Administrator\View\Steps\HtmlView; -/** @var HtmlView $this */ +/** @var \Joomla\Component\Guidedtours\Administrator\View\Steps\HtmlView $this */ /** @var \Joomla\CMS\WebAsset\WebAssetManager $wa */ $wa = $this->getDocument()->getWebAssetManager(); @@ -227,8 +226,6 @@ class="js-draggable" data-url="" data-direction=" ?> - - - + filterForm->renderControlFields(); ?> diff --git a/administrator/components/com_guidedtours/tmpl/steps/emptystate.php b/administrator/components/com_guidedtours/tmpl/steps/emptystate.php index 68ae26353b72f..4364dbdc54013 100644 --- a/administrator/components/com_guidedtours/tmpl/steps/emptystate.php +++ b/administrator/components/com_guidedtours/tmpl/steps/emptystate.php @@ -19,6 +19,8 @@ 'formURL' => 'index.php?option=com_guidedtours&view=steps', 'helpURL' => 'https://docs.joomla.org/Special:MyLanguage/Help5.x:Guided_Tours:_Steps', 'icon' => 'icon-map-signs', + + 'controlFields' => $this->filterForm->renderControlFields(), ]; $user = $this->getCurrentUser(); diff --git a/administrator/components/com_guidedtours/tmpl/tour/edit.php b/administrator/components/com_guidedtours/tmpl/tour/edit.php index 5bef1f3549f89..7ed71c51be486 100644 --- a/administrator/components/com_guidedtours/tmpl/tour/edit.php +++ b/administrator/components/com_guidedtours/tmpl/tour/edit.php @@ -100,6 +100,5 @@ - - + form->renderControlFields(); ?> diff --git a/administrator/components/com_guidedtours/tmpl/tours/default.php b/administrator/components/com_guidedtours/tmpl/tours/default.php index 33ef8b8f550f5..492777d1fa398 100644 --- a/administrator/components/com_guidedtours/tmpl/tours/default.php +++ b/administrator/components/com_guidedtours/tmpl/tours/default.php @@ -18,9 +18,8 @@ use Joomla\CMS\Layout\LayoutHelper; use Joomla\CMS\Router\Route; use Joomla\CMS\Session\Session; -use Joomla\Component\Guidedtours\Administrator\View\Tours\HtmlView; -/** @var HtmlView $this */ +/** @var \Joomla\Component\Guidedtours\Administrator\View\Tours\HtmlView $this */ /** @var \Joomla\CMS\WebAsset\WebAssetManager $wa */ $wa = $this->getDocument()->getWebAssetManager(); @@ -252,8 +251,6 @@ class="js-draggable" data-url="" data-direction=" ?> - - - + filterForm->renderControlFields(); ?> diff --git a/administrator/components/com_guidedtours/tmpl/tours/emptystate.php b/administrator/components/com_guidedtours/tmpl/tours/emptystate.php index 6500a86264413..a899420c3ef53 100644 --- a/administrator/components/com_guidedtours/tmpl/tours/emptystate.php +++ b/administrator/components/com_guidedtours/tmpl/tours/emptystate.php @@ -19,6 +19,8 @@ 'formURL' => 'index.php?option=com_guidedtours&view=tours', 'helpURL' => 'https://docs.joomla.org/Special:MyLanguage/Help5.x:Guided_Tours', 'icon' => 'icon-map-signs', + + 'controlFields' => $this->filterForm->renderControlFields(), ]; $user = $this->getCurrentUser(); diff --git a/administrator/components/com_installer/src/Helper/InstallerHelper.php b/administrator/components/com_installer/src/Helper/InstallerHelper.php index 5be9411ad6e22..51d178bec9455 100644 --- a/administrator/components/com_installer/src/Helper/InstallerHelper.php +++ b/administrator/components/com_installer/src/Helper/InstallerHelper.php @@ -13,7 +13,6 @@ use Joomla\CMS\Factory; use Joomla\CMS\HTML\HTMLHelper; use Joomla\CMS\Language\Text; -use Joomla\CMS\Object\CMSObject; use Joomla\Database\DatabaseInterface; use Joomla\Database\ParameterType; @@ -38,7 +37,7 @@ class InstallerHelper public static function getExtensionTypes() { $db = Factory::getDbo(); - $query = $db->getQuery(true) + $query = $db->createQuery() ->select('DISTINCT ' . $db->quoteName('type')) ->from($db->quoteName('#__extensions')); $db->setQuery($query); @@ -64,7 +63,7 @@ public static function getExtensionGroups() { $nofolder = ''; $db = Factory::getDbo(); - $query = $db->getQuery(true) + $query = $db->createQuery() ->select('DISTINCT ' . $db->quoteName('folder')) ->from($db->quoteName('#__extensions')) ->where($db->quoteName('folder') . ' != :folder') @@ -131,7 +130,7 @@ public static function getPackageOptions(): array /** @var DatabaseInterface $db The application's database driver object */ $db = Factory::getContainer()->get(DatabaseInterface::class); - $query = $db->getQuery(true) + $query = $db->createQuery() ->select( $db->quoteName( [ @@ -233,19 +232,19 @@ public static function getInstallationXML( /** * Get the download key of an extension going through their installation xml * - * @param CMSObject $extension element of an extension + * @param \stdClass $extension element of an extension * * @return array An array with the prefix, suffix and value of the download key * * @since 4.0.0 */ - public static function getDownloadKey(CMSObject $extension): array + public static function getDownloadKey(\stdClass $extension): array { $installXmlFile = self::getInstallationXML( - $extension->get('element'), - $extension->get('type'), - $extension->get('client_id'), - $extension->get('folder') + $extension->element, + $extension->type, + $extension->client_id, + $extension->folder ); if (!$installXmlFile) { @@ -264,7 +263,7 @@ public static function getDownloadKey(CMSObject $extension): array $prefix = (string) $installXmlFile->dlid['prefix']; $suffix = (string) $installXmlFile->dlid['suffix']; - $value = substr($extension->get('extra_query'), \strlen($prefix)); + $value = substr($extension->extra_query ?? '', \strlen($prefix)); if ($suffix) { $value = substr($value, 0, -\strlen($suffix)); @@ -309,8 +308,8 @@ public static function getExtensionDownloadKey( ]; } - // Try to retrieve the extension information as a CMSObject - $query = $db->getQuery(true) + // Try to retrieve the extension information + $query = $db->createQuery() ->select($db->quoteName('extension_id')) ->from($db->quoteName('#__extensions')) ->where($db->quoteName('type') . ' = :type') @@ -323,8 +322,8 @@ public static function getExtensionDownloadKey( $query->bind(':folder', $folder, ParameterType::STRING); try { - $extension = new CMSObject($db->setQuery($query)->loadAssoc()); - } catch (\Exception) { + $extension = $db->setQuery($query)->loadObject(); + } catch (\Exception $e) { return [ 'supported' => false, 'valid' => false, @@ -355,15 +354,15 @@ public static function getDownloadKeySupportedSites($onlyEnabled = false): array $extensions = self::getUpdateSitesInformation($onlyEnabled); - $filterClosure = function (CMSObject $extension) { + $filterClosure = function ($extension) { $dlidInfo = self::getDownloadKey($extension); return $dlidInfo['supported']; }; $extensions = array_filter($extensions, $filterClosure); - $mapClosure = function (CMSObject $extension) { - return $extension->get('update_site_id'); + $mapClosure = function ($extension) { + return $extension->update_site_id ?? null; }; return array_map($mapClosure, $extensions); @@ -391,7 +390,7 @@ public static function getDownloadKeyExistsSites(bool $exists = true, $onlyEnabl $extensions = self::getUpdateSitesInformation($onlyEnabled); // Filter the extensions by what supports Download Keys - $filterClosure = function (CMSObject $extension) use ($exists) { + $filterClosure = function ($extension) use ($exists) { $dlidInfo = self::getDownloadKey($extension); if (!$dlidInfo['supported']) { @@ -403,8 +402,8 @@ public static function getDownloadKeyExistsSites(bool $exists = true, $onlyEnabl $extensions = array_filter($extensions, $filterClosure); // Return only the update site IDs - $mapClosure = function (CMSObject $extension) { - return $extension->get('update_site_id'); + $mapClosure = function ($extension) { + return $extension->update_site_id ?? null; }; return array_map($mapClosure, $extensions); @@ -416,7 +415,7 @@ public static function getDownloadKeyExistsSites(bool $exists = true, $onlyEnabl * * @param bool $onlyEnabled Only return enabled update sites * - * @return CMSObject[] List of update site and linked extension information + * @return \stdClass[] List of update site and linked extension information * @since 4.0.0 */ protected static function getUpdateSitesInformation(bool $onlyEnabled): array @@ -427,7 +426,7 @@ protected static function getUpdateSitesInformation(bool $onlyEnabled): array return []; } - $query = $db->getQuery(true) + $query = $db->createQuery() ->select( $db->quoteName( [ @@ -473,15 +472,10 @@ protected static function getUpdateSitesInformation(bool $onlyEnabled): array // Try to get all of the update sites, including related extension information try { - $items = []; $db->setQuery($query); - foreach ($db->getIterator() as $item) { - $items[] = new CMSObject($item); - } - - return $items; - } catch (\Exception) { + return $db->loadObjectList(); + } catch (\Exception $e) { return []; } } diff --git a/administrator/components/com_installer/src/Model/DatabaseModel.php b/administrator/components/com_installer/src/Model/DatabaseModel.php index 03b8ad4487f8d..135cc28befac9 100644 --- a/administrator/components/com_installer/src/Model/DatabaseModel.php +++ b/administrator/components/com_installer/src/Model/DatabaseModel.php @@ -322,7 +322,7 @@ public function getItems() protected function getListQuery() { $db = $this->getDatabase(); - $query = $db->getQuery(true) + $query = $db->createQuery() ->select( $db->quoteName( [ @@ -427,7 +427,7 @@ public function getSchemaVersion($extensionId) { $db = $this->getDatabase(); $extensionId = (int) $extensionId; - $query = $db->getQuery(true) + $query = $db->createQuery() ->select($db->quoteName('version_id')) ->from($db->quoteName('#__schemas')) ->where($db->quoteName('extension_id') . ' = :extensionid') @@ -462,7 +462,7 @@ public function fixSchemaVersion($changeSet, $extensionId) // Delete old row. $extensionId = (int) $extensionId; $db = $this->getDatabase(); - $query = $db->getQuery(true) + $query = $db->createQuery() ->delete($db->quoteName('#__schemas')) ->where($db->quoteName('extension_id') . ' = :extensionid') ->bind(':extensionid', $extensionId, ParameterType::INTEGER); diff --git a/administrator/components/com_installer/src/Model/DiscoverModel.php b/administrator/components/com_installer/src/Model/DiscoverModel.php index 52e24afc3d801..1536c7f4d2f23 100644 --- a/administrator/components/com_installer/src/Model/DiscoverModel.php +++ b/administrator/components/com_installer/src/Model/DiscoverModel.php @@ -90,7 +90,7 @@ protected function populateState($ordering = 'name', $direction = 'asc') protected function getListQuery() { $db = $this->getDatabase(); - $query = $db->getQuery(true) + $query = $db->createQuery() ->select('*') ->from($db->quoteName('#__extensions')) ->where($db->quoteName('state') . ' = -1'); @@ -150,7 +150,7 @@ public function discover() // Get all templates, including discovered ones $db = $this->getDatabase(); - $query = $db->getQuery(true) + $query = $db->createQuery() ->select($db->quoteName(['extension_id', 'element', 'folder', 'client_id', 'type'])) ->from($db->quoteName('#__extensions')); $db->setQuery($query); @@ -253,7 +253,7 @@ public function discover_install() public function purge() { $db = $this->getDatabase(); - $query = $db->getQuery(true) + $query = $db->createQuery() ->delete($db->quoteName('#__extensions')) ->where($db->quoteName('state') . ' = -1'); $db->setQuery($query); @@ -297,7 +297,7 @@ protected function getEmptyStateQuery() public function checkExtensions() { $db = $this->getDatabase(); - $query = $db->getQuery(true) + $query = $db->createQuery() ->select('*') ->from($db->quoteName('#__extensions')) ->where($db->quoteName('state') . ' = -1'); diff --git a/administrator/components/com_installer/src/Model/LanguagesModel.php b/administrator/components/com_installer/src/Model/LanguagesModel.php index 0c54ca93fb390..039414a0633b2 100644 --- a/administrator/components/com_installer/src/Model/LanguagesModel.php +++ b/administrator/components/com_installer/src/Model/LanguagesModel.php @@ -10,10 +10,10 @@ namespace Joomla\Component\Installer\Administrator\Model; use Joomla\CMS\Factory; -use Joomla\CMS\Http\HttpFactory; use Joomla\CMS\Language\Text; use Joomla\CMS\MVC\Factory\MVCFactoryInterface; use Joomla\CMS\MVC\Model\ListModel; +use Joomla\Http\HttpFactory; use Joomla\String\StringHelper; // phpcs:disable PSR1.Files.SideEffects @@ -66,7 +66,7 @@ public function __construct($config = [], ?MVCFactoryInterface $factory = null) private function getUpdateSite() { $db = $this->getDatabase(); - $query = $db->getQuery(true) + $query = $db->createQuery() ->select($db->quoteName('us.location')) ->from($db->quoteName('#__extensions', 'e')) ->where($db->quoteName('e.type') . ' = ' . $db->quote('package')) @@ -131,11 +131,11 @@ protected function getLanguages() if (empty($updateSite)) { Factory::getApplication()->enqueueMessage(Text::_('COM_INSTALLER_MSG_WARNING_NO_LANGUAGES_UPDATESERVER'), 'warning'); - return; + return []; } try { - $response = HttpFactory::getHttp()->get($updateSite); + $response = (new HttpFactory())->getHttp()->get($updateSite); } catch (\RuntimeException) { $response = null; } @@ -143,7 +143,7 @@ protected function getLanguages() if ($response === null || $response->getStatusCode() !== 200) { Factory::getApplication()->enqueueMessage(Text::sprintf('COM_INSTALLER_MSG_ERROR_CANT_CONNECT_TO_UPDATESERVER', $updateSite), 'error'); - return; + return []; } $updateSiteXML = simplexml_load_string((string) $response->getBody()); @@ -151,7 +151,7 @@ protected function getLanguages() if (!$updateSiteXML) { Factory::getApplication()->enqueueMessage(Text::sprintf('COM_INSTALLER_MSG_ERROR_CANT_RETRIEVE_XML', $updateSite), 'error'); - return; + return []; } $languages = []; diff --git a/administrator/components/com_installer/src/Model/ManageModel.php b/administrator/components/com_installer/src/Model/ManageModel.php index 2756887df1b77..1a4ef51a165a7 100644 --- a/administrator/components/com_installer/src/Model/ManageModel.php +++ b/administrator/components/com_installer/src/Model/ManageModel.php @@ -306,7 +306,7 @@ public function remove($eid = []) protected function getListQuery() { $db = $this->getDatabase(); - $query = $db->getQuery(true) + $query = $db->createQuery() ->select('*') ->select('2*protected+(1-protected)*enabled AS status') ->from('#__extensions') @@ -395,7 +395,7 @@ public function loadChangelog($eid, $source) // Get the changelog URL $eid = (int) $eid; $db = $this->getDatabase(); - $query = $db->getQuery(true) + $query = $db->createQuery() ->select( $db->quoteName( [ diff --git a/administrator/components/com_installer/src/Model/UpdateModel.php b/administrator/components/com_installer/src/Model/UpdateModel.php index 208bb14d18b97..017493bc597e9 100644 --- a/administrator/components/com_installer/src/Model/UpdateModel.php +++ b/administrator/components/com_installer/src/Model/UpdateModel.php @@ -12,7 +12,6 @@ use Joomla\CMS\Extension\ExtensionHelper; use Joomla\CMS\Factory; -use Joomla\CMS\Form\Form; use Joomla\CMS\Installer\Installer; use Joomla\CMS\Installer\InstallerHelper; use Joomla\CMS\Language\Text; @@ -97,7 +96,7 @@ protected function getListQuery() $db = $this->getDatabase(); // Grab updates ignoring new installs - $query = $db->getQuery(true) + $query = $db->createQuery() ->select('u.*') ->select($db->quoteName('e.manifest_cache')) ->from($db->quoteName('#__updates', 'u')) @@ -245,7 +244,7 @@ public function getDisabledUpdateSites() { $db = $this->getDatabase(); - $query = $db->getQuery(true) + $query = $db->createQuery() ->select('COUNT(*)') ->from($db->quoteName('#__update_sites')) ->where($db->quoteName('enabled') . ' = 0'); @@ -293,7 +292,7 @@ public function purge() } // Reset the last update check timestamp - $query = $db->getQuery(true) + $query = $db->createQuery() ->update($db->quoteName('#__update_sites')) ->set($db->quoteName('last_check_timestamp') . ' = ' . $db->quote(0)); $db->setQuery($query); @@ -334,7 +333,7 @@ public function update($uids, $minimumStability = Updater::STABILITY_STABLE) $app = Factory::getApplication(); $db = $this->getDatabase(); - $query = $db->getQuery(true) + $query = $db->createQuery() ->select('type') ->from('#__update_sites') ->where($db->quoteName('update_site_id') . ' = :id') @@ -516,49 +515,6 @@ private function install($update) return $result; } - /** - * Method to get the row form. - * - * @param array $data Data for the form. - * @param boolean $loadData True if the form is to load its own data (default case), false if not. - * - * @return Form|bool A Form object on success, false on failure - * - * @since 2.5.2 - */ - public function getForm($data = [], $loadData = true) - { - // Get the form. - Form::addFormPath(JPATH_COMPONENT . '/models/forms'); - Form::addFieldPath(JPATH_COMPONENT . '/models/fields'); - $form = Form::getInstance('com_installer.update', 'update', ['load_data' => $loadData]); - - // Check the session for previously entered form data. - $data = $this->loadFormData(); - - // Bind the form data if present. - if (!empty($data)) { - $form->bind($data); - } - - return $form; - } - - /** - * Method to get the data that should be injected in the form. - * - * @return mixed The data for the form. - * - * @since 2.5.2 - */ - protected function loadFormData() - { - // Check the session for previously entered form data. - $data = Factory::getApplication()->getUserState($this->context, []); - - return $data; - } - /** * Method to add parameters to the update * diff --git a/administrator/components/com_installer/src/Model/UpdatesiteModel.php b/administrator/components/com_installer/src/Model/UpdatesiteModel.php index 5b2efd737254c..8a0ac7b104f14 100644 --- a/administrator/components/com_installer/src/Model/UpdatesiteModel.php +++ b/administrator/components/com_installer/src/Model/UpdatesiteModel.php @@ -12,7 +12,6 @@ use Joomla\CMS\Form\Form; use Joomla\CMS\MVC\Model\AdminModel; -use Joomla\CMS\Object\CMSObject; use Joomla\Component\Installer\Administrator\Helper\InstallerHelper; use Joomla\Database\ParameterType; @@ -87,8 +86,8 @@ public function getItem($pk = null) $item = parent::getItem($pk); $db = $this->getDatabase(); - $updateSiteId = (int) $item->get('update_site_id'); - $query = $db->getQuery(true) + $updateSiteId = (int) $item->update_site_id ?? 0; + $query = $db->createQuery() ->select( $db->quoteName( [ @@ -116,13 +115,13 @@ public function getItem($pk = null) ->bind(':updatesiteid', $updateSiteId, ParameterType::INTEGER); $db->setQuery($query); - $extension = new CMSObject($db->loadAssoc()); + $extension = $db->loadObject(); $downloadKey = InstallerHelper::getDownloadKey($extension); - $item->set('extra_query', $downloadKey['value'] ?? ''); - $item->set('downloadIdPrefix', $downloadKey['prefix'] ?? ''); - $item->set('downloadIdSuffix', $downloadKey['suffix'] ?? ''); + $item->extra_query = $downloadKey['value'] ?? ''; + $item->downloadIdPrefix = $downloadKey['prefix'] ?? ''; + $item->downloadIdSuffix = $downloadKey['suffix'] ?? ''; return $item; } @@ -154,7 +153,7 @@ public function save($data): bool // Delete update records forcing Joomla to fetch them again, applying the new extra_query. $db = $this->getDatabase(); - $query = $db->getQuery(true) + $query = $db->createQuery() ->delete($db->quoteName('#__updates')) ->where($db->quoteName('update_site_id') . ' = :updateSiteId'); $query->bind(':updateSiteId', $data['update_site_id'], ParameterType::INTEGER); diff --git a/administrator/components/com_installer/src/Model/UpdatesitesModel.php b/administrator/components/com_installer/src/Model/UpdatesitesModel.php index b8b48d027f701..74101de0904b4 100644 --- a/administrator/components/com_installer/src/Model/UpdatesitesModel.php +++ b/administrator/components/com_installer/src/Model/UpdatesitesModel.php @@ -14,7 +14,6 @@ use Joomla\CMS\Installer\Installer; use Joomla\CMS\Language\Text; use Joomla\CMS\MVC\Factory\MVCFactoryInterface; -use Joomla\CMS\Object\CMSObject; use Joomla\CMS\Plugin\PluginHelper; use Joomla\CMS\Router\Route; use Joomla\CMS\Table\UpdateSite as UpdateSiteTable; @@ -136,7 +135,7 @@ public function delete($ids = []) $count = 0; // Gets the update site names. - $query = $db->getQuery(true) + $query = $db->createQuery() ->select($db->quoteName(['update_site_id', 'name'])) ->from($db->quoteName('#__update_sites')) ->whereIn($db->quoteName('update_site_id'), $ids); @@ -157,21 +156,21 @@ public function delete($ids = []) // Delete the update site from all tables. try { $id = (int) $id; - $query = $db->getQuery(true) + $query = $db->createQuery() ->delete($db->quoteName('#__update_sites')) ->where($db->quoteName('update_site_id') . ' = :id') ->bind(':id', $id, ParameterType::INTEGER); $db->setQuery($query); $db->execute(); - $query = $db->getQuery(true) + $query = $db->createQuery() ->delete($db->quoteName('#__update_sites_extensions')) ->where($db->quoteName('update_site_id') . ' = :id') ->bind(':id', $id, ParameterType::INTEGER); $db->setQuery($query); $db->execute(); - $query = $db->getQuery(true) + $query = $db->createQuery() ->delete($db->quoteName('#__updates')) ->where($db->quoteName('update_site_id') . ' = :id') ->bind(':id', $id, ParameterType::INTEGER); @@ -210,7 +209,7 @@ protected function getJoomlaUpdateSitesIds($column = 0) $db = $this->getDatabase(); // Fetch the Joomla core update sites ids and their extension ids. We search for all except the core joomla extension with update sites. - $query = $db->getQuery(true) + $query = $db->createQuery() ->select($db->quoteName(['use.update_site_id', 'e.extension_id'])) ->from($db->quoteName('#__update_sites_extensions', 'use')) ->join( @@ -256,7 +255,7 @@ public function rebuild(): void // Check if Joomla Extension plugin is enabled. if (!PluginHelper::isEnabled('extension', 'joomla')) { - $query = $db->getQuery(true) + $query = $db->createQuery() ->select($db->quoteName('extension_id')) ->from($db->quoteName('#__extensions')) ->where($db->quoteName('type') . ' = ' . $db->quote('plugin')) @@ -305,26 +304,26 @@ public function rebuild(): void $joomlaUpdateSitesIds = $this->getJoomlaUpdateSitesIds(0); // First backup any custom extra_query for the sites - $query = $db->getQuery(true) + $query = $db->createQuery() ->select('TRIM(' . $db->quoteName('location') . ') AS ' . $db->quoteName('location') . ', ' . $db->quoteName('extra_query')) ->from($db->quoteName('#__update_sites')); $db->setQuery($query); $backupExtraQuerys = $db->loadAssocList('location'); // Delete from all tables (except joomla core update sites). - $query = $db->getQuery(true) + $query = $db->createQuery() ->delete($db->quoteName('#__update_sites')) ->whereNotIn($db->quoteName('update_site_id'), $joomlaUpdateSitesIds); $db->setQuery($query); $db->execute(); - $query = $db->getQuery(true) + $query = $db->createQuery() ->delete($db->quoteName('#__update_sites_extensions')) ->whereNotIn($db->quoteName('update_site_id'), $joomlaUpdateSitesIds); $db->setQuery($query); $db->execute(); - $query = $db->getQuery(true) + $query = $db->createQuery() ->delete($db->quoteName('#__updates')) ->whereNotIn($db->quoteName('update_site_id'), $joomlaUpdateSitesIds); $db->setQuery($query); @@ -366,7 +365,7 @@ public function rebuild(): void $pkgName = (string) $manifest->packagename; $type = (string) $manifest['type']; - $query = $db->getQuery(true) + $query = $db->createQuery() ->select($db->quoteName('extension_id')) ->from($db->quoteName('#__extensions')) ->where( @@ -444,8 +443,7 @@ public function getItems() array_walk( $items, static function ($item) { - $data = new CMSObject($item); - $item->downloadKey = InstallerHelper::getDownloadKey($data); + $item->downloadKey = InstallerHelper::getDownloadKey($item); } ); @@ -491,7 +489,7 @@ protected function getStoreId($id = '') protected function getListQuery() { $db = $this->getDatabase(); - $query = $db->getQuery(true) + $query = $db->createQuery() ->select( $db->quoteName( [ diff --git a/administrator/components/com_installer/src/View/Database/HtmlView.php b/administrator/components/com_installer/src/View/Database/HtmlView.php index 931bf0062da6c..cc738c40e8624 100644 --- a/administrator/components/com_installer/src/View/Database/HtmlView.php +++ b/administrator/components/com_installer/src/View/Database/HtmlView.php @@ -105,6 +105,11 @@ public function display($tpl = null) : $app->enqueueMessage(Text::_('COM_INSTALLER_MSG_DATABASE_CORE_ERRORS'), 'warning'); } + // Add form control fields + $this->filterForm + ->addControlField('task', '') + ->addControlField('boxchecked', '0'); + parent::display($tpl); } diff --git a/administrator/components/com_installer/src/View/Discover/HtmlView.php b/administrator/components/com_installer/src/View/Discover/HtmlView.php index aed4d36a2c5e3..d341f48a78573 100644 --- a/administrator/components/com_installer/src/View/Discover/HtmlView.php +++ b/administrator/components/com_installer/src/View/Discover/HtmlView.php @@ -94,6 +94,11 @@ public function display($tpl = null) $this->setLayout('emptystate'); } + // Add form control fields + $this->filterForm + ->addControlField('task', '') + ->addControlField('boxchecked', '0'); + parent::display($tpl); } diff --git a/administrator/components/com_installer/src/View/Languages/HtmlView.php b/administrator/components/com_installer/src/View/Languages/HtmlView.php index a8bf800a4c896..74d7476079306 100644 --- a/administrator/components/com_installer/src/View/Languages/HtmlView.php +++ b/administrator/components/com_installer/src/View/Languages/HtmlView.php @@ -76,6 +76,15 @@ public function display($tpl = null) $this->activeFilters = $model->getActiveFilters(); $this->installedLang = LanguageHelper::getInstalledLanguages(); + // Add form control fields + $this->filterForm + ->addControlField('task', '') + ->addControlField('boxchecked', '0') + ->addControlField('return', base64_encode('index.php?option=com_installer&view=languages')) + ->addControlField('install_url', '', ['id' => 'install_url']) + ->addControlField('installtype', 'url') + ->addControlField('package', 'language'); + parent::display($tpl); } diff --git a/administrator/components/com_installer/src/View/Manage/HtmlView.php b/administrator/components/com_installer/src/View/Manage/HtmlView.php index be38d698ab860..840989762c682 100644 --- a/administrator/components/com_installer/src/View/Manage/HtmlView.php +++ b/administrator/components/com_installer/src/View/Manage/HtmlView.php @@ -83,6 +83,11 @@ public function display($tpl = null) $this->filterForm = $model->getFilterForm(); $this->activeFilters = $model->getActiveFilters(); + // Add form control fields + $this->filterForm + ->addControlField('task', '') + ->addControlField('boxchecked', '0'); + // Display the view. parent::display($tpl); } diff --git a/administrator/components/com_installer/src/View/Update/HtmlView.php b/administrator/components/com_installer/src/View/Update/HtmlView.php index e1b5b77156cb7..29a7f14c1c19e 100644 --- a/administrator/components/com_installer/src/View/Update/HtmlView.php +++ b/administrator/components/com_installer/src/View/Update/HtmlView.php @@ -13,7 +13,6 @@ use Joomla\CMS\Application\CMSApplication; use Joomla\CMS\Factory; use Joomla\CMS\Language\Text; -use Joomla\CMS\Object\CMSObject; use Joomla\Component\Installer\Administrator\Helper\InstallerHelper as CmsInstallerHelper; use Joomla\Component\Installer\Administrator\Model\UpdateModel; use Joomla\Component\Installer\Administrator\View\Installer\HtmlView as InstallerViewDefault; @@ -32,7 +31,7 @@ class HtmlView extends InstallerViewDefault /** * List of update items. * - * @var array + * @var \stdClass[] */ protected $items; @@ -105,7 +104,7 @@ public function display($tpl = null) } $mappingCallback = function ($item) { - $dlkeyInfo = CmsInstallerHelper::getDownloadKey(new CMSObject($item)); + $dlkeyInfo = CmsInstallerHelper::getDownloadKey($item); $item->isMissingDownloadKey = $dlkeyInfo['supported'] && !$dlkeyInfo['valid']; if ($item->isMissingDownloadKey) { @@ -122,6 +121,11 @@ public function display($tpl = null) Factory::getApplication()->enqueueMessage($msg, CMSApplication::MSG_WARNING); } + // Add form control fields + $this->filterForm + ->addControlField('task', '') + ->addControlField('boxchecked', '0'); + parent::display($tpl); } diff --git a/administrator/components/com_installer/src/View/Updatesite/HtmlView.php b/administrator/components/com_installer/src/View/Updatesite/HtmlView.php index b643c21b4222e..0264b5c08418f 100644 --- a/administrator/components/com_installer/src/View/Updatesite/HtmlView.php +++ b/administrator/components/com_installer/src/View/Updatesite/HtmlView.php @@ -71,12 +71,16 @@ public function display($tpl = null): void // Remove the extra_query field if it's a free download extension $dlidSupportingSites = InstallerHelper::getDownloadKeySupportedSites(false); - $update_site_id = $this->item->get('update_site_id'); + $update_site_id = $this->item->update_site_id; if (!\in_array($update_site_id, $dlidSupportingSites)) { $this->form->removeField('extra_query'); } + // Add form control fields + $this->form + ->addControlField('task', ''); + parent::display($tpl); } diff --git a/administrator/components/com_installer/src/View/Updatesites/HtmlView.php b/administrator/components/com_installer/src/View/Updatesites/HtmlView.php index 6d61cd5a16dfc..3138a6dd51ba3 100644 --- a/administrator/components/com_installer/src/View/Updatesites/HtmlView.php +++ b/administrator/components/com_installer/src/View/Updatesites/HtmlView.php @@ -82,6 +82,11 @@ public function display($tpl = null): void $this->filterForm = $model->getFilterForm(); $this->activeFilters = $model->getActiveFilters(); + // Add form control fields + $this->filterForm + ->addControlField('task', '') + ->addControlField('boxchecked', '0'); + // Display the view parent::display($tpl); } diff --git a/administrator/components/com_installer/tmpl/database/default.php b/administrator/components/com_installer/tmpl/database/default.php index dcbd008ce8c64..7567a1e071ded 100644 --- a/administrator/components/com_installer/tmpl/database/default.php +++ b/administrator/components/com_installer/tmpl/database/default.php @@ -126,9 +126,8 @@ pagination->getListFooter(); ?> - - - + + filterForm->renderControlFields(); ?> diff --git a/administrator/components/com_installer/tmpl/discover/default.php b/administrator/components/com_installer/tmpl/discover/default.php index a42996408b1b9..7ab3c87446753 100644 --- a/administrator/components/com_installer/tmpl/discover/default.php +++ b/administrator/components/com_installer/tmpl/discover/default.php @@ -121,9 +121,8 @@ pagination->getListFooter(); ?> - - - + + filterForm->renderControlFields(); ?> diff --git a/administrator/components/com_installer/tmpl/discover/emptystate.php b/administrator/components/com_installer/tmpl/discover/emptystate.php index b895352e42a9d..f926998d141cb 100644 --- a/administrator/components/com_installer/tmpl/discover/emptystate.php +++ b/administrator/components/com_installer/tmpl/discover/emptystate.php @@ -25,6 +25,8 @@ 'content' => Text::_('COM_INSTALLER_MSG_DISCOVER_DESCRIPTION'), 'title' => Text::_('COM_INSTALLER_EMPTYSTATE_DISCOVER_TITLE'), 'btnadd' => Text::_('COM_INSTALLER_EMPTYSTATE_DISCOVER_BUTTON_ADD'), + + 'controlFields' => $this->filterForm->renderControlFields(), ]; /** @var \Joomla\Component\Installer\Administrator\View\Discover\HtmlView $this */ diff --git a/administrator/components/com_installer/tmpl/languages/default.php b/administrator/components/com_installer/tmpl/languages/default.php index bc9575f3e1b62..6eebe95806eba 100644 --- a/administrator/components/com_installer/tmpl/languages/default.php +++ b/administrator/components/com_installer/tmpl/languages/default.php @@ -115,13 +115,8 @@ class="" pagination->getListFooter(); ?> - - - - - - - + + filterForm->renderControlFields(); ?> diff --git a/administrator/components/com_installer/tmpl/manage/default.php b/administrator/components/com_installer/tmpl/manage/default.php index 0c09f458e1d68..0a0f76bc438ba 100644 --- a/administrator/components/com_installer/tmpl/manage/default.php +++ b/administrator/components/com_installer/tmpl/manage/default.php @@ -174,9 +174,8 @@ pagination->getListFooter(); ?> - - - + + filterForm->renderControlFields(); ?> diff --git a/administrator/components/com_installer/tmpl/update/default.php b/administrator/components/com_installer/tmpl/update/default.php index 9970fef2e6b22..ec90337762286 100644 --- a/administrator/components/com_installer/tmpl/update/default.php +++ b/administrator/components/com_installer/tmpl/update/default.php @@ -153,9 +153,8 @@ pagination->getListFooter(); ?> - - - + + filterForm->renderControlFields(); ?> diff --git a/administrator/components/com_installer/tmpl/update/emptystate.php b/administrator/components/com_installer/tmpl/update/emptystate.php index 6ba4a0d275fe5..59b12f33b73e8 100644 --- a/administrator/components/com_installer/tmpl/update/emptystate.php +++ b/administrator/components/com_installer/tmpl/update/emptystate.php @@ -20,6 +20,8 @@ 'formURL' => 'index.php?option=com_installer&view=update', 'helpURL' => 'https://docs.joomla.org/Special:MyLanguage/Help5.x:Extensions:_Update', 'icon' => 'icon-puzzle-piece install', + + 'controlFields' => $this->filterForm->renderControlFields(), ]; $user = $this->getCurrentUser(); diff --git a/administrator/components/com_installer/tmpl/updatesite/edit.php b/administrator/components/com_installer/tmpl/updatesite/edit.php index dc95fcddcd8a8..a0f33c2094808 100644 --- a/administrator/components/com_installer/tmpl/updatesite/edit.php +++ b/administrator/components/com_installer/tmpl/updatesite/edit.php @@ -10,7 +10,6 @@ defined('_JEXEC') or die; -use Joomla\CMS\HTML\HTMLHelper; use Joomla\CMS\Language\Text; use Joomla\CMS\Router\Route; @@ -24,6 +23,6 @@

item->name; ?>

form->renderFieldset('updateSite'); ?> - - + + form->renderControlFields(); ?>
diff --git a/administrator/components/com_installer/tmpl/updatesites/default.php b/administrator/components/com_installer/tmpl/updatesites/default.php index be5c1e9f25249..8c8bcd0d2e096 100644 --- a/administrator/components/com_installer/tmpl/updatesites/default.php +++ b/administrator/components/com_installer/tmpl/updatesites/default.php @@ -158,9 +158,8 @@ pagination->getListFooter(); ?> - - - + + filterForm->renderControlFields(); ?> diff --git a/administrator/components/com_joomlaupdate/postinstall/autoupdate.php b/administrator/components/com_joomlaupdate/postinstall/autoupdate.php index 16f468f15fb6f..944cdd67bd544 100644 --- a/administrator/components/com_joomlaupdate/postinstall/autoupdate.php +++ b/administrator/components/com_joomlaupdate/postinstall/autoupdate.php @@ -26,7 +26,7 @@ * Returns true it is disabled. * * @return bool - * @since 5.4.0 + * @since 6.0.0 */ function com_joomlaupdate_postinstall_autoupdate_condition(): bool { @@ -39,7 +39,7 @@ function com_joomlaupdate_postinstall_autoupdate_condition(): bool * Enables the Automated Update. * * @return void - * @since 5.4.0 + * @since 6.0.0 */ function com_joomlaupdate_postinstall_autoupdate_action(): void { diff --git a/administrator/components/com_joomlaupdate/src/Controller/UpdateController.php b/administrator/components/com_joomlaupdate/src/Controller/UpdateController.php index 3ab70c4d5f5e3..0e25ffd064470 100644 --- a/administrator/components/com_joomlaupdate/src/Controller/UpdateController.php +++ b/administrator/components/com_joomlaupdate/src/Controller/UpdateController.php @@ -11,7 +11,6 @@ namespace Joomla\Component\Joomlaupdate\Administrator\Controller; use Joomla\CMS\Component\ComponentHelper; -use Joomla\CMS\Factory; use Joomla\CMS\Installer\Installer; use Joomla\CMS\Language\Text; use Joomla\CMS\Log\Log; @@ -468,115 +467,14 @@ public function finaliseconfirm() $this->setRedirect('index.php?option=com_joomlaupdate&task=update.finalise&' . Session::getFormToken() . '=1'); } - /** - * Fetch Extension update XML proxy. Used to prevent Access-Control-Allow-Origin errors. - * Prints a JSON string. - * Called from JS. - * - * @since 3.10.0 - * - * @deprecated 4.3 will be removed in 6.0 - * Use batchextensioncompatibility instead. - * Example: $updateController->batchextensioncompatibility(); - * - * @return void - */ - public function fetchExtensionCompatibility() - { - $extensionID = $this->input->get('extension-id', '', 'DEFAULT'); - $joomlaTargetVersion = $this->input->get('joomla-target-version', '', 'DEFAULT'); - $joomlaCurrentVersion = $this->input->get('joomla-current-version', '', JVERSION); - $extensionVersion = $this->input->get('extension-version', '', 'DEFAULT'); - - /** @var \Joomla\Component\Joomlaupdate\Administrator\Model\UpdateModel $model */ - $model = $this->getModel('Update'); - $upgradeCompatibilityStatus = $model->fetchCompatibility($extensionID, $joomlaTargetVersion); - $currentCompatibilityStatus = $model->fetchCompatibility($extensionID, $joomlaCurrentVersion); - $upgradeUpdateVersion = false; - $currentUpdateVersion = false; - - $upgradeWarning = 0; - - if ($upgradeCompatibilityStatus->state == 1 && !empty($upgradeCompatibilityStatus->compatibleVersions)) { - $upgradeUpdateVersion = end($upgradeCompatibilityStatus->compatibleVersions); - } - - if ($currentCompatibilityStatus->state == 1 && !empty($currentCompatibilityStatus->compatibleVersions)) { - $currentUpdateVersion = end($currentCompatibilityStatus->compatibleVersions); - } - - if ($upgradeUpdateVersion !== false) { - $upgradeOldestVersion = $upgradeCompatibilityStatus->compatibleVersions[0]; - - if ($currentUpdateVersion !== false) { - // If there are updates compatible with both CMS versions use these - $bothCompatibleVersions = array_values( - array_intersect($upgradeCompatibilityStatus->compatibleVersions, $currentCompatibilityStatus->compatibleVersions) - ); - - if (!empty($bothCompatibleVersions)) { - $upgradeOldestVersion = $bothCompatibleVersions[0]; - $upgradeUpdateVersion = end($bothCompatibleVersions); - } - } - - if (version_compare($upgradeOldestVersion, $extensionVersion, '>')) { - // Installed version is empty or older than the oldest compatible update: Update required - $resultGroup = 2; - } else { - // Current version is compatible - $resultGroup = 3; - } - - if ($currentUpdateVersion !== false && version_compare($upgradeUpdateVersion, $currentUpdateVersion, '<')) { - // Special case warning when version compatible with target is lower than current - $upgradeWarning = 2; - } - } elseif ($currentUpdateVersion !== false) { - // No compatible version for target version but there is a compatible version for current version - $resultGroup = 1; - } else { - // No update server available - $resultGroup = 1; - } - - // Do we need to capture - $combinedCompatibilityStatus = [ - 'upgradeCompatibilityStatus' => (object) [ - 'state' => $upgradeCompatibilityStatus->state, - 'compatibleVersion' => $upgradeUpdateVersion, - ], - 'currentCompatibilityStatus' => (object) [ - 'state' => $currentCompatibilityStatus->state, - 'compatibleVersion' => $currentUpdateVersion, - ], - 'resultGroup' => $resultGroup, - 'upgradeWarning' => $upgradeWarning, - ]; - - $this->app = Factory::getApplication(); - $this->app->mimeType = 'application/json'; - $this->app->charSet = 'utf-8'; - $this->app->setHeader('Content-Type', $this->app->mimeType . '; charset=' . $this->app->charSet); - $this->app->sendHeaders(); - - try { - echo new JsonResponse($combinedCompatibilityStatus); - } catch (\Exception $e) { - echo $e; - } - - $this->app->close(); - } - /** * Determines the compatibility information for a number of extensions. * * Called by the Joomla Update JavaScript (PreUpdateChecker.checkNextChunk). * * @return void - * @since 4.2.0 * + * @since 4.2.0 */ public function batchextensioncompatibility() { diff --git a/administrator/components/com_joomlaupdate/src/Model/UpdateModel.php b/administrator/components/com_joomlaupdate/src/Model/UpdateModel.php index efa6300f2ddf0..6c41bec1b4cf2 100644 --- a/administrator/components/com_joomlaupdate/src/Model/UpdateModel.php +++ b/administrator/components/com_joomlaupdate/src/Model/UpdateModel.php @@ -18,8 +18,6 @@ use Joomla\CMS\Extension\ExtensionHelper; use Joomla\CMS\Factory; use Joomla\CMS\Filter\InputFilter; -use Joomla\CMS\Http\Http; -use Joomla\CMS\Http\HttpFactory; use Joomla\CMS\Installer\Installer; use Joomla\CMS\Language\Text; use Joomla\CMS\Log\Log; @@ -39,6 +37,7 @@ use Joomla\Database\ParameterType; use Joomla\Filesystem\Exception\FilesystemException; use Joomla\Filesystem\File; +use Joomla\Http\HttpFactory; use Joomla\Registry\Registry; use Joomla\Utilities\ArrayHelper; use Tobscure\JsonApi\Exception\InvalidParameterException; @@ -130,7 +129,7 @@ public function applyUpdateSite(?string $updateSource = null, ?string $updateURL $id = ExtensionHelper::getExtensionRecord('joomla', 'file')->extension_id; $db = version_compare(JVERSION, '4.2.0', 'lt') ? $this->getDbo() : $this->getDatabase(); - $query = $db->getQuery(true) + $query = $db->createQuery() ->select($db->quoteName('us') . '.*') ->from($db->quoteName('#__update_sites_extensions', 'map')) ->join( @@ -204,7 +203,7 @@ public function getCheckForSelfUpdate() { $db = version_compare(JVERSION, '4.2.0', 'lt') ? $this->getDbo() : $this->getDatabase(); - $query = $db->getQuery(true) + $query = $db->createQuery() ->select($db->quoteName('extension_id')) ->from($db->quoteName('#__extensions')) ->where($db->quoteName('element') . ' = ' . $db->quote('com_joomlaupdate')); @@ -228,7 +227,7 @@ public function getCheckForSelfUpdate() $updater->findUpdates($joomlaUpdateComponentId, $cache_timeout, Updater::STABILITY_STABLE); // Fetch the update information from the database. - $query = $db->getQuery(true) + $query = $db->createQuery() ->select('*') ->from($db->quoteName('#__updates')) ->where($db->quoteName('extension_id') . ' = :id') @@ -274,7 +273,7 @@ public function getUpdateInformation() // Fetch the update information from the database. $id = ExtensionHelper::getExtensionRecord('joomla', 'file')->extension_id; $db = version_compare(JVERSION, '4.2.0', 'lt') ? $this->getDbo() : $this->getDatabase(); - $query = $db->getQuery(true) + $query = $db->createQuery() ->select('*') ->from($db->quoteName('#__updates')) ->where($db->quoteName('extension_id') . ' = :id') @@ -354,7 +353,7 @@ public function purge() $update_site->update_site_id = 1; $db->updateObject('#__update_sites', $update_site, 'update_site_id'); - $query = $db->getQuery(true) + $query = $db->createQuery() ->delete($db->quoteName('#__updates')) ->where($db->quoteName('update_site_id') . ' = 1'); $db->setQuery($query); @@ -390,7 +389,7 @@ public function download() $response = ['basename' => false, 'check' => null, 'version' => $updateInfo['latest']]; try { - $head = HttpFactory::getHttp($httpOptions)->head($packageURL); + $head = (new HttpFactory())->getHttp($httpOptions)->head($packageURL); } catch (\RuntimeException) { // Passing false here -> download failed message return $response; @@ -401,7 +400,7 @@ public function download() $packageURL = (string) $head->getHeaders()['location'][0]; try { - $head = HttpFactory::getHttp($httpOptions)->head($packageURL); + $head = (new HttpFactory())->getHttp($httpOptions)->head($packageURL); } catch (\RuntimeException) { // Passing false here -> download failed message return $response; @@ -586,7 +585,7 @@ public function changeAutoUpdateRegistration(AutoupdateRegisterState $targetStat $this->cleanCache('_system'); // Prepare connection - $http = HttpFactory::getHttp(); + $http = (new HttpFactory())->getHttp(); $url = self::AUTOUPDATE_URL; $url .= ($targetState === AutoupdateRegisterState::Subscribe) ? '/register' : '/delete'; @@ -661,7 +660,7 @@ public function changeAutoUpdateRegistration(AutoupdateRegisterState $targetStat /** * Update the autoupdate activation and registration states * - * @since 5.4.0 + * @since 6.0.0 */ protected function updateAutoUpdateParams(AutoupdateRegisterState $registrationState, bool $enableUpdate): void { @@ -780,7 +779,7 @@ protected function downloadPackage($url, $target) // Download the package try { - $result = HttpFactory::getHttp([], ['curl', 'stream'])->get($url); + $result = (new HttpFactory())->getHttp([], ['curl', 'stream'])->get($url); } catch (\RuntimeException) { return false; } @@ -943,8 +942,6 @@ public function finaliseUpgrade() $installer->extension = new \Joomla\CMS\Table\Extension($db); $installer->extension->load(ExtensionHelper::getExtensionRecord('joomla', 'file')->extension_id); - $installer->setAdapter($installer->extension->type); - $installer->setPath('manifest', JPATH_MANIFESTS . '/files/joomla.xml'); $installer->setPath('source', JPATH_MANIFESTS . '/files'); $installer->setPath('extension_root', JPATH_ROOT); @@ -989,7 +986,7 @@ public function finaliseUpgrade() * we can assume that it was (badly) uninstalled. * If it isn't, add an entry to extensions. */ - $query = $db->getQuery(true) + $query = $db->createQuery() ->select($db->quoteName('extension_id')) ->from($db->quoteName('#__extensions')) ->where($db->quoteName('type') . ' = ' . $db->quote('file')) @@ -1698,7 +1695,7 @@ private function getDatabaseSchemaCheck(): bool public function getNonCoreExtensions() { $db = version_compare(JVERSION, '4.2.0', 'lt') ? $this->getDbo() : $this->getDatabase(); - $query = $db->getQuery(true); + $query = $db->createQuery(); $query->select( [ @@ -1746,7 +1743,7 @@ public function getNonCoreExtensions() public function getNonCorePlugins($folderFilter = ['system', 'user', 'authentication', 'actionlog', 'multifactorauth']) { $db = version_compare(JVERSION, '4.2.0', 'lt') ? $this->getDbo() : $this->getDatabase(); - $query = $db->getQuery(true); + $query = $db->createQuery(); $query->select( $db->quoteName('ex.name') . ', ' . @@ -1793,7 +1790,7 @@ public function getNonCorePlugins($folderFilter = ['system', 'user', 'authentica } /** - * Called by controller's fetchExtensionCompatibility, which is called via AJAX. + * Called by controller's batchextensioncompatibility, which is called via AJAX. * * @param string $extensionID The ID of the checked extension * @param string $joomlaTargetVersion Target version of Joomla @@ -1845,7 +1842,7 @@ private function getUpdateSitesInfo($extensionID) { $id = (int) $extensionID; $db = version_compare(JVERSION, '4.2.0', 'lt') ? $this->getDbo() : $this->getDatabase(); - $query = $db->getQuery(true); + $query = $db->createQuery(); $query->select( [ @@ -1895,7 +1892,7 @@ private function getCollectionDetailsUrls($updateSiteInfo, $joomlaTargetVersion) { $return = []; - $http = new Http(); + $http = (new HttpFactory())->getHttp(); try { $response = $http->get($updateSiteInfo['location']); @@ -2030,7 +2027,7 @@ protected function translateExtensionName(&$item) public function isTemplateActive($template) { $db = version_compare(JVERSION, '4.2.0', 'lt') ? $this->getDbo() : $this->getDatabase(); - $query = $db->getQuery(true); + $query = $db->createQuery(); $query->select( $db->quoteName( @@ -2059,7 +2056,7 @@ function ($value) { $menu = false; if (\count($ids)) { - $query = $db->getQuery(true); + $query = $db->createQuery(); $query->select( 'COUNT(*)' @@ -2367,7 +2364,7 @@ public function resetUpdateSource() $params = $params->toString(); $db = $this->getDatabase(); - $query = $db->getQuery(true) + $query = $db->createQuery() ->update($db->quoteName('#__extensions')) ->set($db->quoteName('params') . ' = :params') ->where($db->quoteName('type') . ' = ' . $db->quote('component')) diff --git a/administrator/components/com_joomlaupdate/tmpl/joomlaupdate/preupdatecheck.php b/administrator/components/com_joomlaupdate/tmpl/joomlaupdate/preupdatecheck.php index eeaa6b56443a9..c4edc8bc4ae75 100644 --- a/administrator/components/com_joomlaupdate/tmpl/joomlaupdate/preupdatecheck.php +++ b/administrator/components/com_joomlaupdate/tmpl/joomlaupdate/preupdatecheck.php @@ -16,9 +16,8 @@ use Joomla\CMS\Router\Route; use Joomla\CMS\Uri\Uri; use Joomla\CMS\Version; -use Joomla\Component\Joomlaupdate\Administrator\View\Joomlaupdate\HtmlView; -/** @var HtmlView $this */ +/** @var \Joomla\Component\Joomlaupdate\Administrator\View\Joomlaupdate\HtmlView $this */ /** @var \Joomla\CMS\WebAsset\WebAssetManager $wa */ $wa = $this->getDocument()->getWebAssetManager(); diff --git a/administrator/components/com_joomlaupdate/tmpl/upload/default.php b/administrator/components/com_joomlaupdate/tmpl/upload/default.php index 1626462d8d430..8f54385b0e0bf 100644 --- a/administrator/components/com_joomlaupdate/tmpl/upload/default.php +++ b/administrator/components/com_joomlaupdate/tmpl/upload/default.php @@ -14,9 +14,8 @@ use Joomla\CMS\Language\Text; use Joomla\CMS\Updater\Update; use Joomla\CMS\Utility\Utility; -use Joomla\Component\Joomlaupdate\Administrator\View\Joomlaupdate\HtmlView; -/** @var HtmlView $this */ +/** @var \Joomla\Component\Joomlaupdate\Administrator\View\Upload\HtmlView $this */ /** @var \Joomla\CMS\WebAsset\WebAssetManager $wa */ $wa = $this->getDocument()->getWebAssetManager(); diff --git a/administrator/components/com_languages/src/Helper/MultilangstatusHelper.php b/administrator/components/com_languages/src/Helper/MultilangstatusHelper.php index 1923d723313de..b06b599f480d7 100644 --- a/administrator/components/com_languages/src/Helper/MultilangstatusHelper.php +++ b/administrator/components/com_languages/src/Helper/MultilangstatusHelper.php @@ -36,7 +36,7 @@ public static function getHomes() { // Check for multiple Home pages. $db = Factory::getDbo(); - $query = $db->getQuery(true) + $query = $db->createQuery() ->select('COUNT(*)') ->from($db->quoteName('#__menu')) ->where( @@ -61,7 +61,7 @@ public static function getLangswitchers() { // Check if switcher is published. $db = Factory::getDbo(); - $query = $db->getQuery(true) + $query = $db->createQuery() ->select('COUNT(*)') ->from($db->quoteName('#__modules')) ->where( @@ -86,7 +86,7 @@ public static function getContentlangs() { // Check for published Content Languages. $db = Factory::getDbo(); - $query = $db->getQuery(true) + $query = $db->createQuery() ->select( [ $db->quoteName('lang_code'), @@ -110,7 +110,7 @@ public static function getStatus() { // Check for combined status. $db = Factory::getDbo(); - $query = $db->getQuery(true); + $query = $db->createQuery(); // Select all fields from the languages table. $query->select( @@ -156,7 +156,7 @@ public static function getContacts() $languages = \count(LanguageHelper::getLanguages()); // Get the number of contact with all as language - $alang = $db->getQuery(true) + $alang = $db->createQuery() ->select('COUNT(*)') ->from($db->quoteName('#__contact_details', 'cd')) ->where( @@ -168,7 +168,7 @@ public static function getContacts() ); // Get the number of languages for the contact - $slang = $db->getQuery(true) + $slang = $db->createQuery() ->select('COUNT(DISTINCT ' . $db->quoteName('l.lang_code') . ')') ->from($db->quoteName('#__languages', 'l')) ->join('LEFT', $db->quoteName('#__contact_details', 'cd'), $db->quoteName('cd.language') . ' = ' . $db->quoteName('l.lang_code')) @@ -181,7 +181,7 @@ public static function getContacts() ); // Get the number of multiple contact/language - $mlang = $db->getQuery(true) + $mlang = $db->createQuery() ->select('COUNT(*)') ->from($db->quoteName('#__languages', 'l')) ->join('LEFT', $db->quoteName('#__contact_details', 'cd'), $db->quoteName('cd.language') . ' = ' . $db->quoteName('l.lang_code')) @@ -196,12 +196,12 @@ public static function getContacts() ->having('COUNT(*) > 1'); // Get the contacts - $subQuery = $db->getQuery(true) + $subQuery = $db->createQuery() ->select('1') ->from($db->quoteName('#__content', 'c')) ->where($db->quoteName('c.created_by') . ' = ' . $db->quoteName('u.id')); - $query = $db->getQuery(true) + $query = $db->createQuery() ->select( [ $db->quoteName('u.name'), @@ -251,7 +251,7 @@ public static function getDefaultHomeModule() { // Find Default Home menutype. $db = Factory::getDbo(); - $query = $db->getQuery(true) + $query = $db->createQuery() ->select($db->quoteName('menutype')) ->from($db->quoteName('#__menu')) ->where( @@ -311,7 +311,7 @@ public static function getModule($moduleName, $instanceTitle = null) { $db = Factory::getDbo(); - $query = $db->getQuery(true) + $query = $db->createQuery() ->select( [ $db->quoteName('id'), diff --git a/administrator/components/com_languages/src/Model/InstalledModel.php b/administrator/components/com_languages/src/Model/InstalledModel.php index 950d735508294..9f33139c5205d 100644 --- a/administrator/components/com_languages/src/Model/InstalledModel.php +++ b/administrator/components/com_languages/src/Model/InstalledModel.php @@ -17,7 +17,7 @@ use Joomla\CMS\Language\Text; use Joomla\CMS\MVC\Factory\MVCFactoryInterface; use Joomla\CMS\MVC\Model\ListModel; -use Joomla\CMS\Table\Table; +use Joomla\CMS\Table\Extension; use Joomla\Filesystem\Folder; use Joomla\Utilities\ArrayHelper; @@ -288,7 +288,7 @@ public function publish($cid) $params = ComponentHelper::getParams('com_languages'); $params->set($client->name, $cid); - $table = Table::getInstance('extension', 'Joomla\\CMS\\Table\\'); + $table = new Extension($this->getDatabase()); $id = $table->find(['element' => 'com_languages']); // Load. diff --git a/administrator/components/com_languages/src/Model/LanguageModel.php b/administrator/components/com_languages/src/Model/LanguageModel.php index 5c191be729218..230e629ca078c 100644 --- a/administrator/components/com_languages/src/Model/LanguageModel.php +++ b/administrator/components/com_languages/src/Model/LanguageModel.php @@ -16,8 +16,8 @@ use Joomla\CMS\Language\Text; use Joomla\CMS\MVC\Factory\MVCFactoryInterface; use Joomla\CMS\MVC\Model\AdminModel; -use Joomla\CMS\Object\CMSObject; use Joomla\CMS\Plugin\PluginHelper; +use Joomla\CMS\Table\Language; use Joomla\CMS\Table\Table; use Joomla\Utilities\ArrayHelper; @@ -70,7 +70,7 @@ public function __construct($config = [], ?MVCFactoryInterface $factory = null) */ public function getTable($name = '', $prefix = '', $options = []) { - return Table::getInstance('Language', 'Joomla\\CMS\\Table\\'); + return new Language($this->getDatabase()); } /** @@ -127,7 +127,7 @@ public function getItem($langId = null) } $properties = $table->getProperties(1); - $value = ArrayHelper::toObject($properties, CMSObject::class); + $value = ArrayHelper::toObject($properties); return $value; } @@ -267,15 +267,13 @@ public function save($data) /** * Custom clean cache method. * - * @param string $group Optional cache group name. - * @param integer $clientId No longer used, will be removed without replacement - * @deprecated 4.3 will be removed in 6.0 + * @param string $group Cache group name. * * @return void * * @since 1.6 */ - protected function cleanCache($group = null, $clientId = 0) + protected function cleanCache($group = null) { parent::cleanCache('_system'); parent::cleanCache('com_languages'); diff --git a/administrator/components/com_languages/src/Model/LanguagesModel.php b/administrator/components/com_languages/src/Model/LanguagesModel.php index bd2a894d108af..8793360280deb 100644 --- a/administrator/components/com_languages/src/Model/LanguagesModel.php +++ b/administrator/components/com_languages/src/Model/LanguagesModel.php @@ -13,7 +13,7 @@ use Joomla\CMS\Component\ComponentHelper; use Joomla\CMS\MVC\Factory\MVCFactoryInterface; use Joomla\CMS\MVC\Model\ListModel; -use Joomla\CMS\Table\Table; +use Joomla\CMS\Table\Language; use Joomla\Database\ParameterType; use Joomla\Database\QueryInterface; @@ -113,7 +113,7 @@ protected function getListQuery() { // Create a new query object. $db = $this->getDatabase(); - $query = $db->getQuery(true); + $query = $db->createQuery(); // Select all fields from the languages table. $query->select( @@ -182,7 +182,9 @@ protected function getListQuery() */ public function setPublished($cid, $value = 0) { - return Table::getInstance('Language', 'Joomla\\CMS\\Table\\')->publish($cid, $value); + $table = new Language($this->getDatabase()); + + return $table->publish($cid, $value); } /** @@ -200,7 +202,7 @@ public function delete($pks) $pks = (array) $pks; // Get a row instance. - $table = Table::getInstance('Language', 'Joomla\\CMS\\Table\\'); + $table = new Language($this->getDatabase()); // Iterate the items to delete each one. foreach ($pks as $itemId) { @@ -220,15 +222,13 @@ public function delete($pks) /** * Custom clean cache method, 2 places for 2 clients. * - * @param string $group Optional cache group name. - * @param integer $clientId No longer used, will be removed without replacement - * @deprecated 4.3 will be removed in 6.0 + * @param string $group Cache group name. * * @return void * * @since 1.6 */ - protected function cleanCache($group = null, $clientId = 0) + protected function cleanCache($group = null) { parent::cleanCache('_system'); parent::cleanCache('com_languages'); diff --git a/administrator/components/com_languages/src/Model/StringsModel.php b/administrator/components/com_languages/src/Model/StringsModel.php index 0ffbd2de50420..06fb9df16ba91 100644 --- a/administrator/components/com_languages/src/Model/StringsModel.php +++ b/administrator/components/com_languages/src/Model/StringsModel.php @@ -51,7 +51,7 @@ public function refresh() } // Create the insert query. - $query = $db->getQuery(true) + $query = $db->createQuery() ->insert($db->quoteName('#__overrider')) ->columns( [ @@ -142,7 +142,7 @@ public function search() $searchstring = '%' . $filter->clean($searchTerm, 'TRIM') . '%'; // Create the search query. - $query = $db->getQuery(true) + $query = $db->createQuery() ->select( [ $db->quoteName('constant'), diff --git a/administrator/components/com_languages/src/View/Installed/HtmlView.php b/administrator/components/com_languages/src/View/Installed/HtmlView.php index 865fbe5f6fce0..f67d66cf18820 100644 --- a/administrator/components/com_languages/src/View/Installed/HtmlView.php +++ b/administrator/components/com_languages/src/View/Installed/HtmlView.php @@ -95,6 +95,11 @@ public function display($tpl = null) $this->filterForm = $model->getFilterForm(); $this->activeFilters = $model->getActiveFilters(); + // Add form control fields + $this->filterForm + ->addControlField('task', '') + ->addControlField('boxchecked', '0'); + $this->addToolbar(); parent::display($tpl); diff --git a/administrator/components/com_languages/src/View/Language/HtmlView.php b/administrator/components/com_languages/src/View/Language/HtmlView.php index 1ec3be4a03421..50751de9113f8 100644 --- a/administrator/components/com_languages/src/View/Language/HtmlView.php +++ b/administrator/components/com_languages/src/View/Language/HtmlView.php @@ -77,6 +77,10 @@ public function display($tpl = null) $this->state = $model->getState(); $this->canDo = ContentHelper::getActions('com_languages'); + // Add form control fields + $this->form + ->addControlField('task', ''); + $this->addToolbar(); parent::display($tpl); } diff --git a/administrator/components/com_languages/src/View/Languages/HtmlView.php b/administrator/components/com_languages/src/View/Languages/HtmlView.php index 282680011f8fe..e8e7f345752b2 100644 --- a/administrator/components/com_languages/src/View/Languages/HtmlView.php +++ b/administrator/components/com_languages/src/View/Languages/HtmlView.php @@ -87,6 +87,11 @@ public function display($tpl = null) $this->filterForm = $model->getFilterForm(); $this->activeFilters = $model->getActiveFilters(); + // Add form control fields + $this->filterForm + ->addControlField('task', '') + ->addControlField('boxchecked', '0'); + $this->addToolbar(); parent::display($tpl); diff --git a/administrator/components/com_languages/src/View/Override/HtmlView.php b/administrator/components/com_languages/src/View/Override/HtmlView.php index b945582f7c14a..c09cc3a08779c 100644 --- a/administrator/components/com_languages/src/View/Override/HtmlView.php +++ b/administrator/components/com_languages/src/View/Override/HtmlView.php @@ -96,6 +96,11 @@ public function display($tpl = null) Text::script('COM_LANGUAGES_VIEW_OVERRIDE_NO_RESULTS'); Text::script('COM_LANGUAGES_VIEW_OVERRIDE_REQUEST_ERROR'); + // Add form control fields + $this->form + ->addControlField('task', '') + ->addControlField('id', $this->item->key); + $this->addToolbar(); parent::display($tpl); } diff --git a/administrator/components/com_languages/src/View/Overrides/HtmlView.php b/administrator/components/com_languages/src/View/Overrides/HtmlView.php index 6a7da3bddbe69..01c4a069d1630 100644 --- a/administrator/components/com_languages/src/View/Overrides/HtmlView.php +++ b/administrator/components/com_languages/src/View/Overrides/HtmlView.php @@ -94,6 +94,11 @@ public function display($tpl = null) $this->filterForm = $model->getFilterForm(); $this->activeFilters = $model->getActiveFilters(); + // Add form control fields + $this->filterForm + ->addControlField('task', '') + ->addControlField('boxchecked', '0'); + $this->addToolbar(); parent::display($tpl); } diff --git a/administrator/components/com_languages/tmpl/installed/default.php b/administrator/components/com_languages/tmpl/installed/default.php index 02e4a83886341..582b5daa41c3d 100644 --- a/administrator/components/com_languages/tmpl/installed/default.php +++ b/administrator/components/com_languages/tmpl/installed/default.php @@ -135,9 +135,8 @@ pagination->getListFooter(); ?> - - - + + filterForm->renderControlFields(); ?> diff --git a/administrator/components/com_languages/tmpl/language/edit.php b/administrator/components/com_languages/tmpl/language/edit.php index 3288093d4fb89..8ddd5db4914c5 100644 --- a/administrator/components/com_languages/tmpl/language/edit.php +++ b/administrator/components/com_languages/tmpl/language/edit.php @@ -83,6 +83,5 @@ - - + form->renderControlFields(); ?> diff --git a/administrator/components/com_languages/tmpl/languages/default.php b/administrator/components/com_languages/tmpl/languages/default.php index b9930320a5626..844dd1fe08147 100644 --- a/administrator/components/com_languages/tmpl/languages/default.php +++ b/administrator/components/com_languages/tmpl/languages/default.php @@ -165,9 +165,8 @@ pagination->getListFooter(); ?> - - - + + filterForm->renderControlFields(); ?> diff --git a/administrator/components/com_languages/tmpl/override/edit.php b/administrator/components/com_languages/tmpl/override/edit.php index 6df1ece2e9778..c37c2602107ce 100644 --- a/administrator/components/com_languages/tmpl/override/edit.php +++ b/administrator/components/com_languages/tmpl/override/edit.php @@ -10,7 +10,6 @@ defined('_JEXEC') or die; -use Joomla\CMS\HTML\HTMLHelper; use Joomla\CMS\Language\Text; use Joomla\CMS\Router\Route; @@ -83,10 +82,7 @@ - - - - + form->renderControlFields(); ?> diff --git a/administrator/components/com_languages/tmpl/overrides/default.php b/administrator/components/com_languages/tmpl/overrides/default.php index 66b295bd8c4c3..d61bb7913186d 100644 --- a/administrator/components/com_languages/tmpl/overrides/default.php +++ b/administrator/components/com_languages/tmpl/overrides/default.php @@ -112,9 +112,7 @@ - - - + filterForm->renderControlFields(); ?> diff --git a/administrator/components/com_login/src/Model/LoginModel.php b/administrator/components/com_login/src/Model/LoginModel.php index 3ee47f7e6810e..6b67eff495238 100644 --- a/administrator/components/com_login/src/Model/LoginModel.php +++ b/administrator/components/com_login/src/Model/LoginModel.php @@ -139,7 +139,7 @@ protected static function _load($module) $loader = function () use ($app, $lang, $module) { $db = Factory::getDbo(); - $query = $db->getQuery(true) + $query = $db->createQuery() ->select( $db->quoteName( [ diff --git a/administrator/components/com_mails/src/Field/MailtemplateLayoutField.php b/administrator/components/com_mails/src/Field/MailtemplateLayoutField.php index 4d43928dcba33..3a351d257d86c 100644 --- a/administrator/components/com_mails/src/Field/MailtemplateLayoutField.php +++ b/administrator/components/com_mails/src/Field/MailtemplateLayoutField.php @@ -50,7 +50,7 @@ protected function getInput() // Get the database object and a new query object. $db = $this->getDatabase(); - $query = $db->getQuery(true); + $query = $db->createQuery(); // Build the query. $query->select('element, name') diff --git a/administrator/components/com_mails/src/Model/TemplateModel.php b/administrator/components/com_mails/src/Model/TemplateModel.php index 10ef8e8b0d3f7..cb02fadf8be1b 100644 --- a/administrator/components/com_mails/src/Model/TemplateModel.php +++ b/administrator/components/com_mails/src/Model/TemplateModel.php @@ -16,7 +16,6 @@ use Joomla\CMS\Language\LanguageHelper; use Joomla\CMS\Language\Text; use Joomla\CMS\MVC\Model\AdminModel; -use Joomla\CMS\Object\CMSObject; use Joomla\CMS\Table\Table; use Joomla\Filesystem\Path; use Joomla\Registry\Registry; @@ -176,9 +175,9 @@ public function getItem($pk = null) } } - // Convert to the CMSObject before adding other data. + // Convert to an object before adding other data. $properties = $table->getProperties(1); - $item = ArrayHelper::toObject($properties, CMSObject::class); + $item = ArrayHelper::toObject($properties); if (property_exists($item, 'params')) { $registry = new Registry($item->params); @@ -222,9 +221,9 @@ public function getMaster($pk = null) } } - // Convert to the CMSObject before adding other data. + // Convert to an object before adding other data. $properties = $table->getProperties(1); - $item = ArrayHelper::toObject($properties, CMSObject::class); + $item = ArrayHelper::toObject($properties); if (property_exists($item, 'params')) { $registry = new Registry($item->params); diff --git a/administrator/components/com_mails/src/Model/TemplatesModel.php b/administrator/components/com_mails/src/Model/TemplatesModel.php index ac28287c4483b..1fddea2c6f5c0 100644 --- a/administrator/components/com_mails/src/Model/TemplatesModel.php +++ b/administrator/components/com_mails/src/Model/TemplatesModel.php @@ -91,7 +91,7 @@ public function getItems() $id = ''; $db = $this->getDatabase(); - $query = $db->getQuery(true) + $query = $db->createQuery() ->select($db->quoteName('language')) ->from($db->quoteName('#__mail_templates')) ->where($db->quoteName('template_id') . ' = :id') @@ -119,7 +119,7 @@ protected function getListQuery() { // Create a new query object. $db = $this->getDatabase(); - $query = $db->getQuery(true); + $query = $db->createQuery(); // Select the required fields from the table. $query->select( @@ -155,7 +155,7 @@ protected function getListQuery() ->bind(':extension', $extension); } else { // Only show mail template from enabled extensions - $subQuery = $db->getQuery(true) + $subQuery = $db->createQuery() ->select($db->quoteName('name')) ->from($db->quoteName('#__extensions')) ->where($db->quoteName('enabled') . ' = 1'); @@ -193,12 +193,12 @@ protected function getListQuery() public function getExtensions() { $db = $this->getDatabase(); - $subQuery = $db->getQuery(true) + $subQuery = $db->createQuery() ->select($db->quoteName('name')) ->from($db->quoteName('#__extensions')) ->where($db->quoteName('enabled') . ' = 1'); - $query = $db->getQuery(true) + $query = $db->createQuery() ->select('DISTINCT ' . $db->quoteName('extension')) ->from($db->quoteName('#__mail_templates')) ->where($db->quoteName('extension') . ' IN (' . $subQuery . ')'); diff --git a/administrator/components/com_mails/src/View/Template/HtmlView.php b/administrator/components/com_mails/src/View/Template/HtmlView.php index dac94d2f5240c..e0ba8ac2405d5 100644 --- a/administrator/components/com_mails/src/View/Template/HtmlView.php +++ b/administrator/components/com_mails/src/View/Template/HtmlView.php @@ -13,7 +13,6 @@ use Joomla\CMS\Factory; use Joomla\CMS\Language\Text; use Joomla\CMS\MVC\View\HtmlView as BaseHtmlView; -use Joomla\CMS\Object\CMSObject; use Joomla\CMS\Toolbar\ToolbarHelper; use Joomla\Component\Mails\Administrator\Helper\MailsHelper; use Joomla\Component\Mails\Administrator\Model\TemplateModel; @@ -60,7 +59,7 @@ class HtmlView extends BaseHtmlView /** * Master data for the mail template * - * @var CMSObject + * @var \stdClass */ protected $master; @@ -112,6 +111,11 @@ public function display($tpl = null) } } + // Add form control fields + $this->form + ->addControlField('task', '') + ->addControlField('return', Factory::getApplication()->getInput()->get('return', '', 'BASE64')); + $this->addToolbar(); parent::display($tpl); diff --git a/administrator/components/com_mails/src/View/Templates/HtmlView.php b/administrator/components/com_mails/src/View/Templates/HtmlView.php index d3bc86c5c0c9d..9463559163e0c 100644 --- a/administrator/components/com_mails/src/View/Templates/HtmlView.php +++ b/administrator/components/com_mails/src/View/Templates/HtmlView.php @@ -119,6 +119,11 @@ public function display($tpl = null) MailsHelper::loadTranslationFiles($extension, $currentLanguageTag); } + // Add form control fields + $this->filterForm + ->addControlField('task', '') + ->addControlField('boxchecked', '0'); + $this->addToolbar(); parent::display($tpl); diff --git a/administrator/components/com_mails/tmpl/template/edit.php b/administrator/components/com_mails/tmpl/template/edit.php index 5cd1385fb84a5..b39f2fc828af1 100644 --- a/administrator/components/com_mails/tmpl/template/edit.php +++ b/administrator/components/com_mails/tmpl/template/edit.php @@ -116,7 +116,6 @@ form->renderField('template_id'); ?> form->renderField('language'); ?> - - - + + form->renderControlFields(); ?> diff --git a/administrator/components/com_mails/tmpl/templates/default.php b/administrator/components/com_mails/tmpl/templates/default.php index 86690895985b8..b0d56a46f35a1 100644 --- a/administrator/components/com_mails/tmpl/templates/default.php +++ b/administrator/components/com_mails/tmpl/templates/default.php @@ -113,9 +113,7 @@ pagination->getListFooter(); ?> - - - + filterForm->renderControlFields(); ?> diff --git a/administrator/components/com_media/helpers/media.php b/administrator/components/com_media/helpers/media.php index 6e9aa05cd81fd..57f5788769644 100644 --- a/administrator/components/com_media/helpers/media.php +++ b/administrator/components/com_media/helpers/media.php @@ -10,8 +10,6 @@ * @phpcs:disable PSR1.Classes.ClassDeclaration.MissingNamespace */ -use Joomla\CMS\Object\CMSObject; - // phpcs:disable PSR1.Files.SideEffects \defined('_JEXEC') or die; // phpcs:enable PSR1.Files.SideEffects @@ -26,26 +24,24 @@ abstract class MediaHelper /** * Generates the URL to the object in the action logs component * - * @param string $contentType The content type - * @param integer $id The integer id - * @param CMSObject $mediaObject The media object being uploaded + * @param string $contentType The content type + * @param integer $id The integer id + * @param \stdClass $mediaObject The media object being uploaded * * @return string The link for the action log * * @since 3.9.27 */ - public static function getContentTypeLink($contentType, $id, CMSObject $mediaObject) + public static function getContentTypeLink($contentType, $id, \stdClass $mediaObject) { if ($contentType === 'com_media.file') { return ''; } - $link = 'index.php?option=com_media'; - $adapter = $mediaObject->get('adapter'); - $uploadedPath = $mediaObject->get('path'); + $link = 'index.php?option=com_media'; - if (!empty($adapter) && !empty($uploadedPath)) { - $link .= '&path=' . $adapter . ':' . $uploadedPath; + if (!empty($mediaObject->adapter) && !empty($mediaObject->path)) { + $link .= '&path=' . $mediaObject->adapter . ':' . $mediaObject->path; } return $link; diff --git a/administrator/components/com_media/resources/scripts/components/browser/items/audio.vue b/administrator/components/com_media/resources/scripts/components/browser/items/audio.vue index cb33bca7d39f4..078ebad9dd1ad 100644 --- a/administrator/components/com_media/resources/scripts/components/browser/items/audio.vue +++ b/administrator/components/com_media/resources/scripts/components/browser/items/audio.vue @@ -7,8 +7,23 @@ @keyup.enter="openPreview()" >
-
-
+
+ +
@@ -51,6 +66,26 @@ export default { showActions: false, }; }, + computed: { + thumbURL() { + let path = this.item.thumb_path || ''; + + if (path && this.item.modified_date) { + path = path + (path.includes('?') ? '&' : '?') + this.item.modified_date; + } + + return path; + }, + thumbWidth() { + return this.item.thumb_width || null; + }, + thumbHeight() { + return this.item.thumb_height || null; + }, + thumbLoading() { + return this.item.thumb_width ? 'lazy' : null; + }, + }, methods: { /* Hide actions dropdown */ hideActions() { diff --git a/administrator/components/com_media/resources/scripts/components/browser/items/directory.vue b/administrator/components/com_media/resources/scripts/components/browser/items/directory.vue index d665740532b7b..9a20a481f30ca 100644 --- a/administrator/components/com_media/resources/scripts/components/browser/items/directory.vue +++ b/administrator/components/com_media/resources/scripts/components/browser/items/directory.vue @@ -9,8 +9,23 @@ @dblclick.stop.prevent="onPreviewDblClick()" @keyup.enter="onPreviewDblClick()" > -
-
+
+ +
@@ -47,6 +62,26 @@ export default { showActions: false, }; }, + computed: { + thumbURL() { + let path = this.item.thumb_path || ''; + + if (path && this.item.modified_date) { + path = path + (path.includes('?') ? '&' : '?') + this.item.modified_date; + } + + return path; + }, + thumbWidth() { + return this.item.thumb_width || null; + }, + thumbHeight() { + return this.item.thumb_height || null; + }, + thumbLoading() { + return this.item.thumb_width ? 'lazy' : null; + }, + }, methods: { /* Handle the on preview double click event */ onPreviewDblClick() { diff --git a/administrator/components/com_media/resources/scripts/components/browser/items/document.vue b/administrator/components/com_media/resources/scripts/components/browser/items/document.vue index e8a259f6a6afc..183f58192a3ba 100644 --- a/administrator/components/com_media/resources/scripts/components/browser/items/document.vue +++ b/administrator/components/com_media/resources/scripts/components/browser/items/document.vue @@ -5,8 +5,23 @@ @mouseleave="hideActions()" >
-
-
+
+ +
@@ -54,6 +69,26 @@ export default { showActions: false, }; }, + computed: { + thumbURL() { + let path = this.item.thumb_path || ''; + + if (path && this.item.modified_date) { + path = path + (path.includes('?') ? '&' : '?') + this.item.modified_date; + } + + return path; + }, + thumbWidth() { + return this.item.thumb_width || null; + }, + thumbHeight() { + return this.item.thumb_height || null; + }, + thumbLoading() { + return this.item.thumb_width ? 'lazy' : null; + }, + }, methods: { /* Hide actions dropdown */ hideActions() { diff --git a/administrator/components/com_media/resources/scripts/components/browser/items/file.vue b/administrator/components/com_media/resources/scripts/components/browser/items/file.vue index 2b816f6e75ade..71a486d0157fe 100644 --- a/administrator/components/com_media/resources/scripts/components/browser/items/file.vue +++ b/administrator/components/com_media/resources/scripts/components/browser/items/file.vue @@ -4,8 +4,23 @@ @mouseleave="hideActions()" >
-
-
+
+ +
@@ -53,6 +68,26 @@ export default { showActions: false, }; }, + computed: { + thumbURL() { + let path = this.item.thumb_path || ''; + + if (path && this.item.modified_date) { + path = path + (path.includes('?') ? '&' : '?') + this.item.modified_date; + } + + return path; + }, + thumbWidth() { + return this.item.thumb_width || null; + }, + thumbHeight() { + return this.item.thumb_height || null; + }, + thumbLoading() { + return this.item.thumb_width ? 'lazy' : null; + }, + }, methods: { /* Hide actions dropdown */ hideActions() { diff --git a/administrator/components/com_media/resources/scripts/components/browser/items/image.vue b/administrator/components/com_media/resources/scripts/components/browser/items/image.vue index f8d1606b22c3a..1950a1ece88fd 100644 --- a/administrator/components/com_media/resources/scripts/components/browser/items/image.vue +++ b/administrator/components/com_media/resources/scripts/components/browser/items/image.vue @@ -12,17 +12,17 @@ >
- - + + form->renderControlFields(); ?> diff --git a/administrator/components/com_messages/tmpl/messages/default.php b/administrator/components/com_messages/tmpl/messages/default.php index f79eb7488bdd7..abf0723a9c2c2 100644 --- a/administrator/components/com_messages/tmpl/messages/default.php +++ b/administrator/components/com_messages/tmpl/messages/default.php @@ -89,10 +89,7 @@ pagination->getListFooter(); ?> -
- - - -
+ + filterForm->renderControlFields(); ?>
diff --git a/administrator/components/com_messages/tmpl/messages/emptystate.php b/administrator/components/com_messages/tmpl/messages/emptystate.php index 5b4eb77cbdf61..362c22b6aa95d 100644 --- a/administrator/components/com_messages/tmpl/messages/emptystate.php +++ b/administrator/components/com_messages/tmpl/messages/emptystate.php @@ -19,6 +19,8 @@ 'formURL' => 'index.php?option=com_messages&view=messages', 'helpURL' => 'https://docs.joomla.org/Special:MyLanguage/Help5.x:Private_Messages', 'icon' => 'icon-envelope inbox', + + 'controlFields' => $this->filterForm->renderControlFields(), ]; if ( diff --git a/administrator/components/com_modules/src/Controller/ModuleController.php b/administrator/components/com_modules/src/Controller/ModuleController.php index f6b14678e9f69..9d8c49f6b37e9 100644 --- a/administrator/components/com_modules/src/Controller/ModuleController.php +++ b/administrator/components/com_modules/src/Controller/ModuleController.php @@ -232,7 +232,7 @@ public function save($key = null, $urlVar = null) $model = $this->getModel(); $data = $this->input->post->get('jform', [], 'array'); $item = $model->getItem($this->input->get('id')); - $properties = $item->getProperties(); + $properties = get_object_vars($item); if (isset($data['params'])) { unset($properties['params']); diff --git a/administrator/components/com_modules/src/Helper/ModulesHelper.php b/administrator/components/com_modules/src/Helper/ModulesHelper.php index fac753b736857..8a32dda43bfac 100644 --- a/administrator/components/com_modules/src/Helper/ModulesHelper.php +++ b/administrator/components/com_modules/src/Helper/ModulesHelper.php @@ -71,7 +71,7 @@ public static function getPositions($clientId, $editPositions = false) { $db = Factory::getDbo(); $clientId = (int) $clientId; - $query = $db->getQuery(true) + $query = $db->createQuery() ->select('DISTINCT ' . $db->quoteName('position')) ->from($db->quoteName('#__modules')) ->where($db->quoteName('client_id') . ' = :clientid') @@ -120,7 +120,7 @@ public static function getTemplates($clientId = 0, $state = '', $template = '') $clientId = (int) $clientId; // Get the database object and a new query object. - $query = $db->getQuery(true); + $query = $db->createQuery(); // Build the query. $query->select($db->quoteName(['element', 'name', 'enabled'])) @@ -157,7 +157,7 @@ public static function getTemplates($clientId = 0, $state = '', $template = '') public static function getModules($clientId) { $db = Factory::getDbo(); - $query = $db->getQuery(true) + $query = $db->createQuery() ->select('element AS value, name AS text') ->from('#__extensions as e') ->where('e.client_id = ' . (int) $clientId) diff --git a/administrator/components/com_modules/src/Model/ModuleModel.php b/administrator/components/com_modules/src/Model/ModuleModel.php index 9e8d5b17d57c0..2d2d16d131e42 100644 --- a/administrator/components/com_modules/src/Model/ModuleModel.php +++ b/administrator/components/com_modules/src/Model/ModuleModel.php @@ -18,7 +18,6 @@ use Joomla\CMS\Language\Text; use Joomla\CMS\MVC\Factory\MVCFactoryInterface; use Joomla\CMS\MVC\Model\AdminModel; -use Joomla\CMS\Object\CMSObject; use Joomla\CMS\Plugin\PluginHelper; use Joomla\CMS\Router\Route; use Joomla\CMS\Table\Table; @@ -202,7 +201,7 @@ protected function batchCopy($value, $pks, $contexts) // Now we need to handle the module assignments $db = $this->getDatabase(); - $query = $db->getQuery(true) + $query = $db->createQuery() ->select($db->quoteName('menuid')) ->from($db->quoteName('#__modules_menu')) ->where($db->quoteName('moduleid') . ' = :moduleid') @@ -356,7 +355,7 @@ public function delete(&$pks) // Delete the menu assignments $pk = (int) $pk; $db = $this->getDatabase(); - $query = $db->getQuery(true) + $query = $db->createQuery() ->delete($db->quoteName('#__modules_menu')) ->where($db->quoteName('moduleid') . ' = :moduleid') ->bind(':moduleid', $pk, ParameterType::INTEGER); @@ -426,7 +425,7 @@ public function duplicate(&$pks) } $pk = (int) $pk; - $query = $db->getQuery(true) + $query = $db->createQuery() ->select($db->quoteName('menuid')) ->from($db->quoteName('#__modules_menu')) ->where($db->quoteName('moduleid') . ' = :moduleid') @@ -445,7 +444,7 @@ public function duplicate(&$pks) if (!empty($tuples)) { // Module-Menu Mapping: Do it in one query - $query = $db->getQuery(true) + $query = $db->createQuery() ->insert($db->quoteName('#__modules_menu')) ->columns($db->quoteName(['moduleid', 'menuid'])) ->values($tuples); @@ -597,12 +596,12 @@ protected function loadFormData() // Pre-select some filters (Status, Module Position, Language, Access Level) in edit form if those have been selected in Module Manager if (!$data->id) { - $clientId = $input->getInt('client_id', 0); - $filters = (array) $app->getUserState('com_modules.modules.' . $clientId . '.filter'); - $data->set('published', $input->getInt('published', ((isset($filters['state']) && $filters['state'] !== '') ? $filters['state'] : null))); - $data->set('position', $input->getInt('position', (!empty($filters['position']) ? $filters['position'] : null))); - $data->set('language', $input->getString('language', (!empty($filters['language']) ? $filters['language'] : null))); - $data->set('access', $input->getInt('access', (!empty($filters['access']) ? $filters['access'] : $app->get('access')))); + $clientId = $input->getInt('client_id', 0); + $filters = (array) $app->getUserState('com_modules.modules.' . $clientId . '.filter'); + $data->published = $input->getInt('published', ((isset($filters['state']) && $filters['state'] !== '') ? $filters['state'] : null)); + $data->position = $input->getInt('position', (!empty($filters['position']) ? $filters['position'] : null)); + $data->language = $input->getString('language', (!empty($filters['language']) ? $filters['language'] : null)); + $data->access = $input->getInt('access', (!empty($filters['access']) ? $filters['access'] : $app->get('access'))); } // Avoid to delete params of a second module opened in a new browser tab while new one is not saved yet. @@ -611,7 +610,7 @@ protected function loadFormData() $params = $app->getUserState('com_modules.add.module.params'); if (\is_array($params)) { - $data->set('params', $params); + $data->params = $params; } } } @@ -626,7 +625,7 @@ protected function loadFormData() * * @param integer $pk The id of the primary key. * - * @return mixed Object on success, false on failure. + * @return \stdClass|false Object on success, false on failure. * * @since 1.6 */ @@ -652,7 +651,7 @@ public function getItem($pk = null) // Check if we are creating a new extension. if (empty($pk)) { if ($extensionId = (int) $this->getState('extension.id')) { - $query = $db->getQuery(true) + $query = $db->createQuery() ->select($db->quoteName(['element', 'client_id'])) ->from($db->quoteName('#__extensions')) ->where($db->quoteName('extension_id') . ' = :extensionid') @@ -684,16 +683,16 @@ public function getItem($pk = null) } } - // Convert to the \Joomla\CMS\Object\CMSObject before adding other data. + // Convert to an object before adding other data. $properties = $table->getProperties(1); - $this->_cache[$pk] = ArrayHelper::toObject($properties, CMSObject::class); + $this->_cache[$pk] = ArrayHelper::toObject($properties); // Convert the params field to an array. $registry = new Registry($table->params); $this->_cache[$pk]->params = $registry->toArray(); // Determine the page assignment mode. - $query = $db->getQuery(true) + $query = $db->createQuery() ->select($db->quoteName('menuid')) ->from($db->quoteName('#__modules_menu')) ->where($db->quoteName('moduleid') . ' = :moduleid') @@ -966,7 +965,7 @@ public function save($data) // Delete old module to menu item associations $db = $this->getDatabase(); - $query = $db->getQuery(true) + $query = $db->createQuery() ->delete($db->quoteName('#__modules_menu')) ->where($db->quoteName('moduleid') . ' = :moduleid') ->bind(':moduleid', $table->id, ParameterType::INTEGER); @@ -1090,15 +1089,13 @@ protected function getReorderConditions($table) /** * Custom clean cache method for different clients * - * @param string $group The name of the plugin group to import (defaults to null). - * @param integer $clientId No longer used, will be removed without replacement - * @deprecated 4.3 will be removed in 6.0 + * @param string $group Cache group name. * * @return void * * @since 1.6 */ - protected function cleanCache($group = null, $clientId = 0) + protected function cleanCache($group = null) { parent::cleanCache('com_modules'); } diff --git a/administrator/components/com_modules/src/Model/ModulesModel.php b/administrator/components/com_modules/src/Model/ModulesModel.php index 2ad18918777d0..1c193f541ca3e 100644 --- a/administrator/components/com_modules/src/Model/ModulesModel.php +++ b/administrator/components/com_modules/src/Model/ModulesModel.php @@ -249,7 +249,7 @@ protected function getListQuery() { // Create a new query object. $db = $this->getDatabase(); - $query = $db->getQuery(true); + $query = $db->createQuery(); // Select the required fields. $query->select( @@ -346,7 +346,7 @@ protected function getListQuery() } else { // If user selected the modules assigned to some particular page (menu item). // Modules in "All" pages. - $subQuery1 = $db->getQuery(true); + $subQuery1 = $db->createQuery(); $subQuery1->select('MIN(' . $db->quoteName('menuid') . ')') ->from($db->quoteName('#__modules_menu')) ->where($db->quoteName('moduleid') . ' = ' . $db->quoteName('a.id')); @@ -354,13 +354,13 @@ protected function getListQuery() // Modules in "Selected" pages that have the chosen menu item id. $menuItemId = (int) $menuItemId; $minusMenuItemId = $menuItemId * -1; - $subQuery2 = $db->getQuery(true); + $subQuery2 = $db->createQuery(); $subQuery2->select($db->quoteName('moduleid')) ->from($db->quoteName('#__modules_menu')) ->where($db->quoteName('menuid') . ' = :menuitemid2'); // Modules in "All except selected" pages that doesn't have the chosen menu item id. - $subQuery3 = $db->getQuery(true); + $subQuery3 = $db->createQuery(); $subQuery3->select($db->quoteName('moduleid')) ->from($db->quoteName('#__modules_menu')) ->where($db->quoteName('menuid') . ' = :menuitemid3'); diff --git a/administrator/components/com_modules/src/Model/PositionsModel.php b/administrator/components/com_modules/src/Model/PositionsModel.php index 0351c13dc8363..3d99a58ace4e6 100644 --- a/administrator/components/com_modules/src/Model/PositionsModel.php +++ b/administrator/components/com_modules/src/Model/PositionsModel.php @@ -105,7 +105,7 @@ public function getItems() // Get the database object and a new query object. $db = $this->getDatabase(); - $query = $db->getQuery(true) + $query = $db->createQuery() ->select('DISTINCT ' . $db->quoteName('position', 'value')) ->from($db->quoteName('#__modules')) ->where($db->quoteName('client_id') . ' = :clientid') diff --git a/administrator/components/com_modules/src/Model/SelectModel.php b/administrator/components/com_modules/src/Model/SelectModel.php index 643ca24503046..9a2fb6212e44b 100644 --- a/administrator/components/com_modules/src/Model/SelectModel.php +++ b/administrator/components/com_modules/src/Model/SelectModel.php @@ -90,7 +90,7 @@ protected function getListQuery() { // Create a new query object. $db = $this->getDatabase(); - $query = $db->getQuery(true); + $query = $db->createQuery(); // Select the required fields from the table. $query->select( diff --git a/administrator/components/com_modules/src/Service/HTML/Modules.php b/administrator/components/com_modules/src/Service/HTML/Modules.php index 78b02e6e90582..51aac634362fe 100644 --- a/administrator/components/com_modules/src/Service/HTML/Modules.php +++ b/administrator/components/com_modules/src/Service/HTML/Modules.php @@ -230,7 +230,7 @@ public function positionList($clientId = 0) { $clientId = (int) $clientId; $db = Factory::getDbo(); - $query = $db->getQuery(true) + $query = $db->createQuery() ->select('DISTINCT ' . $db->quoteName('position', 'value')) ->select($db->quoteName('position', 'text')) ->from($db->quoteName('#__modules')) diff --git a/administrator/components/com_modules/src/View/Module/HtmlView.php b/administrator/components/com_modules/src/View/Module/HtmlView.php index 4037f50637bf7..4de41713f860c 100644 --- a/administrator/components/com_modules/src/View/Module/HtmlView.php +++ b/administrator/components/com_modules/src/View/Module/HtmlView.php @@ -100,6 +100,11 @@ public function display($tpl = null) return; } + // Add form control fields + $this->form + ->addControlField('task', '') + ->addControlField('return', Factory::getApplication()->getInput()->getBase64('return', '')); + if ($this->getLayout() !== 'modal') { $this->addToolbar(); } else { diff --git a/administrator/components/com_modules/src/View/Modules/HtmlView.php b/administrator/components/com_modules/src/View/Modules/HtmlView.php index 6ea5738c2d11e..a8d71a3c54a9e 100644 --- a/administrator/components/com_modules/src/View/Modules/HtmlView.php +++ b/administrator/components/com_modules/src/View/Modules/HtmlView.php @@ -14,11 +14,8 @@ use Joomla\CMS\Helper\ContentHelper; use Joomla\CMS\Helper\ModuleHelper; use Joomla\CMS\Language\Multilanguage; -use Joomla\CMS\Language\Text; -use Joomla\CMS\MVC\View\HtmlView as BaseHtmlView; -use Joomla\CMS\Toolbar\Button\DropdownButton; -use Joomla\CMS\Toolbar\ToolbarHelper; -use Joomla\Component\Modules\Administrator\Model\ModulesModel; +use Joomla\CMS\MVC\Model\ListModel; +use Joomla\CMS\MVC\View\ListView; // phpcs:disable PSR1.Files.SideEffects \defined('_JEXEC') or die; @@ -29,80 +26,61 @@ * * @since 1.6 */ -class HtmlView extends BaseHtmlView +class HtmlView extends ListView { /** - * An array of items + * The client ID for the modules we're showing * - * @var array - */ - protected $items; - - /** - * The pagination object + * @var int * - * @var \Joomla\CMS\Pagination\Pagination + * @since 6.0.0 */ - protected $pagination; + protected $clientId; /** - * The model state + * The help link for the view * - * @var \Joomla\Registry\Registry + * @var string */ - protected $state; + protected $helpLink = 'Modules'; /** - * Form object for search filters + * Constructor * - * @var \Joomla\CMS\Form\Form - * - * @since 4.0.0 + * @param array $config An optional associative array of configuration settings. */ - public $filterForm; + public function __construct(array $config) + { + if (empty($config['option'])) { + $config['option'] = 'com_modules'; + } - /** - * The active search filters - * - * @var array - * @since 4.0.0 - */ - public $activeFilters; + $config['toolbar_icon'] = 'cube module'; + $config['supports_batch'] = true; - /** - * Is this view an Empty State - * - * @var boolean - * @since 4.0.0 - */ - private $isEmptyState = false; + parent::__construct($config); + } /** - * Display the view - * - * @param string $tpl The name of the template file to parse; automatically searches through the template paths. + * Prepare view data * * @return void - * - * @since 1.6 */ - public function display($tpl = null) + protected function initializeView() { - /** @var ModulesModel $model */ + parent::initializeView(); + + /** + * @var ListModel + */ $model = $this->getModel(); - $model->setUseExceptions(true); - $this->items = $model->getItems(); - $this->pagination = $model->getPagination(); - $this->state = $model->getState(); $this->total = $model->getTotal(); - $this->filterForm = $model->getFilterForm(); - $this->activeFilters = $model->getActiveFilters(); - $this->clientId = $this->state->get('client_id'); + $this->clientId = (int) $this->state->get('client_id', 0); - if (!\count($this->items) && $this->isEmptyState = $model->getIsEmptyState()) { - $this->setLayout('emptystate'); - } + $this->canDo = ContentHelper::getActions('com_modules'); + + $this->toolbarTitle = $this->clientId == 1 ? 'COM_MODULES_MANAGER_MODULES_ADMIN' : 'COM_MODULES_MANAGER_MODULES_SITE'; /** * The code below make sure the remembered position will be available from filter dropdown even if there are no @@ -137,8 +115,6 @@ public function display($tpl = null) // We don't need the toolbar in the modal window. if ($this->getLayout() !== 'modal') { - $this->addToolbar(); - // We do not need to filter by language when multilingual is disabled if (!Multilanguage::isEnabled()) { unset($this->activeFilters['language']); @@ -154,8 +130,6 @@ public function display($tpl = null) unset($this->activeFilters['state'], $this->activeFilters['language']); } } - - parent::display($tpl); } /** @@ -167,78 +141,42 @@ public function display($tpl = null) */ protected function addToolbar() { - $state = $this->state; - $canDo = ContentHelper::getActions('com_modules'); - $user = $this->getCurrentUser(); + $canDo = $this->canDo; - // Get the toolbar object instance - $toolbar = $this->getDocument()->getToolbar(); + $canCreate = $canDo->get('core.create'); - if ($state->get('client_id') == 1) { - ToolbarHelper::title(Text::_('COM_MODULES_MANAGER_MODULES_ADMIN'), 'cube module'); - } else { - ToolbarHelper::title(Text::_('COM_MODULES_MANAGER_MODULES_SITE'), 'cube module'); + if ($canCreate) { + $this->getDocument()->getToolbar()->standardButton('new', 'JTOOLBAR_NEW') + ->onclick("location.href='index.php?option=com_modules&view=select&client_id=" . $this->clientId . "'"); } - if ($canDo->get('core.create')) { - $toolbar->standardButton('new', 'JTOOLBAR_NEW') - ->onclick("location.href='index.php?option=com_modules&view=select&client_id=" . $this->state->get('client_id', 0) . "'"); - } + // Prevent showing default add button + $canDo->set('core.create', false); - if (!$this->isEmptyState && ($canDo->get('core.edit.state') || $this->getCurrentUser()->authorise('core.admin'))) { - /** @var DropdownButton $dropdown */ - $dropdown = $toolbar->dropdownButton('status-group', 'JTOOLBAR_CHANGE_STATUS') - ->toggleSplit(false) - ->icon('icon-ellipsis-h') - ->buttonClass('btn btn-action') - ->listCheck(true); + parent::addToolbar(); - $childBar = $dropdown->getChildToolbar(); + $canDo->set('core.create', $canCreate); - if ($canDo->get('core.edit.state')) { - $childBar->publish('modules.publish')->listCheck(true); + // We add the duplicate button if there is the default dropdown + if ($canCreate) { - $childBar->unpublish('modules.unpublish')->listCheck(true); - } + /** + * @var \Joomla\CMS\Toolbar\Toolbar $toolbar + */ + $toolbar = $this->getDocument()->getToolbar(); - if ($this->getCurrentUser()->authorise('core.admin')) { - $childBar->checkin('modules.checkin')->listCheck(true); - } + $buttons = $toolbar->getItems(); - if ($canDo->get('core.edit.state') && $this->state->get('filter.published') != -2) { - $childBar->trash('modules.trash')->listCheck(true); - } + foreach ($buttons as $button) { + if ($button->getName() === 'status-group') { + $childBar = $button->getChildToolbar(); - // Add a batch button - if ( - $user->authorise('core.create', 'com_modules') && $user->authorise('core.edit', 'com_modules') - && $user->authorise('core.edit.state', 'com_modules') - ) { - $childBar->popupButton('batch', 'JTOOLBAR_BATCH') - ->popupType('inline') - ->textHeader(Text::_('COM_MODULES_BATCH_OPTIONS')) - ->url('#joomla-dialog-batch') - ->modalWidth('800px') - ->modalHeight('fit-content') - ->listCheck(true); - } + $childBar->standardButton('copy', 'JTOOLBAR_DUPLICATE', 'modules.duplicate') + ->listCheck(true); - if ($canDo->get('core.create')) { - $childBar->standardButton('copy', 'JTOOLBAR_DUPLICATE', 'modules.duplicate') - ->listCheck(true); + break; + } } } - - if (!$this->isEmptyState && ($state->get('filter.state') == -2 && $canDo->get('core.delete'))) { - $toolbar->delete('modules.delete', 'JTOOLBAR_DELETE_FROM_TRASH') - ->message('JGLOBAL_CONFIRM_DELETE') - ->listCheck(true); - } - - if ($canDo->get('core.admin')) { - $toolbar->preferences('com_modules'); - } - - $toolbar->help('Modules'); } } diff --git a/administrator/components/com_modules/tmpl/module/edit.php b/administrator/components/com_modules/tmpl/module/edit.php index 45a819a54cfa9..9ff59422a7351 100644 --- a/administrator/components/com_modules/tmpl/module/edit.php +++ b/administrator/components/com_modules/tmpl/module/edit.php @@ -18,8 +18,6 @@ /** @var \Joomla\Component\Modules\Administrator\View\Module\HtmlView $this */ -HTMLHelper::_('behavior.combobox'); - $hasContent = isset($this->item->xml->customContent); $hasContentFieldName = 'content'; @@ -39,10 +37,10 @@ $this->getDocument()->addScriptOptions('module-edit', ['itemId' => $this->item->id, 'state' => (int) $this->item->id == 0 ? 'Add' : 'Edit']); -/** @var Joomla\CMS\WebAsset\WebAssetManager $wa */ -$wa = $this->getDocument()->getWebAssetManager(); -$wa->useScript('keepalive') - ->useScript('form.validate'); +$this->getDocument()->getWebAssetManager() + ->useScript('keepalive') + ->useScript('form.validate') + ->useScript('awesomplete'); $input = Factory::getApplication()->getInput(); @@ -189,10 +187,9 @@ - - - form->getInput('module'); ?> form->getInput('client_id'); ?> + + form->renderControlFields(); ?>
diff --git a/administrator/components/com_modules/tmpl/modules/default.php b/administrator/components/com_modules/tmpl/modules/default.php index 5928d7c24d6e3..becb6f31d764c 100644 --- a/administrator/components/com_modules/tmpl/modules/default.php +++ b/administrator/components/com_modules/tmpl/modules/default.php @@ -200,15 +200,10 @@ authorise('core.create', 'com_modules') - && $user->authorise('core.edit', 'com_modules') - && $user->authorise('core.edit.state', 'com_modules') - ) : ?> + if ($this->batchAllowed) : ?> - - - + + filterForm->renderControlFields(); ?>
diff --git a/administrator/components/com_modules/tmpl/modules/emptystate.php b/administrator/components/com_modules/tmpl/modules/emptystate.php index 75450cad12077..c6d28d0a0ce5d 100644 --- a/administrator/components/com_modules/tmpl/modules/emptystate.php +++ b/administrator/components/com_modules/tmpl/modules/emptystate.php @@ -22,6 +22,8 @@ 'icon' => 'icon-cube module', // Although it is (almost) impossible to get to this page with no created Administrator Modules, we add this for completeness. 'title' => Text::_('COM_MODULES_EMPTYSTATE_TITLE_' . ($this->clientId ? 'ADMINISTRATOR' : 'SITE')), + + 'controlFields' => $this->filterForm->renderControlFields(), ]; if ($this->getCurrentUser()->authorise('core.create', 'com_modules')) { diff --git a/administrator/components/com_newsfeeds/src/Field/Modal/NewsfeedField.php b/administrator/components/com_newsfeeds/src/Field/Modal/NewsfeedField.php index 97ed426e7ce8b..834174f3e5454 100644 --- a/administrator/components/com_newsfeeds/src/Field/Modal/NewsfeedField.php +++ b/administrator/components/com_newsfeeds/src/Field/Modal/NewsfeedField.php @@ -138,7 +138,7 @@ protected function getValueTitle() if ($value) { try { $db = $this->getDatabase(); - $query = $db->getQuery(true) + $query = $db->createQuery() ->select($db->quoteName('name')) ->from($db->quoteName('#__newsfeeds')) ->where($db->quoteName('id') . ' = :value') diff --git a/administrator/components/com_newsfeeds/src/Field/NewsfeedsField.php b/administrator/components/com_newsfeeds/src/Field/NewsfeedsField.php index a4975ea91a467..d41a20203c93b 100644 --- a/administrator/components/com_newsfeeds/src/Field/NewsfeedsField.php +++ b/administrator/components/com_newsfeeds/src/Field/NewsfeedsField.php @@ -44,7 +44,7 @@ protected function getOptions() $options = []; $db = $this->getDatabase(); - $query = $db->getQuery(true) + $query = $db->createQuery() ->select( [ $db->quoteName('id', 'value'), diff --git a/administrator/components/com_newsfeeds/src/Helper/AssociationsHelper.php b/administrator/components/com_newsfeeds/src/Helper/AssociationsHelper.php index f7cbdebf3aa2c..213e3eb0b4d68 100644 --- a/administrator/components/com_newsfeeds/src/Helper/AssociationsHelper.php +++ b/administrator/components/com_newsfeeds/src/Helper/AssociationsHelper.php @@ -11,8 +11,11 @@ namespace Joomla\Component\Newsfeeds\Administrator\Helper; use Joomla\CMS\Association\AssociationExtensionHelper; +use Joomla\CMS\Factory; use Joomla\CMS\Language\Associations; +use Joomla\CMS\Table\Category; use Joomla\CMS\Table\Table; +use Joomla\Component\Newsfeeds\Administrator\Table\NewsfeedTable; use Joomla\Component\Newsfeeds\Site\Helper\AssociationHelper; // phpcs:disable PSR1.Files.SideEffects @@ -124,11 +127,11 @@ public function getItem($typeName, $id) switch ($typeName) { case 'newsfeed': - $table = Table::getInstance('NewsfeedTable', 'Joomla\\Component\\Newsfeeds\\Administrator\\Table\\'); + $table = new NewsfeedTable(Factory::getDbo()); break; case 'category': - $table = Table::getInstance('Category'); + $table = new Category(Factory::getDbo()); break; } diff --git a/administrator/components/com_newsfeeds/src/Helper/NewsfeedsHelper.php b/administrator/components/com_newsfeeds/src/Helper/NewsfeedsHelper.php index d2733fe1ddc32..febf63625bfa8 100644 --- a/administrator/components/com_newsfeeds/src/Helper/NewsfeedsHelper.php +++ b/administrator/components/com_newsfeeds/src/Helper/NewsfeedsHelper.php @@ -44,7 +44,7 @@ class NewsfeedsHelper extends ContentHelper public static function countItems(&$items) { $db = Factory::getDbo(); - $query = $db->getQuery(true); + $query = $db->createQuery(); $query->select( [ $db->quoteName('published', 'state'), @@ -101,7 +101,7 @@ public static function countItems(&$items) public static function countTagItems(&$items, $extension) { $db = Factory::getDbo(); - $query = $db->getQuery(true); + $query = $db->createQuery(); $parts = explode('.', $extension); $section = null; diff --git a/administrator/components/com_newsfeeds/src/Model/NewsfeedModel.php b/administrator/components/com_newsfeeds/src/Model/NewsfeedModel.php index 90878c7430696..724a326890276 100644 --- a/administrator/components/com_newsfeeds/src/Model/NewsfeedModel.php +++ b/administrator/components/com_newsfeeds/src/Model/NewsfeedModel.php @@ -17,6 +17,7 @@ use Joomla\CMS\Language\Associations; use Joomla\CMS\Language\LanguageHelper; use Joomla\CMS\MVC\Model\AdminModel; +use Joomla\CMS\Versioning\VersionableModelInterface; use Joomla\CMS\Versioning\VersionableModelTrait; use Joomla\Component\Categories\Administrator\Helper\CategoriesHelper; use Joomla\Registry\Registry; @@ -30,7 +31,7 @@ * * @since 1.6 */ -class NewsfeedModel extends AdminModel +class NewsfeedModel extends AdminModel implements VersionableModelInterface { use VersionableModelTrait; @@ -156,8 +157,8 @@ protected function loadFormData() // Prime some default values. if ($this->getState('newsfeed.id') == 0) { - $app = Factory::getApplication(); - $data->set('catid', $app->getInput()->get('catid', $app->getUserState('com_newsfeeds.newsfeeds.filter.category_id'), 'int')); + $app = Factory::getApplication(); + $data->catid = $app->getInput()->get('catid', $app->getUserState('com_newsfeeds.newsfeeds.filter.category_id'), 'int'); } } @@ -310,7 +311,7 @@ protected function prepareTable($table) // Set ordering to the last item if not set if (empty($table->ordering)) { $db = $this->getDatabase(); - $query = $db->getQuery(true) + $query = $db->createQuery() ->select('MAX(' . $db->quoteName('ordering') . ')') ->from($db->quoteName('#__newsfeeds')); $db->setQuery($query); diff --git a/administrator/components/com_newsfeeds/src/Model/NewsfeedsModel.php b/administrator/components/com_newsfeeds/src/Model/NewsfeedsModel.php index 6d806ec3a06fd..e7a62b1f7c61e 100644 --- a/administrator/components/com_newsfeeds/src/Model/NewsfeedsModel.php +++ b/administrator/components/com_newsfeeds/src/Model/NewsfeedsModel.php @@ -147,7 +147,7 @@ protected function getListQuery() { // Create a new query object. $db = $this->getDatabase(); - $query = $db->getQuery(true); + $query = $db->createQuery(); $user = $this->getCurrentUser(); // Select the required fields from the table. @@ -191,7 +191,7 @@ protected function getListQuery() // Join over the associations. if (Associations::isEnabled()) { - $subQuery = $db->getQuery(true) + $subQuery = $db->createQuery() ->select('COUNT(' . $db->quoteName('asso1.id') . ') > 1') ->from($db->quoteName('#__associations', 'asso1')) ->join('INNER', $db->quoteName('#__associations', 'asso2'), $db->quoteName('asso1.key') . ' = ' . $db->quoteName('asso2.key')) @@ -278,7 +278,7 @@ protected function getListQuery() $includeNone = true; } - $subQuery = $db->getQuery(true) + $subQuery = $db->createQuery() ->select('DISTINCT ' . $db->quoteName('content_item_id')) ->from($db->quoteName('#__contentitem_tag_map')) ->where( @@ -295,7 +295,7 @@ protected function getListQuery() ); if ($includeNone) { - $subQuery2 = $db->getQuery(true) + $subQuery2 = $db->createQuery() ->select('DISTINCT ' . $db->quoteName('content_item_id')) ->from($db->quoteName('#__contentitem_tag_map')) ->where($db->quoteName('type_alias') . ' = ' . $db->quote('com_newsfeeds.newsfeed')); @@ -313,7 +313,7 @@ protected function getListQuery() $tag = (int) $tag; if ($tag === 0) { - $subQuery = $db->getQuery(true) + $subQuery = $db->createQuery() ->select('DISTINCT ' . $db->quoteName('content_item_id')) ->from($db->quoteName('#__contentitem_tag_map')) ->where($db->quoteName('type_alias') . ' = ' . $db->quote('com_newsfeeds.newsfeed')); diff --git a/administrator/components/com_newsfeeds/src/Service/HTML/AdministratorService.php b/administrator/components/com_newsfeeds/src/Service/HTML/AdministratorService.php index 1de326795b4f3..97d94dd5d12ce 100644 --- a/administrator/components/com_newsfeeds/src/Service/HTML/AdministratorService.php +++ b/administrator/components/com_newsfeeds/src/Service/HTML/AdministratorService.php @@ -51,7 +51,7 @@ public function association($newsfeedid) // Get the associated newsfeed items $db = Factory::getDbo(); - $query = $db->getQuery(true); + $query = $db->createQuery(); $query ->select( [ diff --git a/administrator/components/com_newsfeeds/src/Table/NewsfeedTable.php b/administrator/components/com_newsfeeds/src/Table/NewsfeedTable.php index 58a4f4c686695..0aa0f05208fea 100644 --- a/administrator/components/com_newsfeeds/src/Table/NewsfeedTable.php +++ b/administrator/components/com_newsfeeds/src/Table/NewsfeedTable.php @@ -177,7 +177,7 @@ public function store($updateNulls = true) } // Verify that the alias is unique - $table = Table::getInstance('NewsfeedTable', __NAMESPACE__ . '\\', ['dbo' => $this->getDatabase()]); + $table = new self($this->getDatabase()); if ($table->load(['alias' => $this->alias, 'catid' => $this->catid]) && ($table->id != $this->id || $this->id == 0)) { // Is the existing newsfeed trashed? diff --git a/administrator/components/com_newsfeeds/src/View/Newsfeed/HtmlView.php b/administrator/components/com_newsfeeds/src/View/Newsfeed/HtmlView.php index 151f87a3f817a..e8fe4d62651a3 100644 --- a/administrator/components/com_newsfeeds/src/View/Newsfeed/HtmlView.php +++ b/administrator/components/com_newsfeeds/src/View/Newsfeed/HtmlView.php @@ -93,7 +93,9 @@ public function display($tpl = null) } // If we are forcing a language in modal (used for associations). - if ($this->getLayout() === 'modal' && $forcedLanguage = Factory::getApplication()->getInput()->get('forcedLanguage', '', 'cmd')) { + $forcedLanguage = Factory::getApplication()->getInput()->get('forcedLanguage', '', 'cmd'); + + if ($this->getLayout() === 'modal' && $forcedLanguage) { // Set the language field to the forcedLanguage and disable changing it. $this->form->setValue('language', null, $forcedLanguage); $this->form->setFieldAttribute('language', 'readonly', 'true'); @@ -105,6 +107,11 @@ public function display($tpl = null) $this->form->setFieldAttribute('tags', 'language', '*,' . $forcedLanguage); } + // Add form control fields + $this->form + ->addControlField('task', '') + ->addControlField('forcedLanguage', $forcedLanguage); + if ($this->getLayout() !== 'modal') { $this->addToolbar(); } else { diff --git a/administrator/components/com_newsfeeds/src/View/Newsfeeds/HtmlView.php b/administrator/components/com_newsfeeds/src/View/Newsfeeds/HtmlView.php index df52945d15a32..6ea49aed017c0 100644 --- a/administrator/components/com_newsfeeds/src/View/Newsfeeds/HtmlView.php +++ b/administrator/components/com_newsfeeds/src/View/Newsfeeds/HtmlView.php @@ -105,6 +105,11 @@ public function display($tpl = null) $this->setLayout('emptystate'); } + // Add form control fields + $this->filterForm + ->addControlField('task', '') + ->addControlField('boxchecked', '0'); + // We don't need toolbar in the modal layout. if ($this->getLayout() !== 'modal') { $this->addToolbar(); @@ -117,7 +122,9 @@ public function display($tpl = null) } else { // In article associations modal we need to remove language filter if forcing a language. // We also need to change the category filter to show show categories with All or the forced language. - if ($forcedLanguage = Factory::getApplication()->getInput()->get('forcedLanguage', '', 'CMD')) { + $forcedLanguage = Factory::getApplication()->getInput()->get('forcedLanguage', '', 'CMD'); + + if ($forcedLanguage) { // If the language is forced we can't allow to select the language, so transform the language selector filter into a hidden field. $languageXml = new \SimpleXMLElement(''); $this->filterForm->setField($languageXml, 'filter', true); @@ -128,6 +135,8 @@ public function display($tpl = null) // One last changes needed is to change the category filter to just show categories with All language or with the forced language. $this->filterForm->setFieldAttribute('category_id', 'language', '*,' . $forcedLanguage, 'filter'); } + + $this->filterForm->addControlField('forcedLanguage', $forcedLanguage); } parent::display($tpl); diff --git a/administrator/components/com_newsfeeds/tmpl/newsfeed/edit.php b/administrator/components/com_newsfeeds/tmpl/newsfeed/edit.php index 0122427456644..9aa2867fc0810 100644 --- a/administrator/components/com_newsfeeds/tmpl/newsfeed/edit.php +++ b/administrator/components/com_newsfeeds/tmpl/newsfeed/edit.php @@ -116,7 +116,6 @@
- - - + + form->renderControlFields(); ?> diff --git a/administrator/components/com_newsfeeds/tmpl/newsfeeds/default.php b/administrator/components/com_newsfeeds/tmpl/newsfeeds/default.php index 5b1cf424eb896..1d2a205d34067 100644 --- a/administrator/components/com_newsfeeds/tmpl/newsfeeds/default.php +++ b/administrator/components/com_newsfeeds/tmpl/newsfeeds/default.php @@ -186,9 +186,8 @@ - - - + + filterForm->renderControlFields(); ?>
diff --git a/administrator/components/com_newsfeeds/tmpl/newsfeeds/emptystate.php b/administrator/components/com_newsfeeds/tmpl/newsfeeds/emptystate.php index d9df032a63371..f375c6c268fd9 100644 --- a/administrator/components/com_newsfeeds/tmpl/newsfeeds/emptystate.php +++ b/administrator/components/com_newsfeeds/tmpl/newsfeeds/emptystate.php @@ -19,6 +19,8 @@ 'formURL' => 'index.php?option=com_newsfeeds&view=newsfeeds', 'helpURL' => 'https://docs.joomla.org/Special:MyLanguage/Help5.x:News_Feeds', 'icon' => 'icon-rss newsfeeds', + + 'controlFields' => $this->filterForm->renderControlFields(), ]; $user = $this->getCurrentUser(); diff --git a/administrator/components/com_newsfeeds/tmpl/newsfeeds/modal.php b/administrator/components/com_newsfeeds/tmpl/newsfeeds/modal.php index e048cc5bbf434..0f6ee1029dff7 100644 --- a/administrator/components/com_newsfeeds/tmpl/newsfeeds/modal.php +++ b/administrator/components/com_newsfeeds/tmpl/newsfeeds/modal.php @@ -139,10 +139,7 @@ - - - - + filterForm->renderControlFields(); ?>
diff --git a/administrator/components/com_plugins/src/Field/PluginorderingField.php b/administrator/components/com_plugins/src/Field/PluginorderingField.php index 42e8b36257efc..396a3ae2aa2c7 100644 --- a/administrator/components/com_plugins/src/Field/PluginorderingField.php +++ b/administrator/components/com_plugins/src/Field/PluginorderingField.php @@ -42,7 +42,7 @@ protected function getQuery() $folder = $this->form->getValue('folder'); // Build the query for the ordering list. - $query = $db->getQuery(true) + $query = $db->createQuery() ->select( [ $db->quoteName('ordering', 'value'), diff --git a/administrator/components/com_plugins/src/Helper/PluginsHelper.php b/administrator/components/com_plugins/src/Helper/PluginsHelper.php index a32bea364ed84..5f00603036283 100644 --- a/administrator/components/com_plugins/src/Helper/PluginsHelper.php +++ b/administrator/components/com_plugins/src/Helper/PluginsHelper.php @@ -13,7 +13,6 @@ use Joomla\CMS\Factory; use Joomla\CMS\HTML\HTMLHelper; use Joomla\CMS\Installer\Installer; -use Joomla\CMS\Object\CMSObject; use Joomla\Filesystem\Path; // phpcs:disable PSR1.Files.SideEffects @@ -52,7 +51,7 @@ public static function publishedOptions() public static function folderOptions() { $db = Factory::getDbo(); - $query = $db->getQuery(true) + $query = $db->createQuery() ->select('DISTINCT(folder) AS value, folder AS text') ->from('#__extensions') ->where($db->quoteName('type') . ' = ' . $db->quote('plugin')) @@ -77,7 +76,7 @@ public static function folderOptions() public static function elementOptions() { $db = Factory::getDbo(); - $query = $db->getQuery(true) + $query = $db->createQuery() ->select('DISTINCT(element) AS value, element AS text') ->from('#__extensions') ->where($db->quoteName('type') . ' = ' . $db->quote('plugin')) @@ -99,11 +98,11 @@ public static function elementOptions() * @param string $templateBaseDir Base path to the template directory. * @param string $templateDir Template directory. * - * @return CMSObject|bool + * @return \stdClass|bool */ public function parseXMLTemplateFile($templateBaseDir, $templateDir) { - $data = new CMSObject(); + $data = new \stdClass(); // Check of the xml file exists. $filePath = Path::clean($templateBaseDir . '/templates/' . $templateDir . '/templateDetails.xml'); diff --git a/administrator/components/com_plugins/src/Model/PluginModel.php b/administrator/components/com_plugins/src/Model/PluginModel.php index c12192d5dbd91..2aae139e0dcfd 100644 --- a/administrator/components/com_plugins/src/Model/PluginModel.php +++ b/administrator/components/com_plugins/src/Model/PluginModel.php @@ -15,7 +15,6 @@ use Joomla\CMS\Language\Text; use Joomla\CMS\MVC\Factory\MVCFactoryInterface; use Joomla\CMS\MVC\Model\AdminModel; -use Joomla\CMS\Object\CMSObject; use Joomla\CMS\Router\Route; use Joomla\CMS\Table\Table; use Joomla\Filesystem\Path; @@ -177,9 +176,9 @@ public function getItem($pk = null) return false; } - // Convert to the \Joomla\CMS\Object\CMSObject before adding other data. + // Convert to an object before adding other data. $properties = $table->getProperties(1); - $this->_cache[$cacheId] = ArrayHelper::toObject($properties, CMSObject::class); + $this->_cache[$cacheId] = ArrayHelper::toObject($properties); // Convert the params field to an array. $registry = new Registry($table->params); @@ -254,7 +253,7 @@ protected function preprocessForm(Form $form, $data, $group = 'content') // Load the core and/or local language sys file(s) for the ordering field. $db = $this->getDatabase(); - $query = $db->getQuery(true) + $query = $db->createQuery() ->select($db->quoteName('element')) ->from($db->quoteName('#__extensions')) ->where($db->quoteName('type') . ' = ' . $db->quote('plugin')) @@ -361,15 +360,13 @@ public function getHelp() /** * Custom clean cache method, plugins are cached in 2 places for different clients. * - * @param string $group Cache group name. - * @param integer $clientId No longer used, will be removed without replacement - * @deprecated 4.3 will be removed in 6.0 + * @param string $group Cache group name. * * @return void * * @since 1.6 */ - protected function cleanCache($group = null, $clientId = 0) + protected function cleanCache($group = null) { parent::cleanCache('com_plugins'); } diff --git a/administrator/components/com_plugins/src/Model/PluginsModel.php b/administrator/components/com_plugins/src/Model/PluginsModel.php index 50d193fd1cb5c..a20c718ab6184 100644 --- a/administrator/components/com_plugins/src/Model/PluginsModel.php +++ b/administrator/components/com_plugins/src/Model/PluginsModel.php @@ -203,7 +203,7 @@ protected function getListQuery() { // Create a new query object. $db = $this->getDatabase(); - $query = $db->getQuery(true); + $query = $db->createQuery(); // Select the required fields from the table. $query->select( diff --git a/administrator/components/com_plugins/src/View/Plugin/HtmlView.php b/administrator/components/com_plugins/src/View/Plugin/HtmlView.php index 0eeb114fd2816..da021a2a16d82 100644 --- a/administrator/components/com_plugins/src/View/Plugin/HtmlView.php +++ b/administrator/components/com_plugins/src/View/Plugin/HtmlView.php @@ -81,6 +81,10 @@ public function display($tpl = null) return; } + // Add form control fields + $this->form + ->addControlField('task', ''); + if ($this->getLayout() !== 'modal') { $this->addToolbar(); } else { diff --git a/administrator/components/com_plugins/src/View/Plugins/HtmlView.php b/administrator/components/com_plugins/src/View/Plugins/HtmlView.php index e9713aff4a18f..854440cf47e85 100644 --- a/administrator/components/com_plugins/src/View/Plugins/HtmlView.php +++ b/administrator/components/com_plugins/src/View/Plugins/HtmlView.php @@ -83,6 +83,11 @@ public function display($tpl = null) $this->filterForm = $model->getFilterForm(); $this->activeFilters = $model->getActiveFilters(); + // Add form control fields + $this->filterForm + ->addControlField('task', '') + ->addControlField('boxchecked', '0'); + $this->addToolbar(); parent::display($tpl); diff --git a/administrator/components/com_plugins/tmpl/plugin/edit.php b/administrator/components/com_plugins/tmpl/plugin/edit.php index 1939185cd5f6d..3660b9321376f 100644 --- a/administrator/components/com_plugins/tmpl/plugin/edit.php +++ b/administrator/components/com_plugins/tmpl/plugin/edit.php @@ -134,6 +134,5 @@
- - + form->renderControlFields(); ?> diff --git a/administrator/components/com_plugins/tmpl/plugins/default.php b/administrator/components/com_plugins/tmpl/plugins/default.php index f56129c5dacd5..d279a8e30af94 100644 --- a/administrator/components/com_plugins/tmpl/plugins/default.php +++ b/administrator/components/com_plugins/tmpl/plugins/default.php @@ -146,8 +146,6 @@ - - - + filterForm->renderControlFields(); ?>
diff --git a/administrator/components/com_postinstall/src/Model/MessagesModel.php b/administrator/components/com_postinstall/src/Model/MessagesModel.php index 0ae8648b5fbf9..a9ee34202fcd2 100644 --- a/administrator/components/com_postinstall/src/Model/MessagesModel.php +++ b/administrator/components/com_postinstall/src/Model/MessagesModel.php @@ -68,7 +68,7 @@ public function getItem($id) $db = $this->getDatabase(); $id = (int) $id; - $query = $db->getQuery(true); + $query = $db->createQuery(); $query->select( [ $db->quoteName('postinstall_message_id'), @@ -110,7 +110,7 @@ public function unpublishMessage($id) $db = $this->getDatabase(); $id = (int) $id; - $query = $db->getQuery(true); + $query = $db->createQuery(); $query ->update($db->quoteName('#__postinstall_messages')) ->set($db->quoteName('enabled') . ' = 0') @@ -135,7 +135,7 @@ public function archiveMessage($id) $db = $this->getDatabase(); $id = (int) $id; - $query = $db->getQuery(true); + $query = $db->createQuery(); $query ->update($db->quoteName('#__postinstall_messages')) ->set($db->quoteName('enabled') . ' = 2') @@ -160,7 +160,7 @@ public function republishMessage($id) $db = $this->getDatabase(); $id = (int) $id; - $query = $db->getQuery(true); + $query = $db->createQuery(); $query ->update($db->quoteName('#__postinstall_messages')) ->set($db->quoteName('enabled') . ' = 1') @@ -187,7 +187,7 @@ public function getItems() $cacheId = 'postinstall_messages.' . $eid; $db = $this->getDatabase(); - $query = $db->getQuery(true); + $query = $db->createQuery(); $query->select( [ $db->quoteName('postinstall_message_id'), @@ -244,7 +244,7 @@ public function getItems() public function getItemsCount() { $db = $this->getDatabase(); - $query = $db->getQuery(true); + $query = $db->createQuery(); $query->select( [ $db->quoteName('language_extension'), @@ -296,7 +296,7 @@ public function getExtensionName($eid) $db = $this->getDatabase(); $eid = (int) $eid; - $query = $db->getQuery(true) + $query = $db->createQuery() ->select( [ $db->quoteName('name'), @@ -345,7 +345,7 @@ public function resetMessages($eid) $db = $this->getDatabase(); $eid = (int) $eid; - $query = $db->getQuery(true) + $query = $db->createQuery() ->update($db->quoteName('#__postinstall_messages')) ->set($db->quoteName('enabled') . ' = 1') ->where($db->quoteName('extension_id') . ' = :eid') @@ -372,7 +372,7 @@ public function hideMessages($eid) $db = $this->getDatabase(); $eid = (int) $eid; - $query = $db->getQuery(true) + $query = $db->createQuery() ->update($db->quoteName('#__postinstall_messages')) ->set($db->quoteName('enabled') . ' = 0') ->where($db->quoteName('extension_id') . ' = :eid') @@ -453,7 +453,7 @@ public function getComponentOptions() { $db = $this->getDatabase(); - $query = $db->getQuery(true) + $query = $db->createQuery() ->select($db->quoteName('extension_id')) ->from($db->quoteName('#__postinstall_messages')) ->group($db->quoteName('extension_id')); @@ -668,7 +668,7 @@ public function addPostInstallationMessage(array $options) $extensionId = (int) $options['extension_id']; $db = $this->getDatabase(); - $query = $db->getQuery(true) + $query = $db->createQuery() ->select('*') ->from($db->quoteName($tableName)) ->where( @@ -701,7 +701,7 @@ public function addPostInstallationMessage(array $options) } // Otherwise it's not the same row. Remove the old row before insert a new one. - $query = $db->getQuery(true) + $query = $db->createQuery() ->delete($db->quoteName($tableName)) ->where( [ diff --git a/administrator/components/com_privacy/src/Helper/PrivacyHelper.php b/administrator/components/com_privacy/src/Helper/PrivacyHelper.php index 325cfc48b3877..1d4b8250ea485 100644 --- a/administrator/components/com_privacy/src/Helper/PrivacyHelper.php +++ b/administrator/components/com_privacy/src/Helper/PrivacyHelper.php @@ -73,7 +73,7 @@ public static function renderDataAsXml(array $exportData) public static function getPrivacyConsentPluginId() { $db = Factory::getDbo(); - $query = $db->getQuery(true) + $query = $db->createQuery() ->select($db->quoteName('extension_id')) ->from($db->quoteName('#__extensions')) ->where($db->quoteName('folder') . ' = ' . $db->quote('system')) diff --git a/administrator/components/com_privacy/src/Model/ConsentsModel.php b/administrator/components/com_privacy/src/Model/ConsentsModel.php index ccfcbb0eec388..76617f0a97ad2 100644 --- a/administrator/components/com_privacy/src/Model/ConsentsModel.php +++ b/administrator/components/com_privacy/src/Model/ConsentsModel.php @@ -65,7 +65,7 @@ protected function getListQuery() { // Create a new query object. $db = $this->getDatabase(); - $query = $db->getQuery(true); + $query = $db->createQuery(); // Select the required fields from the table. $query->select($this->getState('list.select', 'a.*')); @@ -182,7 +182,7 @@ public function invalidate($pks) try { $db = $this->getDatabase(); - $query = $db->getQuery(true) + $query = $db->createQuery() ->update($db->quoteName('#__privacy_consents')) ->set($db->quoteName('state') . ' = -1') ->whereIn($db->quoteName('id'), $pks) @@ -209,7 +209,7 @@ public function invalidateAll($subject) { try { $db = $this->getDatabase(); - $query = $db->getQuery(true) + $query = $db->createQuery() ->update($db->quoteName('#__privacy_consents')) ->set($db->quoteName('state') . ' = -1') ->where($db->quoteName('subject') . ' = :subject') diff --git a/administrator/components/com_privacy/src/Model/ExportModel.php b/administrator/components/com_privacy/src/Model/ExportModel.php index 8ae502d1d713b..4b52545761e66 100644 --- a/administrator/components/com_privacy/src/Model/ExportModel.php +++ b/administrator/components/com_privacy/src/Model/ExportModel.php @@ -85,7 +85,7 @@ public function collectDataForExportRequest($id = null) $db = $this->getDatabase(); $userId = (int) $db->setQuery( - $db->getQuery(true) + $db->createQuery() ->select($db->quoteName('id')) ->from($db->quoteName('#__users')) ->where('LOWER(' . $db->quoteName('email') . ') = LOWER(:email)') @@ -179,7 +179,7 @@ public function emailDataExport($id = null) $db = $this->getDatabase(); $userId = (int) $db->setQuery( - $db->getQuery(true) + $db->createQuery() ->select($db->quoteName('id')) ->from($db->quoteName('#__users')) ->where('LOWER(' . $db->quoteName('email') . ') = LOWER(:email)') diff --git a/administrator/components/com_privacy/src/Model/RemoveModel.php b/administrator/components/com_privacy/src/Model/RemoveModel.php index 864e79a840455..741840031510f 100644 --- a/administrator/components/com_privacy/src/Model/RemoveModel.php +++ b/administrator/components/com_privacy/src/Model/RemoveModel.php @@ -81,7 +81,7 @@ public function removeDataForRequest($id = null) $db = $this->getDatabase(); $userId = (int) $db->setQuery( - $db->getQuery(true) + $db->createQuery() ->select($db->quoteName('id')) ->from($db->quoteName('#__users')) ->where('LOWER(' . $db->quoteName('email') . ') = LOWER(:email)') diff --git a/administrator/components/com_privacy/src/Model/RequestModel.php b/administrator/components/com_privacy/src/Model/RequestModel.php index 47b531c848b6e..fdd6886309711 100644 --- a/administrator/components/com_privacy/src/Model/RequestModel.php +++ b/administrator/components/com_privacy/src/Model/RequestModel.php @@ -264,7 +264,7 @@ public function notifyUserAdminCreatedRequest($id) $db = $this->getDatabase(); $userId = (int) $db->setQuery( - $db->getQuery(true) + $db->createQuery() ->select($db->quoteName('id')) ->from($db->quoteName('#__users')) ->where('LOWER(' . $db->quoteName('email') . ') = LOWER(:email)') @@ -411,7 +411,7 @@ public function validate($form, $data, $group = null) // Check for an active request for this email address $db = $this->getDatabase(); - $query = $db->getQuery(true) + $query = $db->createQuery() ->select('COUNT(id)') ->from($db->quoteName('#__privacy_requests')) ->where($db->quoteName('email') . ' = :email') diff --git a/administrator/components/com_privacy/src/Model/RequestsModel.php b/administrator/components/com_privacy/src/Model/RequestsModel.php index f28ac566aba2e..4b2724ffb377f 100644 --- a/administrator/components/com_privacy/src/Model/RequestsModel.php +++ b/administrator/components/com_privacy/src/Model/RequestsModel.php @@ -62,7 +62,7 @@ protected function getListQuery() { // Create a new query object. $db = $this->getDatabase(); - $query = $db->getQuery(true); + $query = $db->createQuery(); // Select the required fields from the table. $query->select($this->getState('list.select', 'a.*')); @@ -171,7 +171,7 @@ public function getNumberUrgentRequests() $period = '-' . $notify; $db = $this->getDatabase(); - $query = $db->getQuery(true) + $query = $db->createQuery() ->select('COUNT(*)'); $query->from($db->quoteName('#__privacy_requests')); $query->where($db->quoteName('status') . ' = 1 '); diff --git a/administrator/components/com_privacy/src/View/Consents/HtmlView.php b/administrator/components/com_privacy/src/View/Consents/HtmlView.php index 95bfd32591708..0c9403f7ef7fe 100644 --- a/administrator/components/com_privacy/src/View/Consents/HtmlView.php +++ b/administrator/components/com_privacy/src/View/Consents/HtmlView.php @@ -105,6 +105,11 @@ public function display($tpl = null) $this->setLayout('emptystate'); } + // Add form control fields + $this->filterForm + ->addControlField('task', '') + ->addControlField('boxchecked', '0'); + $this->addToolbar(); parent::display($tpl); diff --git a/administrator/components/com_privacy/src/View/Request/HtmlView.php b/administrator/components/com_privacy/src/View/Request/HtmlView.php index 968e806e8a2c0..0a5e4cf82a342 100644 --- a/administrator/components/com_privacy/src/View/Request/HtmlView.php +++ b/administrator/components/com_privacy/src/View/Request/HtmlView.php @@ -98,6 +98,10 @@ public function display($tpl = null) // Variables only required for the edit layout if ($this->getLayout() === 'edit') { $this->form = $model->getForm(); + + // Add form control fields + $this->form + ->addControlField('task', ''); } $this->addToolbar(); diff --git a/administrator/components/com_privacy/src/View/Requests/HtmlView.php b/administrator/components/com_privacy/src/View/Requests/HtmlView.php index 14e52693dc7b5..453b232a6c83e 100644 --- a/administrator/components/com_privacy/src/View/Requests/HtmlView.php +++ b/administrator/components/com_privacy/src/View/Requests/HtmlView.php @@ -117,6 +117,11 @@ public function display($tpl = null) $this->setLayout('emptystate'); } + // Add form control fields + $this->filterForm + ->addControlField('task', '') + ->addControlField('boxchecked', '0'); + $this->addToolbar(); parent::display($tpl); diff --git a/administrator/components/com_privacy/tmpl/consents/default.php b/administrator/components/com_privacy/tmpl/consents/default.php index 73d9e7fd90c28..0f26a4228b6a8 100644 --- a/administrator/components/com_privacy/tmpl/consents/default.php +++ b/administrator/components/com_privacy/tmpl/consents/default.php @@ -123,8 +123,6 @@ - - - + filterForm->renderControlFields(); ?>
diff --git a/administrator/components/com_privacy/tmpl/consents/emptystate.php b/administrator/components/com_privacy/tmpl/consents/emptystate.php index c9f60e961f396..370fbe14c5b94 100644 --- a/administrator/components/com_privacy/tmpl/consents/emptystate.php +++ b/administrator/components/com_privacy/tmpl/consents/emptystate.php @@ -17,6 +17,8 @@ 'formURL' => 'index.php?option=com_privacy&view=consents', 'helpURL' => 'https://docs.joomla.org/Special:MyLanguage/Help5.x:Privacy:_Consents', 'icon' => 'icon-lock', + + 'controlFields' => $this->filterForm->renderControlFields(), ]; echo LayoutHelper::render('joomla.content.emptystate', $displayData); diff --git a/administrator/components/com_privacy/tmpl/request/edit.php b/administrator/components/com_privacy/tmpl/request/edit.php index c29e4134b394e..15aa480caa16f 100644 --- a/administrator/components/com_privacy/tmpl/request/edit.php +++ b/administrator/components/com_privacy/tmpl/request/edit.php @@ -10,7 +10,6 @@ defined('_JEXEC') or die; -use Joomla\CMS\HTML\HTMLHelper; use Joomla\CMS\Language\Text; use Joomla\CMS\Router\Route; @@ -35,7 +34,6 @@ - - + form->renderControlFields(); ?> diff --git a/administrator/components/com_privacy/tmpl/requests/default.php b/administrator/components/com_privacy/tmpl/requests/default.php index 954c9ec399d1b..960464ea11fee 100644 --- a/administrator/components/com_privacy/tmpl/requests/default.php +++ b/administrator/components/com_privacy/tmpl/requests/default.php @@ -123,8 +123,6 @@ - - - + filterForm->renderControlFields(); ?> diff --git a/administrator/components/com_privacy/tmpl/requests/emptystate.php b/administrator/components/com_privacy/tmpl/requests/emptystate.php index 804dd09f628ef..65216d3857b48 100644 --- a/administrator/components/com_privacy/tmpl/requests/emptystate.php +++ b/administrator/components/com_privacy/tmpl/requests/emptystate.php @@ -18,6 +18,8 @@ 'formURL' => 'index.php?option=com_privacy&view=requests', 'helpURL' => 'https://docs.joomla.org/Special:MyLanguage/Help5.x:Privacy:_Information_Requests', 'icon' => 'icon-lock', + + 'controlFields' => $this->filterForm->renderControlFields(), ]; if (Factory::getApplication()->get('mailonline', 1)) { diff --git a/administrator/components/com_redirect/src/Helper/RedirectHelper.php b/administrator/components/com_redirect/src/Helper/RedirectHelper.php index 8cf148fd8ab85..0adc03fec439d 100644 --- a/administrator/components/com_redirect/src/Helper/RedirectHelper.php +++ b/administrator/components/com_redirect/src/Helper/RedirectHelper.php @@ -63,7 +63,7 @@ public static function publishedOptions() public static function getRedirectPluginId() { $db = Factory::getDbo(); - $query = $db->getQuery(true) + $query = $db->createQuery() ->select($db->quoteName('extension_id')) ->from($db->quoteName('#__extensions')) ->where($db->quoteName('folder') . ' = ' . $db->quote('system')) diff --git a/administrator/components/com_redirect/src/Model/LinkModel.php b/administrator/components/com_redirect/src/Model/LinkModel.php index 69af0758524a1..de93753d1f98c 100644 --- a/administrator/components/com_redirect/src/Model/LinkModel.php +++ b/administrator/components/com_redirect/src/Model/LinkModel.php @@ -145,7 +145,7 @@ public function activate(&$pks, $url, $comment = null) if (!empty($pks)) { // Update the link rows. - $query = $db->getQuery(true) + $query = $db->createQuery() ->update($db->quoteName('#__redirect_links')) ->set($db->quoteName('new_url') . ' = :url') ->set($db->quoteName('published') . ' = 1') @@ -199,7 +199,7 @@ public function duplicateUrls(&$pks, $url, $comment = null) $date = Factory::getDate()->toSql(); // Update the link rows. - $query = $db->getQuery(true) + $query = $db->createQuery() ->update($db->quoteName('#__redirect_links')) ->set($db->quoteName('new_url') . ' = :url') ->set($db->quoteName('modified_date') . ' = :date') diff --git a/administrator/components/com_redirect/src/Model/LinksModel.php b/administrator/components/com_redirect/src/Model/LinksModel.php index 8fde16f511534..4f7eef13414b5 100644 --- a/administrator/components/com_redirect/src/Model/LinksModel.php +++ b/administrator/components/com_redirect/src/Model/LinksModel.php @@ -65,7 +65,7 @@ public function purge() { $db = $this->getDatabase(); - $query = $db->getQuery(true); + $query = $db->createQuery(); $query->delete('#__redirect_links')->where($db->quoteName('published') . '= 0'); @@ -136,7 +136,7 @@ protected function getListQuery() { // Create a new query object. $db = $this->getDatabase(); - $query = $db->getQuery(true); + $query = $db->createQuery(); // Select the required fields from the table. $query->select( @@ -204,7 +204,7 @@ protected function getListQuery() public function batchProcess($batchUrls) { $db = $this->getDatabase(); - $query = $db->getQuery(true); + $query = $db->createQuery(); $params = ComponentHelper::getParams('com_redirect'); $state = (int) $params->get('defaultImportState', 0); diff --git a/administrator/components/com_redirect/src/Table/LinkTable.php b/administrator/components/com_redirect/src/Table/LinkTable.php index 73f4172137d99..b75bb302fb0e2 100644 --- a/administrator/components/com_redirect/src/Table/LinkTable.php +++ b/administrator/components/com_redirect/src/Table/LinkTable.php @@ -99,7 +99,7 @@ public function check() $db = $this->getDatabase(); // Check for existing name - $query = $db->getQuery(true) + $query = $db->createQuery() ->select($db->quoteName('id')) ->select($db->quoteName('old_url')) ->from($db->quoteName('#__redirect_links')) diff --git a/administrator/components/com_redirect/src/View/Link/HtmlView.php b/administrator/components/com_redirect/src/View/Link/HtmlView.php index b976c02115c3c..4c516b42d78dd 100644 --- a/administrator/components/com_redirect/src/View/Link/HtmlView.php +++ b/administrator/components/com_redirect/src/View/Link/HtmlView.php @@ -74,6 +74,10 @@ public function display($tpl = null) throw new GenericDataException(implode("\n", $errors), 500); } + // Add form control fields + $this->form + ->addControlField('task', ''); + $this->addToolbar(); parent::display($tpl); } diff --git a/administrator/components/com_redirect/src/View/Links/HtmlView.php b/administrator/components/com_redirect/src/View/Links/HtmlView.php index c7e60655172b7..1f59f0a287e56 100644 --- a/administrator/components/com_redirect/src/View/Links/HtmlView.php +++ b/administrator/components/com_redirect/src/View/Links/HtmlView.php @@ -139,6 +139,11 @@ public function display($tpl = null) $this->redirectPluginId = RedirectHelper::getRedirectPluginId(); } + // Add form control fields + $this->filterForm + ->addControlField('task', '') + ->addControlField('boxchecked', '0'); + $this->addToolbar(); parent::display($tpl); diff --git a/administrator/components/com_redirect/tmpl/link/edit.php b/administrator/components/com_redirect/tmpl/link/edit.php index 6cc9b7d0cb9f0..f746eb9cf4234 100644 --- a/administrator/components/com_redirect/tmpl/link/edit.php +++ b/administrator/components/com_redirect/tmpl/link/edit.php @@ -43,7 +43,6 @@ - - + form->renderControlFields(); ?> diff --git a/administrator/components/com_redirect/tmpl/links/default.php b/administrator/components/com_redirect/tmpl/links/default.php index e3264a20df01d..7c85bf5754872 100644 --- a/administrator/components/com_redirect/tmpl/links/default.php +++ b/administrator/components/com_redirect/tmpl/links/default.php @@ -177,8 +177,6 @@ - - - + filterForm->renderControlFields(); ?> diff --git a/administrator/components/com_redirect/tmpl/links/emptystate.php b/administrator/components/com_redirect/tmpl/links/emptystate.php index c5b709f637558..12fcaed2dd1d1 100644 --- a/administrator/components/com_redirect/tmpl/links/emptystate.php +++ b/administrator/components/com_redirect/tmpl/links/emptystate.php @@ -25,6 +25,8 @@ 'formURL' => 'index.php?option=com_redirect&view=links', 'helpURL' => 'https://docs.joomla.org/Special:MyLanguage/Help5.x:Redirects:_Links', 'icon' => 'icon-map-signs redirect', + + 'controlFields' => $this->filterForm->renderControlFields(), ]; $app = Factory::getApplication(); diff --git a/administrator/components/com_scheduler/src/Model/LogsModel.php b/administrator/components/com_scheduler/src/Model/LogsModel.php index 3823e6da9a423..3da2e19fab4ad 100644 --- a/administrator/components/com_scheduler/src/Model/LogsModel.php +++ b/administrator/components/com_scheduler/src/Model/LogsModel.php @@ -130,7 +130,7 @@ protected function getListQuery() { // Create a new query object. $db = $this->getDatabase(); - $query = $db->getQuery(true); + $query = $db->createQuery(); // Select the required fields from the table. $query->select( diff --git a/administrator/components/com_scheduler/src/Model/TaskModel.php b/administrator/components/com_scheduler/src/Model/TaskModel.php index 4595910bf9fce..e8c6a2205c1b2 100644 --- a/administrator/components/com_scheduler/src/Model/TaskModel.php +++ b/administrator/components/com_scheduler/src/Model/TaskModel.php @@ -20,7 +20,6 @@ use Joomla\CMS\Log\Log; use Joomla\CMS\MVC\Factory\MVCFactoryInterface; use Joomla\CMS\MVC\Model\AdminModel; -use Joomla\CMS\Object\CMSObject; use Joomla\CMS\Plugin\PluginHelper; use Joomla\CMS\Table\Table; use Joomla\Component\Scheduler\Administrator\Helper\ExecRuleHelper; @@ -274,7 +273,6 @@ protected function loadFormData() // If the data from UserState is empty, we fetch it with getItem() if (empty($data)) { - /** @var CMSObject $data */ $data = $this->getItem(); // @todo : further data processing goes here @@ -323,14 +321,14 @@ public function getItem($pk = null) } // Parent call leaves `execution_rules` and `cron_rules` JSON encoded - $item->set('execution_rules', json_decode($item->get('execution_rules', ''))); - $item->set('cron_rules', json_decode($item->get('cron_rules', ''))); + $item->execution_rules = json_decode($item->execution_rules ?? ''); + $item->cron_rules = json_decode($item->cron_rules ?? ''); $taskOption = SchedulerHelper::getTaskOptions()->findOption( ($item->id ?? 0) ? ($item->type ?? 0) : $this->getState('task.type') ); - $item->set('taskOption', $taskOption); + $item->taskOption = $taskOption; return $item; } @@ -420,7 +418,7 @@ public function getTask(array $options = []): ?\stdClass */ private function hasRunningTasks($db): bool { - $lockCountQuery = $db->getQuery(true) + $lockCountQuery = $db->createQuery() ->select('COUNT(id)') ->from($db->quoteName(self::TASK_TABLE)) ->where($db->quoteName('locked') . ' IS NOT NULL') @@ -450,7 +448,7 @@ private function hasRunningTasks($db): bool */ private function buildLockQuery($db, $now, $options) { - $lockQuery = $db->getQuery(true) + $lockQuery = $db->createQuery() ->update($db->quoteName(self::TASK_TABLE)) ->set($db->quoteName('locked') . ' = :now1') ->bind(':now1', $now); @@ -495,7 +493,7 @@ static function (TaskOption $taskOption): string { */ private function getNextTaskId($db, $now, $options) { - $idQuery = $db->getQuery(true) + $idQuery = $db->createQuery() ->from($db->quoteName(self::TASK_TABLE)) ->select($db->quoteName('id')); @@ -543,7 +541,7 @@ static function (TaskOption $taskOption): string { */ private function fetchTask($db, $now): ?\stdClass { - $getQuery = $db->getQuery(true) + $getQuery = $db->createQuery() ->select('*') ->from($db->quoteName(self::TASK_TABLE)) ->where($db->quoteName('locked') . ' = :now') @@ -613,7 +611,7 @@ public function save($data): bool $basisDayOfMonth = $data['execution_rules']['exec-day']; [$basisHour, $basisMinute] = explode(':', $data['execution_rules']['exec-time']); - $data['last_execution'] = Factory::getDate('now', 'GMT')->format('Y-m') + $data['last_execution'] = Factory::getDate('now', 'UTC')->format('Y-m') . "-$basisDayOfMonth $basisHour:$basisMinute:00"; } else { $data['last_execution'] = $this->getItem($id)->last_execution; diff --git a/administrator/components/com_scheduler/src/Model/TasksModel.php b/administrator/components/com_scheduler/src/Model/TasksModel.php index d1c2f663935e3..996f8e2a9a92b 100644 --- a/administrator/components/com_scheduler/src/Model/TasksModel.php +++ b/administrator/components/com_scheduler/src/Model/TasksModel.php @@ -16,7 +16,6 @@ use Joomla\CMS\Language\Text; use Joomla\CMS\MVC\Factory\MVCFactoryInterface; use Joomla\CMS\MVC\Model\ListModel; -use Joomla\CMS\Object\CMSObject; use Joomla\Component\Scheduler\Administrator\Helper\SchedulerHelper; use Joomla\Component\Scheduler\Administrator\Task\TaskOption; use Joomla\Database\ParameterType; @@ -113,7 +112,7 @@ protected function getListQuery(): QueryInterface { // Create a new query object. $db = $this->getDatabase(); - $query = $db->getQuery(true); + $query = $db->createQuery(); /** * Select the required fields from the table. @@ -254,7 +253,7 @@ static function (TaskOption $taskOption): string { $due = $this->getState('filter.due'); if (is_numeric($due) && $due != 0) { - $now = Factory::getDate('now', 'GMT')->toSql(); + $now = Factory::getDate('now', 'UTC')->toSql(); $operator = $due == 1 ? ' <= ' : ' > '; $filterCount++; $query->where($db->quoteName('a.next_execution') . $operator . ':now') @@ -271,7 +270,7 @@ static function (TaskOption $taskOption): string { $locked = $this->getState('filter.locked'); if (is_numeric($locked) && $locked != 0) { - $now = Factory::getDate('now', 'GMT'); + $now = Factory::getDate('now', 'UTC'); $timeout = ComponentHelper::getParams('com_scheduler')->get('timeout', 300); $timeout = new \DateInterval(\sprintf('PT%dS', $timeout)); $timeoutThreshold = (clone $now)->sub($timeout)->toSql(); @@ -385,25 +384,7 @@ protected function _getList($query, $limitstart = 0, $limit = 0): array // Set limit parameters and get object list $query->setLimit($limit, $limitstart); $this->getDatabase()->setQuery($query); - - // Return optionally an extended class. - // @todo: Use something other than CMSObject.. - if ($this->getState('list.customClass')) { - $responseList = array_map( - static function (array $arr) { - $o = new CMSObject(); - - foreach ($arr as $k => $v) { - $o->{$k} = $v; - } - - return $o; - }, - $this->getDatabase()->loadAssocList() ?: [] - ); - } else { - $responseList = $this->getDatabase()->loadObjectList(); - } + $responseList = $this->getDatabase()->loadObjectList(); // Attach TaskOptions objects and a safe type title $this->attachTaskOptions($responseList); @@ -503,7 +484,7 @@ public function hasDueTasks(Date $time): bool $db = $this->getDatabase(); $now = $time->toSql(); - $query = $db->getQuery(true) + $query = $db->createQuery() // Count due tasks ->select('SUM(CASE WHEN ' . $db->quoteName('a.next_execution') . ' <= :now THEN 1 ELSE 0 END) AS due_count') // Count locked tasks diff --git a/administrator/components/com_scheduler/src/Table/TaskTable.php b/administrator/components/com_scheduler/src/Table/TaskTable.php index 19e34778e81e9..a710d8ab487d3 100644 --- a/administrator/components/com_scheduler/src/Table/TaskTable.php +++ b/administrator/components/com_scheduler/src/Table/TaskTable.php @@ -289,7 +289,7 @@ public function unlock(array $pks = [], ?int $userId = null): bool foreach ($pks as $pk) { // Update the publishing state for rows with the given primary keys. - $query = $db->getQuery(true) + $query = $db->createQuery() ->update($this->_tbl) ->set($db->quoteName($lockedField) . ' = NULL'); diff --git a/administrator/components/com_scheduler/src/Task/Task.php b/administrator/components/com_scheduler/src/Task/Task.php index 7144be82153c2..63cec1b318140 100644 --- a/administrator/components/com_scheduler/src/Task/Task.php +++ b/administrator/components/com_scheduler/src/Task/Task.php @@ -305,9 +305,9 @@ public function getContent(): array public function acquireLock(): bool { $db = $this->db; - $query = $db->getQuery(true); + $query = $db->createQuery(); $id = $this->get('id'); - $now = Factory::getDate('now', 'GMT'); + $now = Factory::getDate('now', 'UTC'); $timeout = ComponentHelper::getParams('com_scheduler')->get('timeout', 300); $timeout = new \DateInterval(\sprintf('PT%dS', $timeout)); @@ -361,7 +361,7 @@ public function acquireLock(): bool public function releaseLock(bool $update = true): bool { $db = $this->db; - $query = $db->getQuery(true); + $query = $db->createQuery(); $id = $this->get('id'); $query->update($db->quoteName('#__scheduler_tasks', 't')) @@ -433,7 +433,7 @@ public function log(string $message, string $priority = 'info'): void public function skipExecution(): void { $db = $this->db; - $query = $db->getQuery(true); + $query = $db->createQuery(); $id = $this->get('id'); $nextExec = (new ExecRuleHelper($this->taskRegistry->toObject()))->nextExec(true, true); diff --git a/administrator/components/com_scheduler/src/View/Logs/HtmlView.php b/administrator/components/com_scheduler/src/View/Logs/HtmlView.php index 5b3a0160ab208..d908e0bcdeb66 100644 --- a/administrator/components/com_scheduler/src/View/Logs/HtmlView.php +++ b/administrator/components/com_scheduler/src/View/Logs/HtmlView.php @@ -93,6 +93,11 @@ public function display($tpl = null): void $this->filterForm = $model->getFilterForm(); $this->activeFilters = $model->getActiveFilters(); + // Add form control fields + $this->filterForm + ->addControlField('task', '') + ->addControlField('boxchecked', '0'); + $this->addToolbar(); parent::display($tpl); } diff --git a/administrator/components/com_scheduler/src/View/Task/HtmlView.php b/administrator/components/com_scheduler/src/View/Task/HtmlView.php index f7fbeff76443a..efe4bf086d82e 100644 --- a/administrator/components/com_scheduler/src/View/Task/HtmlView.php +++ b/administrator/components/com_scheduler/src/View/Task/HtmlView.php @@ -118,6 +118,10 @@ public function display($tpl = null): void $this->state = $model->getState(); $this->canDo = ContentHelper::getActions('com_scheduler', 'task', $this->item->id); + // Add form control fields + $this->form + ->addControlField('task', ''); + $this->addToolbar(); parent::display($tpl); diff --git a/administrator/components/com_scheduler/src/View/Tasks/HtmlView.php b/administrator/components/com_scheduler/src/View/Tasks/HtmlView.php index 6119990e7357c..1ee7a98ff1cd2 100644 --- a/administrator/components/com_scheduler/src/View/Tasks/HtmlView.php +++ b/administrator/components/com_scheduler/src/View/Tasks/HtmlView.php @@ -106,6 +106,11 @@ public function display($tpl = null): void $this->setLayout('empty_state'); } + // Add form control fields + $this->filterForm + ->addControlField('task', '') + ->addControlField('boxchecked', '0'); + $this->addToolbar(); parent::display($tpl); diff --git a/administrator/components/com_scheduler/tmpl/logs/default.php b/administrator/components/com_scheduler/tmpl/logs/default.php index d9436aeb49a2a..b1a71c471e448 100644 --- a/administrator/components/com_scheduler/tmpl/logs/default.php +++ b/administrator/components/com_scheduler/tmpl/logs/default.php @@ -133,9 +133,8 @@ ?> pagination->getListFooter(); ?> - - - + + filterForm->renderControlFields(); ?> diff --git a/administrator/components/com_scheduler/tmpl/select/default.php b/administrator/components/com_scheduler/tmpl/select/default.php index 10d4939f39a50..fefbc189718b2 100644 --- a/administrator/components/com_scheduler/tmpl/select/default.php +++ b/administrator/components/com_scheduler/tmpl/select/default.php @@ -16,9 +16,8 @@ use Joomla\CMS\HTML\HTMLHelper; use Joomla\CMS\Language\Text; use Joomla\CMS\Router\Route; -use Joomla\Component\Scheduler\Administrator\View\Select\HtmlView; -/** @var HtmlView $this */ +/** @var \Joomla\Component\Scheduler\Administrator\View\Select\HtmlView $this */ $app = $this->app; diff --git a/administrator/components/com_scheduler/tmpl/task/edit.php b/administrator/components/com_scheduler/tmpl/task/edit.php index 8240b1996cb4e..1608277851139 100644 --- a/administrator/components/com_scheduler/tmpl/task/edit.php +++ b/administrator/components/com_scheduler/tmpl/task/edit.php @@ -17,9 +17,8 @@ use Joomla\CMS\Layout\LayoutHelper; use Joomla\CMS\Router\Route; use Joomla\Component\Scheduler\Administrator\Task\TaskOption; -use Joomla\Component\Scheduler\Administrator\View\Task\HtmlView; -/** @var HtmlView $this */ +/** @var \Joomla\Component\Scheduler\Administrator\View\Task\HtmlView $this */ $wa = $this->getDocument()->getWebAssetManager(); @@ -198,7 +197,7 @@ class="form-validate"> form->getInput('context'); ?> - - + + form->renderControlFields(); ?> diff --git a/administrator/components/com_scheduler/tmpl/tasks/default.php b/administrator/components/com_scheduler/tmpl/tasks/default.php index 1cb5d49c3d452..cbd6c5174f828 100644 --- a/administrator/components/com_scheduler/tmpl/tasks/default.php +++ b/administrator/components/com_scheduler/tmpl/tasks/default.php @@ -20,9 +20,8 @@ use Joomla\CMS\Session\Session; use Joomla\Component\Scheduler\Administrator\Scheduler\Scheduler; use Joomla\Component\Scheduler\Administrator\Task\Status; -use Joomla\Component\Scheduler\Administrator\View\Tasks\HtmlView; -/** @var HtmlView $this*/ +/** @var \Joomla\Component\Scheduler\Administrator\View\Tasks\HtmlView $this*/ /** @var \Joomla\CMS\WebAsset\WebAssetManager $wa */ $wa = $this->getDocument()->getWebAssetManager(); @@ -301,8 +300,6 @@ class="js-draggable" data-url="" data-direction=" - - - + filterForm->renderControlFields(); ?> diff --git a/administrator/components/com_scheduler/tmpl/tasks/empty_state.php b/administrator/components/com_scheduler/tmpl/tasks/empty_state.php index 0665fd68284d0..dd82ce3cdf777 100644 --- a/administrator/components/com_scheduler/tmpl/tasks/empty_state.php +++ b/administrator/components/com_scheduler/tmpl/tasks/empty_state.php @@ -15,10 +15,11 @@ /** @var \Joomla\Component\Scheduler\Administrator\View\Tasks\HtmlView $this */ $displayData = [ - 'textPrefix' => 'COM_SCHEDULER', - 'formURL' => 'index.php?option=com_scheduler&task=task.add', - 'helpURL' => 'https://docs.joomla.org/Special:MyLanguage/J4.x:Task_Scheduler', - 'icon' => 'icon-clock clock', + 'textPrefix' => 'COM_SCHEDULER', + 'formURL' => 'index.php?option=com_scheduler&task=task.add', + 'helpURL' => 'https://docs.joomla.org/Special:MyLanguage/J4.x:Task_Scheduler', + 'icon' => 'icon-clock clock', + 'controlFields' => $this->filterForm->renderControlFields(), ]; if ($this->getCurrentUser()->authorise('core.create', 'com_scheduler')) { diff --git a/administrator/components/com_tags/src/Model/TagModel.php b/administrator/components/com_tags/src/Model/TagModel.php index b4e1901670743..f28ed83631870 100644 --- a/administrator/components/com_tags/src/Model/TagModel.php +++ b/administrator/components/com_tags/src/Model/TagModel.php @@ -15,6 +15,7 @@ use Joomla\CMS\Factory; use Joomla\CMS\MVC\Model\AdminModel; use Joomla\CMS\Plugin\PluginHelper; +use Joomla\CMS\Versioning\VersionableModelInterface; use Joomla\CMS\Versioning\VersionableModelTrait; use Joomla\Registry\Registry; use Joomla\String\StringHelper; @@ -28,7 +29,7 @@ * * @since 3.1 */ -class TagModel extends AdminModel +class TagModel extends AdminModel implements VersionableModelInterface { use VersionableModelTrait; @@ -307,6 +308,9 @@ public function save($data) $this->setState($this->getName() . '.id', $table->id); $this->setState($this->getName() . '.new', $isNew); + // Save version history. + $this->saveHistory($data, $context); + // Clear the cache $this->cleanCache(); diff --git a/administrator/components/com_tags/src/Model/TagsModel.php b/administrator/components/com_tags/src/Model/TagsModel.php index 2dde7f9b3a5e6..e9319d0e2fe79 100644 --- a/administrator/components/com_tags/src/Model/TagsModel.php +++ b/administrator/components/com_tags/src/Model/TagsModel.php @@ -147,7 +147,7 @@ protected function getListQuery() { // Create a new query object. $db = $this->getDatabase(); - $query = $db->getQuery(true); + $query = $db->createQuery(); $user = $this->getCurrentUser(); // Select the required fields from the table. @@ -183,7 +183,7 @@ protected function getListQuery() ->join('LEFT', $db->quoteName('#__viewlevels', 'ug'), $db->quoteName('ug.id') . ' = ' . $db->quoteName('a.access')); // Count Items - $subQueryCountTaggedItems = $db->getQuery(true); + $subQueryCountTaggedItems = $db->createQuery(); $subQueryCountTaggedItems ->select('COUNT(' . $db->quoteName('tag_map.content_item_id') . ')') ->from($db->quoteName('#__contentitem_tag_map', 'tag_map')) diff --git a/administrator/components/com_tags/src/Table/TagTable.php b/administrator/components/com_tags/src/Table/TagTable.php index d130fc92cc0b4..307e0a647c4ac 100644 --- a/administrator/components/com_tags/src/Table/TagTable.php +++ b/administrator/components/com_tags/src/Table/TagTable.php @@ -17,7 +17,6 @@ use Joomla\CMS\Table\Nested; use Joomla\CMS\User\CurrentUserInterface; use Joomla\CMS\User\CurrentUserTrait; -use Joomla\CMS\Versioning\VersionableTableInterface; use Joomla\Database\DatabaseInterface; use Joomla\Event\DispatcherInterface; use Joomla\String\StringHelper; @@ -31,7 +30,7 @@ * * @since 3.1 */ -class TagTable extends Nested implements VersionableTableInterface, CurrentUserInterface +class TagTable extends Nested implements CurrentUserInterface { use CurrentUserTrait; diff --git a/administrator/components/com_tags/src/View/Tag/HtmlView.php b/administrator/components/com_tags/src/View/Tag/HtmlView.php index 465dc376268da..e5790328e4999 100644 --- a/administrator/components/com_tags/src/View/Tag/HtmlView.php +++ b/administrator/components/com_tags/src/View/Tag/HtmlView.php @@ -93,6 +93,10 @@ public function display($tpl = null) $this->item = $model->getItem(); $this->state = $model->getState(); + // Add form control fields + $this->form + ->addControlField('task', ''); + $this->addToolbar(); parent::display($tpl); diff --git a/administrator/components/com_tags/src/View/Tags/HtmlView.php b/administrator/components/com_tags/src/View/Tags/HtmlView.php index 986f2648bcc94..5203c2e5e33c6 100644 --- a/administrator/components/com_tags/src/View/Tags/HtmlView.php +++ b/administrator/components/com_tags/src/View/Tags/HtmlView.php @@ -113,6 +113,11 @@ public function display($tpl = null) $this->ordering[$item->parent_id][] = $item->id; } + // Add form control fields + $this->filterForm + ->addControlField('task', '') + ->addControlField('boxchecked', '0'); + // We don't need toolbar in the modal window. if ($this->getLayout() !== 'modal') { $this->addToolbar(); diff --git a/administrator/components/com_tags/tmpl/tag/edit.php b/administrator/components/com_tags/tmpl/tag/edit.php index 9b23c6acec63c..d269eeac902c0 100644 --- a/administrator/components/com_tags/tmpl/tag/edit.php +++ b/administrator/components/com_tags/tmpl/tag/edit.php @@ -74,6 +74,6 @@ - - + + form->renderControlFields(); ?> diff --git a/administrator/components/com_tags/tmpl/tags/default.php b/administrator/components/com_tags/tmpl/tags/default.php index a3b20bea037f1..d033dbf341b38 100644 --- a/administrator/components/com_tags/tmpl/tags/default.php +++ b/administrator/components/com_tags/tmpl/tags/default.php @@ -10,6 +10,7 @@ defined('_JEXEC') or die; +use Doctrine\Inflector\InflectorFactory; use Joomla\CMS\Factory; use Joomla\CMS\HTML\HTMLHelper; use Joomla\CMS\Language\Multilanguage; @@ -17,7 +18,6 @@ use Joomla\CMS\Layout\LayoutHelper; use Joomla\CMS\Router\Route; use Joomla\CMS\Session\Session; -use Joomla\String\Inflector; /** @var \Joomla\Component\Tags\Administrator\View\Tags\HtmlView $this */ @@ -40,10 +40,10 @@ if (count($parts) > 1) { $section = $parts[1]; - $inflector = Inflector::getInstance(); + $inflector = InflectorFactory::create()->build(); - if (!$inflector->isPlural($section)) { - $section = $inflector->toPlural($section); + if ($inflector->pluralize($inflector->singularize($section)) !== $section) { + $section = $inflector->pluralize($section); } } @@ -263,8 +263,6 @@ - - - + filterForm->renderControlFields(); ?> diff --git a/administrator/components/com_tags/tmpl/tags/emptystate.php b/administrator/components/com_tags/tmpl/tags/emptystate.php index ab70fe7c796d7..759e05f5f0b2e 100644 --- a/administrator/components/com_tags/tmpl/tags/emptystate.php +++ b/administrator/components/com_tags/tmpl/tags/emptystate.php @@ -19,6 +19,8 @@ 'formURL' => 'index.php?option=com_tags&task=tag.add', 'helpURL' => 'https://docs.joomla.org/Special:MyLanguage/J4.x:How_To_Use_Content_Tags_in_Joomla', 'icon' => 'icon-tags tags', + + 'controlFields' => $this->filterForm->renderControlFields(), ]; if ($this->getCurrentUser()->authorise('core.create', 'com_tags')) { diff --git a/administrator/components/com_templates/src/Controller/StyleController.php b/administrator/components/com_templates/src/Controller/StyleController.php index c9df25cb8fc4b..1549908cd32e0 100644 --- a/administrator/components/com_templates/src/Controller/StyleController.php +++ b/administrator/components/com_templates/src/Controller/StyleController.php @@ -58,9 +58,9 @@ public function save($key = null, $urlVar = null) $item = $model->getItem($this->app->getTemplate(true)->id); // Setting received params - $item->set('params', $data); + $item->params = $data; - $data = $item->getProperties(); + $data = get_object_vars($item); unset($data['xml']); $key = $table->getKeyName(); diff --git a/administrator/components/com_templates/src/Helper/TemplatesHelper.php b/administrator/components/com_templates/src/Helper/TemplatesHelper.php index 615354706b65b..ae92fd48a37ab 100644 --- a/administrator/components/com_templates/src/Helper/TemplatesHelper.php +++ b/administrator/components/com_templates/src/Helper/TemplatesHelper.php @@ -14,7 +14,6 @@ use Joomla\CMS\HTML\HTMLHelper; use Joomla\CMS\Installer\Installer; use Joomla\CMS\Language\Text; -use Joomla\CMS\Object\CMSObject; use Joomla\Database\ParameterType; use Joomla\Filesystem\Path; @@ -55,7 +54,7 @@ public static function getTemplateOptions($clientId = '*') { // Build the filter options. $db = Factory::getDbo(); - $query = $db->getQuery(true); + $query = $db->createQuery(); $query->select($db->quoteName('element', 'value')) ->select($db->quoteName('name', 'text')) @@ -82,11 +81,11 @@ public static function getTemplateOptions($clientId = '*') * @param string $templateBaseDir * @param string $templateDir * - * @return boolean|CMSObject + * @return \stdClass|false */ public static function parseXMLTemplateFile($templateBaseDir, $templateDir) { - $data = new CMSObject(); + $data = new \stdClass(); // Check of the xml file exists $filePath = Path::clean($templateBaseDir . '/templates/' . $templateDir . '/templateDetails.xml'); diff --git a/administrator/components/com_templates/src/Model/StyleModel.php b/administrator/components/com_templates/src/Model/StyleModel.php index ee5ed39d665aa..0c5eb87f863b3 100644 --- a/administrator/components/com_templates/src/Model/StyleModel.php +++ b/administrator/components/com_templates/src/Model/StyleModel.php @@ -18,7 +18,7 @@ use Joomla\CMS\MVC\Factory\MVCFactoryInterface; use Joomla\CMS\MVC\Model\AdminModel; use Joomla\CMS\Plugin\PluginHelper; -use Joomla\CMS\Table\Table; +use Joomla\CMS\Table\Extension; use Joomla\Database\ParameterType; use Joomla\Filesystem\Path; use Joomla\String\StringHelper; @@ -290,7 +290,7 @@ protected function loadFormData() * * @param integer $pk The id of the primary key. * - * @return mixed Object on success, false on failure. + * @return \stdClass|false Object on success, false on failure. */ public function getItem($pk = null) { @@ -397,7 +397,7 @@ protected function preprocessForm(Form $form, $data, $group = 'content') public function save($data) { // Detect disabled extension - $extension = Table::getInstance('Extension', 'Joomla\\CMS\\Table\\'); + $extension = new Extension($this->getDatabase()); if ($extension->load(['enabled' => 0, 'type' => 'template', 'element' => $data['template'], 'client_id' => $data['client_id']])) { $this->setError(Text::_('COM_TEMPLATES_ERROR_SAVE_DISABLED_TEMPLATE')); @@ -465,7 +465,7 @@ public function save($data) $data['assigned'] = ArrayHelper::toInteger($data['assigned']); // Update the mapping for menu items that this style IS assigned to. - $query = $db->getQuery(true) + $query = $db->createQuery() ->update($db->quoteName('#__menu')) ->set($db->quoteName('template_style_id') . ' = :newtsid') ->whereIn($db->quoteName('id'), $data['assigned']) @@ -481,7 +481,7 @@ public function save($data) // Remove style mappings for menu items this style is NOT assigned to. // If unassigned then all existing maps will be removed. - $query = $db->getQuery(true) + $query = $db->createQuery() ->update($db->quoteName('#__menu')) ->set($db->quoteName('template_style_id') . ' = 0'); @@ -540,7 +540,7 @@ public function setHome($id = 0) } // Detect disabled extension - $extension = Table::getInstance('Extension', 'Joomla\\CMS\\Table\\'); + $extension = new Extension($this->getDatabase()); if ($extension->load(['enabled' => 0, 'type' => 'template', 'element' => $style->template, 'client_id' => $style->client_id])) { throw new \Exception(Text::_('COM_TEMPLATES_ERROR_SAVE_DISABLED_TEMPLATE')); @@ -550,7 +550,7 @@ public function setHome($id = 0) $id = (int) $id; // Reset the home fields for the client_id. - $query = $db->getQuery(true) + $query = $db->createQuery() ->update($db->quoteName('#__template_styles')) ->set($db->quoteName('home') . ' = ' . $db->quote('0')) ->where($db->quoteName('client_id') . ' = :clientid') @@ -560,7 +560,7 @@ public function setHome($id = 0) $db->execute(); // Set the new home style. - $query = $db->getQuery(true) + $query = $db->createQuery() ->update($db->quoteName('#__template_styles')) ->set($db->quoteName('home') . ' = ' . $db->quote('1')) ->where($db->quoteName('id') . ' = :id') @@ -596,7 +596,7 @@ public function unsetHome($id = 0) $id = (int) $id; // Lookup the client_id. - $query = $db->getQuery(true) + $query = $db->createQuery() ->select($db->quoteName(['client_id', 'home'])) ->from($db->quoteName('#__template_styles')) ->where($db->quoteName('id') . ' = :id') @@ -613,7 +613,7 @@ public function unsetHome($id = 0) } // Set the new home style. - $query = $db->getQuery(true) + $query = $db->createQuery() ->update($db->quoteName('#__template_styles')) ->set($db->quoteName('home') . ' = ' . $db->quote('0')) ->where($db->quoteName('id') . ' = :id') @@ -651,7 +651,7 @@ public function getHelp() public function getAdminTemplate(int $styleId): \stdClass { $db = $this->getDatabase(); - $query = $db->getQuery(true) + $query = $db->createQuery() ->select($db->quoteName(['s.template', 's.params', 's.inheritable', 's.parent'])) ->from($db->quoteName('#__template_styles', 's')) ->join( @@ -696,7 +696,7 @@ public function getAdminTemplate(int $styleId): \stdClass public function getSiteTemplates(): array { $db = $this->getDatabase(); - $query = $db->getQuery(true) + $query = $db->createQuery() ->select($db->quoteName(['id', 'home', 'template', 's.params', 'inheritable', 'parent'])) ->from($db->quoteName('#__template_styles', 's')) ->where( @@ -721,15 +721,13 @@ public function getSiteTemplates(): array /** * Custom clean cache method * - * @param string $group The cache group - * @param integer $clientId No longer used, will be removed without replacement - * @deprecated 4.3 will be removed in 6.0 + * @param string $group Cache group name. * * @return void * * @since 1.6 */ - protected function cleanCache($group = null, $clientId = 0) + protected function cleanCache($group = null) { parent::cleanCache('com_templates'); parent::cleanCache('_system'); diff --git a/administrator/components/com_templates/src/Model/StylesModel.php b/administrator/components/com_templates/src/Model/StylesModel.php index ea93fa73af4a2..c370e330aa040 100644 --- a/administrator/components/com_templates/src/Model/StylesModel.php +++ b/administrator/components/com_templates/src/Model/StylesModel.php @@ -117,7 +117,7 @@ protected function getListQuery() // Create a new query object. $db = $this->getDatabase(); - $query = $db->getQuery(true); + $query = $db->createQuery(); // Select the required fields from the table. $query->select( @@ -201,14 +201,14 @@ protected function getListQuery() // If user selected the templates styles assigned to particular pages. // Subquery to get the language of the selected menu item. $menuItemId = (int) $menuItemId; - $menuItemLanguageSubQuery = $db->getQuery(true); + $menuItemLanguageSubQuery = $db->createQuery(); $menuItemLanguageSubQuery->select($db->quoteName('language')) ->from($db->quoteName('#__menu')) ->where($db->quoteName('id') . ' = :menuitemid'); $query->bind(':menuitemid', $menuItemId, ParameterType::INTEGER); // Subquery to get the language of the selected menu item. - $templateStylesMenuItemsSubQuery = $db->getQuery(true); + $templateStylesMenuItemsSubQuery = $db->createQuery(); $templateStylesMenuItemsSubQuery->select($db->quoteName('id')) ->from($db->quoteName('#__menu')) ->where($db->quoteName('template_style_id') . ' = ' . $db->quoteName('a.id')); diff --git a/administrator/components/com_templates/src/Model/TemplateModel.php b/administrator/components/com_templates/src/Model/TemplateModel.php index 23eb1bbe12aac..820c8f5e823da 100644 --- a/administrator/components/com_templates/src/Model/TemplateModel.php +++ b/administrator/components/com_templates/src/Model/TemplateModel.php @@ -129,7 +129,7 @@ public function getTemplateList() $db = $this->getDatabase(); // Create a new query object. - $query = $db->getQuery(true); + $query = $db->createQuery(); // Select the required fields from the table $query->select( @@ -169,7 +169,7 @@ public function getUpdatedList($state = false, $all = false, $cleanup = false) $db = $this->getDatabase(); // Create a new query object. - $query = $db->getQuery(true); + $query = $db->createQuery(); // Select the required fields from the table $query->select( @@ -316,7 +316,7 @@ public function publish($ids, $value, $exid) foreach ($ids as $id) { if ($value === -3) { - $deleteQuery = $db->getQuery(true) + $deleteQuery = $db->createQuery() ->delete($db->quoteName('#__template_overrides')) ->where($db->quoteName('hash_id') . ' = :hashid') ->where($db->quoteName('extension_id') . ' = :exid') @@ -331,7 +331,7 @@ public function publish($ids, $value, $exid) return $e; } } elseif ($value === 1 || $value === 0) { - $updateQuery = $db->getQuery(true) + $updateQuery = $db->createQuery() ->update($db->quoteName('#__template_overrides')) ->set($db->quoteName('state') . ' = :state') ->where($db->quoteName('hash_id') . ' = :hashid') @@ -645,7 +645,7 @@ public function getTemplate() $app = Factory::getApplication(); // Get the template information. - $query = $db->getQuery(true) + $query = $db->createQuery() ->select($db->quoteName(['extension_id', 'client_id', 'element', 'name', 'manifest_cache'])) ->from($db->quoteName('#__extensions')) ->where($db->quoteName('extension_id') . ' = :pk') @@ -691,7 +691,7 @@ public function checkNewName() { $db = $this->getDatabase(); $name = $this->getState('new_name'); - $query = $db->getQuery(true) + $query = $db->createQuery() ->select('COUNT(*)') ->from($db->quoteName('#__extensions')) ->where($db->quoteName('name') . ' = :name') @@ -873,7 +873,7 @@ public function getForm($data = [], $loadData = true) // Codemirror or Editor None should be enabled $db = $this->getDatabase(); - $query = $db->getQuery(true) + $query = $db->createQuery() ->select('COUNT(*)') ->from('#__extensions as a') ->where( @@ -1660,7 +1660,7 @@ public function getPreview() { $app = Factory::getApplication(); $db = $this->getDatabase(); - $query = $db->getQuery(true); + $query = $db->createQuery(); $query->select($db->quoteName(['id', 'client_id'])); $query->from($db->quoteName('#__template_styles')); @@ -2094,7 +2094,7 @@ public function getAllTemplateStyles() } $db = $this->getDatabase(); - $query = $db->getQuery(true); + $query = $db->createQuery(); $query->select($db->quoteName(['id', 'title'])) ->from($db->quoteName('#__template_styles')) @@ -2128,7 +2128,7 @@ public function copyStyles() $db = $this->getDatabase(); // Create a new query object. - $query = $db->getQuery(true); + $query = $db->createQuery(); $query->select($db->quoteName(['title', 'params'])) ->from($db->quoteName('#__template_styles')) @@ -2145,7 +2145,7 @@ public function copyStyles() } foreach ($parentStyle as $style) { - $query = $db->getQuery(true); + $query = $db->createQuery(); $styleName = Text::sprintf('COM_TEMPLATES_COPY_CHILD_TEMPLATE_STYLES', ucfirst($template->element . '_' . $newName), $style->title); // Insert columns and values diff --git a/administrator/components/com_templates/src/Model/TemplatesModel.php b/administrator/components/com_templates/src/Model/TemplatesModel.php index 13047daa92d06..450565ede5599 100644 --- a/administrator/components/com_templates/src/Model/TemplatesModel.php +++ b/administrator/components/com_templates/src/Model/TemplatesModel.php @@ -96,7 +96,7 @@ public function updated($exid) $db = $this->getDatabase(); // Select the required fields from the table - $query = $db->getQuery(true) + $query = $db->createQuery() ->select($db->quoteName('template')) ->from($db->quoteName('#__template_overrides')) ->where($db->quoteName('extension_id') . ' = :extensionid') @@ -127,7 +127,7 @@ protected function getListQuery() { // Create a new query object. $db = $this->getDatabase(); - $query = $db->getQuery(true); + $query = $db->createQuery(); // Select the required fields from the table. $query->select( diff --git a/administrator/components/com_templates/src/Table/StyleTable.php b/administrator/components/com_templates/src/Table/StyleTable.php index 37dd1af4bcb26..6568a2c37b9cf 100644 --- a/administrator/components/com_templates/src/Table/StyleTable.php +++ b/administrator/components/com_templates/src/Table/StyleTable.php @@ -108,7 +108,7 @@ public function store($updateNulls = false) if ($this->home != '0') { $clientId = (int)$this->client_id; $db = $this->getDatabase(); - $query = $db->getQuery(true) + $query = $db->createQuery() ->update($db->quoteName('#__template_styles')) ->set($db->quoteName('home') . ' = ' . $db->quote('0')) ->where($db->quoteName('client_id') . ' = :clientid') @@ -139,7 +139,7 @@ public function delete($pk = null) if (!\is_null($pk)) { $clientId = (int)$this->client_id; $db = $this->getDatabase(); - $query = $db->getQuery(true) + $query = $db->createQuery() ->select($db->quoteName('id')) ->from($db->quoteName('#__template_styles')) ->where($db->quoteName('client_id') . ' = :clientid') diff --git a/administrator/components/com_templates/src/View/Style/HtmlView.php b/administrator/components/com_templates/src/View/Style/HtmlView.php index e325f838acb70..47760982d8452 100644 --- a/administrator/components/com_templates/src/View/Style/HtmlView.php +++ b/administrator/components/com_templates/src/View/Style/HtmlView.php @@ -88,6 +88,10 @@ public function display($tpl = null) $this->form = $model->getForm(); $this->canDo = ContentHelper::getActions('com_templates'); + // Add form control fields + $this->form + ->addControlField('task', ''); + $this->addToolbar(); parent::display($tpl); diff --git a/administrator/components/com_templates/src/View/Styles/HtmlView.php b/administrator/components/com_templates/src/View/Styles/HtmlView.php index 5efffed718699..e6677bdd98c8e 100644 --- a/administrator/components/com_templates/src/View/Styles/HtmlView.php +++ b/administrator/components/com_templates/src/View/Styles/HtmlView.php @@ -101,6 +101,11 @@ public function display($tpl = null) $this->filterForm->removeField('menuitem', 'filter'); } + // Add form control fields + $this->filterForm + ->addControlField('task', '') + ->addControlField('boxchecked', '0'); + $this->addToolbar(); parent::display($tpl); diff --git a/administrator/components/com_templates/src/View/Templates/HtmlView.php b/administrator/components/com_templates/src/View/Templates/HtmlView.php index 0cf8257ff1e0b..952e60eee19bf 100644 --- a/administrator/components/com_templates/src/View/Templates/HtmlView.php +++ b/administrator/components/com_templates/src/View/Templates/HtmlView.php @@ -118,6 +118,11 @@ public function display($tpl = null) $this->file = base64_encode('home'); $this->pluginState = PluginHelper::isEnabled('installer', 'override'); + // Add form control fields + $this->filterForm + ->addControlField('task', '') + ->addControlField('boxchecked', '0'); + $this->addToolbar(); parent::display($tpl); diff --git a/administrator/components/com_templates/tmpl/style/edit.php b/administrator/components/com_templates/tmpl/style/edit.php index 56b4fb41d92f7..d263626ccab9e 100644 --- a/administrator/components/com_templates/tmpl/style/edit.php +++ b/administrator/components/com_templates/tmpl/style/edit.php @@ -143,7 +143,6 @@ class="form-validate"> - - + form->renderControlFields(); ?> diff --git a/administrator/components/com_templates/tmpl/styles/default.php b/administrator/components/com_templates/tmpl/styles/default.php index c708fdd97315d..e8e07afc17fe1 100644 --- a/administrator/components/com_templates/tmpl/styles/default.php +++ b/administrator/components/com_templates/tmpl/styles/default.php @@ -146,9 +146,7 @@ - - - + filterForm->renderControlFields(); ?> diff --git a/administrator/components/com_templates/tmpl/template/default.php b/administrator/components/com_templates/tmpl/template/default.php index 99833432dd2ee..410f9ea12a827 100644 --- a/administrator/components/com_templates/tmpl/template/default.php +++ b/administrator/components/com_templates/tmpl/template/default.php @@ -21,16 +21,21 @@ /** @var \Joomla\Component\Templates\Administrator\View\Template\HtmlView $this */ -HTMLHelper::_('behavior.multiselect', 'updateForm'); -HTMLHelper::_('bootstrap.modal'); +$app = Factory::getApplication(); +$doc = $app->getDocument(); + +// Pass the required options to the javascript +$doc->addScriptOptions('js-multiselect', ['formName' => 'updateForm']); /** @var Joomla\CMS\WebAsset\WebAssetManager $wa */ -$wa = $this->getDocument()->getWebAssetManager(); -$input = Factory::getApplication()->getInput(); +$wa = $doc->getWebAssetManager(); +$input = $app->getInput(); // Enable assets $wa->useScript('form.validate') ->useScript('keepalive') + ->useScript('bootstrap.modal') + ->useScript('multiselect') ->useScript('com_templates.admin-template-toggle-switch') ->useScript('com_templates.admin-templates') ->useStyle('com_templates.admin-templates'); diff --git a/administrator/components/com_templates/tmpl/template/default_description.php b/administrator/components/com_templates/tmpl/template/default_description.php index 8d8f1ca2eb41c..616f37d8b77ec 100644 --- a/administrator/components/com_templates/tmpl/template/default_description.php +++ b/administrator/components/com_templates/tmpl/template/default_description.php @@ -27,5 +27,5 @@

template->element); ?>

template->client_id); ?>

template->xmldata = TemplatesHelper::parseXMLTemplateFile($client->path, $this->template->element); ?>

-

template->xmldata->get('description')); ?>

+

template->xmldata->description); ?>

diff --git a/administrator/components/com_templates/tmpl/templates/default.php b/administrator/components/com_templates/tmpl/templates/default.php index a15338f9455f5..aafcd5c299b74 100644 --- a/administrator/components/com_templates/tmpl/templates/default.php +++ b/administrator/components/com_templates/tmpl/templates/default.php @@ -98,21 +98,21 @@ - escape($item->xmldata->get('version')); ?> + escape($item->xmldata->version); ?> - escape($item->xmldata->get('creationDate')); ?> + escape($item->xmldata->creationDate); ?> - xmldata->get('author')) : ?> + xmldata->author) : ?>
escape($author); ?>
- xmldata->get('authorEmail')) : ?> + xmldata->authorEmail) : ?>
escape($email); ?>
- xmldata->get('authorUrl')) : ?> + xmldata->authorUrl) : ?>
escape($url); ?>
@@ -137,9 +137,7 @@ - - - + filterForm->renderControlFields(); ?> diff --git a/administrator/components/com_users/postinstall/multifactorauth.php b/administrator/components/com_users/postinstall/multifactorauth.php index d1ca2b0f46c21..aecf8858b059c 100644 --- a/administrator/components/com_users/postinstall/multifactorauth.php +++ b/administrator/components/com_users/postinstall/multifactorauth.php @@ -44,7 +44,7 @@ function com_users_postinstall_mfa_action(): void $db = Factory::getContainer()->get(DatabaseInterface::class); $coreMfaPlugins = ['email', 'totp', 'webauthn', 'yubikey']; - $query = $db->getQuery(true) + $query = $db->createQuery() ->update($db->quoteName('#__extensions')) ->set($db->quoteName('enabled') . ' = 1') ->where($db->quoteName('type') . ' = ' . $db->quote('plugin')) diff --git a/administrator/components/com_users/src/Controller/UserController.php b/administrator/components/com_users/src/Controller/UserController.php index 390753331d231..e393639184cf8 100644 --- a/administrator/components/com_users/src/Controller/UserController.php +++ b/administrator/components/com_users/src/Controller/UserController.php @@ -13,6 +13,7 @@ use Joomla\CMS\Access\Access; use Joomla\CMS\MVC\Controller\FormController; use Joomla\CMS\MVC\Model\BaseDatabaseModel; +use Joomla\CMS\Response\JsonResponse; use Joomla\CMS\Router\Route; use Joomla\CMS\Uri\Uri; @@ -160,4 +161,34 @@ public function batch($model = null) protected function postSaveHook(BaseDatabaseModel $model, $validData = []) { } + + /** + * Get the XHR request to activate a user + * js: media/com_users/js/activate-user-send-email + * + * @return void + * + * @since 6.0.0 + */ + public function active(): void + { + // Get the ID of the user + $userId = $this->input->getString('userid', ''); + + // Prepare the default response + $responseError = false; + $responseMessage = null; + + // Set the model + $model = $this->getModel('User', 'Administrator', []); + + // Activate the user and send the email + if (!$model->activate($userId)) { + $responseError = true; + } + + $responseMessage = \Joomla\CMS\Factory::getApplication()->getMessageQueue(); + + echo new JsonResponse(null, $responseMessage, $responseError); + } } diff --git a/administrator/components/com_users/src/Controller/UsersController.php b/administrator/components/com_users/src/Controller/UsersController.php index 9840b5708dd2e..5024b3de5bdb8 100644 --- a/administrator/components/com_users/src/Controller/UsersController.php +++ b/administrator/components/com_users/src/Controller/UsersController.php @@ -11,12 +11,12 @@ namespace Joomla\Component\Users\Administrator\Controller; use Joomla\CMS\Application\CMSApplication; -use Joomla\CMS\Input\Input; use Joomla\CMS\Language\Text; use Joomla\CMS\MVC\Controller\AdminController; use Joomla\CMS\MVC\Controller\BaseController; use Joomla\CMS\MVC\Factory\MVCFactoryInterface; use Joomla\CMS\Response\JsonResponse; +use Joomla\Input\Input; use Joomla\Utilities\ArrayHelper; // phpcs:disable PSR1.Files.SideEffects @@ -39,7 +39,7 @@ class UsersController extends AdminController /** * Constructor. * - * @param array $config An optional associative array of configuration settings. + * @param array $config An optional associative array of configuration settings. * @param ?MVCFactoryInterface $factory The factory. * @param ?CMSApplication $app The CMSApplication for the dispatcher * @param ?Input $input Input diff --git a/administrator/components/com_users/src/Helper/DebugHelper.php b/administrator/components/com_users/src/Helper/DebugHelper.php index dda89bf802f11..718a70b64730b 100644 --- a/administrator/components/com_users/src/Helper/DebugHelper.php +++ b/administrator/components/com_users/src/Helper/DebugHelper.php @@ -38,7 +38,7 @@ public static function getComponents() { // Initialise variable. $db = Factory::getDbo(); - $query = $db->getQuery(true) + $query = $db->createQuery() ->select('name AS text, element AS value') ->from('#__extensions') ->where('enabled >= 1') diff --git a/administrator/components/com_users/src/Helper/Mfa.php b/administrator/components/com_users/src/Helper/Mfa.php index f102a580c206d..b60d37c0d2d03 100644 --- a/administrator/components/com_users/src/Helper/Mfa.php +++ b/administrator/components/com_users/src/Helper/Mfa.php @@ -264,7 +264,7 @@ public static function getUserMfaRecords(?int $userId): array /** @var DatabaseInterface $db */ $db = Factory::getContainer()->get(DatabaseInterface::class); - $query = $db->getQuery(true) + $query = $db->createQuery() ->select($db->quoteName('id')) ->from($db->quoteName('#__user_mfa')) ->where($db->quoteName('user_id') . ' = :user_id') diff --git a/administrator/components/com_users/src/Helper/UsersHelper.php b/administrator/components/com_users/src/Helper/UsersHelper.php index f727cf60bec77..c3ff6a965621b 100644 --- a/administrator/components/com_users/src/Helper/UsersHelper.php +++ b/administrator/components/com_users/src/Helper/UsersHelper.php @@ -151,7 +151,7 @@ public static function getVisibleByGroups($rules) } $db = Factory::getDbo(); - $query = $db->getQuery(true) + $query = $db->createQuery() ->select($db->quoteName('title', 'text')) ->from($db->quoteName('#__usergroups')) ->whereIn($db->quoteName('id'), $rules); diff --git a/administrator/components/com_users/src/Model/DebuggroupModel.php b/administrator/components/com_users/src/Model/DebuggroupModel.php index ad28a6009cce7..e458f20356b38 100644 --- a/administrator/components/com_users/src/Model/DebuggroupModel.php +++ b/administrator/components/com_users/src/Model/DebuggroupModel.php @@ -177,7 +177,7 @@ public function getGroup() $groupId = (int) $this->getState('group_id'); $db = $this->getDatabase(); - $query = $db->getQuery(true) + $query = $db->createQuery() ->select($db->quoteName(['id', 'title'])) ->from($db->quoteName('#__usergroups')) ->where($db->quoteName('id') . ' = :id') @@ -207,7 +207,7 @@ protected function getListQuery() { // Create a new query object. $db = $this->getDatabase(); - $query = $db->getQuery(true); + $query = $db->createQuery(); // Select the required fields from the table. $query->select( diff --git a/administrator/components/com_users/src/Model/DebuguserModel.php b/administrator/components/com_users/src/Model/DebuguserModel.php index 5766b292aa5aa..190b4b011a8ea 100644 --- a/administrator/components/com_users/src/Model/DebuguserModel.php +++ b/administrator/components/com_users/src/Model/DebuguserModel.php @@ -196,7 +196,7 @@ protected function getListQuery() { // Create a new query object. $db = $this->getDatabase(); - $query = $db->getQuery(true); + $query = $db->createQuery(); // Select the required fields from the table. $query->select( diff --git a/administrator/components/com_users/src/Model/GroupModel.php b/administrator/components/com_users/src/Model/GroupModel.php index bcb16170e0977..0a29402b9e4e8 100644 --- a/administrator/components/com_users/src/Model/GroupModel.php +++ b/administrator/components/com_users/src/Model/GroupModel.php @@ -18,7 +18,6 @@ use Joomla\CMS\Language\Text; use Joomla\CMS\MVC\Factory\MVCFactoryInterface; use Joomla\CMS\MVC\Model\AdminModel; -use Joomla\CMS\Object\CMSObject; use Joomla\CMS\Plugin\PluginHelper; use Joomla\CMS\Table\Table; use Joomla\String\StringHelper; @@ -136,7 +135,7 @@ protected function loadFormData() */ protected function preprocessForm(Form $form, $data, $group = '') { - $obj = \is_array($data) ? ArrayHelper::toObject($data, CMSObject::class) : $data; + $obj = \is_array($data) ? ArrayHelper::toObject($data) : $data; if (isset($obj->parent_id) && $obj->parent_id == 0 && $obj->id > 0) { $form->setFieldAttribute('parent_id', 'type', 'hidden'); diff --git a/administrator/components/com_users/src/Model/GroupsModel.php b/administrator/components/com_users/src/Model/GroupsModel.php index 868c02229d4d1..8606f17f644b8 100644 --- a/administrator/components/com_users/src/Model/GroupsModel.php +++ b/administrator/components/com_users/src/Model/GroupsModel.php @@ -140,7 +140,7 @@ protected function getListQuery() { // Create a new query object. $db = $this->getDatabase(); - $query = $db->getQuery(true); + $query = $db->createQuery(); // Select the required fields from the table. $query->select( @@ -195,7 +195,7 @@ private function populateExtraData(array $items) $db = $this->getDatabase(); // Get total enabled users in group. - $query = $db->getQuery(true); + $query = $db->createQuery(); // Count the objects in the user group. $query->select('map.group_id, COUNT(DISTINCT map.user_id) AS user_count') diff --git a/administrator/components/com_users/src/Model/LevelModel.php b/administrator/components/com_users/src/Model/LevelModel.php index 43d9d360b6d4d..ac35117881ce5 100644 --- a/administrator/components/com_users/src/Model/LevelModel.php +++ b/administrator/components/com_users/src/Model/LevelModel.php @@ -52,7 +52,7 @@ public function delete(&$pks) if ($table->load($pk)) { // Check if the access level is being used. $db = $this->getDatabase(); - $query = $db->getQuery(true) + $query = $db->createQuery() ->select('DISTINCT access'); // Get all tables that have the access field diff --git a/administrator/components/com_users/src/Model/LevelsModel.php b/administrator/components/com_users/src/Model/LevelsModel.php index a00d3376773ff..5c8de890426da 100644 --- a/administrator/components/com_users/src/Model/LevelsModel.php +++ b/administrator/components/com_users/src/Model/LevelsModel.php @@ -15,7 +15,7 @@ use Joomla\CMS\Language\Text; use Joomla\CMS\MVC\Factory\MVCFactoryInterface; use Joomla\CMS\MVC\Model\ListModel; -use Joomla\CMS\Table\Table; +use Joomla\CMS\Table\ViewLevel; use Joomla\Database\ParameterType; use Joomla\Database\QueryInterface; @@ -102,7 +102,7 @@ protected function getListQuery() { // Create a new query object. $db = $this->getDatabase(); - $query = $db->getQuery(true); + $query = $db->createQuery(); // Select the required fields from the table. $query->select( @@ -154,7 +154,7 @@ public function reorder($pk, $direction = 0) $user = $this->getCurrentUser(); // Get an instance of the record's table. - $table = Table::getInstance('ViewLevel', 'Joomla\\CMS\Table\\'); + $table = new ViewLevel($this->getDatabase()); // Load the row. if (!$table->load($pk)) { @@ -191,7 +191,7 @@ public function reorder($pk, $direction = 0) */ public function saveorder($pks, $order) { - $table = Table::getInstance('viewlevel', 'Joomla\\CMS\Table\\'); + $table = new ViewLevel($this->getDatabase()); $user = $this->getCurrentUser(); $conditions = []; diff --git a/administrator/components/com_users/src/Model/MailModel.php b/administrator/components/com_users/src/Model/MailModel.php index b6f5d72597544..b2b039b555b17 100644 --- a/administrator/components/com_users/src/Model/MailModel.php +++ b/administrator/components/com_users/src/Model/MailModel.php @@ -136,7 +136,7 @@ public function send() } else { // Get all users email and group except for senders $uid = (int) $user->id; - $query = $db->getQuery(true) + $query = $db->createQuery() ->select( [ $db->quoteName('email'), diff --git a/administrator/components/com_users/src/Model/MethodsModel.php b/administrator/components/com_users/src/Model/MethodsModel.php index 0efe426b28c1c..542f77c7d66e3 100644 --- a/administrator/components/com_users/src/Model/MethodsModel.php +++ b/administrator/components/com_users/src/Model/MethodsModel.php @@ -97,7 +97,7 @@ public function deleteAll(?User $user = null): void } $db = $this->getDatabase(); - $query = $db->getQuery(true) + $query = $db->createQuery() ->delete($db->quoteName('#__user_mfa')) ->where($db->quoteName('user_id') . ' = :user_id') ->bind(':user_id', $user->id, ParameterType::INTEGER); @@ -187,7 +187,7 @@ public function setFlag(User $user, bool $flag = true): void { $db = $this->getDatabase(); $profileKey = 'mfa.dontshow'; - $query = $db->getQuery(true) + $query = $db->createQuery() ->select($db->quoteName('profile_value')) ->from($db->quoteName('#__user_profiles')) ->where($db->quoteName('user_id') . ' = :user_id') diff --git a/administrator/components/com_users/src/Model/NoteModel.php b/administrator/components/com_users/src/Model/NoteModel.php index 6573c0fbecae2..4f820fd251488 100644 --- a/administrator/components/com_users/src/Model/NoteModel.php +++ b/administrator/components/com_users/src/Model/NoteModel.php @@ -13,6 +13,7 @@ use Joomla\CMS\Factory; use Joomla\CMS\MVC\Model\AdminModel; use Joomla\CMS\Plugin\PluginHelper; +use Joomla\CMS\Versioning\VersionableModelInterface; use Joomla\CMS\Versioning\VersionableModelTrait; // phpcs:disable PSR1.Files.SideEffects @@ -24,7 +25,7 @@ * * @since 2.5 */ -class NoteModel extends AdminModel +class NoteModel extends AdminModel implements VersionableModelInterface { use VersionableModelTrait; @@ -105,7 +106,7 @@ protected function loadFormData() // Prime some default values. if ($this->getState('note.id') == 0) { - $data->set('catid', $app->getInput()->get('catid', $app->getUserState('com_users.notes.filter.category_id'), 'int')); + $data->catid = $app->getInput()->get('catid', $app->getUserState('com_users.notes.filter.category_id'), 'int'); } $userId = $app->getInput()->get('u_id', 0, 'int'); diff --git a/administrator/components/com_users/src/Model/NotesModel.php b/administrator/components/com_users/src/Model/NotesModel.php index 311eed443982b..62d65740b04ef 100644 --- a/administrator/components/com_users/src/Model/NotesModel.php +++ b/administrator/components/com_users/src/Model/NotesModel.php @@ -69,7 +69,7 @@ public function __construct($config = [], ?MVCFactoryInterface $factory = null) protected function getListQuery() { $db = $this->getDatabase(); - $query = $db->getQuery(true); + $query = $db->createQuery(); // Select the required fields from the table. $query->select( diff --git a/administrator/components/com_users/src/Model/UserModel.php b/administrator/components/com_users/src/Model/UserModel.php index a34b21f024d8f..cb911ab61a7b5 100644 --- a/administrator/components/com_users/src/Model/UserModel.php +++ b/administrator/components/com_users/src/Model/UserModel.php @@ -16,6 +16,7 @@ use Joomla\CMS\Form\Form; use Joomla\CMS\Language\Multilanguage; use Joomla\CMS\Language\Text; +use Joomla\CMS\Mail\MailTemplate; use Joomla\CMS\MVC\Factory\MVCFactoryInterface; use Joomla\CMS\MVC\Model\AdminModel; use Joomla\CMS\Plugin\PluginHelper; @@ -224,9 +225,8 @@ protected function preprocessForm(Form $form, $data, $group = 'user') */ public function save($data) { - $pk = (!empty($data['id'])) ? $data['id'] : (int) $this->getState('user.id'); - $user = $this->getUserFactory()->loadUserById($pk); - + $pk = (!empty($data['id'])) ? $data['id'] : (int) $this->getState('user.id'); + $user = $this->getUserFactory()->loadUserById($pk); $my = $this->getCurrentUser(); $iAmSuperAdmin = $my->authorise('core.admin'); @@ -292,7 +292,7 @@ public function save($data) } // Destroy all active sessions for the user after changing the password or blocking him - if (!empty($data['password2']) || $data['block']) { + if (!empty($data['password2']) || !empty($data['block'])) { UserHelper::destroyUserSessions($user->id, true); } @@ -380,8 +380,8 @@ public function delete(&$pks) */ public function block(&$pks, $value = 1) { - $app = Factory::getApplication(); - $user = $this->getCurrentUser(); + $app = Factory::getApplication(); + $user = $this->getCurrentUser(); // Check if I am a Super Admin $iAmSuperAdmin = $user->authorise('core.admin'); @@ -484,26 +484,80 @@ public function block(&$pks, $value = 1) */ public function activate(&$pks) { - $user = $this->getCurrentUser(); + $app = Factory::getApplication(); + $user = $app->getIdentity(); - // Check if I am a Super Admin + // Check if I am a super admin $iAmSuperAdmin = $user->authorise('core.admin'); - $table = $this->getTable(); - $pks = (array) $pks; + + // Load user table + $table = $this->getTable(); + $pks = (array) $pks; + + // Compile the user activated notification mail default values. + $mailData = []; + $mailData['siteurl'] = \Joomla\CMS\Uri\Uri::root(); + $mailData['fromname'] = $app->get('fromname'); + $mailData['mailfrom'] = $app->get('mailfrom'); + $mailData['sitename'] = $app->get('sitename'); + + // Load com_users site language strings, the mail template use it + $app->getLanguage()->load('com_users', JPATH_SITE); + + $sendMailTo = function ($userData) use ($app, $mailData) { + $mailData['name'] = $userData['name']; + $mailData['username'] = $userData['username']; + + // Use the default language + $langTag = ComponentHelper::getParams('com_languages')->get('site', 'en-GB'); + + $mailer = new MailTemplate('com_users.registration.user.admin_activated', $langTag); + $mailer->addTemplateData($mailData); + $mailer->addRecipient($userData['email']); + + try { + $return = $mailer->send(); + } catch (\Exception $exception) { + try { + \Joomla\CMS\Log\Log::add(Text::_($exception->getMessage()), \Joomla\CMS\Log\Log::WARNING, 'jerror'); + + $return = false; + } catch (\RuntimeException $exception) { + $app->enqueueMessage(Text::_($exception->errorMessage()), $app::MSG_WARNING); + + $return = false; + } + } + + // Check for an error. + if ($return !== true) { + $app->enqueueMessage(Text::_('COM_USERS_REGISTRATION_ACTIVATION_NOTIFY_SEND_MAIL_FAILED'), $app::MSG_WARNING); + + return false; + } + + $app->enqueueMessage(Text::_('COM_USERS_REGISTRATION_ACTIVATION_NOTIFY_SEND_MAIL_SUCCESS'), $app::MSG_INFO); + return true; + }; PluginHelper::importPlugin($this->events_map['save']); - // Access checks. + // Activate and send the notification email foreach ($pks as $i => $pk) { if ($table->load($pk)) { - $old = $table->getProperties(); - $allow = $user->authorise('core.edit.state', 'com_users'); + $prevUserData = $table->getProperties(); + $allow = $user->authorise('core.edit.state', 'com_users'); - // Don't allow non-super-admin to delete a super admin + // Don't allow non-super-admin to edit the active status of a super admin $allow = (!$iAmSuperAdmin && Access::check($pk, 'core.admin')) ? false : $allow; + // Ignore activated accounts but check if we can still + // resend the notification email if (empty($table->activation)) { - // Ignore activated accounts. + if (\is_null($table->lastvisitDate)) { + $sendMailTo($prevUserData); + } + unset($pks[$i]); } elseif ($allow) { $table->block = 0; @@ -518,7 +572,7 @@ public function activate(&$pks) } // Trigger the before save event. - $result = Factory::getApplication()->triggerEvent($this->event_before_save, [$old, false, $table->getProperties()]); + $result = Factory::getApplication()->triggerEvent($this->event_before_save, [$prevUserData, false, $table->getProperties()]); if (\in_array(false, $result, true)) { // Plugin will have to raise it's own error or throw an exception. @@ -534,6 +588,11 @@ public function activate(&$pks) // Fire the after save event Factory::getApplication()->triggerEvent($this->event_after_save, [$table->getProperties(), false, true, null]); + + // Send the email + if (!$sendMailTo($prevUserData)) { + return false; + } } catch (\Exception $e) { $this->setError($e->getMessage()); @@ -542,7 +601,7 @@ public function activate(&$pks) } else { // Prune items that you can't change. unset($pks[$i]); - Factory::getApplication()->enqueueMessage(Text::_('JLIB_APPLICATION_ERROR_EDITSTATE_NOT_PERMITTED'), 'error'); + $app->enqueueMessage(Text::_('JLIB_APPLICATION_ERROR_EDITSTATE_NOT_PERMITTED'), 'error'); } } } @@ -655,7 +714,7 @@ public function batchReset($userIds, $action) $userIds = ArrayHelper::toInteger($userIds); - $query = $db->getQuery(true); + $query = $db->createQuery(); // Update the reset flag $query->update($db->quoteName('#__users')) @@ -733,12 +792,12 @@ public function batchUser($groupId, $userIds, $action) // Remove the users from the group if requested. if (isset($doDelete)) { /* - * First we need to check that the user is part of more than one group - * otherwise we will end up with a user that is not part of any group - * unless we are moving the user to a new group. - */ + * First we need to check that the user is part of more than one group + * otherwise we will end up with a user that is not part of any group + * unless we are moving the user to a new group. + */ if ($doDelete === 'group') { - $query = $db->getQuery(true); + $query = $db->createQuery(); $query->select($db->quoteName('user_id')) ->from($db->quoteName('#__user_usergroup_map')) ->whereIn($db->quoteName('user_id'), $userIds); @@ -781,7 +840,7 @@ public function batchUser($groupId, $userIds, $action) ->bind(':group_id', $groupId, ParameterType::INTEGER); $db->setQuery($query); } elseif ($doDelete === 'all') { - $query = $db->getQuery(true); + $query = $db->createQuery(); $query->delete($db->quoteName('#__user_usergroup_map')) ->whereIn($db->quoteName('user_id'), $userIds); } @@ -798,7 +857,7 @@ public function batchUser($groupId, $userIds, $action) // Assign the users to the group if requested. if (isset($doAssign)) { - $query = $db->getQuery(true); + $query = $db->createQuery(); // First, we need to check if the user is already assigned to a group $query->select($db->quoteName('user_id')) @@ -877,8 +936,8 @@ public function getAssignedGroups($userId = null) $userId = (!empty($userId)) ? $userId : (int) $this->getState('user.id'); if (empty($userId)) { - $result = []; - $form = $this->getForm(); + $result = []; + $form = $this->getForm(); if ($form) { $groupsIDs = $form->getValue('groups'); diff --git a/administrator/components/com_users/src/Model/UsersModel.php b/administrator/components/com_users/src/Model/UsersModel.php index dbb2f31b75a56..a40c754714152 100644 --- a/administrator/components/com_users/src/Model/UsersModel.php +++ b/administrator/components/com_users/src/Model/UsersModel.php @@ -196,7 +196,7 @@ public function getItems() // Get the counts from the database only for the users in the list. $db = $this->getDatabase(); - $query = $db->getQuery(true); + $query = $db->createQuery(); // Join over the group mapping table. $query->select('map.user_id, COUNT(map.group_id) AS group_count') @@ -289,7 +289,7 @@ protected function getListQuery() { // Create a new query object. $db = $this->getDatabase(); - $query = $db->getQuery(true); + $query = $db->createQuery(); // Select the required fields from the table. $query->select( @@ -303,7 +303,7 @@ protected function getListQuery() // Include MFA information if (PluginHelper::isEnabled('multifactorauth')) { - $subQuery = $db->getQuery(true) + $subQuery = $db->createQuery() ->select( [ 'MIN(' . $db->quoteName('user_id') . ') AS ' . $db->quoteName('uid'), @@ -575,7 +575,7 @@ private function buildDateRange($range) $dStart->setTime(0, 0, 0); // Now change the timezone back to UTC. - $tz = new \DateTimeZone('GMT'); + $tz = new \DateTimeZone('UTC'); $dStart->setTimezone($tz); break; case 'never': @@ -597,7 +597,7 @@ private function buildDateRange($range) protected function getUserDisplayedGroups($userId) { $db = $this->getDatabase(); - $query = $db->getQuery(true) + $query = $db->createQuery() ->select($db->quoteName('title')) ->from($db->quoteName('#__usergroups', 'ug')) ->join('LEFT', $db->quoteName('#__user_usergroup_map', 'map') . ' ON (ug.id = map.group_id)') diff --git a/administrator/components/com_users/src/Service/HTML/Users.php b/administrator/components/com_users/src/Service/HTML/Users.php index 83adfbc60a489..a81dd5fe98ba7 100644 --- a/administrator/components/com_users/src/Service/HTML/Users.php +++ b/administrator/components/com_users/src/Service/HTML/Users.php @@ -299,7 +299,7 @@ public function templatestyle($value) } $db = Factory::getDbo(); - $query = $db->getQuery(true) + $query = $db->createQuery() ->select($db->quoteName('title')) ->from($db->quoteName('#__template_styles')) ->where($db->quoteName('id') . ' = :id') @@ -403,7 +403,7 @@ public function editor($value) $db = Factory::getDbo(); $lang = Factory::getLanguage(); - $query = $db->getQuery(true) + $query = $db->createQuery() ->select($db->quoteName('name')) ->from($db->quoteName('#__extensions')) ->where($db->quoteName('element') . ' = :element') diff --git a/administrator/components/com_users/src/Table/MfaTable.php b/administrator/components/com_users/src/Table/MfaTable.php index c6b3fd7c5c10e..bec60ee2f2203 100644 --- a/administrator/components/com_users/src/Table/MfaTable.php +++ b/administrator/components/com_users/src/Table/MfaTable.php @@ -314,7 +314,7 @@ private function switchDefaultRecord(): void * user. */ $db = $this->getDatabase(); - $query = $db->getQuery(true) + $query = $db->createQuery() ->update($db->quoteName('#__user_mfa')) ->set($db->quoteName('default') . ' = 0') ->where($db->quoteName('user_id') . ' = :user_id') @@ -367,7 +367,7 @@ private function afterDelete($pk): void * the `backupcodes` because we might just be regenerating the backup codes. */ $db = $this->getDatabase(); - $query = $db->getQuery(true) + $query = $db->createQuery() ->delete($db->quoteName('#__user_mfa')) ->where($db->quoteName('user_id') . ' = :user_id') ->bind(':user_id', $this->deleteFlags[$pk]['user_id'], ParameterType::INTEGER); @@ -381,7 +381,7 @@ private function afterDelete($pk): void // This was the default record. Promote the next available record to default. if ($this->deleteFlags[$pk]['default']) { $db = $this->getDatabase(); - $query = $db->getQuery(true) + $query = $db->createQuery() ->select($db->quoteName('id')) ->from($db->quoteName('#__user_mfa')) ->where($db->quoteName('user_id') . ' = :user_id') @@ -394,7 +394,7 @@ private function afterDelete($pk): void } $id = array_shift($ids); - $query = $db->getQuery(true) + $query = $db->createQuery() ->update($db->quoteName('#__user_mfa')) ->set($db->quoteName('default') . ' = 1') ->where($db->quoteName('id') . ' = :id') @@ -415,7 +415,7 @@ private function afterDelete($pk): void private function getNumRecords(int $userId): int { $db = $this->getDatabase(); - $query = $db->getQuery(true) + $query = $db->createQuery() ->select('COUNT(*)') ->from($db->quoteName('#__user_mfa')) ->where($db->quoteName('user_id') . ' = :user_id') diff --git a/administrator/components/com_users/src/View/Debuggroup/HtmlView.php b/administrator/components/com_users/src/View/Debuggroup/HtmlView.php index 267231e44defb..a5a8fa3c16580 100644 --- a/administrator/components/com_users/src/View/Debuggroup/HtmlView.php +++ b/administrator/components/com_users/src/View/Debuggroup/HtmlView.php @@ -107,6 +107,11 @@ public function display($tpl = null) $this->filterForm = $model->getFilterForm(); $this->activeFilters = $model->getActiveFilters(); + // Add form control fields + $this->filterForm + ->addControlField('task', '') + ->addControlField('boxchecked', '0'); + $this->addToolbar(); parent::display($tpl); diff --git a/administrator/components/com_users/src/View/Debuguser/HtmlView.php b/administrator/components/com_users/src/View/Debuguser/HtmlView.php index 4c833ca2c364f..a95dee6c62e15 100644 --- a/administrator/components/com_users/src/View/Debuguser/HtmlView.php +++ b/administrator/components/com_users/src/View/Debuguser/HtmlView.php @@ -107,6 +107,11 @@ public function display($tpl = null) $this->filterForm = $model->getFilterForm(); $this->activeFilters = $model->getActiveFilters(); + // Add form control fields + $this->filterForm + ->addControlField('task', '') + ->addControlField('boxchecked', '0'); + $this->addToolbar(); parent::display($tpl); diff --git a/administrator/components/com_users/src/View/Group/HtmlView.php b/administrator/components/com_users/src/View/Group/HtmlView.php index 6e7fed5737c36..b372e7dce8e16 100644 --- a/administrator/components/com_users/src/View/Group/HtmlView.php +++ b/administrator/components/com_users/src/View/Group/HtmlView.php @@ -83,6 +83,10 @@ public function display($tpl = null) throw new GenericDataException(implode("\n", $errors), 500); } + // Add form control fields + $this->form + ->addControlField('task', ''); + $this->addToolbar(); parent::display($tpl); } diff --git a/administrator/components/com_users/src/View/Groups/HtmlView.php b/administrator/components/com_users/src/View/Groups/HtmlView.php index 27eaef554984b..552f7a1447171 100644 --- a/administrator/components/com_users/src/View/Groups/HtmlView.php +++ b/administrator/components/com_users/src/View/Groups/HtmlView.php @@ -87,6 +87,11 @@ public function display($tpl = null) $this->filterForm = $model->getFilterForm(); $this->activeFilters = $model->getActiveFilters(); + // Add form control fields + $this->filterForm + ->addControlField('task', '') + ->addControlField('boxchecked', '0'); + $this->addToolbar(); parent::display($tpl); } diff --git a/administrator/components/com_users/src/View/Level/HtmlView.php b/administrator/components/com_users/src/View/Level/HtmlView.php index 239b653d82c76..597111ad3c0ea 100644 --- a/administrator/components/com_users/src/View/Level/HtmlView.php +++ b/administrator/components/com_users/src/View/Level/HtmlView.php @@ -74,6 +74,10 @@ public function display($tpl = null) throw new GenericDataException(implode("\n", $errors), 500); } + // Add form control fields + $this->form + ->addControlField('task', ''); + $this->addToolbar(); parent::display($tpl); } diff --git a/administrator/components/com_users/src/View/Levels/HtmlView.php b/administrator/components/com_users/src/View/Levels/HtmlView.php index 5ce9a9ff6b535..59177ddabc898 100644 --- a/administrator/components/com_users/src/View/Levels/HtmlView.php +++ b/administrator/components/com_users/src/View/Levels/HtmlView.php @@ -87,6 +87,11 @@ public function display($tpl = null) $this->filterForm = $model->getFilterForm(); $this->activeFilters = $model->getActiveFilters(); + // Add form control fields + $this->filterForm + ->addControlField('task', '') + ->addControlField('boxchecked', '0'); + $this->addToolbar(); parent::display($tpl); } diff --git a/administrator/components/com_users/src/View/Mail/HtmlView.php b/administrator/components/com_users/src/View/Mail/HtmlView.php index 501aacf8a7880..764cf356b0d21 100644 --- a/administrator/components/com_users/src/View/Mail/HtmlView.php +++ b/administrator/components/com_users/src/View/Mail/HtmlView.php @@ -57,6 +57,10 @@ public function display($tpl = null) // Get data from the model $this->form = $model->getForm(); + // Add form control fields + $this->form + ->addControlField('task', ''); + $this->addToolbar(); parent::display($tpl); } diff --git a/administrator/components/com_users/src/View/Note/HtmlView.php b/administrator/components/com_users/src/View/Note/HtmlView.php index aafbaa17fb600..fca605ef56b33 100644 --- a/administrator/components/com_users/src/View/Note/HtmlView.php +++ b/administrator/components/com_users/src/View/Note/HtmlView.php @@ -81,6 +81,10 @@ public function display($tpl = null) throw new GenericDataException(implode("\n", $errors), 500); } + // Add form control fields + $this->form + ->addControlField('task', ''); + parent::display($tpl); $this->addToolbar(); } diff --git a/administrator/components/com_users/src/View/Notes/HtmlView.php b/administrator/components/com_users/src/View/Notes/HtmlView.php index 35d332ac04b85..5589e8481ad52 100644 --- a/administrator/components/com_users/src/View/Notes/HtmlView.php +++ b/administrator/components/com_users/src/View/Notes/HtmlView.php @@ -119,6 +119,11 @@ public function display($tpl = null) $item->cparams = new Registry($item->category_params); } + // Add form control fields + $this->filterForm + ->addControlField('task', '') + ->addControlField('boxchecked', '0'); + $this->addToolbar(); parent::display($tpl); } diff --git a/administrator/components/com_users/src/View/User/HtmlView.php b/administrator/components/com_users/src/View/User/HtmlView.php index a4b00358769df..4db243ef14a65 100644 --- a/administrator/components/com_users/src/View/User/HtmlView.php +++ b/administrator/components/com_users/src/View/User/HtmlView.php @@ -136,6 +136,11 @@ public function display($tpl = null) } } + // Add form control fields + $this->form + ->addControlField('task', '') + ->addControlField('return', Factory::getApplication()->getInput()->getBase64('return', '')); + parent::display($tpl); $this->addToolbar(); @@ -190,6 +195,26 @@ function (Toolbar $childBar) use ($canDo, $isProfile) { $toolbar->cancel('user.cancel'); } + // Check lastvisitDate for allow resend the activation email + $userIsNotActive = !empty($this->item->activation) || \is_null($this->item->lastvisitDate); + + if ($this->item->id > 0 && $userIsNotActive) { + $buttonText = !empty($this->item->activation) + ? Text::_('COM_USERS_USER_ACTIVATE_AND_MAIL') + : Text::_('COM_USERS_USER_ACTIVATION_REMINDER'); + + $toolbar->standardButton('activate', $buttonText) + ->buttonClass('btn activate-send-mail') + ->attributes([ + 'data-option' => 'com_users', + 'data-task' => 'user.active', + 'data-format' => 'json', + 'data-userid' => $this->item->id, + ]) + ->icon('icon-mail') + ->onclick(''); + } + $toolbar->divider(); $toolbar->help('Users:_Edit_Profile'); } diff --git a/administrator/components/com_users/src/View/Users/HtmlView.php b/administrator/components/com_users/src/View/Users/HtmlView.php index d2f819015fcbf..96fbf42af7bf6 100644 --- a/administrator/components/com_users/src/View/Users/HtmlView.php +++ b/administrator/components/com_users/src/View/Users/HtmlView.php @@ -10,14 +10,12 @@ namespace Joomla\Component\Users\Administrator\View\Users; -use Joomla\CMS\Factory; use Joomla\CMS\Helper\ContentHelper; use Joomla\CMS\Language\Text; use Joomla\CMS\MVC\View\HtmlView as BaseHtmlView; use Joomla\CMS\Toolbar\Button\DropdownButton; use Joomla\CMS\Toolbar\ToolbarHelper; use Joomla\Component\Users\Administrator\Model\UsersModel; -use Joomla\Database\DatabaseDriver; // phpcs:disable PSR1.Files.SideEffects \defined('_JEXEC') or die; @@ -79,18 +77,6 @@ class HtmlView extends BaseHtmlView */ protected $canDo; - /** - * An instance of DatabaseDriver. - * - * @var DatabaseDriver - * @since 3.6.3 - * - * @deprecated 4.3 will be removed in 6.0 - * Will be removed without replacement use database from the container instead - * Example: Factory::getContainer()->get(DatabaseInterface::class); - */ - protected $db; - /** * Display the view * @@ -110,7 +96,11 @@ public function display($tpl = null) $this->filterForm = $model->getFilterForm(); $this->activeFilters = $model->getActiveFilters(); $this->canDo = ContentHelper::getActions('com_users'); - $this->db = Factory::getDbo(); + + // Add form control fields + $this->filterForm + ->addControlField('task', '') + ->addControlField('boxchecked', '0'); $this->addToolbar(); parent::display($tpl); diff --git a/administrator/components/com_users/tmpl/captive/select.php b/administrator/components/com_users/tmpl/captive/select.php index e3afe6ef28f05..a062464d23ccb 100644 --- a/administrator/components/com_users/tmpl/captive/select.php +++ b/administrator/components/com_users/tmpl/captive/select.php @@ -14,9 +14,8 @@ use Joomla\CMS\Language\Text; use Joomla\CMS\Router\Route; use Joomla\CMS\Uri\Uri; -use Joomla\Component\Users\Administrator\View\Captive\HtmlView; -/** @var HtmlView $this */ +/** @var \Joomla\Component\Users\Administrator\View\Captive\HtmlView $this */ $shownMethods = []; diff --git a/administrator/components/com_users/tmpl/debuggroup/default.php b/administrator/components/com_users/tmpl/debuggroup/default.php index 105c04627585c..7e8e3a4360e3a 100644 --- a/administrator/components/com_users/tmpl/debuggroup/default.php +++ b/administrator/components/com_users/tmpl/debuggroup/default.php @@ -154,9 +154,7 @@ pagination->getListFooter(); ?> - - - + filterForm->renderControlFields(); ?> diff --git a/administrator/components/com_users/tmpl/debuguser/default.php b/administrator/components/com_users/tmpl/debuguser/default.php index c7af6108f9fe6..b9a831ca10143 100644 --- a/administrator/components/com_users/tmpl/debuguser/default.php +++ b/administrator/components/com_users/tmpl/debuguser/default.php @@ -157,9 +157,7 @@ pagination->getListFooter(); ?> - - - + filterForm->renderControlFields(); ?> diff --git a/administrator/components/com_users/tmpl/group/edit.php b/administrator/components/com_users/tmpl/group/edit.php index 77af501d105ec..4fb32df00674f 100644 --- a/administrator/components/com_users/tmpl/group/edit.php +++ b/administrator/components/com_users/tmpl/group/edit.php @@ -37,6 +37,5 @@ - - + form->renderControlFields(); ?> diff --git a/administrator/components/com_users/tmpl/groups/default.php b/administrator/components/com_users/tmpl/groups/default.php index d016623675712..0384da71b69dc 100644 --- a/administrator/components/com_users/tmpl/groups/default.php +++ b/administrator/components/com_users/tmpl/groups/default.php @@ -137,9 +137,7 @@ - - - + filterForm->renderControlFields(); ?> diff --git a/administrator/components/com_users/tmpl/level/edit.php b/administrator/components/com_users/tmpl/level/edit.php index 60f15b12bcfb6..1ad17237b9c2d 100644 --- a/administrator/components/com_users/tmpl/level/edit.php +++ b/administrator/components/com_users/tmpl/level/edit.php @@ -20,37 +20,18 @@ $wa = $this->getDocument()->getWebAssetManager(); $wa->useScript('keepalive') ->useScript('form.validate'); - ?>
- 'details', 'recall' => true, 'breakpoint' => 768]); ?> - - -
- -
-
- form->getLabel('title'); ?> -
-
- form->getInput('title'); ?> -
-
-
- - - + 'groups', 'recall' => true, 'breakpoint' => 768]); ?> + + form->renderField('title'); ?>
-
- item->rules, true); ?> -
+ item->rules, true); ?>
- - - + form->renderControlFields(); ?>
diff --git a/administrator/components/com_users/tmpl/levels/default.php b/administrator/components/com_users/tmpl/levels/default.php index baf162c273f81..f59078ab215f0 100644 --- a/administrator/components/com_users/tmpl/levels/default.php +++ b/administrator/components/com_users/tmpl/levels/default.php @@ -136,9 +136,8 @@ pagination->getListFooter(); ?> - - - + + filterForm->renderControlFields(); ?> diff --git a/administrator/components/com_users/tmpl/mail/default.php b/administrator/components/com_users/tmpl/mail/default.php index 212e57bc93e32..3e5bcb81e948f 100644 --- a/administrator/components/com_users/tmpl/mail/default.php +++ b/administrator/components/com_users/tmpl/mail/default.php @@ -11,7 +11,6 @@ defined('_JEXEC') or die; use Joomla\CMS\Component\ComponentHelper; -use Joomla\CMS\HTML\HTMLHelper; use Joomla\CMS\Language\Text; use Joomla\CMS\Router\Route; @@ -57,6 +56,6 @@ form->renderField('group'); ?> - - + + form->renderControlFields(); ?> diff --git a/administrator/components/com_users/tmpl/method/backupcodes.php b/administrator/components/com_users/tmpl/method/backupcodes.php index 56cb30780d3dc..942d2b9c63e34 100644 --- a/administrator/components/com_users/tmpl/method/backupcodes.php +++ b/administrator/components/com_users/tmpl/method/backupcodes.php @@ -15,9 +15,8 @@ use Joomla\CMS\HTML\HTMLHelper; use Joomla\CMS\Language\Text; use Joomla\CMS\Router\Route; -use Joomla\Component\Users\Administrator\View\Method\HtmlView; -/** @var HtmlView $this */ +/** @var \Joomla\Component\Users\Administrator\View\Method\HtmlView $this */ HTMLHelper::_('bootstrap.tooltip', '.hasTooltip'); diff --git a/administrator/components/com_users/tmpl/method/edit.php b/administrator/components/com_users/tmpl/method/edit.php index 74a86977a401a..5b8cd6866a4d1 100644 --- a/administrator/components/com_users/tmpl/method/edit.php +++ b/administrator/components/com_users/tmpl/method/edit.php @@ -14,10 +14,9 @@ use Joomla\CMS\HTML\HTMLHelper; use Joomla\CMS\Language\Text; use Joomla\CMS\Router\Route; -use Joomla\Component\Users\Administrator\View\Method\HtmlView; use Joomla\Utilities\ArrayHelper; -/** @var HtmlView $this */ +/** @var \Joomla\Component\Users\Administrator\View\Method\HtmlView $this */ $cancelURL = Route::_('index.php?option=com_users&task=methods.display&user_id=' . $this->user->id); diff --git a/administrator/components/com_users/tmpl/methods/default.php b/administrator/components/com_users/tmpl/methods/default.php index f9a325a3436a2..c1edba9148dbe 100644 --- a/administrator/components/com_users/tmpl/methods/default.php +++ b/administrator/components/com_users/tmpl/methods/default.php @@ -14,9 +14,8 @@ use Joomla\CMS\Factory; use Joomla\CMS\Language\Text; use Joomla\CMS\Router\Route; -use Joomla\Component\Users\Administrator\View\Methods\HtmlView; -/** @var HtmlView $this */ +/** @var \Joomla\Component\Users\Administrator\View\Methods\HtmlView $this */ ?>
diff --git a/administrator/components/com_users/tmpl/methods/firsttime.php b/administrator/components/com_users/tmpl/methods/firsttime.php index 58c474bb12076..8c1360697f3c8 100644 --- a/administrator/components/com_users/tmpl/methods/firsttime.php +++ b/administrator/components/com_users/tmpl/methods/firsttime.php @@ -14,9 +14,8 @@ use Joomla\CMS\Factory; use Joomla\CMS\Language\Text; use Joomla\CMS\Router\Route; -use Joomla\Component\Users\Administrator\View\Methods\HtmlView; -/** @var HtmlView $this */ +/** @var \Joomla\Component\Users\Administrator\View\Methods\HtmlView $this */ $headingLevel = 2; ?> diff --git a/administrator/components/com_users/tmpl/methods/list.php b/administrator/components/com_users/tmpl/methods/list.php index 889209626334b..557fb28a7a37b 100644 --- a/administrator/components/com_users/tmpl/methods/list.php +++ b/administrator/components/com_users/tmpl/methods/list.php @@ -18,9 +18,8 @@ use Joomla\CMS\Uri\Uri; use Joomla\Component\Users\Administrator\Helper\Mfa as MfaHelper; use Joomla\Component\Users\Administrator\Model\MethodsModel; -use Joomla\Component\Users\Administrator\View\Methods\HtmlView; -/** @var HtmlView $this */ +/** @var \Joomla\Component\Users\Administrator\View\Methods\HtmlView $this */ HTMLHelper::_('bootstrap.tooltip', '.hasTooltip'); diff --git a/administrator/components/com_users/tmpl/note/edit.php b/administrator/components/com_users/tmpl/note/edit.php index 9387a31e49929..2cd299cbbca14 100644 --- a/administrator/components/com_users/tmpl/note/edit.php +++ b/administrator/components/com_users/tmpl/note/edit.php @@ -10,7 +10,6 @@ defined('_JEXEC') or die; -use Joomla\CMS\HTML\HTMLHelper; use Joomla\CMS\Language\Text; use Joomla\CMS\Router\Route; @@ -35,13 +34,13 @@ form->renderField('review_time'); ?> form->renderField('version_note'); ?> - - - + form->renderControlFields(); ?>
form->renderField('body'); ?>
+ +
diff --git a/administrator/components/com_users/tmpl/notes/default.php b/administrator/components/com_users/tmpl/notes/default.php index d1665b2b956bc..81b016c4df119 100644 --- a/administrator/components/com_users/tmpl/notes/default.php +++ b/administrator/components/com_users/tmpl/notes/default.php @@ -119,11 +119,7 @@ -
- - - -
+ filterForm->renderControlFields(); ?> diff --git a/administrator/components/com_users/tmpl/notes/emptystate.php b/administrator/components/com_users/tmpl/notes/emptystate.php index 87792bafa261d..9ca2946029231 100644 --- a/administrator/components/com_users/tmpl/notes/emptystate.php +++ b/administrator/components/com_users/tmpl/notes/emptystate.php @@ -19,6 +19,8 @@ 'formURL' => 'index.php?option=com_users&view=notes', 'helpURL' => 'https://docs.joomla.org/Special:MyLanguage/Help5.x:User_Notes', 'icon' => 'icon-users user', + + 'controlFields' => $this->filterForm->renderControlFields(), ]; if ($this->getCurrentUser()->authorise('core.create', 'com_users')) { diff --git a/administrator/components/com_users/tmpl/user/edit.php b/administrator/components/com_users/tmpl/user/edit.php index 69f400e57cf8e..8dc949474038b 100644 --- a/administrator/components/com_users/tmpl/user/edit.php +++ b/administrator/components/com_users/tmpl/user/edit.php @@ -21,7 +21,8 @@ /** @var Joomla\CMS\WebAsset\WebAssetManager $wa */ $wa = $this->getDocument()->getWebAssetManager(); $wa->useScript('keepalive') - ->useScript('form.validate'); + ->useScript('form.validate') + ->useScript('com_users.activate-user-send-email'); $input = Factory::getApplication()->getInput(); @@ -76,7 +77,5 @@ - - - + form->renderControlFields(); ?> diff --git a/administrator/components/com_users/tmpl/user/edit_groups.php b/administrator/components/com_users/tmpl/user/edit_groups.php index 4525c00d0dd08..24f8aa377d40d 100644 --- a/administrator/components/com_users/tmpl/user/edit_groups.php +++ b/administrator/components/com_users/tmpl/user/edit_groups.php @@ -11,8 +11,7 @@ defined('_JEXEC') or die; use Joomla\CMS\HTML\HTMLHelper; -use Joomla\Component\Users\Administrator\View\User\HtmlView; -/** @var HtmlView $this */ +/** @var \Joomla\Component\Users\Administrator\View\User\HtmlView $this */ echo HTMLHelper::_('access.usergroups', 'jform[groups]', $this->groups, true); diff --git a/administrator/components/com_users/tmpl/users/default.php b/administrator/components/com_users/tmpl/users/default.php index b02e1b66fe5ee..3d2c8400f2d9c 100644 --- a/administrator/components/com_users/tmpl/users/default.php +++ b/administrator/components/com_users/tmpl/users/default.php @@ -220,9 +220,7 @@ - - - + filterForm->renderControlFields(); ?> diff --git a/administrator/components/com_workflow/src/Controller/DisplayController.php b/administrator/components/com_workflow/src/Controller/DisplayController.php index d78369db70b8d..030e0aad3ccaf 100644 --- a/administrator/components/com_workflow/src/Controller/DisplayController.php +++ b/administrator/components/com_workflow/src/Controller/DisplayController.php @@ -10,13 +10,13 @@ namespace Joomla\Component\Workflow\Administrator\Controller; +use Doctrine\Inflector\InflectorFactory; use Joomla\CMS\Application\CMSApplication; use Joomla\CMS\Language\Text; use Joomla\CMS\MVC\Controller\BaseController; use Joomla\CMS\MVC\Factory\MVCFactoryInterface; use Joomla\CMS\Router\Route; use Joomla\Input\Input; -use Joomla\String\Inflector; // phpcs:disable PSR1.Files.SideEffects \defined('_JEXEC') or die; @@ -110,7 +110,9 @@ public function display($cachable = false, $urlparams = []) $this->setMessage(Text::sprintf('JLIB_APPLICATION_ERROR_UNHELD_ID', $id), 'error'); } - $url = 'index.php?option=com_workflow&view=' . Inflector::pluralize($view) . '&extension=' . $this->input->getCmd('extension'); + $inflector = InflectorFactory::create()->build(); + + $url = 'index.php?option=com_workflow&view=' . $inflector->pluralize($view) . '&extension=' . $this->input->getCmd('extension'); $this->setRedirect(Route::_($url, false)); diff --git a/administrator/components/com_workflow/src/Controller/WorkflowController.php b/administrator/components/com_workflow/src/Controller/WorkflowController.php index 077e43c0445ae..af0c52bfdfb12 100644 --- a/administrator/components/com_workflow/src/Controller/WorkflowController.php +++ b/administrator/components/com_workflow/src/Controller/WorkflowController.php @@ -184,7 +184,7 @@ public function postSaveHook(BaseDatabaseModel $model, $validData = []) // @todo Moves queries out of the controller. $db = $model->getDbo(); - $query = $db->getQuery(true); + $query = $db->createQuery(); $query->select('*') ->from($db->quoteName('#__workflow_stages')) @@ -214,7 +214,7 @@ public function postSaveHook(BaseDatabaseModel $model, $validData = []) $mapping[$oldID] = (int) $table->id; } - $query = $db->getQuery(true) + $query = $db->createQuery() ->select('*') ->from($db->quoteName('#__workflow_transitions')) ->where($db->quoteName('workflow_id') . ' = :id') diff --git a/administrator/components/com_workflow/src/Field/ComponentsWorkflowField.php b/administrator/components/com_workflow/src/Field/ComponentsWorkflowField.php index cd4ed6361082a..8b520e005b55d 100644 --- a/administrator/components/com_workflow/src/Field/ComponentsWorkflowField.php +++ b/administrator/components/com_workflow/src/Field/ComponentsWorkflowField.php @@ -48,7 +48,7 @@ protected function getOptions() // Initialise variable. $db = $this->getDatabase(); - $query = $db->getQuery(true) + $query = $db->createQuery() ->select('DISTINCT a.name AS text, a.element AS value') ->from('#__extensions as a') ->where('a.enabled >= 1') diff --git a/administrator/components/com_workflow/src/Model/StagesModel.php b/administrator/components/com_workflow/src/Model/StagesModel.php index bd26a985bc8ea..869a8e27f1e48 100644 --- a/administrator/components/com_workflow/src/Model/StagesModel.php +++ b/administrator/components/com_workflow/src/Model/StagesModel.php @@ -130,7 +130,7 @@ public function getTable($type = 'Stage', $prefix = 'Administrator', $config = [ public function getListQuery() { $db = $this->getDatabase(); - $query = $db->getQuery(true); + $query = $db->createQuery(); $query ->select( diff --git a/administrator/components/com_workflow/src/Model/TransitionModel.php b/administrator/components/com_workflow/src/Model/TransitionModel.php index e5b26901f64c2..7c1a3b7a6601c 100644 --- a/administrator/components/com_workflow/src/Model/TransitionModel.php +++ b/administrator/components/com_workflow/src/Model/TransitionModel.php @@ -105,7 +105,7 @@ protected function canEditState($record) * * @param integer $pk The id of the primary key. * - * @return \Joomla\CMS\Object\CMSObject|boolean Object on success, false on failure. + * @return \stdClass|boolean Object on success, false on failure. * * @since 4.0.0 */ diff --git a/administrator/components/com_workflow/src/Model/TransitionsModel.php b/administrator/components/com_workflow/src/Model/TransitionsModel.php index 7a3171c9cc6ce..28abaeffd5e89 100644 --- a/administrator/components/com_workflow/src/Model/TransitionsModel.php +++ b/administrator/components/com_workflow/src/Model/TransitionsModel.php @@ -131,7 +131,7 @@ protected function getReorderConditions($table) public function getListQuery() { $db = $this->getDatabase(); - $query = $db->getQuery(true); + $query = $db->createQuery(); $query ->select( diff --git a/administrator/components/com_workflow/src/Model/WorkflowsModel.php b/administrator/components/com_workflow/src/Model/WorkflowsModel.php index 1a2f14a0a1585..a660ad10d12cd 100644 --- a/administrator/components/com_workflow/src/Model/WorkflowsModel.php +++ b/administrator/components/com_workflow/src/Model/WorkflowsModel.php @@ -165,7 +165,7 @@ protected function countItems($items) $item->count_transitions = 0; } - $query = $db->getQuery(true); + $query = $db->createQuery(); $query->select( [ @@ -180,7 +180,7 @@ protected function countItems($items) $status = $db->setQuery($query)->loadObjectList('workflow_id'); - $query = $db->getQuery(true); + $query = $db->createQuery(); $query->select( [ @@ -216,7 +216,7 @@ protected function countItems($items) public function getListQuery() { $db = $this->getDatabase(); - $query = $db->getQuery(true); + $query = $db->createQuery(); $query->select( [ diff --git a/administrator/components/com_workflow/src/Table/StageTable.php b/administrator/components/com_workflow/src/Table/StageTable.php index 9392b80750140..f3fa0738d597d 100644 --- a/administrator/components/com_workflow/src/Table/StageTable.php +++ b/administrator/components/com_workflow/src/Table/StageTable.php @@ -67,7 +67,7 @@ public function delete($pk = null) $app = Factory::getApplication(); $pk = (int) $pk; - $query = $db->getQuery(true) + $query = $db->createQuery() ->select($db->quoteName('default')) ->from($db->quoteName('#__workflow_stages')) ->where($db->quoteName('id') . ' = :id') @@ -82,7 +82,7 @@ public function delete($pk = null) } try { - $query = $db->getQuery(true) + $query = $db->createQuery() ->delete($db->quoteName('#__workflow_transitions')) ->where( [ @@ -135,7 +135,7 @@ public function check() } } else { $db = $this->getDatabase(); - $query = $db->getQuery(true); + $query = $db->createQuery(); $query ->select($db->quoteName('id')) diff --git a/administrator/components/com_workflow/src/Table/WorkflowTable.php b/administrator/components/com_workflow/src/Table/WorkflowTable.php index 58d634d1b5b15..e0b269cb3bf7f 100644 --- a/administrator/components/com_workflow/src/Table/WorkflowTable.php +++ b/administrator/components/com_workflow/src/Table/WorkflowTable.php @@ -73,7 +73,7 @@ public function delete($pk = null) $pk = (int) $pk; // Gets the workflow information that is going to be deleted. - $query = $db->getQuery(true) + $query = $db->createQuery() ->select($db->quoteName('default')) ->from($db->quoteName('#__workflows')) ->where($db->quoteName('id') . ' = :id') @@ -89,14 +89,14 @@ public function delete($pk = null) // Delete the workflow states, then transitions from all tables. try { - $query = $db->getQuery(true) + $query = $db->createQuery() ->delete($db->quoteName('#__workflow_stages')) ->where($db->quoteName('workflow_id') . ' = :id') ->bind(':id', $pk, ParameterType::INTEGER); $db->setQuery($query)->execute(); - $query = $db->getQuery(true) + $query = $db->createQuery() ->delete($db->quoteName('#__workflow_transitions')) ->where($db->quoteName('workflow_id') . ' = :id') ->bind(':id', $pk, ParameterType::INTEGER); @@ -143,7 +143,7 @@ public function check() } } else { $db = $this->getDatabase(); - $query = $db->getQuery(true); + $query = $db->createQuery(); $query ->select($db->quoteName('id')) @@ -301,7 +301,7 @@ protected function _getAssetParentId(?Table $table = null, $id = null) // Build the query to get the asset id for the parent category. $db = $this->getDatabase(); - $query = $db->getQuery(true) + $query = $db->createQuery() ->select($db->quoteName('id')) ->from($db->quoteName('#__assets')) ->where($db->quoteName('name') . ' = :extension') diff --git a/administrator/components/com_workflow/src/View/Stage/HtmlView.php b/administrator/components/com_workflow/src/View/Stage/HtmlView.php index 98dfda3cc8229..60b1c9d9b68e3 100644 --- a/administrator/components/com_workflow/src/View/Stage/HtmlView.php +++ b/administrator/components/com_workflow/src/View/Stage/HtmlView.php @@ -100,6 +100,10 @@ public function display($tpl = null) $this->section = array_shift($parts); } + // Add form control fields + $this->form + ->addControlField('task', 'stage.edit'); + // Set the toolbar $this->addToolbar(); diff --git a/administrator/components/com_workflow/src/View/Stages/HtmlView.php b/administrator/components/com_workflow/src/View/Stages/HtmlView.php index 151303cfa9e68..affb9274f84fd 100644 --- a/administrator/components/com_workflow/src/View/Stages/HtmlView.php +++ b/administrator/components/com_workflow/src/View/Stages/HtmlView.php @@ -150,6 +150,13 @@ public function display($tpl = null) $this->section = array_shift($parts); } + // Add form control fields + $this->filterForm + ->addControlField('task', '') + ->addControlField('boxchecked', '0') + ->addControlField('workflow_id', $this->workflowID) + ->addControlField('extension', $this->extension); + $this->addToolbar(); parent::display($tpl); diff --git a/administrator/components/com_workflow/src/View/Transition/HtmlView.php b/administrator/components/com_workflow/src/View/Transition/HtmlView.php index 02be9638117d2..5e4c4a04ab5e8 100644 --- a/administrator/components/com_workflow/src/View/Transition/HtmlView.php +++ b/administrator/components/com_workflow/src/View/Transition/HtmlView.php @@ -65,7 +65,7 @@ class HtmlView extends BaseHtmlView /** * The application input object. * - * @var \Joomla\CMS\Input\Input + * @var \Joomla\Input\Input * @since 4.0.0 */ protected $input; @@ -138,6 +138,10 @@ public function display($tpl = null) // Get the ID of workflow $this->workflowID = $this->input->getCmd("workflow_id"); + // Add form control fields + $this->form + ->addControlField('task', 'transition.edit'); + // Set the toolbar $this->addToolbar(); diff --git a/administrator/components/com_workflow/src/View/Transitions/HtmlView.php b/administrator/components/com_workflow/src/View/Transitions/HtmlView.php index aeb0ddbef80e5..5777c7624ba5d 100644 --- a/administrator/components/com_workflow/src/View/Transitions/HtmlView.php +++ b/administrator/components/com_workflow/src/View/Transitions/HtmlView.php @@ -143,6 +143,13 @@ public function display($tpl = null) $this->section = array_shift($parts); } + // Add form control fields + $this->filterForm + ->addControlField('task', '') + ->addControlField('boxchecked', '0') + ->addControlField('workflow_id', $this->workflowID) + ->addControlField('extension', $this->extension); + $this->addToolbar(); parent::display($tpl); diff --git a/administrator/components/com_workflow/src/View/Workflow/HtmlView.php b/administrator/components/com_workflow/src/View/Workflow/HtmlView.php index 30ff34caddfee..21cb043217a1b 100644 --- a/administrator/components/com_workflow/src/View/Workflow/HtmlView.php +++ b/administrator/components/com_workflow/src/View/Workflow/HtmlView.php @@ -104,6 +104,10 @@ public function display($tpl = null) $this->section = array_shift($parts); } + // Add form control fields + $this->form + ->addControlField('task', 'workflow.edit'); + // Set the toolbar $this->addToolbar(); diff --git a/administrator/components/com_workflow/src/View/Workflows/HtmlView.php b/administrator/components/com_workflow/src/View/Workflows/HtmlView.php index adf2797c1959d..a79d712460a92 100644 --- a/administrator/components/com_workflow/src/View/Workflows/HtmlView.php +++ b/administrator/components/com_workflow/src/View/Workflows/HtmlView.php @@ -123,6 +123,11 @@ public function display($tpl = null) $this->section = array_shift($parts); } + // Add form control fields + $this->filterForm + ->addControlField('task', '') + ->addControlField('boxchecked', '0'); + $this->addToolbar(); parent::display($tpl); diff --git a/administrator/components/com_workflow/tmpl/stage/edit.php b/administrator/components/com_workflow/tmpl/stage/edit.php index 37aaaf22b4dac..83eae9b3757a6 100644 --- a/administrator/components/com_workflow/tmpl/stage/edit.php +++ b/administrator/components/com_workflow/tmpl/stage/edit.php @@ -85,7 +85,7 @@ form->getInput('workflow_id'); ?> - - + + form->renderControlFields(); ?> diff --git a/administrator/components/com_workflow/tmpl/stages/default.php b/administrator/components/com_workflow/tmpl/stages/default.php index c9a053226c9b1..22ba1d112bf35 100644 --- a/administrator/components/com_workflow/tmpl/stages/default.php +++ b/administrator/components/com_workflow/tmpl/stages/default.php @@ -149,11 +149,8 @@ pagination->getListFooter(); ?> - - - - - + + filterForm->renderControlFields(); ?> diff --git a/administrator/components/com_workflow/tmpl/transition/edit.php b/administrator/components/com_workflow/tmpl/transition/edit.php index 27e39dfb63392..10b3e7f6db664 100644 --- a/administrator/components/com_workflow/tmpl/transition/edit.php +++ b/administrator/components/com_workflow/tmpl/transition/edit.php @@ -68,6 +68,6 @@ form->getInput('workflow_id'); ?> - - + + form->renderControlFields(); ?> diff --git a/administrator/components/com_workflow/tmpl/transitions/default.php b/administrator/components/com_workflow/tmpl/transitions/default.php index 4f5967a2e040a..c416ff7e2acfc 100644 --- a/administrator/components/com_workflow/tmpl/transitions/default.php +++ b/administrator/components/com_workflow/tmpl/transitions/default.php @@ -156,11 +156,8 @@ pagination->getListFooter(); ?> - - - - - + + filterForm->renderControlFields(); ?> diff --git a/administrator/components/com_workflow/tmpl/workflow/edit.php b/administrator/components/com_workflow/tmpl/workflow/edit.php index 5ba15fef7dd43..8c0e2a8ae1d0a 100644 --- a/administrator/components/com_workflow/tmpl/workflow/edit.php +++ b/administrator/components/com_workflow/tmpl/workflow/edit.php @@ -87,6 +87,6 @@ form->getInput('extension'); ?> - - + + form->renderControlFields(); ?> diff --git a/administrator/components/com_workflow/tmpl/workflows/default.php b/administrator/components/com_workflow/tmpl/workflows/default.php index 6409e3e6e1e5e..1412a90d2c9fb 100644 --- a/administrator/components/com_workflow/tmpl/workflows/default.php +++ b/administrator/components/com_workflow/tmpl/workflows/default.php @@ -184,9 +184,8 @@ pagination->getListFooter(); ?> - - - + + filterForm->renderControlFields(); ?> diff --git a/administrator/index.php b/administrator/index.php index 480d1fce34f93..50e10b63f495a 100644 --- a/administrator/index.php +++ b/administrator/index.php @@ -10,7 +10,7 @@ // NOTE: This file should remain compatible with PHP 5.2 to allow us to run our PHP minimum check and show a friendly error message // Define the application's minimum supported PHP version as a constant so it can be referenced within the application. -\define('JOOMLA_MINIMUM_PHP', '8.1.0'); +\define('JOOMLA_MINIMUM_PHP', '8.3.0'); if (version_compare(PHP_VERSION, JOOMLA_MINIMUM_PHP, '<')) { die( diff --git a/administrator/language/en-GB/com_cpanel.ini b/administrator/language/en-GB/com_cpanel.ini index 819dc30fd0f70..7d591c800bd23 100644 --- a/administrator/language/en-GB/com_cpanel.ini +++ b/administrator/language/en-GB/com_cpanel.ini @@ -30,6 +30,6 @@ COM_CPANEL_MSG_TEXTFILTER3919_TITLE="Updated Text Filter Recommendations" COM_CPANEL_TITLE_SYSTEM_PANEL="System Panel" COM_CPANEL_UNPUBLISH_MODULE_ERROR="Error unpublishing the module" COM_CPANEL_UNPUBLISH_MODULE_SUCCESS="Module unpublished" -COM_CPANEL_WELCOME_BEGINNERS_MESSAGE="

Community resources are available for new users.

" +COM_CPANEL_WELCOME_BEGINNERS_MESSAGE="

Community resources are available for new users.

" COM_CPANEL_WELCOME_BEGINNERS_TITLE="Welcome to Joomla!" COM_CPANEL_XML_DESCRIPTION="Home Dashboard component" diff --git a/administrator/language/en-GB/com_fields.ini b/administrator/language/en-GB/com_fields.ini index 1799bf0d9d165..d2f141ab70b13 100644 --- a/administrator/language/en-GB/com_fields.ini +++ b/administrator/language/en-GB/com_fields.ini @@ -21,8 +21,6 @@ COM_FIELDS_FIELD_EDITABLE_IN_BOTH="Both" COM_FIELDS_FIELD_EDITABLE_IN_LABEL="Editable In" COM_FIELDS_FIELD_EDITABLE_IN_SITE="Site" COM_FIELDS_FIELD_FORM_EDIT="Edit Field" -; The following string is deprecated and will be removed with 6.0 -COM_FIELDS_FIELD_FORM_LAYOUT_LABEL="Layout" COM_FIELDS_FIELD_FORM_NEW="New Field" COM_FIELDS_FIELD_FORMOPTIONS_HEADING="Form Options" COM_FIELDS_FIELD_GROUP_LABEL="Field Group" diff --git a/administrator/language/en-GB/com_finder.ini b/administrator/language/en-GB/com_finder.ini index 279c2762a6f23..83b699dbb5c0e 100644 --- a/administrator/language/en-GB/com_finder.ini +++ b/administrator/language/en-GB/com_finder.ini @@ -19,8 +19,6 @@ COM_FINDER_CONFIG_FILTER_NUMERICS_LABEL="Filter Numeric Terms" COM_FINDER_CONFIG_GATHER_SEARCH_STATISTICS_LABEL="Gather Search Statistics" COM_FINDER_CONFIG_HIGHLIGHT_CONTENT_SEARCH_TERMS_DESC="For performance reasons, this will not highlight more than 10 different terms in the search results." COM_FINDER_CONFIG_HIGHLIGHT_CONTENT_SEARCH_TERMS_LABEL="Highlight Search Terms" -; deprecated will be removed in 6.0 -COM_FINDER_CONFIG_HILIGHT_CONTENT_SEARCH_TERMS_LABEL="Highlight Search Terms" COM_FINDER_CONFIG_IMAGE_CLASS_LABEL="Image Class" COM_FINDER_CONFIG_LANGUAGE_DEFAULT_DEFAULT_LANGUAGE="Default Site Language" COM_FINDER_CONFIG_LANGUAGE_DEFAULT_DESC="Set the language to be used for non-multilingual sites or content marked as \"All\"." diff --git a/administrator/language/en-GB/com_joomlaupdate.ini b/administrator/language/en-GB/com_joomlaupdate.ini index 7dd0e82b9fef9..a528b63463727 100644 --- a/administrator/language/en-GB/com_joomlaupdate.ini +++ b/administrator/language/en-GB/com_joomlaupdate.ini @@ -29,8 +29,6 @@ COM_JOOMLAUPDATE_CONFIG_UPDATESOURCE_CUSTOM_ERROR="The custom URL field is empty COM_JOOMLAUPDATE_CONFIG_UPDATESOURCE_DEFAULT="Default" COM_JOOMLAUPDATE_CONFIG_UPDATESOURCE_LABEL="Update Channel" COM_JOOMLAUPDATE_CONFIG_UPDATESOURCE_NEXT="Joomla Next" -; Deprecated, will be removed with 6.0 -COM_JOOMLAUPDATE_CONFIG_UPDATESOURCE_TESTING="Testing" COM_JOOMLAUPDATE_CONFIG_UPDATE_LAST_CHECK_DESC="The last time the automated updates server could reach this site. If this date is too old, something is wrong with the automated updates and you should re-initiate the process by re-saving the configuration." COM_JOOMLAUPDATE_CONFIG_UPDATE_LAST_CHECK_LABEL="Last Checked" COM_JOOMLAUPDATE_CONFIG_UPDATE_TOKEN_DESC="This is the update token that this site uses to authenticate with the Joomla Automated Updates server. It is used to ensure that only your site can update itself." @@ -216,10 +214,8 @@ COM_JOOMLAUPDATE_VIEW_DEFAULT_TAB_PRE_UPDATE_CHECK="Pre-Update Check" COM_JOOMLAUPDATE_VIEW_DEFAULT_TAB_UPLOAD="Upload & Update" COM_JOOMLAUPDATE_VIEW_DEFAULT_UPDATEFOUND="A Joomla update was found." COM_JOOMLAUPDATE_VIEW_DEFAULT_UPDATES_INFO_CUSTOM="You are on the "%s" update channel. This is not an official Joomla update channel." -COM_JOOMLAUPDATE_VIEW_DEFAULT_UPDATES_INFO_DEFAULT="You are on the "%s" update channel. Through this channel you'll receive notifications for all updates of the current Joomla release (5.x)" -COM_JOOMLAUPDATE_VIEW_DEFAULT_UPDATES_INFO_NEXT="You are on the "%s" update channel. Through this channel you will be notified when the future major release (6.x) will be available. Before upgrading to 6.x you'll need to assess its compatibility with your environment. You will not be notified about updates of the current Joomla release (5.x)." -; Deprecated, will be removed with 6.0 -COM_JOOMLAUPDATE_VIEW_DEFAULT_UPDATES_INFO_TESTING="You are on the "%s" update channel. This channel is designed for testing new releases and fixes in Joomla.
It is only intended for JBS (Joomla Bug Squad™) members and others within the Joomla community who are testing. Do not use this setting on a production site." +COM_JOOMLAUPDATE_VIEW_DEFAULT_UPDATES_INFO_DEFAULT="You are on the "%s" update channel. Through this channel you'll receive notifications for all updates of the current Joomla release (6.x)" +COM_JOOMLAUPDATE_VIEW_DEFAULT_UPDATES_INFO_NEXT="You are on the "%s" update channel. Through this channel you will be notified when the future major release (7.x) will be available. Before upgrading to 7.x you'll need to assess its compatibility with your environment. You will not be notified about updates of the current Joomla release (6.x)." COM_JOOMLAUPDATE_VIEW_DEFAULT_UPDATE_NOTICE="Before you update Joomla, ensure that the installed extensions are available for the new Joomla version.
You are strongly advised to make a backup of your site's files and database before you start updating." COM_JOOMLAUPDATE_VIEW_DEFAULT_UPLOAD_INTRO="You can use this feature to update Joomla if your server is behind a firewall or otherwise unable to contact the update servers. First download the Joomla Update Package in ZIP format from the official Joomla download page. Then use the fields below to upload and install it." COM_JOOMLAUPDATE_VIEW_UPDATE_BYTESEXTRACTED="Bytes extracted" @@ -253,11 +249,7 @@ INSTL_EXTENSION_AVAILABLE="%s Available" INSTL_FILE_UPLOADS="File Uploads" INSTL_JSON_SUPPORT_AVAILABLE="JSON Support" INSTL_MB_LANGUAGE_IS_DEFAULT="MB Language is Default" -; Deprecated, will be removed with 6.0 -INSTL_MB_STRING_OVERLOAD_OFF="MB String Overload Off" INSTL_NOTICEMBLANGNOTDEFAULT="PHP mbstring language is not set to neutral. This can be set locally by entering php_value mbstring.language neutral in your .htaccess file." -; Deprecated, will be removed with 6.0 -INSTL_NOTICEMBSTRINGOVERLOAD="PHP mbstring function overload is set. This can be turned off locally by entering php_value mbstring.func_overload 0 in your .htaccess file." INSTL_OUTPUT_BUFFERING="Output Buffering" INSTL_PARSE_INI_FILE_AVAILABLE="INI Parser Support" INSTL_PHP_VERSION_NEWER="PHP Version >= %s" diff --git a/administrator/language/en-GB/com_menus.ini b/administrator/language/en-GB/com_menus.ini index 05210e29cdcc2..a0e0baed6e4af 100644 --- a/administrator/language/en-GB/com_menus.ini +++ b/administrator/language/en-GB/com_menus.ini @@ -176,8 +176,6 @@ COM_MENUS_SELECT_A_MENUITEM="Select a Menu Item" COM_MENUS_SELECT_MENU="- Select Menu -" COM_MENUS_SELECT_MENU_FILTER="Select Menu" COM_MENUS_SELECT_MENU_FILTER_NOT_TRASHED="Filter the list by a state other than trashed or clear the filter." -; Deprecated, will be removed with 6.0 -COM_MENUS_SELECT_MENU_FIRST="To use batch processing, please first select a Menu in the manager." COM_MENUS_SELECT_MENU_FIRST_EXPORT="To use export, please first select a valid Menu in the manager." COM_MENUS_SUBMENU_ITEMS="Menu Items" COM_MENUS_SUBMENU_MENUS="Menus" diff --git a/administrator/language/en-GB/com_scheduler.ini b/administrator/language/en-GB/com_scheduler.ini index 6b37b6c1d272d..23083dd1dd859 100644 --- a/administrator/language/en-GB/com_scheduler.ini +++ b/administrator/language/en-GB/com_scheduler.ini @@ -127,7 +127,7 @@ COM_SCHEDULER_OPTION_EXECUTION_MANUAL_LABEL="Manual Execution" COM_SCHEDULER_OPTION_ORPHANED_HIDE="Hide Orphaned" COM_SCHEDULER_OPTION_ORPHANED_ONLY="Only Orphaned" COM_SCHEDULER_OPTION_ORPHANED_SHOW="Show Orphaned" -COM_SCHEDULER_PERMISSION_TESTRUN="Test task" +COM_SCHEDULER_PERMISSION_TESTRUN="Run Manually" COM_SCHEDULER_ROUTINE_LOG_PREFIX="Task> " COM_SCHEDULER_RUNNING_SINCE="Running since %s" COM_SCHEDULER_SCHEDULER="Scheduler" @@ -158,15 +158,15 @@ COM_SCHEDULER_TASK_TIMES_DESC="Times descending" COM_SCHEDULER_TASK_TYPE="Task Type" COM_SCHEDULER_TASK_TYPE_ASC="Task Type ascending" COM_SCHEDULER_TASK_TYPE_DESC="Task Type descending" -COM_SCHEDULER_TEST_RUN="Run Test" +COM_SCHEDULER_TEST_RUN="Run Task" COM_SCHEDULER_TEST_RUN_DURATION="Duration: %s seconds" COM_SCHEDULER_TEST_RUN_OUTPUT="Output:
%s" COM_SCHEDULER_TEST_RUN_STATUS_COMPLETED="Status: Completed" COM_SCHEDULER_TEST_RUN_STATUS_STARTED="Status: Started" COM_SCHEDULER_TEST_RUN_STATUS_TERMINATED="Status: Terminated" COM_SCHEDULER_TEST_RUN_TASK="Task: \"%s\"" -COM_SCHEDULER_TEST_RUN_TITLE="Test task (ID: %d)" -COM_SCHEDULER_TEST_TASK="Test Task" +COM_SCHEDULER_TEST_RUN_TITLE="Run Task (ID: %d)" +COM_SCHEDULER_TEST_TASK="Run Manually" COM_SCHEDULER_TOOLBAR_PURGE="Clear History" COM_SCHEDULER_TOOLBAR_PURGE_CONFIRM="Are you sure you want to delete all Execution History?" COM_SCHEDULER_TOOLBAR_UNLOCK="Unlock" diff --git a/administrator/language/en-GB/com_users.ini b/administrator/language/en-GB/com_users.ini index 334cb13e237f5..1cd983eb0de7f 100644 --- a/administrator/language/en-GB/com_users.ini +++ b/administrator/language/en-GB/com_users.ini @@ -203,6 +203,7 @@ COM_USERS_LBL_SELECT_INSTRUCTIONS="Please select how you would like to verify yo COM_USERS_LEVELS_N_ITEMS_DELETED="%d View Permission Levels deleted." COM_USERS_LEVELS_N_ITEMS_DELETED_1="View Permission Level deleted." COM_USERS_LEVELS_TABLE_CAPTION="Viewing Access Levels" +; The following string is deprecated and will be removed with 8.0 COM_USERS_LEVEL_DETAILS="Level Details" COM_USERS_LEVEL_FIELD_TITLE_LABEL="Level Title" COM_USERS_LEVEL_FORM_EDIT="Edit Viewing Access Level" @@ -397,6 +398,8 @@ COM_USERS_USERS_N_ITEMS_DELETED="%d users deleted." COM_USERS_USERS_N_ITEMS_DELETED_1="User deleted." COM_USERS_USERS_TABLE_CAPTION="Users" COM_USERS_USER_ACCOUNT_DETAILS="Account Details" +COM_USERS_USER_ACTIVATE_AND_MAIL="Activate & Send Email" +COM_USERS_USER_ACTIVATION_REMINDER="Send Activation Reminder" COM_USERS_USER_ALLOWTOURAUTOSTART_LABEL="Allow Auto Starting Tours" COM_USERS_USER_BACKUPCODE="Backup Code" COM_USERS_USER_BACKUPCODES="Backup Codes" diff --git a/administrator/language/en-GB/guidedtours.joomla_categories.ini b/administrator/language/en-GB/guidedtours.joomla_categories.ini index 999c5695cd374..4c96ca08c8ff6 100644 --- a/administrator/language/en-GB/guidedtours.joomla_categories.ini +++ b/administrator/language/en-GB/guidedtours.joomla_categories.ini @@ -3,5 +3,5 @@ ; License GNU General Public License version 2 or later; see LICENSE.txt ; Note : All ini files need to be saved as UTF-8 -COM_GUIDEDTOURS_TOUR_CATEGORIES_TITLE="How to create categories?" -COM_GUIDEDTOURS_TOUR_CATEGORIES_DESCRIPTION="This tour will show you how you can create a category." +COM_GUIDEDTOURS_TOUR_CATEGORIES_TITLE="How to create article categories?" +COM_GUIDEDTOURS_TOUR_CATEGORIES_DESCRIPTION="This tour will show you how you can create a category for articles." diff --git a/administrator/language/en-GB/guidedtours.joomla_whatsnew_5_2.ini b/administrator/language/en-GB/guidedtours.joomla_whatsnew_5_2.ini deleted file mode 100644 index c9f46d656d154..0000000000000 --- a/administrator/language/en-GB/guidedtours.joomla_whatsnew_5_2.ini +++ /dev/null @@ -1,7 +0,0 @@ -; Joomla! Project -; (C) 2024 Open Source Matters, Inc. -; License GNU General Public License version 2 or later; see LICENSE.txt -; Note : All ini files need to be saved as UTF-8 - -COM_GUIDEDTOURS_TOUR_WHATSNEW_5_2_DESCRIPTION="

Welcome to Joomla 5.2!

\"The

Guided Tours Updates

Auto-start Tours

This feature will allow you to create your own auto-start Guided Tour. The contextual tour can be opted out for one or all users. Tours can be restarted from the Guided Tours menu.

Enhancements

  • For clarity, the Step Counter was positioned first in the tour header.
  • The modal window resizes automatically to accommodate larger content and images.

Core Updates

The new all-in-one 'Articles' module

Use one module to display latest, most read, specific or archived articles, from select categories - with filters, tags and more...

From Content -> Site Modules, create a new module of type 'Articles'.

Mail Template Layout

Take it a step further by creating an entirely unique layout (including logo) which can be applied to one or all mail templates.

From Global Configuration -> Mail Templates, layouts can be defined in HTML.

Other Enhancements and Fixes

  • Nested Subforms - Allows the nesting of Subform inside a Subform Custom Field.
  • Total Count - Shows the count and total number of list items in the console.
\"Mail
" -COM_GUIDEDTOURS_TOUR_WHATSNEW_5_2_TITLE="What’s New in Joomla 5.2!" diff --git a/administrator/language/en-GB/guidedtours.joomla_whatsnew_5_2_steps.ini b/administrator/language/en-GB/guidedtours.joomla_whatsnew_5_2_steps.ini deleted file mode 100644 index 6bc9e5ac2d322..0000000000000 --- a/administrator/language/en-GB/guidedtours.joomla_whatsnew_5_2_steps.ini +++ /dev/null @@ -1,7 +0,0 @@ -; Joomla! Project -; (C) 2024 Open Source Matters, Inc. -; License GNU General Public License version 2 or later; see LICENSE.txt -; Note : All ini files need to be saved as UTF-8 - -COM_GUIDEDTOURS_TOUR_WHATSNEW_5_2_STEP_0_DESCRIPTION="

Joomla 5.2 Full Release Notes

View the full release notes on joomla.org


Help and Information

Many resources to help you can be found here together with additional links to more resources, documentation, support and how to become involved in Joomla.

" -COM_GUIDEDTOURS_TOUR_WHATSNEW_5_2_STEP_0_TITLE="More Information and Help" diff --git a/administrator/language/en-GB/guidedtours.joomla_whatsnew_5_3.ini b/administrator/language/en-GB/guidedtours.joomla_whatsnew_5_3.ini deleted file mode 100644 index 279928d33f031..0000000000000 --- a/administrator/language/en-GB/guidedtours.joomla_whatsnew_5_3.ini +++ /dev/null @@ -1,7 +0,0 @@ -; Joomla! Project -; (C) 2025 Open Source Matters, Inc. -; License GNU General Public License version 2 or later; see LICENSE.txt -; Note : All ini files need to be saved as UTF-8 - -COM_GUIDEDTOURS_TOUR_WHATSNEW_5_3_DESCRIPTION="

Welcome to Joomla 5.3!

Guided Tours Updates

Guided Tours now has its own API. Joomla API Documentation

Stay tuned for other new enhancements coming soon!

\"The

Core Updates

Organize Files in their Own Location

Now you can see and select your stored/uploaded documents directly from the Media Manager. Find more information in the Joomla Community Magazine.

View Scheduled Task History

You now have the ability to view execution information directly in the backend without having to access log files. Look for the Execution History button located in the Scheduled Tasks page.

Other Enhancements and Fixes

  • Template Override Plugin Comparison - adds compare functionality to plugin overrides
  • Tag Alias Lookup Fixed - now instead of showing the tag id number in the URL the tag name is shown
" -COM_GUIDEDTOURS_TOUR_WHATSNEW_5_3_TITLE="What’s New in Joomla 5.3!" diff --git a/administrator/language/en-GB/guidedtours.joomla_whatsnew_5_3_steps.ini b/administrator/language/en-GB/guidedtours.joomla_whatsnew_5_3_steps.ini deleted file mode 100644 index fe8788b793d8c..0000000000000 --- a/administrator/language/en-GB/guidedtours.joomla_whatsnew_5_3_steps.ini +++ /dev/null @@ -1,7 +0,0 @@ -; Joomla! Project -; (C) 2025 Open Source Matters, Inc. -; License GNU General Public License version 2 or later; see LICENSE.txt -; Note : All ini files need to be saved as UTF-8 - -COM_GUIDEDTOURS_TOUR_WHATSNEW_5_3_STEP_0_DESCRIPTION="

Joomla 5.3 Full Release Notes

View the full release notes on joomla.org


Help and Information

Many resources to help you can be found here together with additional links to more resources, documentation, support and how to become involved in Joomla.

" -COM_GUIDEDTOURS_TOUR_WHATSNEW_5_3_STEP_0_TITLE="More Information and Help" diff --git a/administrator/language/en-GB/guidedtours.joomla_whatsnew_5_4.ini b/administrator/language/en-GB/guidedtours.joomla_whatsnew_5_4.ini deleted file mode 100644 index 423d157601db1..0000000000000 --- a/administrator/language/en-GB/guidedtours.joomla_whatsnew_5_4.ini +++ /dev/null @@ -1,7 +0,0 @@ -; Joomla! Project -; (C) 2025 Open Source Matters, Inc. -; License GNU General Public License version 2 or later; see LICENSE.txt -; Note : All ini files need to be saved as UTF-8 - -COM_GUIDEDTOURS_TOUR_WHATSNEW_5_4_DESCRIPTION="

Welcome to Joomla 5.4!

\"Display

Automated Updates are here!

Joomla! 5.4 now supports automated updates for better security and performance.

Stay safe and secure!

" -COM_GUIDEDTOURS_TOUR_WHATSNEW_5_4_TITLE="What’s New in Joomla 5.4!" diff --git a/administrator/language/en-GB/guidedtours.joomla_whatsnew_5_4_steps.ini b/administrator/language/en-GB/guidedtours.joomla_whatsnew_5_4_steps.ini deleted file mode 100644 index 6ee83abbbb253..0000000000000 --- a/administrator/language/en-GB/guidedtours.joomla_whatsnew_5_4_steps.ini +++ /dev/null @@ -1,7 +0,0 @@ -; Joomla! Project -; (C) 2025 Open Source Matters, Inc. -; License GNU General Public License version 2 or later; see LICENSE.txt -; Note : All ini files need to be saved as UTF-8 - -COM_GUIDEDTOURS_TOUR_WHATSNEW_5_4_STEP_0_DESCRIPTION="

Joomla 5.4 Full Release Notes

View the full release notes on joomla.org


Help and Information

Many resources to help you can be found here together with additional links to more resources, documentation, support and how to become involved in Joomla.

" -COM_GUIDEDTOURS_TOUR_WHATSNEW_5_4_STEP_0_TITLE="More Information and Help" diff --git a/administrator/language/en-GB/guidedtours.joomla_whatsnew_6_0.ini b/administrator/language/en-GB/guidedtours.joomla_whatsnew_6_0.ini new file mode 100644 index 0000000000000..150cd32bfeeb8 --- /dev/null +++ b/administrator/language/en-GB/guidedtours.joomla_whatsnew_6_0.ini @@ -0,0 +1,7 @@ +; Joomla! Project +; (C) 2025 Open Source Matters, Inc. +; License GNU General Public License version 2 or later; see LICENSE.txt +; Note : All ini files need to be saved as UTF-8 + +COM_GUIDEDTOURS_TOUR_WHATSNEW_6_0_DESCRIPTION="

Welcome to Joomla 6!

\"Display

Cassiopeia Extended

Explore child templates with a new style that demonstrates advanced customisation features like font and colour modifications.

Extended Versioning

Joomla's versioning system has been enhanced to include custom fields, tags and categories, allowing all content changes to be tracked, compared and restored.

" +COM_GUIDEDTOURS_TOUR_WHATSNEW_6_0_TITLE="What's New in Joomla 6!" diff --git a/administrator/language/en-GB/guidedtours.joomla_whatsnew_6_0_steps.ini b/administrator/language/en-GB/guidedtours.joomla_whatsnew_6_0_steps.ini new file mode 100644 index 0000000000000..c2754bee2eef5 --- /dev/null +++ b/administrator/language/en-GB/guidedtours.joomla_whatsnew_6_0_steps.ini @@ -0,0 +1,9 @@ +; Joomla! Project +; (C) 2025 Open Source Matters, Inc. +; License GNU General Public License version 2 or later; see LICENSE.txt +; Note : All ini files need to be saved as UTF-8 + +COM_GUIDEDTOURS_TOUR_WHATSNEW_6_0_STEP_0_DESCRIPTION="

More Updates

Featured articles are now sharing the Article's Manager view.

If you missed it

Joomla! 6 supports automated updates with The Update Framework (TUF) for better security and performance.
Find automated update settings in the Joomla! Update configuration section.

Other Enhancements and Fixes

  • Notification email on admin registration approval PR#45802
  • Add custom classes to the class dropdown in the image dialog in TinyMCE PR#45676
  • Add the possibility to batch remove a tag PR#40613
  • And many, many under the hood improvements...
" +COM_GUIDEDTOURS_TOUR_WHATSNEW_6_0_STEP_0_TITLE="Other Features" +COM_GUIDEDTOURS_TOUR_WHATSNEW_6_0_STEP_1_DESCRIPTION="

Joomla 6.0 Release Information

View release information at 6.joomla.org


Help and Information

Many resources to help you can be found here, together with additional links to more resources, documentation, support, and how to become involved in Joomla.

" +COM_GUIDEDTOURS_TOUR_WHATSNEW_6_0_STEP_1_TITLE="More Information and Help" diff --git a/administrator/language/en-GB/install.xml b/administrator/language/en-GB/install.xml index 3d73bcbc64c03..1776e7cda4cf4 100644 --- a/administrator/language/en-GB/install.xml +++ b/administrator/language/en-GB/install.xml @@ -2,7 +2,7 @@ English (en-GB) en-GB - 5.4.1 + 6.0.1 2025-10 Joomla! Project admin@joomla.org diff --git a/administrator/language/en-GB/joomla.ini b/administrator/language/en-GB/joomla.ini index fbf8ee00951c2..d91cba72dd62b 100644 --- a/administrator/language/en-GB/joomla.ini +++ b/administrator/language/en-GB/joomla.ini @@ -220,8 +220,11 @@ JFIELD_COLOR_LABEL_SLIDER_HUE="Hue Slider" JFIELD_COLOR_LABEL_SLIDER_INPUT="Selected Colour Value" JFIELD_COLOR_LABEL_SLIDER_LIGHT="Light Slider" JFIELD_COLOR_LABEL_SLIDER_SATURATION="Saturation Slider" +; The following string is deprecated and will be removed with 7.0 JFIELD_COLOR_SELECT="Select a colour" +; The following string is deprecated and will be removed with 7.0 JFIELD_COLOR_TRANSPARENT="No colour, transparent" +; The following string is deprecated and will be removed with 7.0 JFIELD_COLOR_VALUE="Colour with hexadecimal value of" JFIELD_DISPLAY_READONLY_LABEL="Display When Read-Only" JFIELD_ENABLED_DESC="The enabled status of this item." @@ -305,6 +308,7 @@ JFIELD_PLG_SEARCH_SEARCHLIMIT_LABEL="Search Limit" JFIELD_PUBLISHED_DESC="Set publication status." JFIELD_READMORE_DESC="Add a custom text instead of Read More." JFIELD_READMORE_LABEL="Read More Text" +JFIELD_RULES_LABEL="Group Permissions" JFIELD_SPACER_LABEL="
" JFIELD_TITLE_DESC="Title" JFIELD_VERSION_HISTORY_DESC="This button allows you to open a window to view older versions of this item." @@ -690,8 +694,6 @@ JGLOBAL_VOTES="Votes" JGLOBAL_VOTES_ASC="Votes ascending" JGLOBAL_VOTES_DESC="Votes descending" JGLOBAL_WARNCOOKIES="Warning! Cookies must be enabled to access the Administrator Backend." -; @deprecated 5.0 will be removed in 6.0 -JGLOBAL_WARNIE="Warning! Internet Explorer should not be used for proper operation of the Administrator Backend." JGLOBAL_WARNJAVASCRIPT="Warning! JavaScript must be enabled for proper operation of the Administrator Backend." JGLOBAL_WIDTH="Width" diff --git a/administrator/language/en-GB/langmetadata.xml b/administrator/language/en-GB/langmetadata.xml index 413923592f7e2..5bf1b03a0eee9 100644 --- a/administrator/language/en-GB/langmetadata.xml +++ b/administrator/language/en-GB/langmetadata.xml @@ -1,7 +1,7 @@ English (en-GB) - 5.4.1 + 6.0.1 2025-10 Joomla! Project admin@joomla.org diff --git a/administrator/language/en-GB/lib_joomla.ini b/administrator/language/en-GB/lib_joomla.ini index f921fdf193c4c..f9ea658e0291d 100644 --- a/administrator/language/en-GB/lib_joomla.ini +++ b/administrator/language/en-GB/lib_joomla.ini @@ -379,8 +379,11 @@ JLIB_HTML_BATCH_MOVE="Move" JLIB_HTML_BATCH_MOVE_QUESTION="Action to Perform" JLIB_HTML_BATCH_NO_CATEGORY="- Don't copy or move -" JLIB_HTML_BATCH_NOCHANGE="- Keep original Access Levels -" -JLIB_HTML_BATCH_TAG_LABEL="Add Tag" +JLIB_HTML_BATCH_TAG_ADD="Add" +JLIB_HTML_BATCH_TAG_ADDREMOVE_QUESTION="Action to Perform" +JLIB_HTML_BATCH_TAG_LABEL="Add or Remove Tag" JLIB_HTML_BATCH_TAG_NOCHANGE="- Keep original Tags -" +JLIB_HTML_BATCH_TAG_REMOVE="Remove" JLIB_HTML_BATCH_USER_LABEL="Set User." JLIB_HTML_BATCH_USER_NOCHANGE="- Keep original User -" JLIB_HTML_BATCH_USER_NOUSER="No User." @@ -625,8 +628,6 @@ JLIB_INSTALLER_ERROR_PACK_UNINSTALL_MANIFEST_NOT_REMOVED="Package Uninstall: Err JLIB_INSTALLER_ERROR_PACK_UNINSTALL_MISSING_EXTENSION="Package Uninstall: This extension is missing or has already been uninstalled: %s" JLIB_INSTALLER_ERROR_PACK_UNINSTALL_MISSINGMANIFEST="Package Uninstall: Missing manifest file." JLIB_INSTALLER_ERROR_PACK_UNINSTALL_NOT_PROPER="Package Uninstall: This extension may have already been uninstalled or might not have been uninstalled properly: %s" -; The following string is deprecated and will be removed with 6.0 -JLIB_INSTALLER_ERROR_PACK_UNINSTALL_UNKNOWN_EXTENSION="Trying to uninstall unknown extension from package. This extension may have already been removed earlier." JLIB_INSTALLER_ERROR_PACK_UNINSTALL_WARNCOREPACK="Package Uninstall: Trying to uninstall core package." JLIB_INSTALLER_ERROR_PLG_DISCOVER_STORE_DETAILS="Plugin Discover install: Failed to store plugin details." JLIB_INSTALLER_ERROR_PLG_REFRESH_MANIFEST_CACHE="Plugin Refresh manifest cache: Failed to store plugin details." diff --git a/administrator/language/en-GB/mod_popular.ini b/administrator/language/en-GB/mod_popular.ini index 3669bb575d9f5..614adfdeb120f 100644 --- a/administrator/language/en-GB/mod_popular.ini +++ b/administrator/language/en-GB/mod_popular.ini @@ -11,6 +11,7 @@ MOD_POPULAR_FIELD_VALUE_ADDED_OR_MODIFIED_BY_ME="Added or modified by me" MOD_POPULAR_FIELD_VALUE_ANYONE="Anyone" MOD_POPULAR_FIELD_VALUE_NOT_ADDED_OR_MODIFIED_BY_ME="Not added or modified by me" MOD_POPULAR_ITEMS="Popular Items" +; The following string is deprecated and will be removed with 7.0 MOD_POPULAR_NO_MATCHING_RESULTS="No Matching Results" MOD_POPULAR_TITLE="Popular Articles" MOD_POPULAR_TITLE_1="Top Popular Article" diff --git a/administrator/language/en-GB/mod_stats_admin.ini b/administrator/language/en-GB/mod_stats_admin.ini index a3f764172bcac..dd040a39b0d9a 100644 --- a/administrator/language/en-GB/mod_stats_admin.ini +++ b/administrator/language/en-GB/mod_stats_admin.ini @@ -12,10 +12,3 @@ MOD_STATS_GZIP="Gzip" MOD_STATS_PHP="PHP" MOD_STATS_USERS="Users" MOD_STATS_XML_DESCRIPTION="The Statistics Module shows information about your server installation together with statistics on the website users and the number of Articles in your database." -; Deprecated, will be removed with 6.0 -MOD_STATS_ARTICLES_VIEW_HITS="Articles View Hits" -MOD_STATS_FIELD_COUNTER_LABEL="Hit Counter" -MOD_STATS_FIELD_INCREASECOUNTER_LABEL="Increase Counter" -MOD_STATS_OS="OS" -MOD_STATS_TIME="Time" -MOD_STATS_WEBLINKS="Web Links" diff --git a/administrator/language/en-GB/mod_stats_admin.sys.ini b/administrator/language/en-GB/mod_stats_admin.sys.ini index 38bd731fb2e93..f9941b5d55480 100644 --- a/administrator/language/en-GB/mod_stats_admin.sys.ini +++ b/administrator/language/en-GB/mod_stats_admin.sys.ini @@ -6,6 +6,3 @@ MOD_STATS_ADMIN="Statistics" MOD_STATS_ADMIN_LAYOUT_DEFAULT="Default" MOD_STATS_XML_DESCRIPTION="The Statistics Module shows information about your server installation together with statistics on the website users and the number of Articles in your database." - -; Deprecated, will be removed with 6.0 -MOD_STATS_LAYOUT_DEFAULT="Default" diff --git a/administrator/language/en-GB/mod_user.ini b/administrator/language/en-GB/mod_user.ini index adbe9df8f39c7..e7d067241c2de 100644 --- a/administrator/language/en-GB/mod_user.ini +++ b/administrator/language/en-GB/mod_user.ini @@ -10,7 +10,3 @@ MOD_USER_LIGHTDARK_MODE="Light/Dark Mode" MOD_USER_MENU="User Menu" MOD_USER_TITLE="Signed in as %s" MOD_USER_XML_DESCRIPTION="This module shows the User Menu and is intended to be displayed in the 'status' position." - -; Deprecated, will be removed with 6.0 -MOD_USER_LIGHT_MODE="Light Mode" -MOD_USER_DARK_MODE="Dark Mode" diff --git a/administrator/language/en-GB/plg_behaviour_compat.ini b/administrator/language/en-GB/plg_behaviour_compat.ini deleted file mode 100644 index 3dfab0d6abd68..0000000000000 --- a/administrator/language/en-GB/plg_behaviour_compat.ini +++ /dev/null @@ -1,13 +0,0 @@ -; Joomla! Project -; (C) 2023 Open Source Matters, Inc. -; License GNU General Public License version 2 or later; see LICENSE.txt -; Note : All ini files need to be saved as UTF-8 - -PLG_BEHAVIOUR_COMPAT="Behaviour - Backward Compatibility" -PLG_COMPAT_FIELD_CLASSES_ALIASES_LABEL="Classes Aliases" -PLG_COMPAT_FIELD_CLASSES_ALIASES_DESCRIPTION="Add class aliases for classes which have been renamed or moved to a namespace." -PLG_COMPAT_FIELD_ES5_ASSETS_DESCRIPTION="Activate this option if your extension requires *.es5 assets which has resulted in an exception. The assets provided are empty but prevent the exception." -PLG_COMPAT_FIELD_ES5_ASSETS_LABEL="ES5 Assets" -PLG_COMPAT_FIELD_REMOVED_ASSETS_DESCRIPTION="Activate this option if your extension requires removed assets which has resulted in an exception. The assets provided are empty but prevent the exception." -PLG_COMPAT_FIELD_REMOVED_ASSETS_LABEL="Removed Assets" -PLG_COMPAT_XML_DESCRIPTION="If you use extensions which are not using the current Joomla Coding standards then this plugin, when enabled, will provide backward compatibility to the prior major version." diff --git a/administrator/language/en-GB/plg_behaviour_compat.sys.ini b/administrator/language/en-GB/plg_behaviour_compat.sys.ini deleted file mode 100644 index 405d5a6c97b0d..0000000000000 --- a/administrator/language/en-GB/plg_behaviour_compat.sys.ini +++ /dev/null @@ -1,7 +0,0 @@ -; Joomla! Project -; (C) 2023 Open Source Matters, Inc. -; License GNU General Public License version 2 or later; see LICENSE.txt -; Note : All ini files need to be saved as UTF-8 - -PLG_BEHAVIOUR_COMPAT="Behaviour - Backward Compatibility" -PLG_COMPAT_XML_DESCRIPTION="Provides backward compatibility to the prior major version." diff --git a/administrator/language/en-GB/plg_behaviour_compat6.ini b/administrator/language/en-GB/plg_behaviour_compat6.ini index d550624dcc1b9..421c8d8d8890a 100644 --- a/administrator/language/en-GB/plg_behaviour_compat6.ini +++ b/administrator/language/en-GB/plg_behaviour_compat6.ini @@ -4,4 +4,10 @@ ; Note : All ini files need to be saved as UTF-8 PLG_BEHAVIOUR_COMPAT6="Behaviour - Backward Compatibility 6" -PLG_COMPAT6_XML_DESCRIPTION="This plugin should be enabled before updating to Joomla 6." +PLG_COMPAT6_FIELD_CLASSES_ALIASES_DESCRIPTION="Add class aliases for classes which have been renamed or moved to a namespace." +PLG_COMPAT6_FIELD_CLASSES_ALIASES_LABEL="Classes Aliases" +PLG_COMPAT6_FIELD_LEGACY_CLASSES_DESCRIPTION="Activate this option if your extension requires previously deprecated classes removed from the current version of Joomla. These removed classes can be found in the folder /plugins/behavior/compat6/classes/." +PLG_COMPAT6_FIELD_LEGACY_CLASSES_LABEL="Include Deprecated Classes" +PLG_COMPAT6_FIELD_REMOVED_ASSETS_DESCRIPTION="Activate this option if your extension requires removed assets which has resulted in an exception. The assets provided are empty but prevent the exception." +PLG_COMPAT6_FIELD_REMOVED_ASSETS_LABEL="Removed Assets" +PLG_COMPAT6_XML_DESCRIPTION="If you use extensions which are not using the current Joomla Coding standards then this plugin, when enabled, will provide backward compatibility to the previous major version, Joomla 5." diff --git a/administrator/language/en-GB/plg_behaviour_compat6.sys.ini b/administrator/language/en-GB/plg_behaviour_compat6.sys.ini index d550624dcc1b9..e412f703d03f9 100644 --- a/administrator/language/en-GB/plg_behaviour_compat6.sys.ini +++ b/administrator/language/en-GB/plg_behaviour_compat6.sys.ini @@ -4,4 +4,4 @@ ; Note : All ini files need to be saved as UTF-8 PLG_BEHAVIOUR_COMPAT6="Behaviour - Backward Compatibility 6" -PLG_COMPAT6_XML_DESCRIPTION="This plugin should be enabled before updating to Joomla 6." +PLG_COMPAT6_XML_DESCRIPTION="If you use extensions which are not using the current Joomla Coding standards then this plugin, when enabled, will provide backward compatibility to the previous major version, Joomla 5." diff --git a/administrator/language/en-GB/plg_content_joomla.ini b/administrator/language/en-GB/plg_content_joomla.ini index 5b818a07e48e6..6ef078e4cc78c 100644 --- a/administrator/language/en-GB/plg_content_joomla.ini +++ b/administrator/language/en-GB/plg_content_joomla.ini @@ -8,6 +8,10 @@ PLG_CONTENT_JOOMLA_FIELD_CHECK_CATEGORIES_DESC="Check that categories are fully PLG_CONTENT_JOOMLA_FIELD_CHECK_CATEGORIES_LABEL="Check Category Deletion" PLG_CONTENT_JOOMLA_FIELD_EMAIL_NEW_FE_DESC="Email users if 'Send email' is on when there is a new article submitted via the Frontend." PLG_CONTENT_JOOMLA_FIELD_EMAIL_NEW_FE_LABEL="Email on New Site Article" +PLG_CONTENT_JOOMLA_MAIL_NEWARTICLE_DESC="Sent when a new article is submitted via frontend." +PLG_CONTENT_JOOMLA_MAIL_NEWARTICLE_TITLE="Content: New Article Submitted" +PLG_CONTENT_JOOMLA_NEW_ARTICLE_BODY="A new Article has been submitted by {NAME} entitled {TITLE}." +PLG_CONTENT_JOOMLA_NEW_ARTICLE_SUBJECT="[{SITENAME}] - New Article Submitted" PLG_CONTENT_JOOMLA_SCHEMA_CONTACT_DESC="When active, generate contact rich snippets from the default data" PLG_CONTENT_JOOMLA_SCHEMA_CONTACT_LABEL="Contact Schema" PLG_CONTENT_JOOMLA_SCHEMA_CONTENT_DESC="When active, generate content rich snippets from the default data" diff --git a/administrator/language/en-GB/plg_content_loadmodule.ini b/administrator/language/en-GB/plg_content_loadmodule.ini index 281917efff08d..fed8665c44efd 100644 --- a/administrator/language/en-GB/plg_content_loadmodule.ini +++ b/administrator/language/en-GB/plg_content_loadmodule.ini @@ -9,6 +9,3 @@ PLG_LOADMODULE_FIELD_VALUE_DIVS="Wrapped by Divs" PLG_LOADMODULE_FIELD_VALUE_RAW="No wrapping (raw output)" PLG_LOADMODULE_FIELD_VALUE_TABLE="Wrapped by table (column)" PLG_LOADMODULE_XML_DESCRIPTION="Within content this plugin loads a Module by ID, Syntax: {loadmoduleid 1} or a Module by position, Syntax: {loadposition user1} or a Module by name, Syntax: {loadmodule mod_login}. Optionally can specify module style and for loadmodule a specific module by title, Syntax: {loadmodule mod_login,module title,style}." -; Deprecated, will be removed with 6.0 -PLG_LOADMODULE_FIELD_VALUE_HORIZONTAL="Wrapped by table (horizontal)" -PLG_LOADMODULE_FIELD_VALUE_MULTIPLEDIVS="Wrapped by Multiple Divs" diff --git a/administrator/language/en-GB/plg_editors_codemirror.ini b/administrator/language/en-GB/plg_editors_codemirror.ini index 7d8715301b6f9..f5c56021d5bdc 100644 --- a/administrator/language/en-GB/plg_editors_codemirror.ini +++ b/administrator/language/en-GB/plg_editors_codemirror.ini @@ -30,26 +30,3 @@ PLG_CODEMIRROR_FIELDSET_TOOLBAR_OPTIONS_LABEL="Toolbar Options" PLG_CODEMIRROR_TOGGLE_FULL_SCREEN="Press %s to toggle Full Screen editing." PLG_CODEMIRROR_XML_DESCRIPTION="This plugin loads the CodeMirror editor." PLG_EDITORS_CODEMIRROR="Editor - CodeMirror" - -; Deprecated, will be removed with 6.0 -PLG_CODEMIRROR_FIELDSET_APPEARANCE_OPTIONS_LABEL="Appearance Options" -PLG_CODEMIRROR_FIELD_ACTIVELINE_COLOR_LABEL="Active Line Colour" -PLG_CODEMIRROR_FIELD_ACTIVELINE_LABEL="Highlight Active Line" -PLG_CODEMIRROR_FIELD_AUTOCLOSETAGS_LABEL="Tag Completion" -PLG_CODEMIRROR_FIELD_FONT_FAMILY_LABEL="Font" -PLG_CODEMIRROR_FIELD_FONT_SIZE_LABEL="Font Size (px)" -PLG_CODEMIRROR_FIELD_HIGHLIGHT_MATCH_COLOR_LABEL="Matching Tag Colour" -PLG_CODEMIRROR_FIELD_KEYMAP_SUBLIME="Sublime Text" -PLG_CODEMIRROR_FIELD_KEYMAP_VIM="Vim" -PLG_CODEMIRROR_FIELD_LINE_HEIGHT_LABEL="Line Height (em)" -PLG_CODEMIRROR_FIELD_MARKERGUTTER_LABEL="Gutters" -PLG_CODEMIRROR_FIELD_MATCHBRACKETS_LABEL="Match Brackets" -PLG_CODEMIRROR_FIELD_MATCHTAGS_LABEL="Match Tags" -PLG_CODEMIRROR_FIELD_PREVIEW_LABEL="Preview" -PLG_CODEMIRROR_FIELD_THEME_LABEL="Theme" -PLG_CODEMIRROR_FIELD_VALUE_FONT_FAMILY_DEFAULT="Browser Default" -PLG_CODEMIRROR_FIELD_VALUE_SCROLLBARSTYLE_DEFAULT="Default" -PLG_CODEMIRROR_FIELD_VALUE_SCROLLBARSTYLE_LABEL="Scrollbar Style" -PLG_CODEMIRROR_FIELD_VALUE_SCROLLBARSTYLE_OVERLAY="Overlay" -PLG_CODEMIRROR_FIELD_VALUE_SCROLLBARSTYLE_SIMPLE="Simple" -PLG_CODEMIRROR_FIELD_VIM_KEYBINDING_LABEL="Vim Keybinding" diff --git a/administrator/language/en-GB/plg_editors_tinymce.ini b/administrator/language/en-GB/plg_editors_tinymce.ini index 3193da4afc17a..3a8fd89c6deb7 100644 --- a/administrator/language/en-GB/plg_editors_tinymce.ini +++ b/administrator/language/en-GB/plg_editors_tinymce.ini @@ -43,6 +43,11 @@ PLG_TINY_FIELD_EXTERNALPLUGINS_NAME_LABEL="Plugin Name" PLG_TINY_FIELD_EXTERNALPLUGINS_PATH_LABEL="Path" PLG_TINY_FIELD_HTMLHEIGHT_LABEL="HTML Height" PLG_TINY_FIELD_HTMLWIDTH_LABEL="HTML Width" +PLG_TINY_FIELD_IMG_CLASS_LIST_LABEL="Class List" +PLG_TINY_FIELD_IMG_CLASS_NAME_LABEL="Name" +PLG_TINY_FIELD_IMG_CLASS_NO_CLASS="No Class Selected" +PLG_TINY_FIELD_IMG_CLASSES_LIST_DESC="Add classes to the image class dropdown in the image dialog." +PLG_TINY_FIELD_IMG_CLASSES_LIST_LABEL="Image Classes List" PLG_TINY_FIELD_LABEL_ADVANCEDPARAMS="Advanced" PLG_TINY_FIELD_LANGCODE_LABEL="Language Code" PLG_TINY_FIELD_LANGSELECT_LABEL="Automatic Language Selection" @@ -59,6 +64,9 @@ PLG_TINY_FIELD_PROHIBITED_LABEL="Prohibited Elements" PLG_TINY_FIELD_RESIZE_HORIZONTAL_LABEL="Horizontal Resizing" PLG_TINY_FIELD_RESIZING_LABEL="Resizing" PLG_TINY_FIELD_SANDBOX_IFRAMES_DESC="This is a security feature that restricts what the iframe can do by setting a sandbox attribute for each iframe. It is recommended to enable this feature for security reasons. Only disable if the iframe is not loading and you're sure that the iframed content is safe." +PLG_TINY_FIELD_SANDBOX_IFRAMES_EXCLUSIONS_LIST_DESC="Additional domain names can be added to be excluded from iframe sandboxing. The current domain and this list of common domains are excluded by default. 'youtube.com', 'youtu.be', 'vimeo.com', 'player.vimeo.com', 'dailymotion.com', 'embed.music.apple.com', 'open.spotify.com', 'giphy.com', 'dai.ly', 'codepen.io'." +PLG_TINY_FIELD_SANDBOX_IFRAMES_EXCLUSIONS_LIST_LABEL="Sandbox Iframe Exclusions List" +PLG_TINY_FIELD_SANDBOX_IFRAMES_EXCLUSION_DOMAIN_LABEL="Domain Name" PLG_TINY_FIELD_SANDBOX_IFRAMES_LABEL="Sandbox Iframes" PLG_TINY_FIELD_SETACCESS_LABEL="Assign this Set to" PLG_TINY_FIELD_SKIN_ADMIN_DARK_LABEL="Administrator Skin (Dark Mode)" diff --git a/administrator/language/en-GB/plg_fields_list.ini b/administrator/language/en-GB/plg_fields_list.ini index 4208cf647e8e3..abd1f80635d64 100644 --- a/administrator/language/en-GB/plg_fields_list.ini +++ b/administrator/language/en-GB/plg_fields_list.ini @@ -5,8 +5,6 @@ PLG_FIELDS_LIST="Fields - List" PLG_FIELDS_LIST_LABEL="List (%s)" -; The following string is deprecated and will be removed with 6.0 -PLG_FIELDS_LIST_PARAMS_FORM_LAYOUT_FANCY_SELECT="Enhanced select" PLG_FIELDS_LIST_PARAMS_HEADER_DESC="Add a string with no value at the top of the dropdown list eg ' - Select Article - '." PLG_FIELDS_LIST_PARAMS_HEADER_LABEL="Header" PLG_FIELDS_LIST_PARAMS_MULTIPLE_LABEL="Multiple" diff --git a/administrator/language/en-GB/plg_fields_note.ini b/administrator/language/en-GB/plg_fields_note.ini new file mode 100644 index 0000000000000..80296ed76299e --- /dev/null +++ b/administrator/language/en-GB/plg_fields_note.ini @@ -0,0 +1,16 @@ +; Joomla! Project +; (C) 2025 Open Source Matters, Inc. +; License GNU General Public License version 2 or later; see LICENSE.txt +; Note : All ini files need to be saved as UTF-8 + +PLG_FIELDS_NOTE="Fields - Note" +PLG_FIELDS_NOTE_LABEL="Note (%s)" +PLG_FIELDS_NOTE_PARAMS_CLASS_DESC="The class used on the div of the note." +PLG_FIELDS_NOTE_PARAMS_CLASS_LABEL="Note Class" +PLG_FIELDS_NOTE_PARAMS_CLOSE_DESC="This field controls the display of an \"x\" to close the note. It takes a value of 'true' (for alerts) or the value for the data-dismiss of the Bootstrap close icon." +PLG_FIELDS_NOTE_PARAMS_CLOSE_LABEL="Show Close Button" +PLG_FIELDS_NOTE_PARAMS_DESCRIPTION_LABEL="Note Content" +PLG_FIELDS_NOTE_PARAMS_DISPLAY_FRONTEND_LABEL="Display In Frontend" +PLG_FIELDS_NOTE_PARAMS_HEADING_LABEL="Heading Tag" +PLG_FIELDS_NOTE_PARAMS_LABEL_LABEL="Note Heading" +PLG_FIELDS_NOTE_XML_DESCRIPTION="This plugin lets you create new fields of type 'note' in any extensions where custom fields are supported." diff --git a/administrator/language/en-GB/plg_fields_note.sys.ini b/administrator/language/en-GB/plg_fields_note.sys.ini new file mode 100644 index 0000000000000..8a9a7565e6923 --- /dev/null +++ b/administrator/language/en-GB/plg_fields_note.sys.ini @@ -0,0 +1,7 @@ +; Joomla! Project +; (C) 2025 Open Source Matters, Inc. +; License GNU General Public License version 2 or later; see LICENSE.txt +; Note : All ini files need to be saved as UTF-8 + +PLG_FIELDS_NOTE="Fields - Note" +PLG_FIELDS_NOTE_XML_DESCRIPTION="This plugin lets you create new fields of type 'note' in any extensions where custom fields are supported." diff --git a/administrator/language/en-GB/plg_fields_number.ini b/administrator/language/en-GB/plg_fields_number.ini new file mode 100644 index 0000000000000..5d8e95d46a19c --- /dev/null +++ b/administrator/language/en-GB/plg_fields_number.ini @@ -0,0 +1,19 @@ +; Joomla! Project +; (C) 2025 Open Source Matters, Inc. +; License GNU General Public License version 2 or later; see LICENSE.txt +; Note : All ini files need to be saved as UTF-8 + +PLG_FIELDS_NUMBER="Fields - Number" +PLG_FIELDS_NUMBER_LABEL="Number (%s)" +PLG_FIELDS_NUMBER_PARAMS_CURRENCY_LABEL="Format as Currency" +PLG_FIELDS_NUMBER_PARAMS_DECIMALS_LABEL="Number of Decimals" +PLG_FIELDS_NUMBER_PARAMS_MAX_DESC="Maximum value that can be chosen (only limits the up/down arrows)." +PLG_FIELDS_NUMBER_PARAMS_MAX_LABEL="Maximum" +PLG_FIELDS_NUMBER_PARAMS_MIN_DESC="Minimum value that can be chosen (only limits the up/down arrows)." +PLG_FIELDS_NUMBER_PARAMS_MIN_LABEL="Minimum" +PLG_FIELDS_NUMBER_PARAMS_POSITION_LABEL="Symbol Position" +PLG_FIELDS_NUMBER_PARAMS_POSITION_OPTION_AFTER="After" +PLG_FIELDS_NUMBER_PARAMS_POSITION_OPTION_BEFORE="Before" +PLG_FIELDS_NUMBER_PARAMS_STEP_LABEL="Step Increment" +PLG_FIELDS_NUMBER_PARAMS_SYMBOL_LABEL="Currency Symbol" +PLG_FIELDS_NUMBER_XML_DESCRIPTION="This plugin lets you create new fields of type 'number' in any extensions where custom fields are supported." diff --git a/administrator/language/en-GB/plg_fields_number.sys.ini b/administrator/language/en-GB/plg_fields_number.sys.ini new file mode 100644 index 0000000000000..fb94567cd845e --- /dev/null +++ b/administrator/language/en-GB/plg_fields_number.sys.ini @@ -0,0 +1,7 @@ +; Joomla! Project +; (C) 2025 Open Source Matters, Inc. +; License GNU General Public License version 2 or later; see LICENSE.txt +; Note : All ini files need to be saved as UTF-8 + +PLG_FIELDS_NUMBER="Fields - Number" +PLG_FIELDS_NUMBER_XML_DESCRIPTION="This plugin lets you create new fields of type 'number' in any extensions where custom fields are supported." diff --git a/administrator/language/en-GB/plg_fields_sql.ini b/administrator/language/en-GB/plg_fields_sql.ini index 0354e65bde29b..69403cdbc53c5 100644 --- a/administrator/language/en-GB/plg_fields_sql.ini +++ b/administrator/language/en-GB/plg_fields_sql.ini @@ -6,8 +6,6 @@ PLG_FIELDS_SQL="Fields - SQL" PLG_FIELDS_SQL_CREATE_NOT_POSSIBLE="Only a Super User can create or edit an SQL field!" PLG_FIELDS_SQL_LABEL="SQL (%s)" -; The following string is deprecated and will be removed with 6.0 -PLG_FIELDS_SQL_PARAMS_FORM_LAYOUT_FANCY_SELECT="Enhanced select" PLG_FIELDS_SQL_PARAMS_HEADER_DESC="Add a string with no value at the top of the dropdown list eg ' - Select Article - '." PLG_FIELDS_SQL_PARAMS_HEADER_LABEL="Header" PLG_FIELDS_SQL_PARAMS_MULTIPLE_LABEL="Multiple" diff --git a/administrator/language/en-GB/plg_quickicon_eos.ini b/administrator/language/en-GB/plg_quickicon_eos.ini index 64e44bf0bda4a..48de33159f95b 100644 --- a/administrator/language/en-GB/plg_quickicon_eos.ini +++ b/administrator/language/en-GB/plg_quickicon_eos.ini @@ -3,11 +3,11 @@ ; License GNU General Public License version 2 or later; see LICENSE.txt ; Note : All ini files need to be saved as UTF-8 -PLG_QUICKICON_EOS="Quick Icon - Joomla 5 End Of Support Notification" -PLG_QUICKICON_EOS_MESSAGE_ERROR_SUPPORT_ENDED="

Support has ended for your version of Joomla 5. Upgrade to Joomla 6 as soon as possible.

" -PLG_QUICKICON_EOS_MESSAGE_INFO_01="

Joomla 6 has arrived! Find out all that Joomla 6 has to offer you. Check the landing page for Joomla 6 features and improvements.

" -PLG_QUICKICON_EOS_MESSAGE_INFO_02="

When is the time to upgrade to Joomla 6? Once the extensions your site needs are compatible. Learn how to use the Pre-Update Checker.

" -PLG_QUICKICON_EOS_MESSAGE_WARNING_SECURITY_ONLY="

Joomla 5 has entered security only mode. Support ends %1$s. Start planning to upgrade to Joomla 6 today.

" -PLG_QUICKICON_EOS_MESSAGE_WARNING_SUPPORT_ENDING="

Support ends on %1$s for Joomla 5 Upgrade to Joomla 6 as soon as possible.

" +PLG_QUICKICON_EOS="Quick Icon - Joomla 6 End Of Support Notification" +PLG_QUICKICON_EOS_MESSAGE_ERROR_SUPPORT_ENDED="

Support has ended for your version of Joomla 6. Upgrade to Joomla 7 as soon as possible.

" +PLG_QUICKICON_EOS_MESSAGE_INFO_01="

Joomla 7 has arrived! Find out all that Joomla 7 has to offer you. Check the landing page for Joomla 7 features and improvements.

" +PLG_QUICKICON_EOS_MESSAGE_INFO_02="

When is the time to upgrade to Joomla 7? Once the extensions your site needs are compatible. Learn how to use the Pre-Update Checker.

" +PLG_QUICKICON_EOS_MESSAGE_WARNING_SECURITY_ONLY="

Joomla 6 has entered security only mode. Support ends %1$s. Start planning to upgrade to Joomla 7 today.

" +PLG_QUICKICON_EOS_MESSAGE_WARNING_SUPPORT_ENDING="

Support ends on %1$s for Joomla 6 Upgrade to Joomla 7 as soon as possible.

" PLG_QUICKICON_EOS_SNOOZE_BUTTON="Snooze this message for all users" -PLG_QUICKICON_EOS_XML_DESCRIPTION="Checks for the end of support status of Joomla 5 and notifies you when visiting the Control Panel page." +PLG_QUICKICON_EOS_XML_DESCRIPTION="Checks for the end of support status of Joomla 6 and notifies you when visiting the Control Panel page." diff --git a/administrator/language/en-GB/plg_quickicon_eos.sys.ini b/administrator/language/en-GB/plg_quickicon_eos.sys.ini index 78cfc1cff5fdb..b2b3febed2225 100644 --- a/administrator/language/en-GB/plg_quickicon_eos.sys.ini +++ b/administrator/language/en-GB/plg_quickicon_eos.sys.ini @@ -3,5 +3,5 @@ ; License GNU General Public License version 2 or later; see LICENSE.txt ; Note : All ini files need to be saved as UTF-8 -PLG_QUICKICON_EOS="Quick Icon - Joomla 5 End Of Support Notification" -PLG_QUICKICON_EOS_XML_DESCRIPTION="Checks for the end of support status of Joomla 5 and notifies you when visiting the Control Panel page." +PLG_QUICKICON_EOS="Quick Icon - Joomla 6 End Of Support Notification" +PLG_QUICKICON_EOS_XML_DESCRIPTION="Checks for the end of support status of Joomla 6 and notifies you when visiting the Control Panel page." diff --git a/administrator/language/en-GB/plg_sampledata_blog.ini b/administrator/language/en-GB/plg_sampledata_blog.ini index f74353b67259c..2891b8f613ec3 100644 --- a/administrator/language/en-GB/plg_sampledata_blog.ini +++ b/administrator/language/en-GB/plg_sampledata_blog.ini @@ -37,7 +37,7 @@ PLG_SAMPLEDATA_BLOG_SAMPLEDATA_CONTENT_ARTICLE_7_FULLTEXT="

Uurnip greens yarr PLG_SAMPLEDATA_BLOG_SAMPLEDATA_CONTENT_ARTICLE_7_INTROTEXT="

We love Joomla to the moon and back!

Thank you to all volunteers who have contributed!

" PLG_SAMPLEDATA_BLOG_SAMPLEDATA_CONTENT_ARTICLE_7_TITLE="Love" PLG_SAMPLEDATA_BLOG_SAMPLEDATA_CONTENT_ARTICLE_8_FULLTEXT="

Cupcake ipsum dolor. Sit amet cotton candy ice cream sesame snaps cake marshmallow powder. Ice cream chocolate cake marshmallow halvah bonbon. Dragée carrot cake danish candy muffin brownie. Candy sugar plum ice cream chupa chups macaroon tiramisu soufflé oat cake. Topping cheesecake lollipop gummi bears icing sweet roll donut liquorice. Pie jelly-o candy donut oat cake cotton candy.

" -PLG_SAMPLEDATA_BLOG_SAMPLEDATA_CONTENT_ARTICLE_8_INTROTEXT="

We proudly present Joomla Version 5!

Learn more about workflows in Joomla.

" +PLG_SAMPLEDATA_BLOG_SAMPLEDATA_CONTENT_ARTICLE_8_INTROTEXT="

We proudly present Joomla Version 6!

Learn more about workflows in Joomla.

" PLG_SAMPLEDATA_BLOG_SAMPLEDATA_CONTENT_ARTICLE_8_TITLE="Joomla" PLG_SAMPLEDATA_BLOG_SAMPLEDATA_CONTENT_ARTICLE_9_FIELD_0="Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua." PLG_SAMPLEDATA_BLOG_SAMPLEDATA_CONTENT_ARTICLE_9_FULLTEXT="" @@ -127,14 +127,14 @@ PLG_SAMPLEDATA_BLOG_SAMPLEDATA_MODULES_MODULE_4_TITLE="Latest Posts" PLG_SAMPLEDATA_BLOG_SAMPLEDATA_MODULES_MODULE_5_TITLE="Older Posts" PLG_SAMPLEDATA_BLOG_SAMPLEDATA_MODULES_MODULE_6_TITLE="Bottom Menu" PLG_SAMPLEDATA_BLOG_SAMPLEDATA_MODULES_MODULE_7_TITLE="Search" -PLG_SAMPLEDATA_BLOG_SAMPLEDATA_MODULES_MODULE_8_CONTENT="

Welcome to Joomla on Cassiopeia!

You have chosen one of the most powerful CMS Systems in the world.

Cassiopeia is the multi-purpose frontend template for Joomla 5.

Typography »

" +PLG_SAMPLEDATA_BLOG_SAMPLEDATA_MODULES_MODULE_8_CONTENT="

Welcome to Joomla on Cassiopeia!

You have chosen one of the most powerful CMS Systems in the world.

Cassiopeia is the multi-purpose frontend template for Joomla.

Typography »

" PLG_SAMPLEDATA_BLOG_SAMPLEDATA_MODULES_MODULE_8_TITLE="Image" PLG_SAMPLEDATA_BLOG_SAMPLEDATA_MODULES_MODULE_9_TITLE="Popular Tags" PLG_SAMPLEDATA_BLOG_SAMPLEDATA_NEWSFEEDS_TITLE="My Blog" PLG_SAMPLEDATA_BLOG_SAMPLEDATA_TAG_0_TITLE="Millions" PLG_SAMPLEDATA_BLOG_SAMPLEDATA_TAG_1_TITLE="Worldwide" PLG_SAMPLEDATA_BLOG_SAMPLEDATA_TAG_2_TITLE="Love" -PLG_SAMPLEDATA_BLOG_SAMPLEDATA_TAG_3_TITLE="Joomla 5" +PLG_SAMPLEDATA_BLOG_SAMPLEDATA_TAG_3_TITLE="Joomla 6" PLG_SAMPLEDATA_BLOG_STEP1_SUCCESS="Step 1: Tags, Articles, Fields and Workflow done!" PLG_SAMPLEDATA_BLOG_STEP2_SUCCESS="Step 2: Menus done!" PLG_SAMPLEDATA_BLOG_STEP3_SUCCESS="Step 3: Modules done!" diff --git a/administrator/language/en-GB/plg_system_actionlogs.ini b/administrator/language/en-GB/plg_system_actionlogs.ini index 1f0ec95576f52..2627c9443c7d7 100644 --- a/administrator/language/en-GB/plg_system_actionlogs.ini +++ b/administrator/language/en-GB/plg_system_actionlogs.ini @@ -20,7 +20,3 @@ PLG_SYSTEM_ACTIONLOGS_CONTENT_PUBLISHED="User {usernam PLG_SYSTEM_ACTIONLOGS_CONTENT_TRASHED="User {username} trashed the {type} {title}" PLG_SYSTEM_ACTIONLOGS_CONTENT_UNPUBLISHED="User {username} unpublished the {type} {title}" PLG_SYSTEM_ACTIONLOGS_CONTENT_UPDATED="User {username} updated the {type} {title}" - -; All the following strings are deprecated and will be removed with 6.0 -PLG_SYSTEM_ACTIONLOGS_LOG_DELETE_PERIOD="Days to delete logs after" -PLG_SYSTEM_ACTIONLOGS_LOG_DELETE_PERIOD_DESC="Enter 0 if you don't want to delete the logs." diff --git a/administrator/language/en-GB/plg_system_jooa11y.ini b/administrator/language/en-GB/plg_system_jooa11y.ini index d4965027c6ed0..bb5aab27ca20e 100644 --- a/administrator/language/en-GB/plg_system_jooa11y.ini +++ b/administrator/language/en-GB/plg_system_jooa11y.ini @@ -19,146 +19,3 @@ PLG_SYSTEM_JOOA11Y_FIELD_SHOW_ALWAYS_DESC="Load the accessibility checker on all PLG_SYSTEM_JOOA11Y_KEY="Key" PLG_SYSTEM_JOOA11Y_VALUE="Value" PLG_SYSTEM_JOOA11Y_XML_DESCRIPTION="The Joomla Accessibility Checker visually highlights common accessibility and usability issues. Geared towards content authors, the plugin identifies errors or warnings and provides guidance on how to fix them. Please be aware that this plugin does not offer an exhaustive analysis of your website, nor does it automatically ensure your website's accessibility. It's important to select a template that is inherently accessible to ensure your site meets accessibility standards." - -; All the following strings are deprecated and will be removed with 6.0 -PLG_SYSTEM_JOOA11Y_ALERT_CLOSE="Close" -PLG_SYSTEM_JOOA11Y_ALERT_TEXT="Alert" -PLG_SYSTEM_JOOA11Y_AVG_WORD_PER_SENTENCE="Average words per sentence:" -PLG_SYSTEM_JOOA11Y_COMPLEX_WORDS="Complex words:" -PLG_SYSTEM_JOOA11Y_CONTAINER_LABEL="Accessibility Checker" -PLG_SYSTEM_JOOA11Y_CONTRAST="Contrast" -PLG_SYSTEM_JOOA11Y_CONTRAST_ERROR_INPUT_MESSAGE="The text within this input does not have enough contrast with the background. The contrast ratio should be at least 4.5:1 for normal text and 3:1 for large text." -PLG_SYSTEM_JOOA11Y_CONTRAST_ERROR_INPUT_MESSAGE_INFO="The contrast ratio is %(cratio)." -PLG_SYSTEM_JOOA11Y_CONTRAST_ERROR_MESSAGE="This text does not have enough contrast with the background. The contrast ratio should be at least 4.5:1 for normal text and 3:1 for large text." -PLG_SYSTEM_JOOA11Y_CONTRAST_ERROR_MESSAGE_INFO="The contrast ratio is %(cratio) for the following text: %(nodetext)" -PLG_SYSTEM_JOOA11Y_CONTRAST_WARNING_MESSAGE="The contrast of this text is unknown and needs to be manually reviewed. Ensure the text and the background have strong contrasting colours. The contrast ratio should be at least 4.5:1 for normal text and 3:1 for large text." -PLG_SYSTEM_JOOA11Y_CONTRAST_WARNING_MESSAGE_INFO="Please review contrast of the following text:
%(nodetext)" -PLG_SYSTEM_JOOA11Y_DARK_MODE="Dark Mode" -PLG_SYSTEM_JOOA11Y_DIFFICULT_READABILITY="Difficult" -PLG_SYSTEM_JOOA11Y_EMBED_AUDIO="Please ensure to provide a transcript for all podcasts. Providing transcripts for audio content is a mandatory Level A requirement. Transcripts support people who are D/deaf or hard-of-hearing, but can benefit everyone. Consider placing the transcript below or within an accordion panel." -PLG_SYSTEM_JOOA11Y_EMBED_GENERAL_WARNING="Unable to check embedded content. Please make sure that images have alt text, videos have captions, text has sufficient contrast, and interactive components are keyboard accessible." -PLG_SYSTEM_JOOA11Y_EMBED_MISSING_TITLE="Embedded content requires an accessible name that describes its contents. Please provide a unique title or aria-label attribute on the iframe element. Learn more about iFrames." -PLG_SYSTEM_JOOA11Y_EMBED_VIDEO="Please ensure all videos have closed captioning. Providing captions for all audio and video content is a mandatory Level A requirement. Captions support people who are D/deaf or hard-of-hearing." -PLG_SYSTEM_JOOA11Y_ERROR="Error" -PLG_SYSTEM_JOOA11Y_FAIRLY_DIFFICULT_READABILITY="Fairly difficult" -PLG_SYSTEM_JOOA11Y_FIELD_ADDITIONAL_CHECKS="Additional Checks Always On" -PLG_SYSTEM_JOOA11Y_FIELD_ADDITIONAL_CHECKS_DESC="Enabling this option will visually hide the toggle switches for Form Labels, Contrast, Links (Advanced) in the Settings panel." -PLG_SYSTEM_JOOA11Y_FIELD_COLOUR_FILTER="Colour Filter" -PLG_SYSTEM_JOOA11Y_FIELD_COLOUR_FILTER_DESC="Show Colour Filter toggle in Settings panel. Colour filters help identify colour combinations that may be difficult for people to distinguish." -PLG_SYSTEM_JOOA11Y_FIELD_CONTRAST="Contrast" -PLG_SYSTEM_JOOA11Y_FIELD_CONTRAST_DESC="Show Contrast toggle in Settings panel. Check for WCAG 2.0 Level AA contrast issues between foreground text and background elements." -PLG_SYSTEM_JOOA11Y_FIELD_FORM_LABELS="Form Labels" -PLG_SYSTEM_JOOA11Y_FIELD_FORM_LABELS_DESC="Show Form Labels toggle in Settings panel. Check for form inputs missing a corresponding label. Not necessarily a content author issue, and usually not an issue when using a reputable, accessible forms plugin." -PLG_SYSTEM_JOOA11Y_FIELD_LINKS_ADVANCED="Links (Advanced)" -PLG_SYSTEM_JOOA11Y_FIELD_LINKS_ADVANCED_DESC="Show Links (Advanced) toggle in Settings panel. Check for additional issues such as: links that open in a new tab without warning, have identical names but different purpose, or points to a PDF and other files without warning." -PLG_SYSTEM_JOOA11Y_FIELD_WEB_COMPONENTS="Web Components to Check" -PLG_SYSTEM_JOOA11Y_FIELD_WEB_COMPONENTS_DESC="Provide a list of all known web components or containers with an open shadow DOM." -PLG_SYSTEM_JOOA11Y_FILE_TYPE_WARNING="Link points to a PDF or downloadable file (e.g. MP3, Zip, Word Doc) without warning. Indicate the file type within the link text. If it is a large file, consider including the file size." -PLG_SYSTEM_JOOA11Y_FILE_TYPE_WARNING_TIP="Example: Executive Report (PDF, 3MB)" -PLG_SYSTEM_JOOA11Y_FORM_LABELS="Form labels" -PLG_SYSTEM_JOOA11Y_GOOD="Good" -PLG_SYSTEM_JOOA11Y_GOOD_READABILITY="Good" -PLG_SYSTEM_JOOA11Y_HEADING_EMPTY="Empty heading found! To fix, delete this line or change its format from Heading %(level) to Normal or Paragraph." -PLG_SYSTEM_JOOA11Y_HEADING_EMPTY_WITH_IMAGE="Heading has no text, but contains an image. If this is not a heading, change its format from Heading %(level) to Normal or Paragraph. Otherwise, please add alt text to the image if it is not decorative." -PLG_SYSTEM_JOOA11Y_HEADING_FIRST="The first heading on a page should usually be a Heading 1 or Heading 2. Heading 1 should be the start of the main content section, and is the main heading that describes the overall purpose of the page. Learn more about Heading Structure." -PLG_SYSTEM_JOOA11Y_HEADING_LONG="Heading is long! Headings should be used to organize content and convey structure. They should be brief, informative, and unique. Please keep headings less than 160 characters (no more than a sentence)." -PLG_SYSTEM_JOOA11Y_HEADING_LONG_INFO="Character Count: %(headingLength)." -PLG_SYSTEM_JOOA11Y_HEADING_MISSING_ONE="Missing Heading 1. Heading 1 should be the start of the main content area, and is the main heading that describes the overall purpose of the page. Learn more about Heading Structure." -PLG_SYSTEM_JOOA11Y_HEADING_NON_CONSECUTIVE_LEVEL="Non-consecutive heading level used. Headings should never skip levels, or go from Heading %(prevLevel) to Heading %(level)." -PLG_SYSTEM_JOOA11Y_HIDE_OUTLINE="Hide Outline" -PLG_SYSTEM_JOOA11Y_HIDE_SETTINGS="Hide Settings" -PLG_SYSTEM_JOOA11Y_HYPERLINK_ALT_LENGTH_MESSAGE="Alt text description on a linked image is too long. The alt text on linked images should describe where the link takes you, not a literal description of the image. Consider using the title of the page it links to as the alt text." -PLG_SYSTEM_JOOA11Y_HYPERLINK_ALT_LENGTH_MESSAGE_INFO="The alt text is %(altLength) characters: %(altText)" -PLG_SYSTEM_JOOA11Y_IMAGE_FIGURE_DECORATIVE="Image is marked as decorative and will be ignored by assistive technology." -PLG_SYSTEM_JOOA11Y_IMAGE_FIGURE_DECORATIVE_INFO="Although a caption was provided, the image should also have alt text in most cases.
  • The alt text should provide a concise description of what is in the image.
  • The caption should usually provide context to relate the image back to the surrounding content, or give attention to a particular piece of information.
Learn more: alt versus figcaption." -PLG_SYSTEM_JOOA11Y_IMAGE_FIGURE_DUPLICATE_ALT="Do not use the exact same words for both the alt and caption text. Screen readers will announce the information twice." -PLG_SYSTEM_JOOA11Y_LABELS_ARIA_LABEL_INPUT_MESSAGE="Input has an accessible name, although please ensure there is a visible label too." -PLG_SYSTEM_JOOA11Y_LABELS_ARIA_LABEL_INPUT_MESSAGE_INFO="The accessible name for this input is: %(ariaLabel)" -PLG_SYSTEM_JOOA11Y_LABELS_INPUT_RESET_MESSAGE="Reset buttons should not be used unless specifically needed because they are easy to activate by mistake." -PLG_SYSTEM_JOOA11Y_LABELS_INPUT_RESET_MESSAGE_TIP="Tip! Learn why Reset and Cancel buttons pose usability issues." -PLG_SYSTEM_JOOA11Y_LABELS_MISSING_IMAGE_INPUT_MESSAGE="Image button is missing alt text. Please add alt text to provide an accessible name. For example: Search or Submit." -PLG_SYSTEM_JOOA11Y_LABELS_MISSING_LABEL_MESSAGE="There is no label associated with this input. Please add an id to this input, and add a matching for attribute to the label." -PLG_SYSTEM_JOOA11Y_LABELS_NO_FOR_ATTRIBUTE_MESSAGE="There is no label associated with this input. Add a for attribute to the label that matches the id of this input." -PLG_SYSTEM_JOOA11Y_LABELS_NO_FOR_ATTRIBUTE_MESSAGE_INFO="The ID for this input is: id="%(t)"" -PLG_SYSTEM_JOOA11Y_LANG_CODE="en" -PLG_SYSTEM_JOOA11Y_LINK_ALT_HAS_BAD_WORD_MESSAGE="File extension within the alt text found. If the image conveys a story, mood, or important information - be sure to describe the image." -PLG_SYSTEM_JOOA11Y_LINK_ALT_HAS_BAD_WORD_MESSAGE_INFO="Remove: %(error).
The alt text for this image is: %(altText)" -PLG_SYSTEM_JOOA11Y_LINK_ALT_HAS_SUS_WORD_MESSAGE="Assistive technologies already indicate that this is an image, so "%(error)" or "%(error) of" may be redundant." -PLG_SYSTEM_JOOA11Y_LINK_ALT_HAS_SUS_WORD_MESSAGE_INFO="The alt text for this image is: %(altText)" -PLG_SYSTEM_JOOA11Y_LINK_ALT_PLACEHOLDER_MESSAGE="Non-descript or placeholder alt text found. Replace the following alt text with something more meaningful: %(altText)." -PLG_SYSTEM_JOOA11Y_LINK_ALT_TOO_LONG_MESSAGE="Alt text description is too long. Alt text should be concise, yet meaningful like a tweet (around 100 characters). If this is a complex image or a graph, consider putting the long description of the image in the text below or an accordion component." -PLG_SYSTEM_JOOA11Y_LINK_ALT_TOO_LONG_MESSAGE_INFO="The alt text is %(altLength) characters: %(altText)" -PLG_SYSTEM_JOOA11Y_LINK_ANCHOR_LINK_AND_ALT_MESSAGE="Image link contains both alt text and surrounding link text. If this image is decorative and is being used as a functional link to another page, consider marking the image as decorative - the surrounding link text should suffice." -PLG_SYSTEM_JOOA11Y_LINK_ANCHOR_LINK_AND_ALT_MESSAGE_INFO="Alt text: %(altText)" -PLG_SYSTEM_JOOA11Y_LINK_BEST_PRACTICES="Consider replacing the link text: %(error)" -PLG_SYSTEM_JOOA11Y_LINK_BEST_PRACTICES_DETAILS="
  • "Click here" places focus on mouse mechanics, when many people do not use a mouse or may be viewing this website on a mobile device. Consider using a different verb that relates to the task.
  • Avoid using HTML symbols as call to actions unless they are hidden to assistive technologies.
" -PLG_SYSTEM_JOOA11Y_LINK_DECORATIVE_MESSAGE="Image is marked as decorative and will be ignored by assistive technology. If the image conveys a story, mood or important information - be sure to add alt text." -PLG_SYSTEM_JOOA11Y_LINK_EMPTY="Remove empty links without any text." -PLG_SYSTEM_JOOA11Y_LINK_EMPTY_LINK_NO_LABEL="Link does not have discernable text that is visible to screen readers and other assistive technology. To fix:
  • Add some concise text that describes where the link takes you.
  • If it is an icon link or SVG it is likely missing a descriptive label.
  • If you think this link is an error due to a copy/paste bug, consider deleting it.
" -PLG_SYSTEM_JOOA11Y_LINK_HYPERLINKED_IMAGE_ARIA_HIDDEN="Link around image has aria-hidden="true" but is still keyboard focusable. If you are intending to hide a redundant or duplicate link, add tabindex="-1" as well." -PLG_SYSTEM_JOOA11Y_LINK_IDENTICAL_NAME="Link has identical text as another link, although it points to a different page. Multiple links with the same text may cause confusion for people who use screen readers." -PLG_SYSTEM_JOOA11Y_LINK_IDENTICAL_NAME_TIP="Consider making the following link more descriptive to help distinguish it from other links: %(linkText)" -PLG_SYSTEM_JOOA11Y_LINK_IMAGE_BAD_ALT_MESSAGE="File extension within the alt text found. Ensure the alt text describes the destination of the link, not a literal description of the image. Remove: %(error)." -PLG_SYSTEM_JOOA11Y_LINK_IMAGE_BAD_ALT_MESSAGE_INFO="The alt text for this image is: %(altText)" -PLG_SYSTEM_JOOA11Y_LINK_IMAGE_LINK_ALT_TEXT_MESSAGE="Image link contains alt text, although please ensure alt text describes the destination page. Consider using the title of the page it links to as the alt text. Does the alt text describe where the link takes you?" -PLG_SYSTEM_JOOA11Y_LINK_IMAGE_LINK_ALT_TEXT_MESSAGE_INFO="Alt text: %(altText)" -PLG_SYSTEM_JOOA11Y_LINK_IMAGE_LINK_NULL_ALT_NO_TEXT_MESSAGE="Image within link is marked as decorative and there is no link text. Please add alt text to the image that describes the destination of the link." -PLG_SYSTEM_JOOA11Y_LINK_IMAGE_PLACEHOLDER_ALT_MESSAGE="Non-descript or placeholder alt text within a linked image found. Ensure the alt text describes the destination of the link, not a literal description of the image. Replace the following alt text: %(altText)." -PLG_SYSTEM_JOOA11Y_LINK_IMAGE_SUS_ALT_MESSAGE="Assistive technologies already indicate that this is an image, so "%(error)" or "%(error) of" may be redundant. Ensure the alt text describes the destination of the link, not a literal description of the image." -PLG_SYSTEM_JOOA11Y_LINK_IMAGE_SUS_ALT_MESSAGE_INFO="The alt text for this image is: %(altText)." -PLG_SYSTEM_JOOA11Y_LINK_LABEL="The descriptive label for this link is: %(linkText)" -PLG_SYSTEM_JOOA11Y_LINK_LINK_HAS_ALT_MESSAGE="Image is marked as decorative, although the link is using the surrounding text as a descriptive label." -PLG_SYSTEM_JOOA11Y_LINK_PASS_ALT="The alt text for this image is: %(altText)" -PLG_SYSTEM_JOOA11Y_LINK_STOPWORD="Link text may not be descriptive enough out of context: %(error)" -PLG_SYSTEM_JOOA11Y_LINK_STOPWORD_TIP="Tip! Link text should always be clear, unique, and meaningful. Avoid common words like \"click here\"; or \"learn more\"." -PLG_SYSTEM_JOOA11Y_LINK_URL="Longer, less intelligible URLs used as link text might be difficult to listen to with assistive technology. In most cases, it is better to use human-readable text instead of the URL. Short URLs (such as a site's homepage) are okay." -PLG_SYSTEM_JOOA11Y_LINK_URL_TIP="Tip! Link text should always be clear, unique, and meaningful so it could be understood out of context." -PLG_SYSTEM_JOOA11Y_LINKS_ADVANCED="Links (Advanced)" -PLG_SYSTEM_JOOA11Y_MAIN_TOGGLE_LABEL="Check Accessibility" -PLG_SYSTEM_JOOA11Y_MISSING_ALT_LINK_BUT_HAS_TEXT_MESSAGE="Image is being used as a link with surrounding text, although the alt attribute should be marked as decorative." -PLG_SYSTEM_JOOA11Y_MISSING_ALT_LINK_MESSAGE="Image is being used as a link but is missing alt text! Please ensure alt text describes where the link takes you." -PLG_SYSTEM_JOOA11Y_MISSING_ALT_MESSAGE="Missing alt text! If the image conveys a story, mood, or important information - be sure to describe the image." -PLG_SYSTEM_JOOA11Y_NEW_TAB_WARNING="Link opens in a new tab or window without warning. Doing so can be disorienting, especially for people who have difficulty perceiving visual content. Secondly, it is not always a good practice to control someone's experience or make decisions for them. Indicate that the link opens in a new window within the link text." -PLG_SYSTEM_JOOA11Y_NEW_TAB_WARNING_TIP="Tip! Learn best practices: opening links in new browser windows and tabs." -PLG_SYSTEM_JOOA11Y_OFF="Off" -PLG_SYSTEM_JOOA11Y_ON="On" -PLG_SYSTEM_JOOA11Y_PAGE_OUTLINE="Page Outline" -PLG_SYSTEM_JOOA11Y_PANEL_HEADING_MISSING_ONE="Missing Heading 1!" -PLG_SYSTEM_JOOA11Y_PANEL_STATUS_BOTH="Accessibility Errors: %(errorCount). Accessibility Warnings: %(warningCount)." -PLG_SYSTEM_JOOA11Y_PANEL_STATUS_ERRORS="Accessibility Errors: %(errorCount)." -PLG_SYSTEM_JOOA11Y_PANEL_STATUS_HIDDEN="The item you are trying to view is not visible; it may be hidden or inside of an accordion or tab component. Here's a preview: " -PLG_SYSTEM_JOOA11Y_PANEL_STATUS_ICON="Total issues found: %(totalCount)" -PLG_SYSTEM_JOOA11Y_PANEL_STATUS_NONE="No accessibility errors found." -PLG_SYSTEM_JOOA11Y_PANEL_STATUS_WARNINGS="Accessibility Warnings: %(warningCount)." -PLG_SYSTEM_JOOA11Y_QA_BAD_ITALICS="Bold and italic tags have semantic meaning, and should not be used to highlight entire paragraphs. Bolded text should be used to provide strong emphasis on a word or phrase. Italics should be used to highlight proper names (i.e. book and article titles), foreign words, quotes. Long quotes should be formatted as a blockquote." -PLG_SYSTEM_JOOA11Y_QA_BAD_LINK="Bad link found. Link appears to point to a development environment. This link points to: %(el)" -PLG_SYSTEM_JOOA11Y_QA_BLOCKQUOTE_MESSAGE="Is this a heading? %(bqHeadingText)" -PLG_SYSTEM_JOOA11Y_QA_BLOCKQUOTE_MESSAGE_TIP="Blockquotes should be used for quotes only. If this is intended to be a heading, change this blockquote to a semantic heading (e.g. Heading 2 or Heading 3)." -PLG_SYSTEM_JOOA11Y_QA_DUPLICATE_ID="Found duplicate ID. Duplicate ID errors are known to cause problems for assistive technologies when they are trying to interact with content." -PLG_SYSTEM_JOOA11Y_QA_DUPLICATE_ID_TIP="Please remove or change the following ID: %(id)" -PLG_SYSTEM_JOOA11Y_QA_FAKE_HEADING="Is this a heading? %(boldtext)" -PLG_SYSTEM_JOOA11Y_QA_FAKE_HEADING_INFO="A line of bold text might look like a heading, but someone using a screen reader cannot tell that it is important or jump to its content. Bolded text should never replace semantic headings (Heading 2 to Heading 6)." -PLG_SYSTEM_JOOA11Y_QA_PAGE_LANGUAGE_MESSAGE="Page language not declared! Please declare language on HTML tag." -PLG_SYSTEM_JOOA11Y_QA_PDF_COUNT="PDFs are considered web content and must be made accessible as well. PDFs often contain issues for people who use screen readers (missing structural tags or missing form field labels) and people who have low vision (text does not reflow when enlarged).
  • If this is a form, consider using an accessible HTML form as an alternative.
  • If this is a document, consider converting it into a web page.

Otherwise, please check %(pdfCount) PDF(s) for accessibility in Acrobat DC." -PLG_SYSTEM_JOOA11Y_QA_SHOULD_BE_LIST="Are you trying to create a list? Possible list item found: %(firstPrefix)" -PLG_SYSTEM_JOOA11Y_QA_SHOULD_BE_LIST_TIP="Make sure to use semantic lists by using the bullet or number formatting buttons instead. When using a semantic list, assistive technologies are able to convey information such as the total number of items and the relative position of each item in the list. Learn more about semantic lists." -PLG_SYSTEM_JOOA11Y_QA_UPPERCASE_WARNING="Found all caps. Some screen readers may interpret all caps text as an acronym and will read each letter individually. Additionally, some people find all caps more difficult to read and it may give the appearance of SHOUTING." -PLG_SYSTEM_JOOA11Y_READABILITY="Readability:" -PLG_SYSTEM_JOOA11Y_READABILITY_NO_P_OR_LI_MESSAGE="Unable to calculate readability score. No paragraph <p> or list content <li> found." -PLG_SYSTEM_JOOA11Y_READABILITY_NOT_ENOUGH_CONTENT_MESSAGE="Not enough content to calculate readability score." -PLG_SYSTEM_JOOA11Y_SETTINGS="Settings" -PLG_SYSTEM_JOOA11Y_SHORTCUT_SR="Skip to issue. Keyboard shortcut: Alt period" -PLG_SYSTEM_JOOA11Y_SHORTCUT_TOOLTIP="Skip to issue" -PLG_SYSTEM_JOOA11Y_SHOW_OUTLINE="Show Outline" -PLG_SYSTEM_JOOA11Y_SHOW_SETTINGS="Show Settings" -PLG_SYSTEM_JOOA11Y_TABLES_EMPTY_HEADING="Empty table header found! Table headers should never be empty. It is important to designate row and/or column headers to convey their relationship. This information provides context to people who use assistive technology. Please keep in mind that tables should be used for tabular data only." -PLG_SYSTEM_JOOA11Y_TABLES_EMPTY_HEADING_INFO="Learn more about accessible tables." -PLG_SYSTEM_JOOA11Y_TABLES_MISSING_HEADINGS="Missing table headers! Accessible tables need HTML markup that indicates header cells and data cells which defines their relationship. This information provides context to people who use assistive technology. Tables should be used for tabular data only." -PLG_SYSTEM_JOOA11Y_TABLES_MISSING_HEADINGS_INFO="Learn more about accessible tables." -PLG_SYSTEM_JOOA11Y_TABLES_SEMANTIC_HEADING="Semantic headings such as Heading 2 or Heading 3 should only be used for sections of content; not in HTML tables. Indicate table headings using the th element instead." -PLG_SYSTEM_JOOA11Y_TABLES_SEMANTIC_HEADING_INFO="Learn more about accessible tables." -PLG_SYSTEM_JOOA11Y_TEXT_UNDERLINE_WARNING="Underlined text can be confused with links." -PLG_SYSTEM_JOOA11Y_TEXT_UNDERLINE_WARNING_TIP="Consider using a different style such as <em>emphasis</em>." -PLG_SYSTEM_JOOA11Y_TOTAL_WORDS="Words:" -PLG_SYSTEM_JOOA11Y_VERY_DIFFICULT_READABILITY="Very difficult" -PLG_SYSTEM_JOOA11Y_WARNING="Warning" diff --git a/administrator/language/en-GB/plg_system_privacyconsent.ini b/administrator/language/en-GB/plg_system_privacyconsent.ini index f15388b120217..f89da10034c0a 100644 --- a/administrator/language/en-GB/plg_system_privacyconsent.ini +++ b/administrator/language/en-GB/plg_system_privacyconsent.ini @@ -25,20 +25,3 @@ PLG_SYSTEM_PRIVACYCONSENT_REDIRECT_MESSAGE_DESC="Custom message to be displayed PLG_SYSTEM_PRIVACYCONSENT_REDIRECT_MESSAGE_LABEL="Redirect Message" PLG_SYSTEM_PRIVACYCONSENT_SUBJECT="Privacy Policy" PLG_SYSTEM_PRIVACYCONSENT_XML_DESCRIPTION="Basic plugin to request user's consent to the site's privacy policy. Existing users who have not consented yet will be redirected on login to update their profile." - -; All the following strings are deprecated and will be removed with 6.0 -PLG_SYSTEM_PRIVACYCONSENT_CACHETIMEOUT_DESC="How often the check is performed." -PLG_SYSTEM_PRIVACYCONSENT_CACHETIMEOUT_LABEL="Periodic check (days)" -PLG_SYSTEM_PRIVACYCONSENT_CONSENTEXPIRATION_DESC="Number of days after which the privacy consent shall expire." -PLG_SYSTEM_PRIVACYCONSENT_CONSENTEXPIRATION_LABEL="Expiration" -PLG_SYSTEM_PRIVACYCONSENT_EMAIL_REMIND_BODY="Your Privacy Consent given at {URL} will expire in few days, you can renew the privacy consent for this website.\n\nIn order to do this, you can complete one of the following tasks:\n\n1. Visit the following URL: {TOKENURL}\n\n2. Copy your token from this email, visit the referenced URL, and paste your token into the form.\nURL: {FORMURL}\nToken: {TOKEN}\n\nPlease note that this token is only valid for this account." -PLG_SYSTEM_PRIVACYCONSENT_EMAIL_REMIND_SUBJECT="Privacy Consent at {SITENAME}" -PLG_SYSTEM_PRIVACYCONSENT_EXPIRATION_FIELDSET_LABEL="Expiration" -PLG_SYSTEM_PRIVACYCONSENT_FIELD_ENABLED_DESC="When enabled it performs checks for consent expiration." -PLG_SYSTEM_PRIVACYCONSENT_FIELD_ENABLED_LABEL="Enable" -PLG_SYSTEM_PRIVACYCONSENT_MAIL_REQUEST_REMINDER_DESC="Reminder to renew the privacy consent for this website." -PLG_SYSTEM_PRIVACYCONSENT_MAIL_REQUEST_REMINDER_TITLE="System - Privacy Consent: Renew Consent" -PLG_SYSTEM_PRIVACYCONSENT_NOTIFICATION_USER_PRIVACY_EXPIRED_MESSAGE="Privacy consent has expired for %1$s." -PLG_SYSTEM_PRIVACYCONSENT_NOTIFICATION_USER_PRIVACY_EXPIRED_SUBJECT="Privacy Consent Expired" -PLG_SYSTEM_PRIVACYCONSENT_REMINDBEFORE_DESC="Number of days to send a reminder before the expiration of the privacy consent." -PLG_SYSTEM_PRIVACYCONSENT_REMINDBEFORE_LABEL="Remind" diff --git a/administrator/language/en-GB/plg_system_schemaorg.ini b/administrator/language/en-GB/plg_system_schemaorg.ini index 617dedbfd5251..4e13d9795cd1a 100644 --- a/administrator/language/en-GB/plg_system_schemaorg.ini +++ b/administrator/language/en-GB/plg_system_schemaorg.ini @@ -9,9 +9,6 @@ PLG_SYSTEM_SCHEMAORG_BASETYPE_LABEL="Base Type" PLG_SYSTEM_SCHEMAORG_BASETYPE_OPTION_ORGANIZATION="Organization" PLG_SYSTEM_SCHEMAORG_BASETYPE_OPTION_PERSON="Person" PLG_SYSTEM_SCHEMAORG_FIELD_SCHEMA_DESCRIPTION="Structured data is a standardised format for organising and representing information on the web. It provides a way to describe the content and meaning of data in a structured manner, making it easier for search engines and other applications to understand and process the information. More information on schema.org." -; The following two strings are deprecated and will be removed with 6.0 -PLG_SYSTEM_SCHEMAORG_FIELD_SCHEMA_DESCRIPTION_NOT_CONFIGURATED="To use the schema.org functionality, you have to configure the plugin first. Please contact an administrator of the page to get it configured." -PLG_SYSTEM_SCHEMAORG_FIELD_SCHEMA_DESCRIPTION_NOT_CONFIGURATED_ADMIN="To use the schema.org functionality, you have to configure the plugin first. Please select this link to open the plugin, configure and save." PLG_SYSTEM_SCHEMAORG_FIELD_SCHEMA_DESCRIPTION_NOT_CONFIGURED="To use the schema.org functionality, you have to configure the plugin first. Please contact an administrator of the page to get it configured." PLG_SYSTEM_SCHEMAORG_FIELD_SCHEMA_DESCRIPTION_NOT_CONFIGURED_ADMIN="To use the schema.org functionality, you have to configure the plugin first. Please select this link to open the plugin, configure and save." PLG_SYSTEM_SCHEMAORG_FIELD_SCHEMA_EXTEND_JED_DESC="Need more Schema types? Extend with Schema Plugins from Joomla! Extension Directory." diff --git a/administrator/language/en-GB/tpl_atum.ini b/administrator/language/en-GB/tpl_atum.ini index 13d9f6ca31423..7c3a9fa5a568c 100644 --- a/administrator/language/en-GB/tpl_atum.ini +++ b/administrator/language/en-GB/tpl_atum.ini @@ -21,13 +21,16 @@ TPL_ATUM_COLORS_SETTINGS_TEXT_DARK_LABEL="Dark Text" TPL_ATUM_COLORS_SETTINGS_TEXT_LIGHT_LABEL="Light Text" TPL_ATUM_IMAGE_LABEL="Image" TPL_ATUM_IMAGE_SETTINGS_LABEL="Image Settings" +TPL_ATUM_LOGIN_LOGO_DESCRIPTION="The recommended size is 70px x 70px" TPL_ATUM_LOGIN_LOGO_LABEL="Login Logo" TPL_ATUM_LOGIN_SIDEBAR_VIEW_WEBSITE="View website" TPL_ATUM_LOGO_ALT_EMPTY_DESC="Decorative Image - no description required" TPL_ATUM_LOGO_ALT_EMPTY_LABEL="No Description" TPL_ATUM_LOGO_ALT_LABEL="Image Description (Alt Text)" TPL_ATUM_MORE_ELEMENTS="More Elements" +TPL_ATUM_SITE_LOGO_DESCRIPTION="The recommended size is 150px x 30px" TPL_ATUM_SITE_LOGO_LABEL="Brand Large" +TPL_ATUM_SITE_LOGO_SMALL_DESCRIPTION="The recommended size is 20px x 20px" TPL_ATUM_SITE_LOGO_SMALL_LABEL="Brand Small" TPL_ATUM_TOOLBAR="Toolbar" -TPL_ATUM_XML_DESCRIPTION="Continuing the Egyptian god/goddess theme (Khepri from 1.5, Hathor from 1.6, Isis from 3.0), Atum is the name of the Joomla 4 and Joomla 5 administrator template." +TPL_ATUM_XML_DESCRIPTION="Continuing the Egyptian god/goddess theme (Khepri from 1.5, Hathor from 1.6, Isis from 3.0), Atum is the name of the Joomla administrator template." diff --git a/administrator/language/en-GB/tpl_atum.sys.ini b/administrator/language/en-GB/tpl_atum.sys.ini index 50eb38f0c5918..9388cdad5d1d6 100644 --- a/administrator/language/en-GB/tpl_atum.sys.ini +++ b/administrator/language/en-GB/tpl_atum.sys.ini @@ -16,4 +16,4 @@ TPL_ATUM_POSITION_STATUS="Status" TPL_ATUM_POSITION_TITLE="Title" TPL_ATUM_POSITION_TOOLBAR="Toolbar" TPL_ATUM_POSITION_TOP="Top" -TPL_ATUM_XML_DESCRIPTION="Continuing the Egyptian god/goddess theme (Khepri from 1.5, Hathor from 1.6, Isis from 3.0), Atum is the name of the Joomla 4 and Joomla 5 administrator template." +TPL_ATUM_XML_DESCRIPTION="Continuing the Egyptian god/goddess theme (Khepri from 1.5, Hathor from 1.6, Isis from 3.0), Atum is the name of the Joomla administrator template." diff --git a/administrator/manifests/files/joomla.xml b/administrator/manifests/files/joomla.xml index 1eeb962d3f0ba..12c51249b934e 100644 --- a/administrator/manifests/files/joomla.xml +++ b/administrator/manifests/files/joomla.xml @@ -6,7 +6,7 @@ www.joomla.org (C) 2019 Open Source Matters, Inc. GNU General Public License version 2 or later; see LICENSE.txt - 5.4.1-dev + 6.0.1-dev 2025-10 FILES_JOOMLA_XML_DESCRIPTION diff --git a/administrator/manifests/packages/pkg_en-GB.xml b/administrator/manifests/packages/pkg_en-GB.xml index ee9f2b2657db5..e5840722f4724 100644 --- a/administrator/manifests/packages/pkg_en-GB.xml +++ b/administrator/manifests/packages/pkg_en-GB.xml @@ -2,7 +2,7 @@ English (en-GB) Language Pack en-GB - 5.4.1.1 + 6.0.1.1 2025-10 Joomla! Project admin@joomla.org @@ -21,7 +21,7 @@ - https://update.joomla.org/language/translationlist_5.xml + https://update.joomla.org/language/translationlist_6.xml diff --git a/administrator/modules/mod_logged/src/Helper/LoggedHelper.php b/administrator/modules/mod_logged/src/Helper/LoggedHelper.php index bcefae12b6e81..4e7af474e12de 100644 --- a/administrator/modules/mod_logged/src/Helper/LoggedHelper.php +++ b/administrator/modules/mod_logged/src/Helper/LoggedHelper.php @@ -44,7 +44,7 @@ class LoggedHelper public function getUsers(Registry $params, CMSApplication $app, DatabaseInterface $db): mixed { $user = $app->getIdentity(); - $query = $db->getQuery(true) + $query = $db->createQuery() ->select('s.time, s.client_id, u.id, u.name, u.username') ->from('#__session AS s') ->join('RIGHT', '#__users AS u ON s.userid = u.id') diff --git a/administrator/modules/mod_menu/tmpl/default_submenu.php b/administrator/modules/mod_menu/tmpl/default_submenu.php index ed17c7f33e9e8..a22e052088cab 100644 --- a/administrator/modules/mod_menu/tmpl/default_submenu.php +++ b/administrator/modules/mod_menu/tmpl/default_submenu.php @@ -34,13 +34,7 @@ $class .= ' parent'; } -if ($current->level == 1) { - $class .= ' item-level-1'; -} elseif ($current->level == 2) { - $class .= ' item-level-2'; -} elseif ($current->level == 3) { - $class .= ' item-level-3'; -} +$class .= ' item-level-' . (int) $current->level; // Set the correct aria role and print the item if ($current->type == 'separator') { diff --git a/administrator/modules/mod_popular/mod_popular.php b/administrator/modules/mod_popular/mod_popular.php deleted file mode 100644 index 1896c3d58aff5..0000000000000 --- a/administrator/modules/mod_popular/mod_popular.php +++ /dev/null @@ -1,49 +0,0 @@ - - * @license GNU General Public License version 2 or later; see LICENSE.txt - */ - -\defined('_JEXEC') or die; - -use Joomla\CMS\Component\ComponentHelper; -use Joomla\CMS\Helper\ModuleHelper; -use Joomla\CMS\Layout\LayoutHelper; -use Joomla\Module\Popular\Administrator\Helper\PopularHelper; - -$model = $app->bootComponent('com_content')->getMVCFactory()->createModel('Articles', 'Administrator', ['ignore_request' => true]); -$list = PopularHelper::getList($params, $model); - -// Get module data. -if ($params->get('automatic_title', 0)) { - $module->title = PopularHelper::getTitle($params); -} - -// If recording of hits is disabled. -if (!ComponentHelper::getParams('com_content')->get('record_hits', 1)) { - echo LayoutHelper::render('joomla.content.emptystate_module', [ - 'title' => 'JGLOBAL_RECORD_HITS_DISABLED', - 'icon' => 'icon-minus-circle', - ]); - - return; -} - -// If there are some articles to display. -if (\count($list)) { - require ModuleHelper::getLayoutPath('mod_popular', $params->get('layout', 'default')); - - return; -} - -// If there are no articles to display, show empty state. -$app->getLanguage()->load('com_content'); - -echo LayoutHelper::render('joomla.content.emptystate_module', [ - 'textPrefix' => 'COM_CONTENT', - 'icon' => 'icon-copy', - ]); diff --git a/administrator/modules/mod_popular/mod_popular.xml b/administrator/modules/mod_popular/mod_popular.xml index 5d1c3e00fcb65..6f937af59d214 100644 --- a/administrator/modules/mod_popular/mod_popular.xml +++ b/administrator/modules/mod_popular/mod_popular.xml @@ -11,7 +11,7 @@ MOD_POPULAR_XML_DESCRIPTION Joomla\Module\Popular - mod_popular.php + services src tmpl diff --git a/administrator/modules/mod_popular/services/provider.php b/administrator/modules/mod_popular/services/provider.php new file mode 100644 index 0000000000000..67f2c33aef3cc --- /dev/null +++ b/administrator/modules/mod_popular/services/provider.php @@ -0,0 +1,41 @@ + + * @license GNU General Public License version 2 or later; see LICENSE.txt + */ + +\defined('_JEXEC') or die; + +use Joomla\CMS\Extension\Service\Provider\HelperFactory; +use Joomla\CMS\Extension\Service\Provider\Module; +use Joomla\CMS\Extension\Service\Provider\ModuleDispatcherFactory; +use Joomla\DI\Container; +use Joomla\DI\ServiceProviderInterface; + +/** + * The latest articles module service provider. + * + * @since 6.0.0 + */ +return new class () implements ServiceProviderInterface { + /** + * Registers the service provider with a DI container. + * + * @param Container $container The DI container. + * + * @return void + * + * @since 6.0.0 + */ + public function register(Container $container) + { + $container->registerServiceProvider(new ModuleDispatcherFactory('\\Joomla\\Module\\Popular')); + $container->registerServiceProvider(new HelperFactory('\\Joomla\\Module\\Popular\\Administrator\\Helper')); + + $container->registerServiceProvider(new Module()); + } +}; diff --git a/administrator/modules/mod_popular/src/Dispatcher/Dispatcher.php b/administrator/modules/mod_popular/src/Dispatcher/Dispatcher.php new file mode 100644 index 0000000000000..498b0dd42bd94 --- /dev/null +++ b/administrator/modules/mod_popular/src/Dispatcher/Dispatcher.php @@ -0,0 +1,59 @@ + + * @license GNU General Public License version 2 or later; see LICENSE.txt + */ + +namespace Joomla\Module\Popular\Administrator\Dispatcher; + +use Joomla\CMS\Component\ComponentHelper; +use Joomla\CMS\Dispatcher\AbstractModuleDispatcher; +use Joomla\CMS\Helper\HelperFactoryAwareInterface; +use Joomla\CMS\Helper\HelperFactoryAwareTrait; +use Joomla\Module\Popular\Administrator\Helper\PopularHelper; + +// phpcs:disable PSR1.Files.SideEffects +\defined('_JEXEC') or die; +// phpcs:enable PSR1.Files.SideEffects + +/** + * Dispatcher class for mod_popular + * + * @since 6.0.0 + */ +class Dispatcher extends AbstractModuleDispatcher implements HelperFactoryAwareInterface +{ + use HelperFactoryAwareTrait; + + /** + * Returns the layout data. + * + * @return array + * + * @since 6.0.0 + */ + protected function getLayoutData() + { + $data = parent::getLayoutData(); + /** @var PopularHelper $helper */ + $helper = $this->getHelperFactory()->getHelper('PopularHelper', $data); + $articleModel = $this + ->getApplication() + ->bootComponent('com_content') + ->getMVCFactory() + ->createModel('Articles', 'Administrator', ['ignore_request' => true]); + + if ($data['params']->get('automatic_title', 0)) { + $data['module']->title = $helper->getModuleTitle($data['params']); + } + + $data['list'] = $helper->getArticles($data['params'], $articleModel); + $data['record_hits'] = (int) ComponentHelper::getParams('com_content')->get('record_hits', 1); + + return $data; + } +} diff --git a/administrator/modules/mod_popular/src/Helper/PopularHelper.php b/administrator/modules/mod_popular/src/Helper/PopularHelper.php index 926196117773e..964233b1fa44c 100644 --- a/administrator/modules/mod_popular/src/Helper/PopularHelper.php +++ b/administrator/modules/mod_popular/src/Helper/PopularHelper.php @@ -10,8 +10,7 @@ namespace Joomla\Module\Popular\Administrator\Helper; -use Joomla\CMS\Categories\Categories; -use Joomla\CMS\Factory; +use Joomla\CMS\Application\CMSApplicationInterface; use Joomla\CMS\Language\Text; use Joomla\CMS\Router\Route; use Joomla\Component\Content\Administrator\Model\ArticlesModel; @@ -26,8 +25,35 @@ * * @since 1.6 */ -abstract class PopularHelper +class PopularHelper { + /** + * @var CMSApplicationInterface + * + * @since 6.0.0 + */ + protected $app; + + /** + * @var Registry + * + * @since 6.0.0 + */ + protected $params; + + /** + * Helper class constructor + * + * @param array $config Parameters we are using + * + * @since 6.0.0 + */ + public function __construct($config) + { + $this->app = $config['app']; + $this->params = $config['params']; + } + /** * Get a list of the most popular articles. * @@ -37,10 +63,12 @@ abstract class PopularHelper * @return mixed An array of articles, or false on error. * * @throws \Exception + * + * @since 6.0.0 */ - public static function getList(Registry $params, ArticlesModel $model) + public function getArticles(Registry $params, ArticlesModel $model): mixed { - $user = Factory::getUser(); + $user = $this->app->getIdentity(); // Set List SELECT $model->setState('list.select', 'a.id, a.title, a.checked_out, a.checked_out_time, ' . @@ -102,15 +130,17 @@ public static function getList(Registry $params, ArticlesModel $model) * @param Registry $params The module parameters. * * @return string The alternate title for the module. + * + * @since 6.0.0 */ - public static function getTitle($params) + public function getModuleTitle(Registry $params): string { $who = $params->get('user_id', 0); $catid = (int) $params->get('catid', null); $title = ''; if ($catid) { - $category = Categories::getInstance('Content')->get($catid); + $category = $this->app->bootComponent('com_content')->getCategory()->get($catid); $title = Text::_('MOD_POPULAR_UNEXISTING'); if ($category) { diff --git a/administrator/modules/mod_popular/tmpl/default.php b/administrator/modules/mod_popular/tmpl/default.php index 4949093a8177e..bbec31bf7f940 100644 --- a/administrator/modules/mod_popular/tmpl/default.php +++ b/administrator/modules/mod_popular/tmpl/default.php @@ -12,52 +12,66 @@ use Joomla\CMS\HTML\HTMLHelper; use Joomla\CMS\Language\Text; +use Joomla\CMS\Layout\LayoutHelper; $moduleId = str_replace(' ', '', $module->title) . $module->id; ?> - - - - - - - - - - - - $item) : ?> - - hits; ?> - = 10000 ? 'danger' : ($hits >= 1000 ? 'warning' : ($hits >= 100 ? 'info' : 'secondary'))); ?> - - - - - - + + 'JGLOBAL_RECORD_HITS_DISABLED', + 'icon' => 'icon-minus-circle', + ]); ?> + + +
title; ?>
- checked_out) : ?> - editor, $item->checked_out_time); ?> - - link) : ?> - - title, ENT_QUOTES, 'UTF-8'); ?> - - - title, ENT_QUOTES, 'UTF-8'); ?> - - - hits; ?> - - publish_up, Text::_('DATE_FORMAT_LC4')); ?> -
+ + + + + + + + + + $item) : ?> + + hits; ?> + = 10000 ? 'danger' : ($hits >= 1000 ? 'warning' : ($hits >= 100 ? 'info' : 'secondary'))); ?> + + + + + + + +
title; ?>
+ checked_out) : ?> + editor, $item->checked_out_time); ?> + + link) : ?> + + title, ENT_QUOTES, 'UTF-8'); ?> + + + title, ENT_QUOTES, 'UTF-8'); ?> + + + hits; ?> + + publish_up, Text::_('DATE_FORMAT_LC4')); ?> +
+ - - - - - + getLanguage()->load('com_content'); + + echo LayoutHelper::render('joomla.content.emptystate_module', [ + 'textPrefix' => 'COM_CONTENT', + 'icon' => 'icon-copy', + ]); + ?> + - - + diff --git a/administrator/modules/mod_privacy_dashboard/src/Helper/PrivacyDashboardHelper.php b/administrator/modules/mod_privacy_dashboard/src/Helper/PrivacyDashboardHelper.php index 2d8e5d2f08ab5..121455ad14658 100644 --- a/administrator/modules/mod_privacy_dashboard/src/Helper/PrivacyDashboardHelper.php +++ b/administrator/modules/mod_privacy_dashboard/src/Helper/PrivacyDashboardHelper.php @@ -38,7 +38,7 @@ class PrivacyDashboardHelper implements DatabaseAwareInterface public function getPrivacyRequests(): array { $db = $this->getDatabase(); - $query = $db->getQuery(true) + $query = $db->createQuery() ->select( [ 'COUNT(*) AS count', diff --git a/administrator/modules/mod_privacy_status/src/Helper/PrivacyStatusHelper.php b/administrator/modules/mod_privacy_status/src/Helper/PrivacyStatusHelper.php index 75195a0828775..2d0e75331100b 100644 --- a/administrator/modules/mod_privacy_status/src/Helper/PrivacyStatusHelper.php +++ b/administrator/modules/mod_privacy_status/src/Helper/PrivacyStatusHelper.php @@ -86,7 +86,7 @@ public function getRequestFormMenuStatus(CMSApplicationInterface $app) $lang = ''; $db = $this->getDatabase(); - $query = $db->getQuery(true) + $query = $db->createQuery() ->select( [ $db->quoteName('id'), @@ -129,7 +129,7 @@ public function getRequestFormMenuStatus(CMSApplicationInterface $app) $params = ComponentHelper::getParams('com_languages'); $defaultSiteLanguage = $params->get('site'); - $query = $db->getQuery(true) + $query = $db->createQuery() ->select($db->quoteName('id')) ->from($db->quoteName('#__menu')) ->where( @@ -173,7 +173,7 @@ public function getNumberOfUrgentRequests() $period = '-' . $notify; $db = $this->getDatabase(); - $query = $db->getQuery(true); + $query = $db->createQuery(); $query->select('COUNT(*)') ->from($db->quoteName('#__privacy_requests')) ->where( diff --git a/administrator/modules/mod_quickicon/src/Helper/QuickIconHelper.php b/administrator/modules/mod_quickicon/src/Helper/QuickIconHelper.php index caad7839758ea..ba902e6402cd6 100644 --- a/administrator/modules/mod_quickicon/src/Helper/QuickIconHelper.php +++ b/administrator/modules/mod_quickicon/src/Helper/QuickIconHelper.php @@ -258,14 +258,14 @@ public function getButtons(Registry $params, ?CMSApplication $application = null if ($params->get('show_featured')) { $tmp = [ 'image' => 'icon-star featured', - 'link' => Route::_('index.php?option=com_content&view=featured'), + 'link' => Route::_('index.php?option=com_content&view=articles&filter[featured]=1'), 'name' => 'MOD_QUICKICON_FEATURED_MANAGER', 'access' => ['core.manage', 'com_content'], 'group' => 'MOD_QUICKICON_SITE', ]; if ($params->get('show_featured') == 2) { - $tmp['ajaxurl'] = 'index.php?option=com_content&task=featured.getQuickiconContent&format=json'; + $tmp['ajaxurl'] = 'index.php?option=com_content&task=articles.getQuickiconFeatured&format=json'; } $this->buttons[$key][] = $tmp; diff --git a/administrator/modules/mod_stats_admin/src/Helper/StatsAdminHelper.php b/administrator/modules/mod_stats_admin/src/Helper/StatsAdminHelper.php index 4ee2df3276851..3df2cc3f1585c 100644 --- a/administrator/modules/mod_stats_admin/src/Helper/StatsAdminHelper.php +++ b/administrator/modules/mod_stats_admin/src/Helper/StatsAdminHelper.php @@ -44,7 +44,7 @@ public function getStatsData(Registry $params, CMSApplication $app, DatabaseInte $user = $app->getIdentity(); $rows = []; - $query = $db->getQuery(true); + $query = $db->createQuery(); $serverinfo = $params->get('serverinfo', 0); $siteinfo = $params->get('siteinfo', 0); diff --git a/administrator/templates/atum/error.php b/administrator/templates/atum/error.php index eb209be779fdb..926066ea25b68 100644 --- a/administrator/templates/atum/error.php +++ b/administrator/templates/atum/error.php @@ -15,7 +15,7 @@ /** @var \Joomla\CMS\Document\ErrorDocument $this */ // Authenticated versus guest have different displays -$user = Factory::getUser(); +$user = Factory::getApplication()->getIdentity(); if ($user->guest) { require __DIR__ . '/error_login.php'; diff --git a/administrator/templates/atum/joomla.asset.json b/administrator/templates/atum/joomla.asset.json index acd22c1bf3dfc..edb2c2bd05943 100644 --- a/administrator/templates/atum/joomla.asset.json +++ b/administrator/templates/atum/joomla.asset.json @@ -2,7 +2,7 @@ "$schema": "https://developer.joomla.org/schemas/json-schema/web_assets.json", "name": "atum", "version": "4.0.0", - "description": "This file contains details of the assets used by Atum, the default Joomla 4 administrator template.", + "description": "This file contains details of the assets used by Atum, the default Joomla administrator template.", "license": "GPL-2.0-or-later", "assets": [ { diff --git a/administrator/templates/atum/templateDetails.xml b/administrator/templates/atum/templateDetails.xml index d4ec535fdf700..ab3df8c85f27e 100644 --- a/administrator/templates/atum/templateDetails.xml +++ b/administrator/templates/atum/templateDetails.xml @@ -126,7 +126,10 @@
-
+
-
+
-
+
input->post->get('id', 0, 'int'); } - $modelName = Inflector::singularize($this->contentType); + $inflector = InflectorFactory::create()->build(); + $modelName = $inflector->singularize($this->contentType); /** @var \Joomla\Component\Contact\Site\Model\ContactModel $model */ $model = $this->getModel($modelName, 'Site'); diff --git a/api/components/com_content/src/Controller/ArticlesController.php b/api/components/com_content/src/Controller/ArticlesController.php index e8873c291aade..83565ffe649d6 100644 --- a/api/components/com_content/src/Controller/ArticlesController.php +++ b/api/components/com_content/src/Controller/ArticlesController.php @@ -82,6 +82,14 @@ public function displayList() $this->modelState->set('filter.language', $filter->clean($apiFilterInfo['language'], 'STRING')); } + if (\array_key_exists('modified_start', $apiFilterInfo)) { + $this->modelState->set('filter.modified_start', $filter->clean($apiFilterInfo['modified_start'], 'STRING')); + } + + if (\array_key_exists('modified_end', $apiFilterInfo)) { + $this->modelState->set('filter.modified_end', $filter->clean($apiFilterInfo['modified_end'], 'STRING')); + } + if (\array_key_exists('checked_out', $apiFilterInfo)) { $this->modelState->set('filter.checked_out', $filter->clean($apiFilterInfo['checked_out'], 'INT')); } diff --git a/api/components/com_joomlaupdate/src/Controller/BaseController.php b/api/components/com_joomlaupdate/src/Controller/BaseController.php index 01921242d5726..4c2125a00266d 100644 --- a/api/components/com_joomlaupdate/src/Controller/BaseController.php +++ b/api/components/com_joomlaupdate/src/Controller/BaseController.php @@ -22,7 +22,7 @@ abstract class BaseController extends ApiController * * @return void * - * @since 5.4.0 + * @since 6.0.0 * * @throws \Exception */ diff --git a/api/components/com_joomlaupdate/src/Controller/HealthcheckController.php b/api/components/com_joomlaupdate/src/Controller/HealthcheckController.php index 044949636d224..57998b47f40c8 100644 --- a/api/components/com_joomlaupdate/src/Controller/HealthcheckController.php +++ b/api/components/com_joomlaupdate/src/Controller/HealthcheckController.php @@ -20,7 +20,7 @@ /** * The healthcheck controller * - * @since 5.4.0 + * @since 6.0.0 */ class HealthcheckController extends BaseController { @@ -28,7 +28,7 @@ class HealthcheckController extends BaseController * The content type of the item. * * @var string - * @since 5.4.0 + * @since 6.0.0 */ protected $contentType = 'healthcheck'; @@ -36,7 +36,7 @@ class HealthcheckController extends BaseController * The default view for the display method. * * @var string - * @since 5.4.0 + * @since 6.0.0 */ protected $default_view = 'healthcheck'; @@ -45,7 +45,7 @@ class HealthcheckController extends BaseController * * @return HealthcheckController * - * @since 5.4.0 + * @since 6.0.0 */ public function show() { @@ -94,7 +94,7 @@ public function show() * * @return static A \JControllerLegacy object to support chaining. * - * @since 5.4.0 + * @since 6.0.0 */ public function displayItem($id = null) { @@ -106,7 +106,7 @@ public function displayItem($id = null) * * @return static A BaseController object to support chaining. * - * @since 5.4.0 + * @since 6.0.0 */ public function displayList() { @@ -120,7 +120,7 @@ public function displayList() * * @return void * - * @since 5.4.0 + * @since 6.0.0 */ public function delete($id = null) { @@ -137,7 +137,7 @@ public function delete($id = null) * * @return boolean * - * @since 5.4.0 + * @since 6.0.0 */ protected function allowEdit($data = [], $key = 'id') { @@ -153,7 +153,7 @@ protected function allowEdit($data = [], $key = 'id') * * @return boolean * - * @since 5.4.0 + * @since 6.0.0 */ protected function allowAdd($data = []) { diff --git a/api/components/com_joomlaupdate/src/Controller/NotificationController.php b/api/components/com_joomlaupdate/src/Controller/NotificationController.php index da52aa37fc63b..359004d8ab0c8 100644 --- a/api/components/com_joomlaupdate/src/Controller/NotificationController.php +++ b/api/components/com_joomlaupdate/src/Controller/NotificationController.php @@ -21,7 +21,7 @@ /** * The updates controller * - * @since 5.4.0 + * @since 6.0.0 */ class NotificationController extends BaseController { @@ -29,7 +29,7 @@ class NotificationController extends BaseController * The content type of the item. * * @var string - * @since 5.4.0 + * @since 6.0.0 */ protected $contentType = 'notification'; @@ -37,7 +37,7 @@ class NotificationController extends BaseController * The default view for the display method. * * @var string - * @since 5.4.0 + * @since 6.0.0 */ protected $default_view = 'notification'; @@ -65,7 +65,7 @@ public function failed() * * @return NotificationController * - * @since 5.4.0 + * @since 6.0.0 */ public function success() { @@ -126,7 +126,7 @@ protected function prepareView() * * @return static A \JControllerLegacy object to support chaining. * - * @since 5.4.0 + * @since 6.0.0 */ public function displayItem($id = null) { @@ -138,7 +138,7 @@ public function displayItem($id = null) * * @return static A BaseController object to support chaining. * - * @since 5.4.0 + * @since 6.0.0 */ public function displayList() { @@ -152,7 +152,7 @@ public function displayList() * * @return void * - * @since 5.4.0 + * @since 6.0.0 */ public function delete($id = null) { @@ -169,7 +169,7 @@ public function delete($id = null) * * @return boolean * - * @since 5.4.0 + * @since 6.0.0 */ protected function allowEdit($data = [], $key = 'id') { @@ -185,7 +185,7 @@ protected function allowEdit($data = [], $key = 'id') * * @return boolean * - * @since 5.4.0 + * @since 6.0.0 */ protected function allowAdd($data = []) { diff --git a/api/components/com_joomlaupdate/src/Controller/UpdatesController.php b/api/components/com_joomlaupdate/src/Controller/UpdatesController.php index d3f8423f4c5c6..b517a7c73416a 100644 --- a/api/components/com_joomlaupdate/src/Controller/UpdatesController.php +++ b/api/components/com_joomlaupdate/src/Controller/UpdatesController.php @@ -20,7 +20,7 @@ /** * The updates controller * - * @since 5.4.0 + * @since 6.0.0 */ class UpdatesController extends BaseController { @@ -28,7 +28,7 @@ class UpdatesController extends BaseController * The content type of the item. * * @var string - * @since 5.4.0 + * @since 6.0.0 */ protected $contentType = 'updates'; @@ -36,7 +36,7 @@ class UpdatesController extends BaseController * The default view for the display method. * * @var string - * @since 5.4.0 + * @since 6.0.0 */ protected $default_view = 'updates'; @@ -61,7 +61,7 @@ public function getUpdate() * * @return UpdatesController * - * @since 5.4.0 + * @since 6.0.0 */ public function prepareUpdate() { @@ -151,7 +151,7 @@ protected function prepareView() * * @return static A \JControllerLegacy object to support chaining. * - * @since 5.4.0 + * @since 6.0.0 */ public function displayItem($id = null) { @@ -163,7 +163,7 @@ public function displayItem($id = null) * * @return static A BaseController object to support chaining. * - * @since 5.4.0 + * @since 6.0.0 */ public function displayList() { @@ -177,7 +177,7 @@ public function displayList() * * @return void * - * @since 5.4.0 + * @since 6.0.0 */ public function delete($id = null) { @@ -194,7 +194,7 @@ public function delete($id = null) * * @return boolean * - * @since 5.4.0 + * @since 6.0.0 */ protected function allowEdit($data = [], $key = 'id') { @@ -210,7 +210,7 @@ protected function allowEdit($data = [], $key = 'id') * * @return boolean * - * @since 5.4.0 + * @since 6.0.0 */ protected function allowAdd($data = []) { diff --git a/api/components/com_languages/src/Controller/OverridesController.php b/api/components/com_languages/src/Controller/OverridesController.php index 3bc20ec0ef9e8..1eb8e3528e378 100644 --- a/api/components/com_languages/src/Controller/OverridesController.php +++ b/api/components/com_languages/src/Controller/OverridesController.php @@ -10,11 +10,11 @@ namespace Joomla\Component\Languages\Api\Controller; +use Doctrine\Inflector\InflectorFactory; use Joomla\CMS\Form\Form; use Joomla\CMS\Language\Text; use Joomla\CMS\MVC\Controller\ApiController; use Joomla\CMS\MVC\Controller\Exception; -use Joomla\String\Inflector; use Tobscure\JsonApi\Exception\InvalidParameterException; // phpcs:disable PSR1.Files.SideEffects @@ -87,8 +87,11 @@ public function displayList() */ protected function save($recordKey = null) { + $inflector = InflectorFactory::create()->build(); + $modelName = $inflector->singularize($this->contentType); + /** @var \Joomla\CMS\MVC\Model\AdminModel $model */ - $model = $this->getModel(Inflector::singularize($this->contentType)); + $model = $this->getModel($modelName); if (!$model) { throw new \RuntimeException(Text::_('JLIB_APPLICATION_ERROR_MODEL_CREATE')); diff --git a/api/components/com_media/src/Controller/MediaController.php b/api/components/com_media/src/Controller/MediaController.php index 328e56819a283..759a6bb244935 100644 --- a/api/components/com_media/src/Controller/MediaController.php +++ b/api/components/com_media/src/Controller/MediaController.php @@ -10,6 +10,7 @@ namespace Joomla\Component\Media\Api\Controller; +use Doctrine\Inflector\InflectorFactory; use Joomla\CMS\Access\Exception\NotAllowed; use Joomla\CMS\Component\ComponentHelper; use Joomla\CMS\Filter\InputFilter; @@ -19,7 +20,6 @@ use Joomla\Component\Media\Administrator\Exception\InvalidPathException; use Joomla\Component\Media\Administrator\Provider\ProviderManagerHelperTrait; use Joomla\Component\Media\Api\Model\MediumModel; -use Joomla\String\Inflector; use Tobscure\JsonApi\Exception\InvalidParameterException; // phpcs:disable PSR1.Files.SideEffects @@ -314,7 +314,8 @@ protected function allowEdit($data = [], $key = 'id'): bool protected function save($recordKey = null) { // Explicitly get the single item model name. - $modelName = $this->input->get('model', Inflector::singularize($this->contentType)); + $inflector = InflectorFactory::create()->build(); + $modelName = $this->input->get('model', $inflector->singularize($this->contentType)); /** @var MediumModel $model */ $model = $this->getModel($modelName, '', ['ignore_request' => true, 'state' => $this->modelState]); @@ -377,7 +378,8 @@ public function delete($id = null): void $this->modelState->set('path', $this->input->get('path', '', 'STRING')); - $modelName = $this->input->get('model', Inflector::singularize($this->contentType)); + $inflector = InflectorFactory::create()->build(); + $modelName = $this->input->get('model', $inflector->singularize($this->contentType)); $model = $this->getModel($modelName, '', ['ignore_request' => true, 'state' => $this->modelState]); $model->delete(); diff --git a/api/components/com_plugins/src/Controller/PluginsController.php b/api/components/com_plugins/src/Controller/PluginsController.php index a402d46dd2a11..f487cf0d53e07 100644 --- a/api/components/com_plugins/src/Controller/PluginsController.php +++ b/api/components/com_plugins/src/Controller/PluginsController.php @@ -10,12 +10,12 @@ namespace Joomla\Component\Plugins\Api\Controller; +use Doctrine\Inflector\InflectorFactory; use Joomla\CMS\Filter\InputFilter; use Joomla\CMS\Language\Text; use Joomla\CMS\MVC\Controller\ApiController; use Joomla\CMS\MVC\Controller\Exception; use Joomla\CMS\Router\Exception\RouteNotFoundException; -use Joomla\String\Inflector; use Tobscure\JsonApi\Exception\InvalidParameterException; // phpcs:disable PSR1.Files.SideEffects @@ -70,7 +70,8 @@ public function edit() } /** @var \Joomla\Component\Plugins\Administrator\Model\PluginModel $model */ - $model = $this->getModel(Inflector::singularize($this->contentType), '', ['ignore_request' => true]); + $inflector = InflectorFactory::create()->build(); + $model = $this->getModel($inflector->singularize($this->contentType), '', ['ignore_request' => true]); if (!$model) { throw new \RuntimeException(Text::_('JLIB_APPLICATION_ERROR_MODEL_CREATE')); diff --git a/api/components/com_templates/src/Controller/StylesController.php b/api/components/com_templates/src/Controller/StylesController.php index e973c2bfb50fc..319a3ed77dc46 100644 --- a/api/components/com_templates/src/Controller/StylesController.php +++ b/api/components/com_templates/src/Controller/StylesController.php @@ -10,8 +10,8 @@ namespace Joomla\Component\Templates\Api\Controller; +use Doctrine\Inflector\InflectorFactory; use Joomla\CMS\MVC\Controller\ApiController; -use Joomla\String\Inflector; use Tobscure\JsonApi\Exception\InvalidParameterException; // phpcs:disable PSR1.Files.SideEffects @@ -91,7 +91,8 @@ protected function preprocessSaveData(array $data): array unset($data['template']); } - $model = $this->getModel(Inflector::singularize($this->contentType), '', ['ignore_request' => true]); + $inflector = InflectorFactory::create()->build(); + $model = $this->getModel($inflector->singularize($this->contentType), '', ['ignore_request' => true]); $data['template'] = $model->getItem($this->input->getInt('id'))->template; } diff --git a/api/index.php b/api/index.php index 39b7bd8adceda..1c5503555e75d 100644 --- a/api/index.php +++ b/api/index.php @@ -10,7 +10,7 @@ // NOTE: This file should remain compatible with PHP 5.2 to allow us to run our PHP minimum check and show a friendly error message // Define the application's minimum supported PHP version as a constant so it can be referenced within the application. -\define('JOOMLA_MINIMUM_PHP', '8.1.0'); +\define('JOOMLA_MINIMUM_PHP', '8.3.0'); if (version_compare(PHP_VERSION, JOOMLA_MINIMUM_PHP, '<')) { header('HTTP/1.1 500 Internal Server Error'); diff --git a/api/language/en-GB/install.xml b/api/language/en-GB/install.xml index b950e5ba1f727..91c15fd1ddb6a 100644 --- a/api/language/en-GB/install.xml +++ b/api/language/en-GB/install.xml @@ -2,7 +2,7 @@ English (en-GB) en-GB - 5.4.1 + 6.0.1 2025-10 Joomla! Project admin@joomla.org diff --git a/api/language/en-GB/joomla.ini b/api/language/en-GB/joomla.ini index 56a8e97153eb0..a29ec02964bbb 100644 --- a/api/language/en-GB/joomla.ini +++ b/api/language/en-GB/joomla.ini @@ -218,8 +218,11 @@ JFIELD_COLOR_LABEL_SLIDER_HUE="Hue Slider" JFIELD_COLOR_LABEL_SLIDER_INPUT="Selected Colour Value" JFIELD_COLOR_LABEL_SLIDER_LIGHT="Light Slider" JFIELD_COLOR_LABEL_SLIDER_SATURATION="Saturation Slider" +; The following string is deprecated and will be removed with 7.0 JFIELD_COLOR_SELECT="Select a colour" +; The following string is deprecated and will be removed with 7.0 JFIELD_COLOR_TRANSPARENT="No colour, transparent" +; The following string is deprecated and will be removed with 7.0 JFIELD_COLOR_VALUE="Colour with hexadecimal value of" JFIELD_DISPLAY_READONLY_LABEL="Display When Read-Only" JFIELD_ENABLED_DESC="The enabled status of this item." @@ -682,8 +685,6 @@ JGLOBAL_VOTES="Votes" JGLOBAL_VOTES_ASC="Votes ascending" JGLOBAL_VOTES_DESC="Votes descending" JGLOBAL_WARNCOOKIES="Warning! Cookies must be enabled to access the Administrator Backend." -; @deprecated 5.0 will be removed in 6.0 -JGLOBAL_WARNIE="Warning! Internet Explorer should not be used for proper operation of the Administrator Backend." JGLOBAL_WARNJAVASCRIPT="Warning! JavaScript must be enabled for proper operation of the Administrator Backend." JGLOBAL_WIDTH="Width" diff --git a/api/language/en-GB/langmetadata.xml b/api/language/en-GB/langmetadata.xml index e222c018185fb..04bec7877c540 100644 --- a/api/language/en-GB/langmetadata.xml +++ b/api/language/en-GB/langmetadata.xml @@ -1,7 +1,7 @@ English (en-GB) - 5.4.1 + 6.0.1 2025-10 Joomla! Project admin@joomla.org diff --git a/build.xml b/build.xml deleted file mode 100644 index 494ad4fd69769..0000000000000 --- a/build.xml +++ /dev/null @@ -1,167 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/build/build-modules-js/init/exemptions/tinymce.mjs b/build/build-modules-js/init/exemptions/tinymce.mjs index c4b9fb7005b26..611580c372ba7 100644 --- a/build/build-modules-js/init/exemptions/tinymce.mjs +++ b/build/build-modules-js/init/exemptions/tinymce.mjs @@ -58,6 +58,14 @@ export const tinyMCE = async (packageName, version) => { await copyArrayFiles('', ['tinymce.js', 'tinymce.min.js', 'changelog.txt', 'license.txt'], 'tinymce', ''); + // Copy translation files + const promises = []; + const majorVersion = version.split('.')[0]; + if (existsSync(join(RootPath, `node_modules/tinymce-i18n/langs${majorVersion}`))) { + promises.push(copy(join(RootPath, `node_modules/tinymce-i18n/langs${majorVersion}`), join(RootPath, `media/vendor/${packageName.replace(/.+\//, '')}/langs`), { preserveTimestamps: true })); + } + await Promise.all(promises); + // Update the XML file for tinyMCE let tinyXml = await readFile(`${RootPath}/plugins/editors/tinymce/tinymce.xml`, { encoding: 'utf8' }); tinyXml = tinyXml.replace(xmlVersionStr, `$1${version}$3`); diff --git a/build/build-modules-js/init/minify-vendor.mjs b/build/build-modules-js/init/minify-vendor.mjs index 78c45c84800bc..97c0d237ef05e 100644 --- a/build/build-modules-js/init/minify-vendor.mjs +++ b/build/build-modules-js/init/minify-vendor.mjs @@ -8,12 +8,11 @@ const RootPath = process.cwd(); const folders = [ 'media/vendor/accessibility/js', - 'media/vendor/chosen/js', 'media/vendor/debugbar', 'media/vendor/diff/js', 'media/vendor/es-module-shims/js', 'media/vendor/qrcode/js', - 'media/vendor/webcomponentsjs/js', + 'media/vendor/tinymce/langs', ]; let allFiles = []; diff --git a/build/build-modules-js/init/patches.mjs b/build/build-modules-js/init/patches.mjs index 1a20efff1c513..d18f546ff799a 100644 --- a/build/build-modules-js/init/patches.mjs +++ b/build/build-modules-js/init/patches.mjs @@ -10,22 +10,9 @@ const RootPath = process.cwd(); * * @returns {Promise} */ -export const patchPackages = async (options) => { +export const patchPackages = async () => { const mediaVendorPath = join(RootPath, 'media/vendor'); - // Joomla's hack to expose the chosen base classes so we can extend it ourselves - // (it was better than the many hacks we had before. But I'm still ashamed of myself). - const dest = join(mediaVendorPath, 'chosen'); - const chosenPath = `${dest}/${options.settings.vendors['chosen-js'].js['chosen.jquery.js']}`; - let ChosenJs = await readFile(chosenPath, { encoding: 'utf8' }); - ChosenJs = ChosenJs.replace( - '}).call(this);', - ` document.AbstractChosen = AbstractChosen; - document.Chosen = Chosen; -}).call(this);`, - ); - await writeFile(chosenPath, ChosenJs, { encoding: 'utf8', mode: 0o644 }); - // Include the v5 shim for Font Awesome const faPath = join(mediaVendorPath, 'fontawesome-free/scss/fontawesome.scss'); const newScss = (await readFile(faPath, { encoding: 'utf8' })).concat(` diff --git a/build/build-modules-js/javascript/build-com_media-js.mjs b/build/build-modules-js/javascript/build-com_media-js.mjs index 0d0af95307008..0e9343101bc48 100644 --- a/build/build-modules-js/javascript/build-com_media-js.mjs +++ b/build/build-modules-js/javascript/build-com_media-js.mjs @@ -11,7 +11,7 @@ import dotenv from 'dotenv'; import { minifyCode } from './minify.mjs'; -dotenv.config(); +dotenv.config({ quiet: true }); const inputJS = 'administrator/components/com_media/resources/scripts/mediamanager.es6.js'; const isProduction = process.env.NODE_ENV !== 'DEVELOPMENT'; diff --git a/build/build-modules-js/settings.json b/build/build-modules-js/settings.json index 2d781c7a2ef72..9dbb3218c92c2 100644 --- a/build/build-modules-js/settings.json +++ b/build/build-modules-js/settings.json @@ -432,6 +432,11 @@ "name": "jquery", "type": "script", "uri": "jquery.min.js" + }, + { + "name": "jquery-noconflict", + "type": "script", + "uri": "jquery-noconflict.min.js" } ], "dependencies": [], @@ -487,7 +492,7 @@ "defer": true }, "dependencies": [ - "wcpolyfill" + "core" ] }, { @@ -498,7 +503,7 @@ "type": "module" }, "dependencies": [ - "wcpolyfill" + "core" ] }, { @@ -515,7 +520,7 @@ "defer": true }, "dependencies": [ - "wcpolyfill" + "core" ] }, { @@ -526,7 +531,7 @@ "type": "module" }, "dependencies": [ - "wcpolyfill" + "core" ] } ], @@ -604,62 +609,6 @@ "name": "tinymce", "licenseFilename": "license.txt" }, - "@webcomponents/webcomponentsjs": { - "name": "webcomponentsjs", - "js": { - "webcomponents-bundle.js": "js/webcomponents-bundle.js" - }, - "dependencies": [], - "licenseFilename": "LICENSE.md", - "provideAssets": [ - { - "name": "wcpolyfill", - "type": "script", - "uri": "webcomponents-bundle.js", - "attributes": { - "nomodule": true, - "defer": true - }, - "dependencies": [ - "core" - ] - } - ] - }, - "chosen-js": { - "name": "chosen", - "js": { - "chosen.jquery.js": "js/chosen.jquery.js" - }, - "css": { - "chosen.css": "css/chosen.css", - "chosen-sprite.png": "css/chosen-sprite.png", - "chosen-sprite@2x.png": "css/chosen-sprite@2x.png" - }, - "provideAssets": [ - { - "name": "chosen", - "type": "style", - "uri": "chosen.css" - }, - { - "name": "chosen", - "type": "script", - "uri": "chosen.jquery.js", - "dependencies": [ - "jquery" - ] - }, - { - "name": "chosen", - "type": "preset", - "dependencies": [ - "chosen#style", - "chosen#script" - ] - } - ] - }, "accessibility": { "name": "accessibility", "licenseFilename": "LICENSE", @@ -797,9 +746,9 @@ "qrcode-generator": { "name": "qrcode", "js": { - "qrcode.js": "js/qrcode.js", - "qrcode_SJIS.js": "js/qrcode_SJIS.js", - "qrcode_UTF8.js": "js/qrcode_UTF8.js" + "dist/qrcode.js": "js/qrcode.js", + "dist/qrcode_SJIS.js": "js/qrcode_SJIS.js", + "dist/qrcode_UTF8.js": "js/qrcode_UTF8.js" }, "provideAssets": [ { diff --git a/build/build-modules-js/stylesheets/handle-scss.mjs b/build/build-modules-js/stylesheets/handle-scss.mjs index ee7a598167eff..3143d8b78fe05 100644 --- a/build/build-modules-js/stylesheets/handle-scss.mjs +++ b/build/build-modules-js/stylesheets/handle-scss.mjs @@ -17,7 +17,10 @@ export const handleScssFile = async (file) => { const { css } = await compileAsync(file); contents = css.toString(); } catch (error) { - throw new Error(error.formatted); + const message = `Error in file: ${file}\n${error.formatted || error.message}`; + const newErr = new Error(message); + newErr.stack = error.stack; + throw newErr; } if (cssFile.endsWith('-rtl.css')) { diff --git a/build/build.php b/build/build.php index 46f61c1772edc..233170de15d95 100644 --- a/build/build.php +++ b/build/build.php @@ -112,7 +112,6 @@ function clean_checkout(string $dir) run_and_check('find libraries/vendor -name .php_cs.dist | xargs rm -rf -'); run_and_check('find libraries/vendor -name phpcs.xsd | xargs rm -rf -'); run_and_check('find libraries/vendor -name phpcs.xml | xargs rm -rf -'); - run_and_check('find libraries/vendor -name build.xml | xargs rm -rf -'); run_and_check('find libraries/vendor -name infection.json.dist | xargs rm -rf -'); run_and_check('find libraries/vendor -name phpbench.json | xargs rm -rf -'); run_and_check('find libraries/vendor -name phpstan.neon.dist | xargs rm -rf -'); @@ -441,7 +440,6 @@ function capture_or_fail(string $command): string // Media Manager Node Assets 'administrator/components/com_media/resources', 'build', - 'build.xml', 'CODE_OF_CONDUCT.md', 'composer.json', 'composer.lock', diff --git a/build/bump.php b/build/bump.php index 5f266acc00c02..44c77a6144642 100644 --- a/build/bump.php +++ b/build/bump.php @@ -57,8 +57,6 @@ function usage($command) $languagePackXmlFile = '/administrator/manifests/packages/pkg_en-GB.xml'; -$antJobFile = '/build.xml'; - $packageJsonFiles = [ '/package.json', '/package-lock.json', @@ -162,7 +160,7 @@ function usage($command) 'build' => '', 'reldate' => $date->format('j-F-Y'), 'reltime' => $date->format('H:i'), - 'reltz' => 'GMT', + 'reltz' => 'UTC', 'credate' => $date->format('Y-m'), ]; @@ -243,13 +241,6 @@ function usage($command) file_put_contents($rootPath . $languagePackXmlFile, $fileContents); } -// Updates the version for the `phpdoc` task in the Ant job file. -if (file_exists($rootPath . $antJobFile)) { - $fileContents = file_get_contents($rootPath . $antJobFile); - $fileContents = preg_replace('##', '', $fileContents); - file_put_contents($rootPath . $antJobFile, $fileContents); -} - // Updates the version in the package.json file. foreach ($packageJsonFiles as $packageJsonFile) { if (file_exists($rootPath . $packageJsonFile)) { diff --git a/build/deleted_file_check.php b/build/deleted_file_check.php index c2d14e69f7583..b18fd3971cb2f 100644 --- a/build/deleted_file_check.php +++ b/build/deleted_file_check.php @@ -59,29 +59,14 @@ function usage($command) exit(1); } -// Directories to skip for the check (needs to include anything from J3 we want to keep) +// Directories to skip for the check (needs to include anything from previous versions which we want to keep) $previousReleaseExclude = [ - $options['from'] . '/administrator/components/com_search', - $options['from'] . '/components/com_search', $options['from'] . '/images/sampledata', $options['from'] . '/installation', - $options['from'] . '/media/com_cpanel/js', - $options['from'] . '/media/com_modules/js', - $options['from'] . '/media/legacy/js', - $options['from'] . '/media/mod_multilangstatus', - $options['from'] . '/media/plg_quickicon_eos310', - $options['from'] . '/media/system/images', - $options['from'] . '/modules/mod_search', - $options['from'] . '/plugins/captcha/recaptcha', - $options['from'] . '/plugins/captcha/recaptcha_invisible', - $options['from'] . '/plugins/fields/repeatable', - $options['from'] . '/plugins/quickicon/eos310', - $options['from'] . '/plugins/search', - $options['from'] . '/plugins/system/compat', - $options['from'] . '/plugins/system/logrotation', - $options['from'] . '/plugins/system/sessiongc', - $options['from'] . '/plugins/system/updatenotification', - $options['from'] . '/plugins/task/demotasks', + $options['from'] . '/media/plg_captcha_recaptcha', + $options['from'] . '/media/plg_captcha_recaptcha_invisible', + $options['from'] . '/media/plg_behaviour_compat', + $options['from'] . '/plugins/behaviour/compat', ]; /** @@ -159,50 +144,14 @@ function usage($command) // Specific files (e.g. language files) that we want to keep on upgrade $filesToKeep = [ - "'/administrator/language/en-GB/en-GB.com_search.ini',", - "'/administrator/language/en-GB/en-GB.com_search.sys.ini',", - "'/administrator/language/en-GB/en-GB.plg_editors-xtd_weblink.ini',", - "'/administrator/language/en-GB/en-GB.plg_editors-xtd_weblink.sys.ini',", - "'/administrator/language/en-GB/en-GB.plg_fields_repeatable.ini',", - "'/administrator/language/en-GB/en-GB.plg_fields_repeatable.sys.ini',", - "'/administrator/language/en-GB/en-GB.plg_quickicon_eos310.ini',", - "'/administrator/language/en-GB/en-GB.plg_quickicon_eos310.sys.ini',", - "'/administrator/language/en-GB/en-GB.plg_search_categories.ini',", - "'/administrator/language/en-GB/en-GB.plg_search_categories.sys.ini',", - "'/administrator/language/en-GB/en-GB.plg_search_contacts.ini',", - "'/administrator/language/en-GB/en-GB.plg_search_contacts.sys.ini',", - "'/administrator/language/en-GB/en-GB.plg_search_content.ini',", - "'/administrator/language/en-GB/en-GB.plg_search_content.sys.ini',", - "'/administrator/language/en-GB/en-GB.plg_search_newsfeeds.ini',", - "'/administrator/language/en-GB/en-GB.plg_search_newsfeeds.sys.ini',", - "'/administrator/language/en-GB/en-GB.plg_search_tags.ini',", - "'/administrator/language/en-GB/en-GB.plg_search_tags.sys.ini',", - "'/administrator/language/en-GB/en-GB.plg_search_weblinks.ini',", - "'/administrator/language/en-GB/en-GB.plg_search_weblinks.sys.ini',", - "'/administrator/language/en-GB/en-GB.plg_system_weblinks.ini',", - "'/administrator/language/en-GB/en-GB.plg_system_weblinks.sys.ini',", - "'/administrator/language/en-GB/plg_captcha_recaptcha.ini',", - "'/administrator/language/en-GB/plg_captcha_recaptcha.sys.ini',", - "'/administrator/language/en-GB/plg_captcha_recaptcha_invisible.ini',", - "'/administrator/language/en-GB/plg_captcha_recaptcha_invisible.sys.ini',", - "'/administrator/language/en-GB/plg_system_compat.ini',", - "'/administrator/language/en-GB/plg_system_compat.sys.ini',", - "'/administrator/language/en-GB/plg_system_logrotation.ini',", - "'/administrator/language/en-GB/plg_system_logrotation.sys.ini',", - "'/administrator/language/en-GB/plg_system_sessiongc.ini',", - "'/administrator/language/en-GB/plg_system_sessiongc.sys.ini',", - "'/administrator/language/en-GB/plg_system_updatenotification.ini',", - "'/administrator/language/en-GB/plg_system_updatenotification.sys.ini',", - "'/administrator/language/en-GB/plg_task_demotasks.ini',", - "'/administrator/language/en-GB/plg_task_demotasks.sys.ini',", - "'/language/en-GB/en-GB.com_search.ini',", - "'/language/en-GB/en-GB.mod_search.ini',", - "'/language/en-GB/en-GB.mod_search.sys.ini',", + // Example: "'/administrator/language/en-GB/en-GB.com_search.ini',", + "'/administrator/language/en-GB/plg_behaviour_compat.ini',", + "'/administrator/language/en-GB/plg_behaviour_compat.sys.ini',", ]; // Specific folders that we want to keep on upgrade $foldersToKeep = [ - "'/bin',", + // Example: "'/bin',", ]; // Remove folders from the results which we want to keep on upgrade diff --git a/build/helpTOC.php b/build/helpTOC.php index ad8915276a86a..8d37b4006a222 100644 --- a/build/helpTOC.php +++ b/build/helpTOC.php @@ -27,7 +27,7 @@ /** * Define the application's minimum supported PHP version as a constant so it can be referenced within the application. */ -const JOOMLA_MINIMUM_PHP = '8.1.0'; +const JOOMLA_MINIMUM_PHP = '8.3.0'; if (!\defined('_JDEFINES')) { \define('JPATH_BASE', \dirname(__DIR__)); diff --git a/build/layouts/github.php b/build/layouts/github.php index 46c60ba2784b0..36fbf61c363bc 100644 --- a/build/layouts/github.php +++ b/build/layouts/github.php @@ -1,8 +1,8 @@ [!IMPORTANT] -> Don't update directly from a version lower than 4.4 it is important that you first update to 4.4 and then update to 5.x +> Don't update directly from a version lower than 5.4 it is important that you first update to 5.4 and then update to 6.x | Update from a previous version | SHA-256 Checksums | |--------------------------------|-------------------| diff --git a/build/media_source/com_guidedtours/images/5_2/enhancedtourheader.png b/build/media_source/com_guidedtours/images/5_2/enhancedtourheader.png deleted file mode 100644 index 061bdb9602d73..0000000000000 Binary files a/build/media_source/com_guidedtours/images/5_2/enhancedtourheader.png and /dev/null differ diff --git a/build/media_source/com_guidedtours/images/5_2/mailtemplate.png b/build/media_source/com_guidedtours/images/5_2/mailtemplate.png deleted file mode 100644 index 93b6f79bf0748..0000000000000 Binary files a/build/media_source/com_guidedtours/images/5_2/mailtemplate.png and /dev/null differ diff --git a/build/media_source/com_guidedtours/images/5_3/filesdirectory.jpg b/build/media_source/com_guidedtours/images/5_3/filesdirectory.jpg deleted file mode 100644 index b4310f09a468c..0000000000000 Binary files a/build/media_source/com_guidedtours/images/5_3/filesdirectory.jpg and /dev/null differ diff --git a/build/media_source/com_guidedtours/images/5_4/automated-updates.jpg b/build/media_source/com_guidedtours/images/5_4/automated-updates.jpg deleted file mode 100644 index 294e2fa954e42..0000000000000 Binary files a/build/media_source/com_guidedtours/images/5_4/automated-updates.jpg and /dev/null differ diff --git a/build/media_source/com_guidedtours/images/6_0/cassiopeiacolors.jpg b/build/media_source/com_guidedtours/images/6_0/cassiopeiacolors.jpg new file mode 100644 index 0000000000000..ddb7a775e9854 Binary files /dev/null and b/build/media_source/com_guidedtours/images/6_0/cassiopeiacolors.jpg differ diff --git a/build/media_source/com_media/scss/components/_media-browser.scss b/build/media_source/com_media/scss/components/_media-browser.scss index f797126c4398e..f191bf0613317 100644 --- a/build/media_source/com_media/scss/components/_media-browser.scss +++ b/build/media_source/com_media/scss/components/_media-browser.scss @@ -254,6 +254,10 @@ background-color: hsl(var(--hue), 20%, 97%); border: 1px solid hsl(var(--hue), 35%, 95%); border-radius: $grid-item-border-radius; + + &.with-thumbnail { + padding-bottom: 0; + } } .file-icon, .folder-icon { diff --git a/build/media_source/com_users/joomla.asset.json b/build/media_source/com_users/joomla.asset.json index 10fc7a97de56a..a89b882c82641 100644 --- a/build/media_source/com_users/joomla.asset.json +++ b/build/media_source/com_users/joomla.asset.json @@ -37,6 +37,17 @@ "attributes": { "type": "module" } + }, + { + "name": "com_users.activate-user-send-email", + "type": "script", + "uri": "com_users/activate-user-send-email.min.js", + "dependencies": [ + "core" + ], + "attributes": { + "type": "module" + } } ] } diff --git a/build/media_source/com_users/js/activate-user-send-email.es6.js b/build/media_source/com_users/js/activate-user-send-email.es6.js new file mode 100644 index 0000000000000..20df3121007f6 --- /dev/null +++ b/build/media_source/com_users/js/activate-user-send-email.es6.js @@ -0,0 +1,54 @@ +/** + * @copyright (C) 2023 Open Source Matters, Inc. + * @license GNU General Public License version 2 or later; see LICENSE.txt + */ + +if (!Joomla) { + throw new Error('Joomla API was not properly initialized'); +} + +const button = document.querySelector('.activate-send-mail'); + +if (button && Object.keys(button.dataset).length !== 0) { + button.addEventListener('click', () => { + button.querySelector('span').className = 'icon-spinner'; + button.disabled = true; + + const queryString = Object.keys(button.dataset) + .reduce((a, k) => { + a.push(`${k}=${encodeURIComponent(button.dataset[k])}`); + return a; + }, []) + .join('&'); + + const url = `index.php?${queryString}`; + + Joomla.request({ + url, + method: 'GET', + + onSuccess: (resp) => { + let response; + try { + response = JSON.parse(resp); + } catch (error) { + button.classList.add('error'); + } + + button.querySelector('span').className = 'icon-mail'; + button.disabled = false; + + if (response.messages) { + Joomla.renderMessages(response.messages); + } + }, + onError: (resp) => { + const response = JSON.parse(resp); + button.classList.add('error'); + if (response.messages) { + Joomla.renderMessages(response.messages); + } + }, + }); + }); +} diff --git a/build/media_source/layouts/js/joomla/html/batch/batch-tag-addremove.es6.js b/build/media_source/layouts/js/joomla/html/batch/batch-tag-addremove.es6.js new file mode 100644 index 0000000000000..54fa047e18ac2 --- /dev/null +++ b/build/media_source/layouts/js/joomla/html/batch/batch-tag-addremove.es6.js @@ -0,0 +1,42 @@ +/** + * @copyright (C) 2023 Open Source Matters, Inc. + * @license GNU General Public License version 2 or later; see LICENSE.txt + */ + +(() => { + const onSelect = () => { + const batchTag = document.getElementById('batch-tag-id'); + const batchTagAddRemove = document.getElementById('batch-tag-addremove'); + let batchSelector; + + const onChange = () => { + if (!batchSelector.value + || (batchSelector.value && parseInt(batchSelector.value, 10) === 0)) { + batchTagAddRemove.classList.add('hidden'); + } else { + batchTagAddRemove.classList.remove('hidden'); + } + }; + + if (batchTag) { + batchSelector = batchTag; + } + + if (batchTagAddRemove) { + batchTagAddRemove.classList.add('hidden'); + } + + if (batchTagAddRemove) { + batchSelector.addEventListener('change', onChange); + } + + // Cleanup + document.removeEventListener('DOMContentLoaded', onSelect, true); + }; + + // Document loaded + document.addEventListener('DOMContentLoaded', onSelect, true); + + // Joomla updated + document.addEventListener('joomla:updated', onSelect, true); +})(); diff --git a/build/media_source/legacy/joomla.asset.json b/build/media_source/legacy/joomla.asset.json deleted file mode 100644 index f1849ef812c26..0000000000000 --- a/build/media_source/legacy/joomla.asset.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "$schema": "https://developer.joomla.org/schemas/json-schema/web_assets.json", - "name": "joomla", - "version": "4.0.0", - "description": "Joomla CMS", - "license": "GPL-2.0-or-later", - "assets": [ - { - "name": "jquery-noconflict", - "type": "script", - "dependencies": [ - "jquery" - ], - "uri": "legacy/jquery-noconflict.min.js" - } - ] -} diff --git a/build/media_source/legacy/js/ajax-chosen.es5.js b/build/media_source/legacy/js/ajax-chosen.es5.js deleted file mode 100644 index 9790e596793e5..0000000000000 --- a/build/media_source/legacy/js/ajax-chosen.es5.js +++ /dev/null @@ -1,161 +0,0 @@ -/** - * @copyright (C) 2013 Open Source Matters, Inc. - * @license GNU General Public License version 2 or later; see LICENSE.txt - */ - -/** - * ajaxChosen javascript behavior - * - * Used for displaying tags - * - * @package Joomla.JavaScript - * @since 1.5 - * @version 1.0 - */ -(function($) { - return $.fn.ajaxChosen = function(settings, callback, chosenOptions) { - var chosenXhr, defaultOptions, options, select; - if (settings == null) { - settings = {}; - } - if (callback == null) { - callback = {}; - } - if (chosenOptions == null) { - chosenOptions = function() {}; - } - defaultOptions = { - minTermLength: 3, - afterTypeDelay: 500, - jsonTermKey: "term", - keepTypingMsg: Joomla.Text._('JGLOBAL_KEEP_TYPING'), - lookingForMsg: Joomla.Text._('JGLOBAL_LOOKING_FOR') - }; - select = this; - chosenXhr = null; - options = $.extend({}, defaultOptions, $(select).data(), settings); - this.jchosen(chosenOptions ? chosenOptions : {}); - return this.each(function() { - return $(this).next('.chosen-container').find(".search-field > input, .chosen-search > input").bind('keyup', function() { - var field, msg, success, untrimmed_val, val; - untrimmed_val = $(this).val(); - val = $.trim($(this).val()); - msg = val.length < options.minTermLength ? options.keepTypingMsg : options.lookingForMsg + (" '" + val + "'"); - select.next('.chosen-container').find('.no-results').text(msg); - if (val === $(this).data('prevVal')) { - return false; - } - $(this).data('prevVal', val); - if (this.timer) { - clearTimeout(this.timer); - } - if (val.length < options.minTermLength) { - return false; - } - field = $(this); - if (!(options.data != null)) { - options.data = {}; - } - options.data[options.jsonTermKey] = val; - if (options.dataCallback != null) { - options.data = options.dataCallback(options.data); - } - success = options.success; - options.success = function(data) { - var items, nbItems, selected_values; - if (!(data != null)) { - return; - } - selected_values = []; - select.find('option').each(function() { - if (!$(this).is(":selected")) { - return $(this).remove(); - } else { - return selected_values.push($(this).val() + "-" + $(this).text()); - } - }); - select.find('optgroup:empty').each(function() { - return $(this).remove(); - }); - items = callback.apply(null, data); - nbItems = 0; - $.each(items, function(i, element) { - var group, text, value; - nbItems++; - if (element.group) { - group = select.find("optgroup[label='" + element.text + "']"); - if (!group.size()) { - group = $(""); - } - group.attr('label', element.text).appendTo(select); - return $.each(element.items, function(i, element) { - var text, value; - if (typeof element === "string") { - value = i; - text = element; - } else { - value = element.value; - text = element.text; - } - if ($.inArray(value + "-" + text, selected_values) === -1) { - return $("'); - group.append(option); - this.form_field_jq.append(group); - this.form_field.options[this.form_field.options.length - 1].selected = true; - if (!evt.metaKey) { - this.results_hide(); - } - return this.results_build(); - } - - return JoomlaChosen.__super__.result_select.apply(this, arguments); - }; - - JoomlaChosen.prototype.find_custom_group = function () { - var found, group, _i, _len, _ref; - _ref = $('optgroup', this.form_field); - for (_i = 0, _len = _ref.length; _i < _len; _i++) { - group = _ref[_i]; - if (group.getAttribute('label') === this.custom_group_text) { - found = group; - } - } - return found; - }; - - JoomlaChosen.prototype.add_unique_custom_group = function () { - var group; - group = this.find_custom_group(); - if (!group) { - group = $(''); - } - return $(group); - }; - - /** - * We choose to override this function so deliberately don't call super - */ - JoomlaChosen.prototype.container_width = function () { - if (this.options.width != null) { - return this.options.width; - } else { - // Original: return "" + this.form_field.offsetWidth + "px"; - return this.form_field_jq.css("width") || "" + this.form_field.offsetWidth + "px"; - } - }; - - return JoomlaChosen; - - })(Chosen); -})(jQuery, document.Chosen, document.AbstractChosen); diff --git a/build/media_source/legacy/js/jquery-noconflict.es5.js b/build/media_source/legacy/js/jquery-noconflict.es5.js deleted file mode 100644 index bf4ca21eff9cc..0000000000000 --- a/build/media_source/legacy/js/jquery-noconflict.es5.js +++ /dev/null @@ -1 +0,0 @@ -var $ = jQuery.noConflict(); diff --git a/build/media_source/legacy/js/tabs-state.es5.js b/build/media_source/legacy/js/tabs-state.es5.js deleted file mode 100644 index 0ee8bd82123d5..0000000000000 --- a/build/media_source/legacy/js/tabs-state.es5.js +++ /dev/null @@ -1,240 +0,0 @@ -/** - * @copyright (C) 2013 Open Source Matters, Inc. - * @license GNU General Public License version 2 or later; see LICENSE.txt - */ - -/** - * JavaScript behavior to allow selected tab to be remembered after save or page reload - * keeping state in sessionStorage with better handling of multiple tab widgets per page - * and not saving the state if there is no id in the url (like on the CREATE page of content) - */ - -jQuery(function ($) { - /** - * Tiny jQuery extension to allow getting of url params - * @use jQuery.urlParam('param') or $.urlParam('myRegex|anotherRegex') - * If no trailing equals sign in name, add one, allows for general reuse - */ - $.urlParam = function (name) { - if (!new RegExp("=$").exec(name)) { - name = name + '='; - } - var results = new RegExp("[\\?&](" + name + ")([^&#]*)").exec(window.location.href); - return results ? results[1] : null; - }; - - // jQuery extension to get the XPATH of a DOM element - $.getXpath = function (el) { - if (typeof el == "string") { - return document.evaluate(el, document, null, 0, null); - } - if (!el || el.nodeType != 1) { - return ""; - } - if (el.id) { - return "//*[@id='" + el.id + "']"; - } - var a = []; - var sames = a.filter.call(el.parentNode.children, function (x) { - return x.tagName == el.tagName; - }); - var b = []; - return $.getXpath(el.parentNode) + "/" + el.tagName.toLowerCase() + (sames.length > 1 ? "[" + (b.indexOf.call(sames, el) + 1) + "]" : ""); - }; - - // jQuery extension to get the DOM element from an XPATH - $.findXpath = function (exp, ctxt) { - var item; - var coll = []; - var result = document.evaluate(exp, ctxt || document, null, 5, null); - - while (item = result.iterateNext()) { - coll.push(item); - } - - return $(coll); - }; - - var loadTabs = function () { - - /** - * Remove an item from an array - */ - function remove_item(activeTabsHrefs, tabCollection) { - for (var i = 0; i < activeTabsHrefs.length; i++) { - if (activeTabsHrefs[i].indexOf(tabCollection) > -1) { - activeTabsHrefs.splice(i, 1); - } - } - - return activeTabsHrefs; - } - - /** - * Generate the sessionStorage key we will use - * This is the URL minus some cleanup - */ - function getStorageKey() { - return window.location.href.toString().split(window.location.host)[1].replace(/&return=[a-zA-Z0-9%]+/, "").split('#')[0]; - } - - /** - * Save this tab to the storage in the form of a pseudo keyed array - */ - function saveActiveTab(event) { - - if (!window.sessionStorage) { - return; - } - // Get a new storage key, normally the full url we are on with some cleanup - var storageKey = getStorageKey(); - - // get this tabs own href - var href = $(event.target).attr("href"); - - // find the collection of tabs this tab belongs to, and calculate the unique xpath to it - var tabCollection = $.getXpath($(event.target).closest(".nav-tabs").first().get(0)); - - // error handling - if (!tabCollection || typeof href == "undefined") { - return; - } - - // Create a dummy keyed array as js doesnt allow keyed arrays - var storageValue = tabCollection + "|" + href; - - // Get the current array from the storage - var activeTabsHrefs = JSON.parse(sessionStorage.getItem(storageKey)); - - // If none start a new array - if (!activeTabsHrefs) { - var activeTabsHrefs = []; - } else { - // Avoid Duplicates in the storage - remove_item(activeTabsHrefs, tabCollection); - } - - // Save clicked tab, with relationship to tabCollection to the array - activeTabsHrefs.push(storageValue); - - // Store the selected tabs as an array in sessionStorage - sessionStorage.setItem(storageKey, JSON.stringify(activeTabsHrefs)); - } - - // Array with active tabs hrefs - var activeTabsHrefs = JSON.parse(sessionStorage.getItem(getStorageKey())); - - // jQuery object with all tabs links - var alltabs = $("a[data-bs-toggle='tab']"); - - // When a tab is clicked, save its state! - alltabs.on("click", function (e) { - saveActiveTab(e); - }); - - // Clean default tabs - alltabs.parent(".active").removeClass("active"); - - // If we cannot find a tab storage for this url, see if we are coming from a save of a new item - if (!activeTabsHrefs) { - var unSavedStateUrl = getStorageKey().replace(/\&id=[0-9]*|[a-z]\&{1}_id=[0-9]*/, ''); - activeTabsHrefs = JSON.parse(sessionStorage.getItem(unSavedStateUrl)); - sessionStorage.removeItem(unSavedStateUrl); - } - - // we have some tab states to restore, if we see a hash then let that trump the saved state - if (activeTabsHrefs !== null && !window.location.hash) { - - // When moving from tab area to a different view - $.each(activeTabsHrefs, function (index, tabFakexPath) { - - // Click the tab - var parts = tabFakexPath.split("|"); - $.findXpath(parts[0]).find("a[data-bs-toggle='tab'][href='" + parts[1] + "']").get(0).click(); - - }); - - } else { // clean slate start - - // a list of tabs to click - var tabsToClick = []; - - // If we are passing a hash then this trumps everything - if (window.location.hash) { - - // for each set of tabs on the page - alltabs.parents("ul").each(function (index, ul) { - - // If no tabs is saved, activate first tab from each tab set and save it - var tabToClick = $(ul).find("a[href='" + window.location.hash + "']"); - - // If we found some|one - if (tabToClick.length) { - - // if we managed to locate its selector directly - if (tabToClick.selector) { - - // highlight tab of the tabs if the hash matches - tabsToClick.push(tabToClick); - } else { - - // highlight first tab of the tabs - tabsToClick.push(tabToClick.first()); - } - - var parentPane = tabToClick.closest('.tab-pane'); - - // bubble up for nested tabs (like permissions tabs in the permissions pane) - if (parentPane) { - var id = parentPane.attr('id'); - if (id) { - var parentTabToClick = $(parentPane).find("a[href='#" + id + "']"); - if (parentTabToClick) { - tabsToClick.push(parentTabToClick); - } - } - } - } - - // cleanup for another loop - parentTabToClick = null; - tabToClick = null; - parentPane = null; - id = null; - }); - - // run in the right order bubbling up - tabsToClick.reverse(); - - // for all queued tabs - for (var i = 0; i < tabsToClick.length; i++) { - - // click the tabs, thus storing them - jQuery(tabsToClick[i].selector).click(); - } - - // Remove the #hash in the url - with support for older browsers with no flicker - var scrollV, scrollH, loc = window.location; - if ("pushState" in history) - history.pushState("", document.title, loc.pathname + loc.search); - else { - // Prevent scrolling by storing the page's current scroll offset - scrollV = document.body.scrollTop; - scrollH = document.body.scrollLeft; - loc.hash = ""; - // Restore the scroll offset, should be flicker free - document.body.scrollTop = scrollV; - document.body.scrollLeft = scrollH; - } - - } else { - alltabs.parents("ul").each(function (index, ul) { - // If no tabs is saved, activate first tab from each tab set and save it - $(ul).find("a").first().click(); - }); - } - } - }; - - setTimeout(loadTabs, 100); -}); diff --git a/build/media_source/mod_menu/css/mod-menu.css b/build/media_source/mod_menu/css/mod-menu.css new file mode 100644 index 0000000000000..d748b8fcd7ebf --- /dev/null +++ b/build/media_source/mod_menu/css/mod-menu.css @@ -0,0 +1,22 @@ +:where(.mod-menu__toggle-sub) { + display: inline-flex; + align-items: center; + padding: 0; + color: currentColor; + background-color: transparent; + border: none; + &[aria-expanded="true"] .icon-chevron-down { + transform: rotate(180deg); + } +} +:where(.mod-menu [class*="icon-"]) { + margin-inline-start: .5rem; + transition: all .2s, background-color .2s; +} + +:where(.mod-menu__sub[aria-hidden="true"]) { + display: none; +} +:where(.mod-menu__sub[aria-hidden="false"]) { + display: block; +} diff --git a/build/media_source/mod_menu/joomla.asset.json b/build/media_source/mod_menu/joomla.asset.json new file mode 100644 index 0000000000000..2314d4d0ad3d8 --- /dev/null +++ b/build/media_source/mod_menu/joomla.asset.json @@ -0,0 +1,44 @@ +{ + "$schema": "https://developer.joomla.org/schemas/json-schema/web_assets.json", + "name": "mod_menu", + "version": "6.0.0", + "description": "Joomla CMS", + "license": "GPL-2.0-or-later", + "assets": [ + { + "name": "mod_menu.admin-menu", + "type": "script", + "uri": "mod_menu/admin-menu.min.js", + "dependencies": [ + "core" + ], + "attributes": { + "type": "module" + } + }, + { + "name": "mod_menu.menu", + "type": "script", + "uri": "mod_menu/menu.min.js", + "dependencies": [ + "core" + ], + "attributes": { + "type": "module" + } + }, + { + "name": "mod_menu.menu", + "type": "style", + "uri": "mod_menu/mod-menu.min.css" + }, + { + "name": "mod_menu.menu", + "type": "preset", + "dependencies": [ + "mod_menu.menu#style", + "mod_menu.menu#script" + ] + } + ] +} diff --git a/build/media_source/mod_menu/js/menu.es6.js b/build/media_source/mod_menu/js/menu.es6.js index eca867aed5711..17ed88bdddf84 100644 --- a/build/media_source/mod_menu/js/menu.es6.js +++ b/build/media_source/mod_menu/js/menu.es6.js @@ -6,140 +6,239 @@ (() => { 'use strict'; - function topLevelMouseOver(el, settings) { - const ulChild = el.querySelector('ul'); - if (ulChild) { - ulChild.setAttribute('aria-hidden', 'false'); - ulChild.classList.add(settings.menuHoverClass); - } - } + /** + * Navigation menu + * + * Example usage: + * // Default behavior (uses menuHoverClass = 'show-menu', dir = 'ltr') + * new Nav(document.querySelector('.nav')); + * + * // Override defaults (e.g. custom open-class and RTL support) + * new Nav(document.querySelector('.nav'), { + * menuHoverClass: 'my-open-class', + * dir: 'rtl' + * }); + * + * @param {HTMLElement} nav The root
' - ] - ); + break; default: diff --git a/components/com_content/tmpl/form/edit.php b/components/com_content/tmpl/form/edit.php index 46d8935ed1a01..a17f30af7ab35 100644 --- a/components/com_content/tmpl/form/edit.php +++ b/components/com_content/tmpl/form/edit.php @@ -51,9 +51,8 @@ tab_name, 'editor', Text::_('COM_CONTENT_ARTICLE_CONTENT')); ?> form->renderField('title'); ?> - item->id)) : ?> - form->renderField('alias'); ?> - + form->renderField('alias'); ?> + form->renderField('articletext'); ?> diff --git a/components/com_contenthistory/src/Controller/DisplayController.php b/components/com_contenthistory/src/Controller/DisplayController.php index dc1e329c3d60f..b3a6751a61b38 100644 --- a/components/com_contenthistory/src/Controller/DisplayController.php +++ b/components/com_contenthistory/src/Controller/DisplayController.php @@ -11,9 +11,9 @@ namespace Joomla\Component\Contenthistory\Site\Controller; use Joomla\CMS\Application\CMSApplication; -use Joomla\CMS\Input\Input; use Joomla\CMS\MVC\Controller\BaseController; use Joomla\CMS\MVC\Factory\MVCFactoryInterface; +use Joomla\Input\Input; // phpcs:disable PSR1.Files.SideEffects \defined('_JEXEC') or die; diff --git a/components/com_fields/src/Controller/DisplayController.php b/components/com_fields/src/Controller/DisplayController.php index bd1db65e71c21..6c8bcd62ed6df 100644 --- a/components/com_fields/src/Controller/DisplayController.php +++ b/components/com_fields/src/Controller/DisplayController.php @@ -12,6 +12,7 @@ use Joomla\CMS\Application\CMSApplication; use Joomla\CMS\MVC\Factory\MVCFactoryInterface; +use Joomla\Input\Input; // phpcs:disable PSR1.Files.SideEffects \defined('_JEXEC') or die; @@ -25,12 +26,12 @@ class DisplayController extends \Joomla\CMS\MVC\Controller\BaseController { /** - * @param array $config An optional associative array of configuration settings. - * Recognized key values include 'name', 'default_task', 'model_path', and - * 'view_path' (this list is not meant to be comprehensive). - * @param ?MVCFactoryInterface $factory The factory. - * @param ?CMSApplication $app The Application for the dispatcher - * @param ?\Joomla\CMS\Input\Input $input The request's input object + * @param array $config An optional associative array of configuration settings. + * Recognized key values include 'name', 'default_task', 'model_path', and + * 'view_path' (this list is not meant to be comprehensive). + * @param ?MVCFactoryInterface $factory The factory. + * @param ?CMSApplication $app The Application for the dispatcher + * @param ?Input $input The request's input object * * @since 3.7.0 */ diff --git a/components/com_finder/src/Helper/FinderHelper.php b/components/com_finder/src/Helper/FinderHelper.php index 70a42092bef6f..fbc9a72a28eae 100644 --- a/components/com_finder/src/Helper/FinderHelper.php +++ b/components/com_finder/src/Helper/FinderHelper.php @@ -48,7 +48,7 @@ public static function logSearch(Query $searchquery, $resultCount = 0) // Initialise our variables $db = Factory::getDbo(); - $query = $db->getQuery(true); + $query = $db->createQuery(); // Sanitise the term for the database $temp = new \stdClass(); diff --git a/components/com_finder/src/Model/SearchModel.php b/components/com_finder/src/Model/SearchModel.php index 959de428f23cf..e16cb2b98f3a0 100644 --- a/components/com_finder/src/Model/SearchModel.php +++ b/components/com_finder/src/Model/SearchModel.php @@ -155,7 +155,7 @@ protected function getListQuery() { // Create a new query object. $db = $this->getDatabase(); - $query = $db->getQuery(true); + $query = $db->createQuery(); // Select the required fields from the table. $query->select( @@ -302,7 +302,7 @@ protected function getListQuery() // Check if there are any excluded terms to deal with. if (\count($this->excludedTerms)) { - $query2 = $db->getQuery(true); + $query2 = $db->createQuery(); $query2->select('e.link_id') ->from($db->quoteName('#__finder_links_terms', 'e')) ->where('e.term_id IN (' . implode(',', $this->excludedTerms) . ')'); diff --git a/components/com_finder/src/Model/SuggestionsModel.php b/components/com_finder/src/Model/SuggestionsModel.php index d3a9e5d65e1ed..894364600b8f1 100644 --- a/components/com_finder/src/Model/SuggestionsModel.php +++ b/components/com_finder/src/Model/SuggestionsModel.php @@ -73,9 +73,9 @@ protected function getListQuery() // Create a new query object. $db = $this->getDatabase(); - $termIdQuery = $db->getQuery(true); - $termQuery = $db->getQuery(true); - $aQuery = $db->getQuery(true); + $termIdQuery = $db->createQuery(); + $termQuery = $db->createQuery(); + $aQuery = $db->createQuery(); // Limit term count to a reasonable number of results to reduce main query join size $termIdQuery->select('ti.term_id') diff --git a/components/com_modules/src/Controller/DisplayController.php b/components/com_modules/src/Controller/DisplayController.php index 895b33effdad7..1278a40b95a34 100644 --- a/components/com_modules/src/Controller/DisplayController.php +++ b/components/com_modules/src/Controller/DisplayController.php @@ -12,9 +12,9 @@ use Joomla\CMS\Application\CMSApplication; use Joomla\CMS\Factory; -use Joomla\CMS\Input\Input; use Joomla\CMS\MVC\Controller\BaseController; use Joomla\CMS\MVC\Factory\MVCFactoryInterface; +use Joomla\Input\Input; // phpcs:disable PSR1.Files.SideEffects \defined('_JEXEC') or die; diff --git a/components/com_newsfeeds/src/Model/CategoryModel.php b/components/com_newsfeeds/src/Model/CategoryModel.php index 28e61e8766087..2e4ac20f0a444 100644 --- a/components/com_newsfeeds/src/Model/CategoryModel.php +++ b/components/com_newsfeeds/src/Model/CategoryModel.php @@ -17,7 +17,7 @@ use Joomla\CMS\Language\Multilanguage; use Joomla\CMS\MVC\Factory\MVCFactoryInterface; use Joomla\CMS\MVC\Model\ListModel; -use Joomla\CMS\Table\Table; +use Joomla\CMS\Table\Category; use Joomla\Database\ParameterType; use Joomla\Database\QueryInterface; use Joomla\Registry\Registry; @@ -159,7 +159,7 @@ protected function getListQuery() // Create a new query object. $db = $this->getDatabase(); - $query = $db->getQuery(true); + $query = $db->createQuery(); // Select required fields from the categories. $query->select($this->getState('list.select', $db->quoteName('a') . '.*')) @@ -404,7 +404,7 @@ public function hit($pk = 0) if ($hitcount) { $pk = (!empty($pk)) ? $pk : (int) $this->getState('category.id'); - $table = Table::getInstance('Category', '\\Joomla\\CMS\\Table\\'); + $table = new Category($this->getDatabase()); $table->hit($pk); } diff --git a/components/com_newsfeeds/src/Model/NewsfeedModel.php b/components/com_newsfeeds/src/Model/NewsfeedModel.php index ddfc24600dc5b..7e97fb84c84b1 100644 --- a/components/com_newsfeeds/src/Model/NewsfeedModel.php +++ b/components/com_newsfeeds/src/Model/NewsfeedModel.php @@ -87,7 +87,7 @@ public function &getItem($pk = null) if (!isset($this->_item[$pk])) { try { $db = $this->getDatabase(); - $query = $db->getQuery(true) + $query = $db->createQuery() ->select( [ $this->getState('item.select', $db->quoteName('a') . '.*'), diff --git a/components/com_newsfeeds/src/Service/Router.php b/components/com_newsfeeds/src/Service/Router.php index 179a55b82e760..1cc90077c2801 100644 --- a/components/com_newsfeeds/src/Service/Router.php +++ b/components/com_newsfeeds/src/Service/Router.php @@ -234,7 +234,7 @@ public function getCategoriesId($segment, $query) public function getNewsfeedId($segment, $query) { if ($this->noIDs) { - $dbquery = $this->db->getQuery(true); + $dbquery = $this->db->createQuery(); $dbquery->select($this->db->quoteName('id')) ->from($this->db->quoteName('#__newsfeeds')) ->where($this->db->quoteName('alias') . ' = :segment') @@ -260,7 +260,7 @@ public function getNewsfeedId($segment, $query) $id = (int) $segment; if ($id) { - $dbquery = $this->db->getQuery(true); + $dbquery = $this->db->createQuery(); $dbquery->select($this->db->quoteName('alias')) ->from($this->db->quoteName('#__newsfeeds')) ->where($this->db->quoteName('id') . ' = :id') diff --git a/components/com_privacy/src/Model/RemindModel.php b/components/com_privacy/src/Model/RemindModel.php index 5df7813986413..5fc4e9e553303 100644 --- a/components/com_privacy/src/Model/RemindModel.php +++ b/components/com_privacy/src/Model/RemindModel.php @@ -70,7 +70,7 @@ public function remindRequest($data) } $db = $this->getDatabase(); - $query = $db->getQuery(true) + $query = $db->createQuery() ->select($db->quoteName(['r.id', 'r.user_id', 'r.token'])); $query->from($db->quoteName('#__privacy_consents', 'r')); $query->join( diff --git a/components/com_privacy/src/Model/RequestModel.php b/components/com_privacy/src/Model/RequestModel.php index 3543158a30eae..0a7f8632db7b8 100644 --- a/components/com_privacy/src/Model/RequestModel.php +++ b/components/com_privacy/src/Model/RequestModel.php @@ -89,7 +89,7 @@ public function createRequest($data) // Search for an open information request matching the email and type $db = $this->getDatabase(); - $query = $db->getQuery(true) + $query = $db->createQuery() ->select('COUNT(id)') ->from($db->quoteName('#__privacy_requests')) ->where($db->quoteName('email') . ' = :email') diff --git a/components/com_privacy/tmpl/confirm/default.php b/components/com_privacy/tmpl/confirm/default.php index ce3c30a299411..efb2afce1f6e4 100644 --- a/components/com_privacy/tmpl/confirm/default.php +++ b/components/com_privacy/tmpl/confirm/default.php @@ -10,7 +10,6 @@ defined('_JEXEC') or die; -use Joomla\CMS\HTML\HTMLHelper; use Joomla\CMS\Language\Text; use Joomla\CMS\Router\Route; @@ -46,6 +45,7 @@
- + + form->renderControlFields(); ?> diff --git a/components/com_privacy/tmpl/remind/default.php b/components/com_privacy/tmpl/remind/default.php index bfec2924c1639..6155c3c13cccb 100644 --- a/components/com_privacy/tmpl/remind/default.php +++ b/components/com_privacy/tmpl/remind/default.php @@ -10,7 +10,6 @@ defined('_JEXEC') or die; -use Joomla\CMS\HTML\HTMLHelper; use Joomla\CMS\Language\Text; use Joomla\CMS\Router\Route; @@ -46,6 +45,6 @@ - + form->renderControlFields(); ?> diff --git a/components/com_privacy/tmpl/request/default.php b/components/com_privacy/tmpl/request/default.php index c40ca0808eecb..1c5e10371955d 100644 --- a/components/com_privacy/tmpl/request/default.php +++ b/components/com_privacy/tmpl/request/default.php @@ -10,7 +10,6 @@ defined('_JEXEC') or die; -use Joomla\CMS\HTML\HTMLHelper; use Joomla\CMS\Language\Text; use Joomla\CMS\Router\Route; @@ -47,7 +46,7 @@ - + form->renderControlFields(); ?>
diff --git a/components/com_tags/src/Model/TagModel.php b/components/com_tags/src/Model/TagModel.php index 751bdf1562374..8fe1181846741 100644 --- a/components/com_tags/src/Model/TagModel.php +++ b/components/com_tags/src/Model/TagModel.php @@ -16,7 +16,6 @@ use Joomla\CMS\Language\Text; use Joomla\CMS\MVC\Factory\MVCFactoryInterface; use Joomla\CMS\MVC\Model\ListModel; -use Joomla\CMS\Object\CMSObject; use Joomla\Component\Tags\Site\Helper\RouteHelper; use Joomla\Database\QueryInterface; use Joomla\Utilities\ArrayHelper; @@ -261,7 +260,7 @@ protected function populateState($ordering = 'c.core_title', $direction = 'ASC') * * @param integer $pk An optional ID * - * @return array + * @return \stdClass|false * * @since 3.1 */ @@ -294,9 +293,9 @@ public function getItem($pk = null) continue; } - // Convert the Table to a clean CMSObject. + // Convert the Table to a clean object. $properties = $table->getProperties(1); - $this->item[] = ArrayHelper::toObject($properties, CMSObject::class); + $this->item[] = ArrayHelper::toObject($properties); } catch (\RuntimeException $e) { $this->setError($e->getMessage()); diff --git a/components/com_tags/src/Model/TagsModel.php b/components/com_tags/src/Model/TagsModel.php index 60e81d16a6e53..97b2dc1b51d81 100644 --- a/components/com_tags/src/Model/TagsModel.php +++ b/components/com_tags/src/Model/TagsModel.php @@ -103,7 +103,7 @@ protected function getListQuery() // Create a new query object. $db = $this->getDatabase(); - $query = $db->getQuery(true); + $query = $db->createQuery(); // Select required fields from the tags. $query->select('a.*, u.name as created_by_user_name, u.email') diff --git a/components/com_tags/src/Service/Router.php b/components/com_tags/src/Service/Router.php index 213e189a5f50f..458ad65507c46 100644 --- a/components/com_tags/src/Service/Router.php +++ b/components/com_tags/src/Service/Router.php @@ -107,7 +107,7 @@ public function preprocess($query) foreach ($query['id'] as &$item) { if (!strpos($item, ':')) { - $dbquery = $this->db->getQuery(true); + $dbquery = $this->db->createQuery(); $id = (int) $item; $dbquery->select($dbquery->quoteName('alias')) @@ -399,7 +399,7 @@ protected function buildLookup() continue; } - $query = $this->db->getQuery(true); + $query = $this->db->createQuery(); $query->select($this->db->quoteName('a.id')) ->from($this->db->quoteName('#__tags', 'a')) ->leftJoin( @@ -434,7 +434,7 @@ protected function fixSegment($segment) // Try to find tag id $alias = str_replace(':', '-', $segment); - $query = $this->db->getQuery(true) + $query = $this->db->createQuery() ->select($this->db->quoteName('id')) ->from($this->db->quoteName('#__tags')) ->where($this->db->quoteName('alias') . ' = :alias') diff --git a/components/com_users/src/Model/LoginModel.php b/components/com_users/src/Model/LoginModel.php index 0d9780ebc3b2b..79b3800adc987 100644 --- a/components/com_users/src/Model/LoginModel.php +++ b/components/com_users/src/Model/LoginModel.php @@ -137,7 +137,7 @@ public function getMenuLanguage(int $id): string } $db = $this->getDatabase(); - $query = $db->getQuery(true) + $query = $db->createQuery() ->select($db->quoteName('language')) ->from($db->quoteName('#__menu')) ->where($db->quoteName('client_id') . ' = 0') diff --git a/components/com_users/src/Model/RegistrationModel.php b/components/com_users/src/Model/RegistrationModel.php index 96a288feb19ac..d344c6190c58a 100644 --- a/components/com_users/src/Model/RegistrationModel.php +++ b/components/com_users/src/Model/RegistrationModel.php @@ -89,7 +89,7 @@ public function getUserIdFromToken($token) $db = $this->getDatabase(); // Get the user id based on the token. - $query = $db->getQuery(true); + $query = $db->createQuery(); $query->select($db->quoteName('id')) ->from($db->quoteName('#__users')) ->where($db->quoteName('activation') . ' = :activation') @@ -159,7 +159,7 @@ public function activate($token) // Get all admin users $db = $this->getDatabase(); - $query = $db->getQuery(true) + $query = $db->createQuery() ->select($db->quoteName(['name', 'email', 'sendEmail', 'id'])) ->from($db->quoteName('#__users')) ->where($db->quoteName('sendEmail') . ' = 1') @@ -466,7 +466,7 @@ public function register($temp) // From this moment the user is registered, so we don't return false anymore $app = Factory::getApplication(); $db = $this->getDatabase(); - $query = $db->getQuery(true); + $query = $db->createQuery(); // Compile the notification mail values. $data = ArrayHelper::fromObject($user, false); diff --git a/components/com_users/src/Model/RemindModel.php b/components/com_users/src/Model/RemindModel.php index 937147d5402cd..38fbfa59fd32e 100644 --- a/components/com_users/src/Model/RemindModel.php +++ b/components/com_users/src/Model/RemindModel.php @@ -133,7 +133,7 @@ public function processRemindRequest($data) // Find the user id for the given email address. $db = $this->getDatabase(); - $query = $db->getQuery(true) + $query = $db->createQuery() ->select('*') ->from($db->quoteName('#__users')) ->where('LOWER(' . $db->quoteName('email') . ') = LOWER(:email)') diff --git a/components/com_users/src/Model/ResetModel.php b/components/com_users/src/Model/ResetModel.php index 9ee8bc51f4d9c..65cbf35865356 100644 --- a/components/com_users/src/Model/ResetModel.php +++ b/components/com_users/src/Model/ResetModel.php @@ -302,7 +302,7 @@ public function processResetConfirm($data) // Find the user id for the given token. $db = $this->getDatabase(); - $query = $db->getQuery(true) + $query = $db->createQuery() ->select($db->quoteName(['activation', 'id', 'block'])) ->from($db->quoteName('#__users')) ->where($db->quoteName('username') . ' = :username') @@ -397,7 +397,7 @@ public function processResetRequest($data) // Find the user id for the given email address. $db = $this->getDatabase(); - $query = $db->getQuery(true) + $query = $db->createQuery() ->select($db->quoteName('id')) ->from($db->quoteName('#__users')) ->where('LOWER(' . $db->quoteName('email') . ') = LOWER(:email)') diff --git a/components/com_users/src/View/Login/HtmlView.php b/components/com_users/src/View/Login/HtmlView.php index 2f05588e2a1e7..da33bee87c1ab 100644 --- a/components/com_users/src/View/Login/HtmlView.php +++ b/components/com_users/src/View/Login/HtmlView.php @@ -65,17 +65,6 @@ class HtmlView extends BaseHtmlView */ protected $pageclass_sfx = ''; - /** - * No longer used - * - * @var boolean - * @since 4.0.0 - * - * @deprecated 4.3 will be removed in 6.0 - * Will be removed without replacement - */ - protected $tfa = false; - /** * Additional buttons to show on the login page * @@ -120,6 +109,12 @@ public function display($tpl = null) // Escape strings for HTML output $this->pageclass_sfx = htmlspecialchars($this->params->get('pageclass_sfx', ''), ENT_COMPAT, 'UTF-8'); + // Add form control fields + $return = $this->form->getValue('return', '', $this->params->get('login_redirect_url', $this->params->get('login_redirect_menuitem', ''))); + + $this->form + ->addControlField('return', base64_encode($return)); + $this->prepareDocument(); parent::display($tpl); diff --git a/components/com_users/src/View/Profile/HtmlView.php b/components/com_users/src/View/Profile/HtmlView.php index 651e27819105e..570eb9b2ddabb 100644 --- a/components/com_users/src/View/Profile/HtmlView.php +++ b/components/com_users/src/View/Profile/HtmlView.php @@ -19,7 +19,6 @@ use Joomla\CMS\User\User; use Joomla\Component\Users\Administrator\Helper\Mfa; use Joomla\Component\Users\Site\Model\ProfileModel; -use Joomla\Database\DatabaseDriver; // phpcs:disable PSR1.Files.SideEffects \defined('_JEXEC') or die; @@ -60,18 +59,6 @@ class HtmlView extends BaseHtmlView */ protected $state; - /** - * An instance of DatabaseDriver. - * - * @var DatabaseDriver - * @since 3.6.3 - * - * @deprecated 4.3 will be removed in 6.0 - * Will be removed without replacement use database from the container instead - * Example: Factory::getContainer()->get(DatabaseInterface::class); - */ - protected $db; - /** * The page class suffix * @@ -109,7 +96,6 @@ public function display($tpl = null) $this->state = $model->getState(); $this->params = $this->state->get('params'); $this->mfaConfigurationUI = Mfa::getConfigurationInterface($user); - $this->db = Factory::getDbo(); // Check for errors. if (\count($errors = $model->getErrors())) { diff --git a/components/com_users/tmpl/captive/default.php b/components/com_users/tmpl/captive/default.php index d99864080ce8f..e588b80206cf8 100644 --- a/components/com_users/tmpl/captive/default.php +++ b/components/com_users/tmpl/captive/default.php @@ -12,13 +12,11 @@ use Joomla\CMS\HTML\HTMLHelper; use Joomla\CMS\Language\Text; use Joomla\CMS\Router\Route; -use Joomla\Component\Users\Site\Model\CaptiveModel; -use Joomla\Component\Users\Site\View\Captive\HtmlView; use Joomla\Utilities\ArrayHelper; /** - * @var HtmlView $this View object - * @var CaptiveModel $model The model + * @var \Joomla\Component\Users\Site\View\Captive\HtmlView $this View object + * @var \Joomla\Component\Users\Site\Model\CaptiveModel $model The model */ $model = $this->getModel(); diff --git a/components/com_users/tmpl/captive/select.php b/components/com_users/tmpl/captive/select.php index c09272c8d0346..a0d247e87acd0 100644 --- a/components/com_users/tmpl/captive/select.php +++ b/components/com_users/tmpl/captive/select.php @@ -14,9 +14,8 @@ use Joomla\CMS\Language\Text; use Joomla\CMS\Router\Route; use Joomla\CMS\Uri\Uri; -use Joomla\Component\Users\Site\View\Captive\HtmlView; -/** @var HtmlView $this */ +/** @var \Joomla\Component\Users\Site\View\Captive\HtmlView $this */ $shownMethods = []; diff --git a/components/com_users/tmpl/login/default_login.php b/components/com_users/tmpl/login/default_login.php index f066d6c72734d..93d5ba4a0a3ec 100644 --- a/components/com_users/tmpl/login/default_login.php +++ b/components/com_users/tmpl/login/default_login.php @@ -109,9 +109,7 @@ class="btn btn-secondary w-100 "
- form->getValue('return', '', $this->params->get('login_redirect_url', $this->params->get('login_redirect_menuitem', ''))); ?> - - + form->renderControlFields(); ?>
- + + form->renderControlFields(); ?> diff --git a/components/com_users/tmpl/registration/default.php b/components/com_users/tmpl/registration/default.php index 04a312c42c0b5..26de906bfa92b 100644 --- a/components/com_users/tmpl/registration/default.php +++ b/components/com_users/tmpl/registration/default.php @@ -10,7 +10,6 @@ defined('_JEXEC') or die; -use Joomla\CMS\HTML\HTMLHelper; use Joomla\CMS\Language\Text; use Joomla\CMS\Router\Route; @@ -57,6 +56,7 @@ - + + form->renderControlFields(); ?> diff --git a/components/com_users/tmpl/remind/default.php b/components/com_users/tmpl/remind/default.php index a0d4453f7a180..59110d441fc48 100644 --- a/components/com_users/tmpl/remind/default.php +++ b/components/com_users/tmpl/remind/default.php @@ -10,7 +10,6 @@ defined('_JEXEC') or die; -use Joomla\CMS\HTML\HTMLHelper; use Joomla\CMS\Language\Text; use Joomla\CMS\Router\Route; @@ -45,6 +44,7 @@ - + + form->renderControlFields(); ?> diff --git a/components/com_users/tmpl/reset/confirm.php b/components/com_users/tmpl/reset/confirm.php index 755240c7896c7..85144d02a204d 100644 --- a/components/com_users/tmpl/reset/confirm.php +++ b/components/com_users/tmpl/reset/confirm.php @@ -10,7 +10,6 @@ defined('_JEXEC') or die; -use Joomla\CMS\HTML\HTMLHelper; use Joomla\CMS\Language\Text; use Joomla\CMS\Router\Route; @@ -45,6 +44,7 @@ - + + form->renderControlFields(); ?> diff --git a/components/com_users/tmpl/reset/default.php b/components/com_users/tmpl/reset/default.php index 7fa7267a5c047..5995f31512080 100644 --- a/components/com_users/tmpl/reset/default.php +++ b/components/com_users/tmpl/reset/default.php @@ -10,7 +10,6 @@ defined('_JEXEC') or die; -use Joomla\CMS\HTML\HTMLHelper; use Joomla\CMS\Language\Text; use Joomla\CMS\Router\Route; @@ -45,6 +44,7 @@ - + + form->renderControlFields(); ?> diff --git a/composer.json b/composer.json index fbd2ddf5f6b3a..17f3f99a2b123 100644 --- a/composer.json +++ b/composer.json @@ -11,7 +11,7 @@ "config": { "optimize-autoloader": true, "platform": { - "php": "8.1.0" + "php": "8.3.0" }, "vendor-dir": "libraries/vendor", "github-protocols": ["https"] @@ -32,11 +32,6 @@ "type": "vcs", "url": "https://github.com/joomla-backports/php-tuf.git", "no-api": true - }, - { - "type": "vcs", - "url": "https://github.com/joomla-backports/portable-utf8.git", - "no-api": true } ], "autoload": { @@ -51,46 +46,45 @@ } }, "require": { - "php": "^8.1.0", - "joomla/application": "^3.0.4", - "joomla/archive": "^3.0.4", - "joomla/authentication": "^3.0.3", - "joomla/console": "^3.0.3", - "joomla/crypt": "^3.0.3", - "joomla/data": "^3.0.3", - "joomla/database": "^3.4", - "joomla/di": "^3.1.1", - "joomla/event": "^3.0.2", - "joomla/filter": "^3.0.5", - "joomla/filesystem": "^3.2.0", - "joomla/http": "^3.1.3", - "joomla/input": "~3.0", - "joomla/language": "~3.0", - "joomla/oauth1": "~3.0", - "joomla/oauth2": "~3.0", - "joomla/registry": "~3.0", - "joomla/router": "~3.0", - "joomla/session": "^3.0.3", - "joomla/string": "^3.0.4", - "joomla/uri": "~3.0", - "joomla/utilities": "~3.0", - "algo26-matthias/idna-convert": "^3.2.0", + "php": "^8.3.0", + "joomla/application": "^4.0", + "joomla/archive": "^4.0", + "joomla/authentication": "^4.0", + "joomla/console": "^4.0", + "joomla/crypt": "^4.0", + "joomla/data": "^4.0", + "joomla/database": "^4.0", + "joomla/di": "^4.0", + "joomla/event": "^4.0", + "joomla/filter": "^4.0", + "joomla/filesystem": "^4.0", + "joomla/http": "^4.0", + "joomla/input": "^4.0", + "joomla/language": "^4.0", + "joomla/oauth1": "^4.0", + "joomla/oauth2": "^4.0", + "joomla/registry": "^4.0", + "joomla/router": "^4.0", + "joomla/session": "^4.0", + "joomla/string": "^4.0", + "joomla/uri": "^4.0", + "joomla/utilities": "^4.0", + "algo26-matthias/idna-convert": "^4.2.1", "defuse/php-encryption": "^2.4.0", - "doctrine/inflector": "^1.4.4", + "doctrine/inflector": "^2.1.0", "fig/link-util": "^1.2.0", "google/recaptcha": "^1.3.1", - "laminas/laminas-diactoros": "^2.26.0", + "laminas/laminas-diactoros": "^3.6.0", "paragonie/sodium_compat": "^1.21.2", "phpmailer/phpmailer": "^6.10.0", "psr/link": "~1.1.1", - "symfony/console": "^6.4.25", - "symfony/error-handler": "^6.4.24", - "symfony/ldap": "^6.4.24", - "symfony/options-resolver": "^6.4.25", + "symfony/console": "^7", + "symfony/error-handler": "^7", + "symfony/ldap": "^7", + "symfony/options-resolver": "^7", "symfony/polyfill-mbstring": "^1.33.0", "symfony/web-link": "^6.4.24", "symfony/yaml": "^6.4.25", - "typo3/phar-stream-wrapper": "^3.1.8", "wamania/php-stemmer": "^4.0.0", "tobscure/json-api": "dev-joomla-backports", "willdurand/negotiation": "^3.1.0", @@ -107,7 +101,6 @@ "web-token/jwt-library": "^3.4.8", "phpseclib/bcmath_compat": "^2.0.3", "jfcherng/php-diff": "^6.16.2", - "voku/portable-utf8": "dev-joomla-5.3 as 6.0.13", "php-tuf/php-tuf": "^1.0.3", "php-debugbar/php-debugbar": "^2.2.4" }, @@ -115,20 +108,17 @@ "phpunit/phpunit": "^9.6.29", "friendsofphp/php-cs-fixer": "^3.88.0", "squizlabs/php_codesniffer": "^3.13.4", - "joomla/mediawiki": "^3.0", - "joomla/test": "~3.0", + "joomla/mediawiki": "^4.0", + "joomla/test": "~4.0", "phpstan/phpstan": "^2.1.29", "phpstan/phpstan-deprecation-rules": "^2.0.3" }, "replace": { "paragonie/random_compat": "9.99.99", - "symfony/polyfill-php70": "*", - "symfony/polyfill-php71": "*", - "symfony/polyfill-php72": "*", - "symfony/polyfill-php73": "*", - "symfony/polyfill-php74": "*", "symfony/polyfill-php80": "*", - "symfony/polyfill-php81": "*" + "symfony/polyfill-php81": "*", + "symfony/polyfill-php82": "*", + "symfony/polyfill-php83": "*" }, "extra": { "composer-exit-on-patch-failure": true diff --git a/composer.lock b/composer.lock index d6ca015c7ac09..530f40d88703c 100644 --- a/composer.lock +++ b/composer.lock @@ -4,29 +4,29 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "a0bbac1380e2021808fa2a026d589486", + "content-hash": "f577684c10af21b55e694ebddac803ca", "packages": [ { "name": "algo26-matthias/idna-convert", - "version": "v3.2.0", + "version": "v4.2.1", "source": { "type": "git", "url": "https://github.com/algo26-matthias/idna-convert.git", - "reference": "0cea987c75b981797cf3bc28b182c5da05c41252" + "reference": "bc263b9d9dd6bf82845cda763a4abea3481d0f83" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/algo26-matthias/idna-convert/zipball/0cea987c75b981797cf3bc28b182c5da05c41252", - "reference": "0cea987c75b981797cf3bc28b182c5da05c41252", + "url": "https://api.github.com/repos/algo26-matthias/idna-convert/zipball/bc263b9d9dd6bf82845cda763a4abea3481d0f83", + "reference": "bc263b9d9dd6bf82845cda763a4abea3481d0f83", "shasum": "" }, "require": { "ext-pcre": "*", "jakeasmith/http_build_url": "^1", - "php": ">=7.2.0" + "php": ">=8.1" }, "require-dev": { - "phpunit/phpunit": "8.0" + "phpunit/phpunit": "^9 || ^10" }, "suggest": { "ext-iconv": "Install ext/iconv for using input / output other than UTF-8 or ISO-8859-1", @@ -50,7 +50,7 @@ } ], "description": "A library for encoding and decoding internationalized domain names", - "homepage": "http://idnaconv.net/", + "homepage": "https://github.com/algo26-matthias/idna-convert", "keywords": [ "idn", "idna", @@ -58,9 +58,9 @@ ], "support": { "issues": "https://github.com/algo26-matthias/idna-convert/issues", - "source": "https://github.com/algo26-matthias/idna-convert/tree/v3.2.0" + "source": "https://github.com/algo26-matthias/idna-convert/tree/v4.2.1" }, - "time": "2025-04-01T11:22:26+00:00" + "time": "2025-08-11T09:03:12+00:00" }, { "name": "brick/math", @@ -263,38 +263,32 @@ }, { "name": "doctrine/inflector", - "version": "1.4.4", + "version": "2.1.0", "source": { "type": "git", "url": "https://github.com/doctrine/inflector.git", - "reference": "4bd5c1cdfcd00e9e2d8c484f79150f67e5d355d9" + "reference": "6d6c96277ea252fc1304627204c3d5e6e15faa3b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/inflector/zipball/4bd5c1cdfcd00e9e2d8c484f79150f67e5d355d9", - "reference": "4bd5c1cdfcd00e9e2d8c484f79150f67e5d355d9", + "url": "https://api.github.com/repos/doctrine/inflector/zipball/6d6c96277ea252fc1304627204c3d5e6e15faa3b", + "reference": "6d6c96277ea252fc1304627204c3d5e6e15faa3b", "shasum": "" }, "require": { - "php": "^7.1 || ^8.0" + "php": "^7.2 || ^8.0" }, "require-dev": { - "doctrine/coding-standard": "^8.0", - "phpstan/phpstan": "^0.12", - "phpstan/phpstan-phpunit": "^0.12", - "phpstan/phpstan-strict-rules": "^0.12", - "phpunit/phpunit": "^7.0 || ^8.0 || ^9.0" + "doctrine/coding-standard": "^12.0 || ^13.0", + "phpstan/phpstan": "^1.12 || ^2.0", + "phpstan/phpstan-phpunit": "^1.4 || ^2.0", + "phpstan/phpstan-strict-rules": "^1.6 || ^2.0", + "phpunit/phpunit": "^8.5 || ^12.2" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.0.x-dev" - } - }, "autoload": { "psr-4": { - "Doctrine\\Inflector\\": "lib/Doctrine/Inflector", - "Doctrine\\Common\\Inflector\\": "lib/Doctrine/Common/Inflector" + "Doctrine\\Inflector\\": "src" } }, "notification-url": "https://packagist.org/downloads/", @@ -339,7 +333,7 @@ ], "support": { "issues": "https://github.com/doctrine/inflector/issues", - "source": "https://github.com/doctrine/inflector/tree/1.4.4" + "source": "https://github.com/doctrine/inflector/tree/2.1.0" }, "funding": [ { @@ -355,7 +349,7 @@ "type": "tidelift" } ], - "time": "2021-04-16T17:34:40+00:00" + "time": "2025-08-10T19:31:58+00:00" }, { "name": "dragonmantank/cron-expression", @@ -1055,58 +1049,52 @@ }, { "name": "joomla/application", - "version": "3.0.4", + "version": "4.0.0", "source": { "type": "git", "url": "https://github.com/joomla-framework/application.git", - "reference": "3ab2450f712136f1893337a38bb4c4f951cc853b" + "reference": "878d1f4a2dc03b6197d0e6cfb4a969ec06a3314d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/joomla-framework/application/zipball/3ab2450f712136f1893337a38bb4c4f951cc853b", - "reference": "3ab2450f712136f1893337a38bb4c4f951cc853b", + "url": "https://api.github.com/repos/joomla-framework/application/zipball/878d1f4a2dc03b6197d0e6cfb4a969ec06a3314d", + "reference": "878d1f4a2dc03b6197d0e6cfb4a969ec06a3314d", "shasum": "" }, "require": { - "joomla/event": "^3.0", - "joomla/registry": "^3.0", - "laminas/laminas-diactoros": "^2.24.0", - "php": "^8.1.0", - "psr/http-message": "^1.0", + "joomla/event": "^4.0", + "joomla/registry": "^4.0", + "laminas/laminas-diactoros": "^3.6.0", + "php": "^8.3.0", + "psr/http-message": "^2.0", "psr/log": "^1.0|^2.0|^3.0", "symfony/deprecation-contracts": "^2|^3" }, "require-dev": { "ext-json": "*", - "joomla/controller": "^3.0", - "joomla/di": "^3.0", - "joomla/input": "^3.0", - "joomla/router": "^3.0", - "joomla/session": "^3.0", - "joomla/test": "^3.0", - "joomla/uri": "^3.0", - "phpstan/phpstan": "1.12.27", - "phpstan/phpstan-deprecation-rules": "1.2.1", + "joomla/controller": "^4.0", + "joomla/di": "^4.0", + "joomla/input": "^4.0", + "joomla/router": "^4.0", + "joomla/session": "^4.0", + "joomla/test": "^4.0", + "joomla/uri": "^4.0", + "phpstan/phpstan": "^2.1.17", + "phpstan/phpstan-deprecation-rules": "^2.0.3", "phpunit/phpunit": "^10.0", "squizlabs/php_codesniffer": "~3.10.2", "symfony/phpunit-bridge": "^7.0" }, "suggest": { "ext-json": "To use JSON format, ext-json is required", - "joomla/controller": "^3.0 To support resolving ControllerInterface objects in ControllerResolverInterface, install joomla/controller", - "joomla/input": "^3.0 To use WebApplicationInterface, install joomla/input", - "joomla/router": "^3.0 To use WebApplication or ControllerResolverInterface implementations, install joomla/router", - "joomla/session": "^3.0 To use SessionAwareWebApplicationInterface, install joomla/session", - "joomla/uri": "^3.0 To use AbstractWebApplication, install joomla/uri", - "psr/container": "^1.0 To use the ContainerControllerResolver, install any PSR-11 compatible container" + "joomla/controller": "^4.0 To support resolving ControllerInterface objects in ControllerResolverInterface, install joomla/controller", + "joomla/input": "^4.0 To use WebApplicationInterface, install joomla/input", + "joomla/router": "^4.0 To use WebApplication or ControllerResolverInterface implementations, install joomla/router", + "joomla/session": "^4.0 To use SessionAwareWebApplicationInterface, install joomla/session", + "joomla/uri": "^4.0 To use AbstractWebApplication, install joomla/uri", + "psr/container": "^2.0 To use the ContainerControllerResolver, install any PSR-11 compatible container" }, "type": "library", - "extra": { - "branch-alias": { - "dev-2.0-dev": "2.0-dev", - "dev-3.x-dev": "3.0-dev" - } - }, "autoload": { "psr-4": { "Joomla\\Application\\": "src/" @@ -1147,32 +1135,32 @@ "type": "github" } ], - "time": "2025-07-11T09:17:42+00:00" + "time": "2025-07-24T09:55:44+00:00" }, { "name": "joomla/archive", - "version": "3.0.4", + "version": "4.0.0", "source": { "type": "git", "url": "https://github.com/joomla-framework/archive.git", - "reference": "1d506857685f3537c1193f4e77b12f24cc9afe49" + "reference": "7a8d0eda637bd37bc3de744aa3e4ce516d4356b0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/joomla-framework/archive/zipball/1d506857685f3537c1193f4e77b12f24cc9afe49", - "reference": "1d506857685f3537c1193f4e77b12f24cc9afe49", + "url": "https://api.github.com/repos/joomla-framework/archive/zipball/7a8d0eda637bd37bc3de744aa3e4ce516d4356b0", + "reference": "7a8d0eda637bd37bc3de744aa3e4ce516d4356b0", "shasum": "" }, "require": { - "joomla/filesystem": "^3.0", - "php": "^8.1.0" + "joomla/filesystem": "^4.0", + "php": "^8.3.0" }, "require-dev": { - "joomla/test": "^3.0", - "phpstan/phpstan": "1.12.27", - "phpstan/phpstan-deprecation-rules": "1.2.1", - "phpunit/phpunit": "^10.0", - "squizlabs/php_codesniffer": "~3.10.2" + "joomla/test": "^4.0", + "phpstan/phpstan": "^2.1.17", + "phpstan/phpstan-deprecation-rules": "^2.0.3", + "phpunit/phpunit": "^12.0", + "squizlabs/php_codesniffer": "^3.10.2" }, "suggest": { "ext-bz2": "To extract bzip2 compressed packages", @@ -1180,12 +1168,6 @@ "ext-zlib": "To extract gzip or zip compressed packages" }, "type": "joomla-package", - "extra": { - "branch-alias": { - "dev-2.0-dev": "2.0-dev", - "dev-3.x-dev": "3.0-dev" - } - }, "autoload": { "psr-4": { "Joomla\\Archive\\": "src/" @@ -1204,47 +1186,41 @@ ], "support": { "issues": "https://github.com/joomla-framework/archive/issues", - "source": "https://github.com/joomla-framework/archive/tree/3.0.4" + "source": "https://github.com/joomla-framework/archive/tree/4.0.0" }, - "time": "2025-07-11T10:54:02+00:00" + "time": "2025-07-24T08:04:38+00:00" }, { "name": "joomla/authentication", - "version": "3.0.3", + "version": "4.0.0", "source": { "type": "git", "url": "https://github.com/joomla-framework/authentication.git", - "reference": "ea3a263985a40c231a42d050ccd3f822b7b5e778" + "reference": "1d9b946410ac43c8d206d9d6bf741173b83a8e4c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/joomla-framework/authentication/zipball/ea3a263985a40c231a42d050ccd3f822b7b5e778", - "reference": "ea3a263985a40c231a42d050ccd3f822b7b5e778", + "url": "https://api.github.com/repos/joomla-framework/authentication/zipball/1d9b946410ac43c8d206d9d6bf741173b83a8e4c", + "reference": "1d9b946410ac43c8d206d9d6bf741173b83a8e4c", "shasum": "" }, "require": { - "php": "^8.1.0" + "php": "^8.3.0" }, "require-dev": { - "joomla/database": "^3.0", - "joomla/input": "^3.0", - "phpstan/phpstan": "1.12.27", - "phpstan/phpstan-deprecation-rules": "1.2.1", - "phpunit/phpunit": "^10.0", - "squizlabs/php_codesniffer": "~3.10.2", - "symfony/phpunit-bridge": "^7.0" + "joomla/database": "^4.0", + "joomla/input": "^4.0", + "phpstan/phpstan": "^2.1.17", + "phpstan/phpstan-deprecation-rules": "^2.0.3", + "phpunit/phpunit": "^12.0", + "squizlabs/php_codesniffer": "^3.10.2", + "symfony/phpunit-bridge": "^8.0" }, "suggest": { "joomla/database": "Required if you want to use Joomla\\Authentication\\Strategies\\DatabaseStrategy", "joomla/input": "Required if you want to use classes in the Joomla\\Authentication\\Strategies namespace" }, "type": "joomla-package", - "extra": { - "branch-alias": { - "dev-2.0-dev": "2.0-dev", - "dev-3.x-dev": "3.0-dev" - } - }, "autoload": { "psr-4": { "Joomla\\Authentication\\": "src/" @@ -1263,50 +1239,44 @@ ], "support": { "issues": "https://github.com/joomla-framework/authentication/issues", - "source": "https://github.com/joomla-framework/authentication/tree/3.0.3" + "source": "https://github.com/joomla-framework/authentication/tree/4.0.0" }, - "time": "2025-07-17T14:56:13+00:00" + "time": "2025-07-24T08:02:13+00:00" }, { "name": "joomla/console", - "version": "3.0.3", + "version": "4.0.0", "source": { "type": "git", "url": "https://github.com/joomla-framework/console.git", - "reference": "839ac3e759a9c8bf962175906480923a7b680c36" + "reference": "b58fb572436ad9e230061ff6929aa1446849efe8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/joomla-framework/console/zipball/839ac3e759a9c8bf962175906480923a7b680c36", - "reference": "839ac3e759a9c8bf962175906480923a7b680c36", + "url": "https://api.github.com/repos/joomla-framework/console/zipball/b58fb572436ad9e230061ff6929aa1446849efe8", + "reference": "b58fb572436ad9e230061ff6929aa1446849efe8", "shasum": "" }, "require": { - "joomla/application": "^3.0", - "joomla/event": "^3.0", - "joomla/string": "^3.0", - "php": "^8.1.0", - "symfony/console": "^v6.2.0", - "symfony/error-handler": "^6" + "joomla/application": "^4.0", + "joomla/event": "^4.0", + "joomla/string": "^4.0", + "php": "^8.3.0", + "symfony/console": "^v7.0.0", + "symfony/error-handler": "^7" }, "require-dev": { - "joomla/test": "^3.0", - "phpstan/phpstan": "1.12.27", - "phpstan/phpstan-deprecation-rules": "1.2.1", - "phpunit/phpunit": "^10.0", - "psr/container": "^1.0", + "joomla/test": "^4.0", + "phpstan/phpstan": "2.1.17", + "phpstan/phpstan-deprecation-rules": "2.0.3", + "phpunit/phpunit": "^12.0", + "psr/container": "^2.0", "squizlabs/php_codesniffer": "~3.10.2" }, "suggest": { "psr/container-implementation": "To use the ContainerLoader" }, "type": "joomla-package", - "extra": { - "branch-alias": { - "dev-2.0-dev": "2.0-dev", - "dev-3.x-dev": "3.0-dev" - } - }, "autoload": { "psr-4": { "Joomla\\Console\\": "src/" @@ -1325,35 +1295,34 @@ ], "support": { "issues": "https://github.com/joomla-framework/console/issues", - "source": "https://github.com/joomla-framework/console/tree/3.0.3" + "source": "https://github.com/joomla-framework/console/tree/4.0.0" }, - "time": "2025-07-17T14:55:35+00:00" + "time": "2025-07-24T08:33:34+00:00" }, { "name": "joomla/crypt", - "version": "3.0.3", + "version": "4.0.0", "source": { "type": "git", "url": "https://github.com/joomla-framework/crypt.git", - "reference": "0cfd0a3ab2fc64015030319348a16f4fa6e0355a" + "reference": "9b069827a7875ae3bff409695624071f4d356aca" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/joomla-framework/crypt/zipball/0cfd0a3ab2fc64015030319348a16f4fa6e0355a", - "reference": "0cfd0a3ab2fc64015030319348a16f4fa6e0355a", + "url": "https://api.github.com/repos/joomla-framework/crypt/zipball/9b069827a7875ae3bff409695624071f4d356aca", + "reference": "9b069827a7875ae3bff409695624071f4d356aca", "shasum": "" }, "require": { - "php": "^8.1.0" + "php": "^8.3.0" }, "require-dev": { "defuse/php-encryption": "^2.0", "paragonie/sodium_compat": "^1|^2", - "phpstan/phpstan": "1.12.27", - "phpstan/phpstan-deprecation-rules": "1.2.1", - "phpunit/phpunit": "^9.5.28", + "phpstan/phpstan": "^2.1.17", + "phpstan/phpstan-deprecation-rules": "^2.0.3", + "phpunit/phpunit": "^12.2.6", "squizlabs/php_codesniffer": "~3.7.2", - "symfony/phpunit-bridge": "^5.0", "symfony/polyfill-util": "^1.0" }, "suggest": { @@ -1363,12 +1332,6 @@ "paragonie/sodium_compat": "To use Sodium cipher if neither ext/sodium or ext/libsodium are available" }, "type": "joomla-package", - "extra": { - "branch-alias": { - "dev-2.0-dev": "2.0-dev", - "dev-3.x-dev": "3.0-dev" - } - }, "autoload": { "psr-4": { "Joomla\\Crypt\\": "src/" @@ -1387,42 +1350,36 @@ ], "support": { "issues": "https://github.com/joomla-framework/crypt/issues", - "source": "https://github.com/joomla-framework/crypt/tree/3.0.3" + "source": "https://github.com/joomla-framework/crypt/tree/4.0.0" }, - "time": "2025-07-19T11:01:54+00:00" + "time": "2025-07-24T07:56:55+00:00" }, { "name": "joomla/data", - "version": "3.0.3", + "version": "4.0.0", "source": { "type": "git", "url": "https://github.com/joomla-framework/data.git", - "reference": "8eaa08b07b84dce217b1735e5c51d66285ff93ae" + "reference": "e00293048e893dc3c5e793b091e87da84faf3963" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/joomla-framework/data/zipball/8eaa08b07b84dce217b1735e5c51d66285ff93ae", - "reference": "8eaa08b07b84dce217b1735e5c51d66285ff93ae", + "url": "https://api.github.com/repos/joomla-framework/data/zipball/e00293048e893dc3c5e793b091e87da84faf3963", + "reference": "e00293048e893dc3c5e793b091e87da84faf3963", "shasum": "" }, "require": { - "joomla/registry": "^3.0", - "php": "^8.1.0" + "joomla/registry": "^4.0", + "php": "^8.3.0" }, "require-dev": { - "joomla/test": "^3.0", - "phpstan/phpstan": "1.12.27", - "phpstan/phpstan-deprecation-rules": "1.2.1", - "phpunit/phpunit": "^9.5.28", - "squizlabs/php_codesniffer": "~3.7.2" + "joomla/test": "^4.0", + "phpstan/phpstan": "2.1.17", + "phpstan/phpstan-deprecation-rules": "2.0.3", + "phpunit/phpunit": "^12.0", + "squizlabs/php_codesniffer": "~3.10.2" }, "type": "joomla-package", - "extra": { - "branch-alias": { - "dev-2.0-dev": "2.0-dev", - "dev-3.x-dev": "3.0-dev" - } - }, "autoload": { "psr-4": { "Joomla\\Data\\": "src/" @@ -1441,42 +1398,43 @@ ], "support": { "issues": "https://github.com/joomla-framework/data/issues", - "source": "https://github.com/joomla-framework/data/tree/3.0.3" + "source": "https://github.com/joomla-framework/data/tree/4.0.0" }, - "time": "2025-07-19T12:27:51+00:00" + "time": "2025-07-24T08:48:07+00:00" }, { "name": "joomla/database", - "version": "3.4.3", + "version": "4.0.0", "source": { "type": "git", "url": "https://github.com/joomla-framework/database.git", - "reference": "6a8aedaea444cd78912153c4d8361eb06ba2a9cd" + "reference": "2e744e7959368891fe52ccb35790e201251f6f39" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/joomla-framework/database/zipball/6a8aedaea444cd78912153c4d8361eb06ba2a9cd", - "reference": "6a8aedaea444cd78912153c4d8361eb06ba2a9cd", + "url": "https://api.github.com/repos/joomla-framework/database/zipball/2e744e7959368891fe52ccb35790e201251f6f39", + "reference": "2e744e7959368891fe52ccb35790e201251f6f39", "shasum": "" }, "require": { - "joomla/event": "^3.0", - "php": "^8.1.0", + "joomla/event": "^4.0", + "php": "^8.3.0", "symfony/deprecation-contracts": "^2|^3" }, "require-dev": { - "joomla/archive": "^3.0", - "joomla/console": "^3.0", - "joomla/di": "^3.0", - "joomla/filesystem": "^3.0", - "joomla/registry": "^3.0", - "joomla/test": "^3.0", - "phpstan/phpstan": "1.12.27", - "phpstan/phpstan-deprecation-rules": "1.2.1", - "phpunit/phpunit": "^9.5.28", - "psr/log": "^1.1", - "squizlabs/php_codesniffer": "~3.7.2", - "symfony/phpunit-bridge": "^5.0" + "colinodell/psr-testlogger": "^1.3.0", + "joomla/archive": "^4.0", + "joomla/console": "^4.0", + "joomla/di": "^4.0", + "joomla/filesystem": "^4.0", + "joomla/registry": "^4.0", + "joomla/test": "^4.0", + "phpstan/phpstan": "^2.1.17", + "phpstan/phpstan-deprecation-rules": "^2.0.3", + "phpunit/phpunit": "^12.0", + "psr/log": "^3.0.2", + "squizlabs/php_codesniffer": "^3.10.2", + "symfony/phpunit-bridge": "^8.0" }, "suggest": { "ext-mysqli": "To connect to a MySQL database via MySQLi", @@ -1490,12 +1448,6 @@ "psr/log": "To use the LoggingMonitor, install psr/log." }, "type": "joomla-package", - "extra": { - "branch-alias": { - "dev-2.0-dev": "2.0-dev", - "dev-3.x-dev": "3.0-dev" - } - }, "autoload": { "psr-4": { "Joomla\\Database\\": "src/" @@ -1514,46 +1466,40 @@ ], "support": { "issues": "https://github.com/joomla-framework/database/issues", - "source": "https://github.com/joomla-framework/database/tree/3.4.3" + "source": "https://github.com/joomla-framework/database/tree/4.0.0" }, - "time": "2025-07-19T15:40:51+00:00" + "time": "2025-07-24T09:46:18+00:00" }, { "name": "joomla/di", - "version": "3.1.1", + "version": "4.0.0", "source": { "type": "git", "url": "https://github.com/joomla-framework/di.git", - "reference": "fd98d11dddf65adf9c6eff68a4c80f9f2f34b2b9" + "reference": "e8511111e2b5b239f75116f9ff75b43c18809868" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/joomla-framework/di/zipball/fd98d11dddf65adf9c6eff68a4c80f9f2f34b2b9", - "reference": "fd98d11dddf65adf9c6eff68a4c80f9f2f34b2b9", + "url": "https://api.github.com/repos/joomla-framework/di/zipball/e8511111e2b5b239f75116f9ff75b43c18809868", + "reference": "e8511111e2b5b239f75116f9ff75b43c18809868", "shasum": "" }, "require": { - "php": "^8.1.0", - "psr/container": "^1.0", + "php": "^8.3.0", + "psr/container": "^2.0", "symfony/deprecation-contracts": "^2|^3" }, "provide": { "psr/container-implementation": "~1.0" }, "require-dev": { - "joomla/test": "^3.0", - "phpstan/phpstan": "1.12.27", - "phpstan/phpstan-deprecation-rules": "1.2.1", - "phpunit/phpunit": "^9.5.28", + "joomla/test": "^4.0", + "phpstan/phpstan": "^2.1.17", + "phpstan/phpstan-deprecation-rules": "^2.0.3", + "phpunit/phpunit": "^12.2.6", "squizlabs/php_codesniffer": "~3.7.2" }, "type": "joomla-package", - "extra": { - "branch-alias": { - "dev-2.0-dev": "2.0-dev", - "dev-3.x-dev": "3.0-dev" - } - }, "autoload": { "psr-4": { "Joomla\\DI\\": "src/" @@ -1575,47 +1521,41 @@ ], "support": { "issues": "https://github.com/joomla-framework/di/issues", - "source": "https://github.com/joomla-framework/di/tree/3.1.1" + "source": "https://github.com/joomla-framework/di/tree/4.0.0" }, - "time": "2025-07-19T16:11:41+00:00" + "time": "2025-07-24T07:51:22+00:00" }, { "name": "joomla/event", - "version": "3.0.2", + "version": "4.0.0", "source": { "type": "git", "url": "https://github.com/joomla-framework/event.git", - "reference": "d1a5dd4c5c8aa1d1c7a7101da93e677ec5d3ef3f" + "reference": "4bbbfb0a3444cb3e3f9abd57d623caa06e9207b5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/joomla-framework/event/zipball/d1a5dd4c5c8aa1d1c7a7101da93e677ec5d3ef3f", - "reference": "d1a5dd4c5c8aa1d1c7a7101da93e677ec5d3ef3f", + "url": "https://api.github.com/repos/joomla-framework/event/zipball/4bbbfb0a3444cb3e3f9abd57d623caa06e9207b5", + "reference": "4bbbfb0a3444cb3e3f9abd57d623caa06e9207b5", "shasum": "" }, "require": { - "php": "^8.1.0", + "php": "^8.3.0", "symfony/deprecation-contracts": "^2|^3" }, "require-dev": { - "joomla/console": "^3.0", - "phpstan/phpstan": "1.12.27", - "phpstan/phpstan-deprecation-rules": "1.2.1", - "phpunit/phpunit": "^9.5.28", - "psr/container": "^1.0", - "squizlabs/php_codesniffer": "~3.7.2" + "joomla/console": "^4.0", + "phpstan/phpstan": "^2.1.17", + "phpstan/phpstan-deprecation-rules": "^2.0.3", + "phpunit/phpunit": "^12.2.7", + "psr/container": "^2.0", + "squizlabs/php_codesniffer": "^3.7.2" }, "suggest": { "joomla/console": "If you want to use the DebugEventDispatcherCommand class, please install joomla/console", "psr/container-implementation": "If you want to use the LazyServiceEventListener class, please install a PSR-11 container" }, "type": "joomla-package", - "extra": { - "branch-alias": { - "dev-2.0-dev": "2.0-dev", - "dev-3.x-dev": "3.0-dev" - } - }, "autoload": { "psr-4": { "Joomla\\Event\\": "src/" @@ -1634,42 +1574,36 @@ ], "support": { "issues": "https://github.com/joomla-framework/event/issues", - "source": "https://github.com/joomla-framework/event/tree/3.0.2" + "source": "https://github.com/joomla-framework/event/tree/4.0.0" }, - "time": "2025-07-19T18:30:21+00:00" + "time": "2025-07-24T09:34:33+00:00" }, { "name": "joomla/filesystem", - "version": "3.2.0", + "version": "4.1.0", "source": { "type": "git", "url": "https://github.com/joomla-framework/filesystem.git", - "reference": "be6917c396300c8316ef13ef3e2096732af847fd" + "reference": "cfcda2935605f14f396ccda7535f4417e27af868" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/joomla-framework/filesystem/zipball/be6917c396300c8316ef13ef3e2096732af847fd", - "reference": "be6917c396300c8316ef13ef3e2096732af847fd", + "url": "https://api.github.com/repos/joomla-framework/filesystem/zipball/cfcda2935605f14f396ccda7535f4417e27af868", + "reference": "cfcda2935605f14f396ccda7535f4417e27af868", "shasum": "" }, "require": { - "php": "^8.1.0" + "php": "^8.3.0" }, "require-dev": { - "joomla/test": "^3.0", + "joomla/test": "^4.0", "mikey179/vfsstream": "^1.6.11", - "phpstan/phpstan": "1.12.27", - "phpstan/phpstan-deprecation-rules": "1.2.1", - "phpunit/phpunit": "^9.5.28", - "squizlabs/php_codesniffer": "^3.7.2" + "phpstan/phpstan": "^2.1.17", + "phpstan/phpstan-deprecation-rules": "^2.0.3", + "phpunit/phpunit": "^12.2.7", + "squizlabs/php_codesniffer": "^3.13.2" }, "type": "joomla-package", - "extra": { - "branch-alias": { - "dev-2.0-dev": "2.0-dev", - "dev-3.x-dev": "3.0-dev" - } - }, "autoload": { "psr-4": { "Joomla\\Filesystem\\": "src/" @@ -1688,45 +1622,39 @@ ], "support": { "issues": "https://github.com/joomla-framework/filesystem/issues", - "source": "https://github.com/joomla-framework/filesystem/tree/3.2.0" + "source": "https://github.com/joomla-framework/filesystem/tree/4.1.0" }, - "time": "2025-08-27T18:46:46+00:00" + "time": "2025-08-27T18:49:28+00:00" }, { "name": "joomla/filter", - "version": "3.0.5", + "version": "4.0.1", "source": { "type": "git", "url": "https://github.com/joomla-framework/filter.git", - "reference": "06c9e672d15099622dbb56c8e2a7461ce26d37f6" + "reference": "fcde280785f188e93530f7da68102f7dd8f9f723" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/joomla-framework/filter/zipball/06c9e672d15099622dbb56c8e2a7461ce26d37f6", - "reference": "06c9e672d15099622dbb56c8e2a7461ce26d37f6", + "url": "https://api.github.com/repos/joomla-framework/filter/zipball/fcde280785f188e93530f7da68102f7dd8f9f723", + "reference": "fcde280785f188e93530f7da68102f7dd8f9f723", "shasum": "" }, "require": { - "joomla/string": "^3.0", - "php": "^8.1.0" + "joomla/string": "^4.0", + "php": "^8.3.0" }, "require-dev": { - "joomla/language": "^3.0", - "phpstan/phpstan": "1.12.27", - "phpstan/phpstan-deprecation-rules": "1.2.1", - "phpunit/phpunit": "^9.5.28", + "joomla/language": "^4.0", + "phpstan/phpstan": "^2.1.17", + "phpstan/phpstan-deprecation-rules": "^2.0.3", + "phpunit/phpunit": "^12.2.7", "squizlabs/php_codesniffer": "^3.7.2" }, "suggest": { "joomla/language": "Required only if you want to use `OutputFilter::stringURLSafe`." }, "type": "joomla-package", - "extra": { - "branch-alias": { - "dev-2.0-dev": "2.0-dev", - "dev-3.x-dev": "3.0-dev" - } - }, "autoload": { "psr-4": { "Joomla\\Filter\\": "src/" @@ -1745,49 +1673,43 @@ ], "support": { "issues": "https://github.com/joomla-framework/filter/issues", - "source": "https://github.com/joomla-framework/filter/tree/3.0.5" + "source": "https://github.com/joomla-framework/filter/tree/4.0.1" }, - "time": "2025-09-30T15:42:09+00:00" + "time": "2025-09-30T15:42:06+00:00" }, { "name": "joomla/http", - "version": "3.1.3", + "version": "4.0.0", "source": { "type": "git", "url": "https://github.com/joomla-framework/http.git", - "reference": "10cc3c03280b69eacfb7b65a2822edeeb03d3452" + "reference": "c1631de6f88f5cb0c720360f6dc63a832359a1f7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/joomla-framework/http/zipball/10cc3c03280b69eacfb7b65a2822edeeb03d3452", - "reference": "10cc3c03280b69eacfb7b65a2822edeeb03d3452", + "url": "https://api.github.com/repos/joomla-framework/http/zipball/c1631de6f88f5cb0c720360f6dc63a832359a1f7", + "reference": "c1631de6f88f5cb0c720360f6dc63a832359a1f7", "shasum": "" }, "require": { "composer/ca-bundle": "^1.3.5", - "joomla/uri": "^3.0", - "laminas/laminas-diactoros": "^2.24.0", - "php": "^8.1.0", + "joomla/uri": "^4.0", + "laminas/laminas-diactoros": "^3.6.0", + "php": "^8.3.0", "psr/http-client": "^1.0", - "psr/http-message": "^1.0" + "psr/http-message": "^2.0" }, "require-dev": { - "joomla/test": "^3.0", - "phpstan/phpstan": "1.12.27", - "phpstan/phpstan-deprecation-rules": "1.2.1", - "phpunit/phpunit": "^9.5.28", + "joomla/test": "^4.0", + "phpstan/phpstan": "^2.1.17", + "phpstan/phpstan-deprecation-rules": "^2.0.3", + "phpunit/phpunit": "^12.2.6", "squizlabs/php_codesniffer": "^3.7.2" }, "suggest": { "ext-curl": "To use cURL for HTTP connections" }, "type": "joomla-package", - "extra": { - "branch-alias": { - "dev-2.0-dev": "2.0-dev", - "dev-3.x-dev": "3.0-dev" - } - }, "autoload": { "psr-4": { "Joomla\\Http\\": "src/" @@ -1806,43 +1728,37 @@ ], "support": { "issues": "https://github.com/joomla-framework/http/issues", - "source": "https://github.com/joomla-framework/http/tree/3.1.3" + "source": "https://github.com/joomla-framework/http/tree/4.0.0" }, - "time": "2025-10-16T08:32:44+00:00" + "time": "2025-07-23T20:11:41+00:00" }, { "name": "joomla/input", - "version": "3.0.2", + "version": "4.0.0", "source": { "type": "git", "url": "https://github.com/joomla-framework/input.git", - "reference": "b4ef792308e7adb42fb71a8118025ced899e4386" + "reference": "f366f97b143bd9d15f57dad74b21f72ac99d89ec" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/joomla-framework/input/zipball/b4ef792308e7adb42fb71a8118025ced899e4386", - "reference": "b4ef792308e7adb42fb71a8118025ced899e4386", + "url": "https://api.github.com/repos/joomla-framework/input/zipball/f366f97b143bd9d15f57dad74b21f72ac99d89ec", + "reference": "f366f97b143bd9d15f57dad74b21f72ac99d89ec", "shasum": "" }, "require": { - "joomla/filter": "^3.0", - "php": "^8.1.0", + "joomla/filter": "^4.0", + "php": "^8.3.0", "symfony/deprecation-contracts": "^2|^3" }, "require-dev": { - "joomla/test": "^3.0", - "phpstan/phpstan": "1.12.27", - "phpstan/phpstan-deprecation-rules": "1.2.1", - "phpunit/phpunit": "^9.5.28", - "squizlabs/php_codesniffer": "^3.7.2" + "joomla/test": "^4.0", + "phpstan/phpstan": "2.1.17", + "phpstan/phpstan-deprecation-rules": "2.0.3", + "phpunit/phpunit": "^12.0", + "squizlabs/php_codesniffer": "^3.10.2" }, "type": "joomla-package", - "extra": { - "branch-alias": { - "dev-2.0-dev": "2.0-dev", - "dev-3.x-dev": "3.0-dev" - } - }, "autoload": { "psr-4": { "Joomla\\Input\\": "src/" @@ -1861,49 +1777,43 @@ ], "support": { "issues": "https://github.com/joomla-framework/input/issues", - "source": "https://github.com/joomla-framework/input/tree/3.0.2" + "source": "https://github.com/joomla-framework/input/tree/4.0.0" }, - "time": "2025-07-19T12:57:48+00:00" + "time": "2025-07-23T19:52:44+00:00" }, { "name": "joomla/language", - "version": "3.0.2", + "version": "4.0.0", "source": { "type": "git", "url": "https://github.com/joomla-framework/language.git", - "reference": "7bd3d468ffad1e9639468a17751ec4324fc57d09" + "reference": "371507d84103e9e7b48253e72b3bcc8d91cf5a63" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/joomla-framework/language/zipball/7bd3d468ffad1e9639468a17751ec4324fc57d09", - "reference": "7bd3d468ffad1e9639468a17751ec4324fc57d09", + "url": "https://api.github.com/repos/joomla-framework/language/zipball/371507d84103e9e7b48253e72b3bcc8d91cf5a63", + "reference": "371507d84103e9e7b48253e72b3bcc8d91cf5a63", "shasum": "" }, "require": { "ext-xml": "*", - "joomla/string": "^3.0", - "php": "^8.1.0", + "joomla/string": "^4.0", + "php": "^8.3.0", "symfony/deprecation-contracts": "^2|^3" }, "require-dev": { - "joomla/di": "^3.0", - "joomla/registry": "^3.0", - "joomla/test": "^3.0", - "phpstan/phpstan": "1.12.27", - "phpstan/phpstan-deprecation-rules": "1.2.1", - "phpunit/phpunit": "^9.5.28", + "joomla/di": "^4.0", + "joomla/registry": "^4.0", + "joomla/test": "^4.0", + "phpstan/phpstan": "^2.1.17", + "phpstan/phpstan-deprecation-rules": "^2.0.3", + "phpunit/phpunit": "^12.2.6", "squizlabs/php_codesniffer": "^3.7.2" }, "suggest": { "joomla/di": "To use the Language ServiceProviderInterface objects, install joomla/di." }, "type": "joomla-package", - "extra": { - "branch-alias": { - "dev-2.0-dev": "2.0-dev", - "dev-3.x-dev": "3.0-dev" - } - }, "autoload": { "psr-4": { "Joomla\\Language\\": "src/" @@ -1922,48 +1832,42 @@ ], "support": { "issues": "https://github.com/joomla-framework/language/issues", - "source": "https://github.com/joomla-framework/language/tree/3.0.2" + "source": "https://github.com/joomla-framework/language/tree/4.0.0" }, - "time": "2025-07-19T13:19:12+00:00" + "time": "2025-07-23T19:48:37+00:00" }, { "name": "joomla/oauth1", - "version": "3.0.1", + "version": "4.0.1", "source": { "type": "git", "url": "https://github.com/joomla-framework/oauth1.git", - "reference": "4c1407cc98e0689ff36fa566906673829a8627ec" + "reference": "e48c0af2173222494cbac414e971c807f32a9eb9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/joomla-framework/oauth1/zipball/4c1407cc98e0689ff36fa566906673829a8627ec", - "reference": "4c1407cc98e0689ff36fa566906673829a8627ec", + "url": "https://api.github.com/repos/joomla-framework/oauth1/zipball/e48c0af2173222494cbac414e971c807f32a9eb9", + "reference": "e48c0af2173222494cbac414e971c807f32a9eb9", "shasum": "" }, "require": { - "joomla/application": "^3.0", - "joomla/http": "^3.0", - "joomla/input": "^3.0", - "joomla/registry": "^3.0", - "joomla/session": "^3.0", - "joomla/uri": "^3.0", - "php": "^8.1.0" + "joomla/application": "^4.0", + "joomla/http": "^4.0", + "joomla/input": "^4.0", + "joomla/registry": "^4.0", + "joomla/session": "^4.0", + "joomla/uri": "^4.0", + "php": "^8.3.0" }, "require-dev": { - "joomla/event": "^3.0", - "joomla/test": "^3.0", - "phpstan/phpstan": "1.12.27", - "phpstan/phpstan-deprecation-rules": "1.2.1", - "phpunit/phpunit": "^9.5.28", - "squizlabs/php_codesniffer": "^3.7.2" + "joomla/event": "^4.0", + "joomla/test": "^4.0", + "phpstan/phpstan": "^2.1.17", + "phpstan/phpstan-deprecation-rules": "^2.0.3", + "phpunit/phpunit": "^12.2.7", + "squizlabs/php_codesniffer": "^3.13.2" }, "type": "joomla-package", - "extra": { - "branch-alias": { - "dev-2.0-dev": "2.0-dev", - "dev-3.x-dev": "3.0-dev" - } - }, "autoload": { "psr-4": { "Joomla\\OAuth1\\": "src/" @@ -1982,45 +1886,39 @@ ], "support": { "issues": "https://github.com/joomla-framework/oauth1/issues", - "source": "https://github.com/joomla-framework/oauth1/tree/3.0.1" + "source": "https://github.com/joomla-framework/oauth1/tree/4.0.1" }, - "time": "2025-07-19T19:54:15+00:00" + "time": "2025-08-06T11:59:19+00:00" }, { "name": "joomla/oauth2", - "version": "3.0.2", + "version": "4.0.1", "source": { "type": "git", "url": "https://github.com/joomla-framework/oauth2.git", - "reference": "58ca7b98f6794b02c786ff53cfdcce3997430740" + "reference": "5c665f53aeafb2d3a0168534932ace9573a0abe7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/joomla-framework/oauth2/zipball/58ca7b98f6794b02c786ff53cfdcce3997430740", - "reference": "58ca7b98f6794b02c786ff53cfdcce3997430740", + "url": "https://api.github.com/repos/joomla-framework/oauth2/zipball/5c665f53aeafb2d3a0168534932ace9573a0abe7", + "reference": "5c665f53aeafb2d3a0168534932ace9573a0abe7", "shasum": "" }, "require": { - "joomla/application": "^3.0", - "joomla/http": "^3.0", - "joomla/input": "^3.0", - "joomla/session": "^3.0", - "joomla/uri": "^3.0", - "php": "^8.1.0" + "joomla/application": "^4.0", + "joomla/http": "^4.0", + "joomla/input": "^4.0", + "joomla/session": "^4.0", + "joomla/uri": "^4.0", + "php": "^8.3.0" }, "require-dev": { - "phpstan/phpstan": "1.12.27", - "phpstan/phpstan-deprecation-rules": "1.2.1", - "phpunit/phpunit": "^9.5.28", - "squizlabs/php_codesniffer": "^3.7.2" + "phpstan/phpstan": "^2.1.17", + "phpstan/phpstan-deprecation-rules": "^2.0.3", + "phpunit/phpunit": "^12.0", + "squizlabs/php_codesniffer": "^3.10.2" }, "type": "joomla-package", - "extra": { - "branch-alias": { - "dev-2.0-dev": "2.0-dev", - "dev-3.x-dev": "3.0-dev" - } - }, "autoload": { "psr-4": { "Joomla\\OAuth2\\": "src/" @@ -2039,34 +1937,34 @@ ], "support": { "issues": "https://github.com/joomla-framework/oauth2/issues", - "source": "https://github.com/joomla-framework/oauth2/tree/3.0.2" + "source": "https://github.com/joomla-framework/oauth2/tree/4.0.1" }, - "time": "2025-09-19T18:25:42+00:00" + "time": "2025-08-06T10:09:51+00:00" }, { "name": "joomla/registry", - "version": "3.0.2", + "version": "4.0.0", "source": { "type": "git", "url": "https://github.com/joomla-framework/registry.git", - "reference": "4452de9c66abfec59b535e27c62af3528a539311" + "reference": "5692d8423c9b568627df701e9fd505eae5ea8f72" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/joomla-framework/registry/zipball/4452de9c66abfec59b535e27c62af3528a539311", - "reference": "4452de9c66abfec59b535e27c62af3528a539311", + "url": "https://api.github.com/repos/joomla-framework/registry/zipball/5692d8423c9b568627df701e9fd505eae5ea8f72", + "reference": "5692d8423c9b568627df701e9fd505eae5ea8f72", "shasum": "" }, "require": { - "joomla/utilities": "^3.0", - "php": "^8.1.0" + "joomla/utilities": "^4.0", + "php": "^8.3.0" }, "require-dev": { - "phpstan/phpstan": "1.12.27", - "phpstan/phpstan-deprecation-rules": "1.2.1", - "phpunit/phpunit": "^9.5.28", + "phpstan/phpstan": "^2.1.17", + "phpstan/phpstan-deprecation-rules": "^2.0.3", + "phpunit/phpunit": "^12.2.6", "squizlabs/php_codesniffer": "^3.7.2", - "symfony/yaml": "^5.0" + "symfony/yaml": "^7.3" }, "suggest": { "ext-json": "ext-json is needed for JSON support", @@ -2074,12 +1972,6 @@ "symfony/yaml": "Install symfony/yaml if you require YAML support." }, "type": "joomla-package", - "extra": { - "branch-alias": { - "dev-2.0-dev": "2.0-dev", - "dev-3.x-dev": "3.0-dev" - } - }, "autoload": { "psr-4": { "Joomla\\Registry\\": "src/" @@ -2098,49 +1990,40 @@ ], "support": { "issues": "https://github.com/joomla-framework/registry/issues", - "source": "https://github.com/joomla-framework/registry/tree/3.0.2" + "source": "https://github.com/joomla-framework/registry/tree/4.0.0" }, - "time": "2025-07-19T16:26:22+00:00" + "time": "2025-07-23T19:26:22+00:00" }, { "name": "joomla/router", - "version": "3.0.2", + "version": "4.0.0", "source": { "type": "git", "url": "https://github.com/joomla-framework/router.git", - "reference": "8aa0013a6ba59ef250496b47855498e9a83156d1" + "reference": "d0552ac09b92712a140fff2323579b84fbaa12b8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/joomla-framework/router/zipball/8aa0013a6ba59ef250496b47855498e9a83156d1", - "reference": "8aa0013a6ba59ef250496b47855498e9a83156d1", + "url": "https://api.github.com/repos/joomla-framework/router/zipball/d0552ac09b92712a140fff2323579b84fbaa12b8", + "reference": "d0552ac09b92712a140fff2323579b84fbaa12b8", "shasum": "" }, "require": { - "php": "^8.1.0" - }, - "conflict": { - "jeremeamia/superclosure": "<2.4" + "php": "^8.3.0" }, "require-dev": { - "jeremeamia/superclosure": "^2.4", - "joomla/console": "^3.0", - "phpstan/phpstan": "1.12.27", - "phpstan/phpstan-deprecation-rules": "1.2.1", - "phpunit/phpunit": "^9.5.28", + "joomla/console": "^4.0", + "opis/closure": "^4.3.1", + "phpstan/phpstan": "^2.1.17", + "phpstan/phpstan-deprecation-rules": "^2.0.3", + "phpunit/phpunit": "^12.2.6", "squizlabs/php_codesniffer": "^3.7.2" }, "suggest": { - "jeremeamia/superclosure": "If you use Closure based controllers and want to be able to serialize the router, please install jeremeamia/superclosure", - "joomla/console": "If you want to use the DebugRouterCommand class, please install joomla/console" + "joomla/console": "If you want to use the DebugRouterCommand class, please install joomla/console", + "opis/closure": "If you use Closure based controllers and want to be able to serialize the router, please install opis/closure" }, "type": "joomla-package", - "extra": { - "branch-alias": { - "dev-2.0-dev": "2.0-dev", - "dev-3.x-dev": "3.0-dev" - } - }, "autoload": { "psr-4": { "Joomla\\Router\\": "src/" @@ -2159,39 +2042,39 @@ ], "support": { "issues": "https://github.com/joomla-framework/router/issues", - "source": "https://github.com/joomla-framework/router/tree/3.0.2" + "source": "https://github.com/joomla-framework/router/tree/4.0.0" }, - "time": "2025-07-19T13:51:10+00:00" + "time": "2025-07-23T19:21:30+00:00" }, { "name": "joomla/session", - "version": "3.0.3", + "version": "4.0.0", "source": { "type": "git", "url": "https://github.com/joomla-framework/session.git", - "reference": "6bebada5dccf70be0d18db673aa3a68af19b3972" + "reference": "3d1d8bc093d659053c46eec4962bef4c1e9e0206" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/joomla-framework/session/zipball/6bebada5dccf70be0d18db673aa3a68af19b3972", - "reference": "6bebada5dccf70be0d18db673aa3a68af19b3972", + "url": "https://api.github.com/repos/joomla-framework/session/zipball/3d1d8bc093d659053c46eec4962bef4c1e9e0206", + "reference": "3d1d8bc093d659053c46eec4962bef4c1e9e0206", "shasum": "" }, "require": { - "php": "^8.1.0", + "php": "^8.3.0", "symfony/deprecation-contracts": "^2|^3" }, "require-dev": { - "joomla/console": "^3.0", - "joomla/database": "^3.0", - "joomla/event": "^3.0", - "joomla/input": "^3.0", - "joomla/test": "^3.0", - "joomla/utilities": "^3.0", - "phpstan/phpstan": "1.12.27", - "phpstan/phpstan-deprecation-rules": "1.2.1", - "phpunit/phpunit": "^9.5.28", - "squizlabs/php_codesniffer": "^3.7.2" + "joomla/console": "^4.0", + "joomla/database": "^4.0", + "joomla/event": "^4.0", + "joomla/input": "^4.0", + "joomla/test": "^4.0", + "joomla/utilities": "^4.0", + "phpstan/phpstan": "2.1.17", + "phpstan/phpstan-deprecation-rules": "2.0.3", + "phpunit/phpunit": "^12.0", + "squizlabs/php_codesniffer": "^3.10.2" }, "suggest": { "ext-apcu": "To use APCu cache as a session handler", @@ -2205,12 +2088,6 @@ "joomla/input": "The joomla/input package is required to use Address and Forwarded session validators." }, "type": "joomla-package", - "extra": { - "branch-alias": { - "dev-2.0-dev": "2.x-dev", - "dev-3.x-dev": "3.0-dev" - } - }, "autoload": { "psr-4": { "Joomla\\Session\\": "src/" @@ -2229,37 +2106,35 @@ ], "support": { "issues": "https://github.com/joomla-framework/session/issues", - "source": "https://github.com/joomla-framework/session/tree/3.0.3" + "source": "https://github.com/joomla-framework/session/tree/4.0.0" }, - "time": "2025-07-19T15:19:54+00:00" + "time": "2025-07-23T19:16:20+00:00" }, { "name": "joomla/string", - "version": "3.0.4", + "version": "4.0.0", "source": { "type": "git", "url": "https://github.com/joomla-framework/string.git", - "reference": "0b3d33564db389e27346f7e275c694897c939434" + "reference": "da2329e05f1f5fc98b709f8638f279513bcd1108" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/joomla-framework/string/zipball/0b3d33564db389e27346f7e275c694897c939434", - "reference": "0b3d33564db389e27346f7e275c694897c939434", + "url": "https://api.github.com/repos/joomla-framework/string/zipball/da2329e05f1f5fc98b709f8638f279513bcd1108", + "reference": "da2329e05f1f5fc98b709f8638f279513bcd1108", "shasum": "" }, "require": { - "php": "^8.1.0", - "symfony/deprecation-contracts": "^2|^3" - }, - "conflict": { - "doctrine/inflector": "<1.2" + "php": "^8.3.0", + "symfony/deprecation-contracts": "^2|^3", + "symfony/polyfill-mbstring": "^1.31.0" }, "require-dev": { - "doctrine/inflector": "^1.2", - "joomla/test": "^3.0", - "phpstan/phpstan": "1.12.27", - "phpstan/phpstan-deprecation-rules": "1.2.1", - "phpunit/phpunit": "^9.5.28", + "doctrine/inflector": "^2.0.10", + "joomla/test": "^4.0", + "phpstan/phpstan": "2.1.17", + "phpstan/phpstan-deprecation-rules": "2.0.3", + "phpunit/phpunit": "^12.2.6", "squizlabs/php_codesniffer": "^3.7.2" }, "suggest": { @@ -2267,30 +2142,7 @@ "ext-mbstring": "For improved processing" }, "type": "joomla-package", - "extra": { - "branch-alias": { - "dev-2.0-dev": "2.0-dev", - "dev-3.x-dev": "3.0-dev" - } - }, "autoload": { - "files": [ - "src/phputf8/utf8.php", - "src/phputf8/ord.php", - "src/phputf8/str_ireplace.php", - "src/phputf8/str_pad.php", - "src/phputf8/str_split.php", - "src/phputf8/strcasecmp.php", - "src/phputf8/strcspn.php", - "src/phputf8/stristr.php", - "src/phputf8/strrev.php", - "src/phputf8/strspn.php", - "src/phputf8/trim.php", - "src/phputf8/ucfirst.php", - "src/phputf8/ucwords.php", - "src/phputf8/utils/ascii.php", - "src/phputf8/utils/validation.php" - ], "psr-4": { "Joomla\\String\\": "src/" } @@ -2308,43 +2160,37 @@ ], "support": { "issues": "https://github.com/joomla-framework/string/issues", - "source": "https://github.com/joomla-framework/string/tree/3.0.4" + "source": "https://github.com/joomla-framework/string/tree/4.0.0" }, - "time": "2025-07-19T15:25:56+00:00" + "time": "2025-07-23T18:42:26+00:00" }, { "name": "joomla/uri", - "version": "3.0.2", + "version": "4.0.0", "source": { "type": "git", "url": "https://github.com/joomla-framework/uri.git", - "reference": "ac18b410b58c5d2cb652eac7c13acb4971cb5e0d" + "reference": "9fa4fac811bf63e830d46d83031c353cf2765bcd" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/joomla-framework/uri/zipball/ac18b410b58c5d2cb652eac7c13acb4971cb5e0d", - "reference": "ac18b410b58c5d2cb652eac7c13acb4971cb5e0d", + "url": "https://api.github.com/repos/joomla-framework/uri/zipball/9fa4fac811bf63e830d46d83031c353cf2765bcd", + "reference": "9fa4fac811bf63e830d46d83031c353cf2765bcd", "shasum": "" }, "require": { - "php": "^8.1.0" + "php": "^8.3.0" }, "require-dev": { - "phpstan/phpstan": "1.12.27", - "phpstan/phpstan-deprecation-rules": "1.2.1", - "phpunit/phpunit": "^9.5.28", + "phpstan/phpstan": "^2.1.17", + "phpstan/phpstan-deprecation-rules": "^2.0.3", + "phpunit/phpunit": "^12.2.6", "squizlabs/php_codesniffer": "^3.7.2" }, "suggest": { "ext-mbstring": "Used to speed up url parsing" }, "type": "joomla-package", - "extra": { - "branch-alias": { - "dev-2.0-dev": "2.0-dev", - "dev-3.x-dev": "3.0-dev" - } - }, "autoload": { "psr-4": { "Joomla\\Uri\\": "src/" @@ -2363,41 +2209,35 @@ ], "support": { "issues": "https://github.com/joomla-framework/uri/issues", - "source": "https://github.com/joomla-framework/uri/tree/3.0.2" + "source": "https://github.com/joomla-framework/uri/tree/4.0.0" }, - "time": "2025-07-12T12:01:42+00:00" + "time": "2025-07-23T19:02:38+00:00" }, { "name": "joomla/utilities", - "version": "3.0.2", + "version": "4.0.0", "source": { "type": "git", "url": "https://github.com/joomla-framework/utilities.git", - "reference": "bec074fa469cfdb30fae168899cf65159bf7890d" + "reference": "5f234527f7dad7111830b091aef52787c3c07cc8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/joomla-framework/utilities/zipball/bec074fa469cfdb30fae168899cf65159bf7890d", - "reference": "bec074fa469cfdb30fae168899cf65159bf7890d", + "url": "https://api.github.com/repos/joomla-framework/utilities/zipball/5f234527f7dad7111830b091aef52787c3c07cc8", + "reference": "5f234527f7dad7111830b091aef52787c3c07cc8", "shasum": "" }, "require": { - "joomla/string": "^3.0", - "php": "^8.1.0" + "joomla/string": "^4.0", + "php": "^8.3.0" }, "require-dev": { "phpstan/phpstan": "^2.1.17", "phpstan/phpstan-deprecation-rules": "^2.0.3", - "phpunit/phpunit": "^9.5.28", + "phpunit/phpunit": "^12.2.6", "squizlabs/php_codesniffer": "^3.7.2" }, "type": "joomla-package", - "extra": { - "branch-alias": { - "dev-2.0-dev": "2.0-dev", - "dev-3.x-dev": "3.0-dev" - } - }, "autoload": { "psr-4": { "Joomla\\Utilities\\": "src/" @@ -2416,47 +2256,47 @@ ], "support": { "issues": "https://github.com/joomla-framework/utilities/issues", - "source": "https://github.com/joomla-framework/utilities/tree/3.0.2" + "source": "https://github.com/joomla-framework/utilities/tree/4.0.0" }, - "time": "2025-07-19T16:29:29+00:00" + "time": "2025-07-23T18:52:12+00:00" }, { "name": "laminas/laminas-diactoros", - "version": "2.26.0", + "version": "3.6.0", "source": { "type": "git", "url": "https://github.com/laminas/laminas-diactoros.git", - "reference": "6584d44eb8e477e89d453313b858daac6183cddc" + "reference": "b068eac123f21c0e592de41deeb7403b88e0a89f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laminas/laminas-diactoros/zipball/6584d44eb8e477e89d453313b858daac6183cddc", - "reference": "6584d44eb8e477e89d453313b858daac6183cddc", + "url": "https://api.github.com/repos/laminas/laminas-diactoros/zipball/b068eac123f21c0e592de41deeb7403b88e0a89f", + "reference": "b068eac123f21c0e592de41deeb7403b88e0a89f", "shasum": "" }, "require": { - "php": "~8.0.0 || ~8.1.0 || ~8.2.0 || ~8.3.0", - "psr/http-factory": "^1.0", - "psr/http-message": "^1.1" + "php": "~8.1.0 || ~8.2.0 || ~8.3.0 || ~8.4.0", + "psr/http-factory": "^1.1", + "psr/http-message": "^1.1 || ^2.0" }, "conflict": { - "zendframework/zend-diactoros": "*" + "amphp/amp": "<2.6.4" }, "provide": { - "psr/http-factory-implementation": "1.0", - "psr/http-message-implementation": "1.0" + "psr/http-factory-implementation": "^1.0", + "psr/http-message-implementation": "^1.1 || ^2.0" }, "require-dev": { "ext-curl": "*", "ext-dom": "*", "ext-gd": "*", "ext-libxml": "*", - "http-interop/http-factory-tests": "^0.9.0", - "laminas/laminas-coding-standard": "^2.5", - "php-http/psr7-integration-tests": "^1.2", - "phpunit/phpunit": "^9.5.28", - "psalm/plugin-phpunit": "^0.18.4", - "vimeo/psalm": "^5.6" + "http-interop/http-factory-tests": "^2.2.0", + "laminas/laminas-coding-standard": "~3.0.0", + "php-http/psr7-integration-tests": "^1.4.0", + "phpunit/phpunit": "^10.5.36", + "psalm/plugin-phpunit": "^0.19.0", + "vimeo/psalm": "^5.26.1" }, "type": "library", "extra": { @@ -2471,18 +2311,9 @@ "src/functions/marshal_headers_from_sapi.php", "src/functions/marshal_method_from_sapi.php", "src/functions/marshal_protocol_version_from_sapi.php", - "src/functions/marshal_uri_from_sapi.php", "src/functions/normalize_server.php", "src/functions/normalize_uploaded_files.php", - "src/functions/parse_cookie_header.php", - "src/functions/create_uploaded_file.legacy.php", - "src/functions/marshal_headers_from_sapi.legacy.php", - "src/functions/marshal_method_from_sapi.legacy.php", - "src/functions/marshal_protocol_version_from_sapi.legacy.php", - "src/functions/marshal_uri_from_sapi.legacy.php", - "src/functions/normalize_server.legacy.php", - "src/functions/normalize_uploaded_files.legacy.php", - "src/functions/parse_cookie_header.legacy.php" + "src/functions/parse_cookie_header.php" ], "psr-4": { "Laminas\\Diactoros\\": "src/" @@ -2515,38 +2346,38 @@ "type": "community_bridge" } ], - "time": "2023-10-29T16:17:44+00:00" + "time": "2025-05-05T16:03:34+00:00" }, { "name": "lcobucci/clock", - "version": "3.0.0", + "version": "3.3.1", "source": { "type": "git", "url": "https://github.com/lcobucci/clock.git", - "reference": "039ef98c6b57b101d10bd11d8fdfda12cbd996dc" + "reference": "db3713a61addfffd615b79bf0bc22f0ccc61b86b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/lcobucci/clock/zipball/039ef98c6b57b101d10bd11d8fdfda12cbd996dc", - "reference": "039ef98c6b57b101d10bd11d8fdfda12cbd996dc", + "url": "https://api.github.com/repos/lcobucci/clock/zipball/db3713a61addfffd615b79bf0bc22f0ccc61b86b", + "reference": "db3713a61addfffd615b79bf0bc22f0ccc61b86b", "shasum": "" }, "require": { - "php": "~8.1.0 || ~8.2.0", + "php": "~8.2.0 || ~8.3.0 || ~8.4.0", "psr/clock": "^1.0" }, "provide": { "psr/clock-implementation": "1.0" }, "require-dev": { - "infection/infection": "^0.26", - "lcobucci/coding-standard": "^9.0", - "phpstan/extension-installer": "^1.2", - "phpstan/phpstan": "^1.9.4", - "phpstan/phpstan-deprecation-rules": "^1.1.1", - "phpstan/phpstan-phpunit": "^1.3.2", - "phpstan/phpstan-strict-rules": "^1.4.4", - "phpunit/phpunit": "^9.5.27" + "infection/infection": "^0.29", + "lcobucci/coding-standard": "^11.1.0", + "phpstan/extension-installer": "^1.3.1", + "phpstan/phpstan": "^1.10.25", + "phpstan/phpstan-deprecation-rules": "^1.1.3", + "phpstan/phpstan-phpunit": "^1.3.13", + "phpstan/phpstan-strict-rules": "^1.5.1", + "phpunit/phpunit": "^11.3.6" }, "type": "library", "autoload": { @@ -2567,7 +2398,7 @@ "description": "Yet another clock abstraction", "support": { "issues": "https://github.com/lcobucci/clock/issues", - "source": "https://github.com/lcobucci/clock/tree/3.0.0" + "source": "https://github.com/lcobucci/clock/tree/3.3.1" }, "funding": [ { @@ -2579,7 +2410,7 @@ "type": "patreon" } ], - "time": "2022-12-19T15:00:24+00:00" + "time": "2024-09-24T20:45:14+00:00" }, { "name": "lcobucci/jwt", @@ -3307,22 +3138,27 @@ }, { "name": "psr/container", - "version": "1.1.2", + "version": "2.0.2", "source": { "type": "git", "url": "https://github.com/php-fig/container.git", - "reference": "513e0666f7216c7459170d56df27dfcefe1689ea" + "reference": "c71ecc56dfe541dbd90c5360474fbc405f8d5963" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-fig/container/zipball/513e0666f7216c7459170d56df27dfcefe1689ea", - "reference": "513e0666f7216c7459170d56df27dfcefe1689ea", + "url": "https://api.github.com/repos/php-fig/container/zipball/c71ecc56dfe541dbd90c5360474fbc405f8d5963", + "reference": "c71ecc56dfe541dbd90c5360474fbc405f8d5963", "shasum": "" }, "require": { "php": ">=7.4.0" }, "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0.x-dev" + } + }, "autoload": { "psr-4": { "Psr\\Container\\": "src/" @@ -3349,9 +3185,9 @@ ], "support": { "issues": "https://github.com/php-fig/container/issues", - "source": "https://github.com/php-fig/container/tree/1.1.2" + "source": "https://github.com/php-fig/container/tree/2.0.2" }, - "time": "2021-11-05T16:50:12+00:00" + "time": "2021-11-05T16:47:00+00:00" }, { "name": "psr/event-dispatcher", @@ -3512,16 +3348,16 @@ }, { "name": "psr/http-message", - "version": "1.1", + "version": "2.0", "source": { "type": "git", "url": "https://github.com/php-fig/http-message.git", - "reference": "cb6ce4845ce34a8ad9e68117c10ee90a29919eba" + "reference": "402d35bcb92c70c026d1a6a9883f06b2ead23d71" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-fig/http-message/zipball/cb6ce4845ce34a8ad9e68117c10ee90a29919eba", - "reference": "cb6ce4845ce34a8ad9e68117c10ee90a29919eba", + "url": "https://api.github.com/repos/php-fig/http-message/zipball/402d35bcb92c70c026d1a6a9883f06b2ead23d71", + "reference": "402d35bcb92c70c026d1a6a9883f06b2ead23d71", "shasum": "" }, "require": { @@ -3530,7 +3366,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "1.1.x-dev" + "dev-master": "2.0.x-dev" } }, "autoload": { @@ -3545,7 +3381,7 @@ "authors": [ { "name": "PHP-FIG", - "homepage": "http://www.php-fig.org/" + "homepage": "https://www.php-fig.org/" } ], "description": "Common interface for HTTP messages", @@ -3559,9 +3395,9 @@ "response" ], "support": { - "source": "https://github.com/php-fig/http-message/tree/1.1" + "source": "https://github.com/php-fig/http-message/tree/2.0" }, - "time": "2023-04-04T09:50:52+00:00" + "time": "2023-04-04T09:54:51+00:00" }, { "name": "psr/link", @@ -3904,47 +3740,47 @@ }, { "name": "symfony/console", - "version": "v6.4.25", + "version": "v7.3.3", "source": { "type": "git", "url": "https://github.com/symfony/console.git", - "reference": "273fd29ff30ba0a88ca5fb83f7cf1ab69306adae" + "reference": "cb0102a1c5ac3807cf3fdf8bea96007df7fdbea7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/273fd29ff30ba0a88ca5fb83f7cf1ab69306adae", - "reference": "273fd29ff30ba0a88ca5fb83f7cf1ab69306adae", + "url": "https://api.github.com/repos/symfony/console/zipball/cb0102a1c5ac3807cf3fdf8bea96007df7fdbea7", + "reference": "cb0102a1c5ac3807cf3fdf8bea96007df7fdbea7", "shasum": "" }, "require": { - "php": ">=8.1", + "php": ">=8.2", "symfony/deprecation-contracts": "^2.5|^3", "symfony/polyfill-mbstring": "~1.0", "symfony/service-contracts": "^2.5|^3", - "symfony/string": "^5.4|^6.0|^7.0" + "symfony/string": "^7.2" }, "conflict": { - "symfony/dependency-injection": "<5.4", - "symfony/dotenv": "<5.4", - "symfony/event-dispatcher": "<5.4", - "symfony/lock": "<5.4", - "symfony/process": "<5.4" + "symfony/dependency-injection": "<6.4", + "symfony/dotenv": "<6.4", + "symfony/event-dispatcher": "<6.4", + "symfony/lock": "<6.4", + "symfony/process": "<6.4" }, "provide": { "psr/log-implementation": "1.0|2.0|3.0" }, "require-dev": { "psr/log": "^1|^2|^3", - "symfony/config": "^5.4|^6.0|^7.0", - "symfony/dependency-injection": "^5.4|^6.0|^7.0", - "symfony/event-dispatcher": "^5.4|^6.0|^7.0", + "symfony/config": "^6.4|^7.0", + "symfony/dependency-injection": "^6.4|^7.0", + "symfony/event-dispatcher": "^6.4|^7.0", "symfony/http-foundation": "^6.4|^7.0", "symfony/http-kernel": "^6.4|^7.0", - "symfony/lock": "^5.4|^6.0|^7.0", - "symfony/messenger": "^5.4|^6.0|^7.0", - "symfony/process": "^5.4|^6.0|^7.0", - "symfony/stopwatch": "^5.4|^6.0|^7.0", - "symfony/var-dumper": "^5.4|^6.0|^7.0" + "symfony/lock": "^6.4|^7.0", + "symfony/messenger": "^6.4|^7.0", + "symfony/process": "^6.4|^7.0", + "symfony/stopwatch": "^6.4|^7.0", + "symfony/var-dumper": "^6.4|^7.0" }, "type": "library", "autoload": { @@ -3978,7 +3814,7 @@ "terminal" ], "support": { - "source": "https://github.com/symfony/console/tree/v6.4.25" + "source": "https://github.com/symfony/console/tree/v7.3.3" }, "funding": [ { @@ -3998,7 +3834,7 @@ "type": "tidelift" } ], - "time": "2025-08-22T10:21:53+00:00" + "time": "2025-08-25T06:35:40+00:00" }, { "name": "symfony/deprecation-contracts", @@ -4069,31 +3905,33 @@ }, { "name": "symfony/error-handler", - "version": "v6.4.24", + "version": "v7.3.2", "source": { "type": "git", "url": "https://github.com/symfony/error-handler.git", - "reference": "30fd0b3cf0e972e82636038ce4db0e4fe777112c" + "reference": "0b31a944fcd8759ae294da4d2808cbc53aebd0c3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/error-handler/zipball/30fd0b3cf0e972e82636038ce4db0e4fe777112c", - "reference": "30fd0b3cf0e972e82636038ce4db0e4fe777112c", + "url": "https://api.github.com/repos/symfony/error-handler/zipball/0b31a944fcd8759ae294da4d2808cbc53aebd0c3", + "reference": "0b31a944fcd8759ae294da4d2808cbc53aebd0c3", "shasum": "" }, "require": { - "php": ">=8.1", + "php": ">=8.2", "psr/log": "^1|^2|^3", - "symfony/var-dumper": "^5.4|^6.0|^7.0" + "symfony/var-dumper": "^6.4|^7.0" }, "conflict": { "symfony/deprecation-contracts": "<2.5", "symfony/http-kernel": "<6.4" }, "require-dev": { + "symfony/console": "^6.4|^7.0", "symfony/deprecation-contracts": "^2.5|^3", "symfony/http-kernel": "^6.4|^7.0", - "symfony/serializer": "^5.4|^6.0|^7.0" + "symfony/serializer": "^6.4|^7.0", + "symfony/webpack-encore-bundle": "^1.0|^2.0" }, "bin": [ "Resources/bin/patch-type-declarations" @@ -4124,7 +3962,7 @@ "description": "Provides tools to manage errors and ease debugging PHP code", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/error-handler/tree/v6.4.24" + "source": "https://github.com/symfony/error-handler/tree/v7.3.2" }, "funding": [ { @@ -4144,24 +3982,24 @@ "type": "tidelift" } ], - "time": "2025-07-24T08:25:04+00:00" + "time": "2025-07-07T08:17:57+00:00" }, { "name": "symfony/http-client", - "version": "v6.4.25", + "version": "v7.3.3", "source": { "type": "git", "url": "https://github.com/symfony/http-client.git", - "reference": "b8e9dce2d8acba3c32af467bb58e0c3656886181" + "reference": "333b9bd7639cbdaecd25a3a48a9d2dcfaa86e019" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-client/zipball/b8e9dce2d8acba3c32af467bb58e0c3656886181", - "reference": "b8e9dce2d8acba3c32af467bb58e0c3656886181", + "url": "https://api.github.com/repos/symfony/http-client/zipball/333b9bd7639cbdaecd25a3a48a9d2dcfaa86e019", + "reference": "333b9bd7639cbdaecd25a3a48a9d2dcfaa86e019", "shasum": "" }, "require": { - "php": ">=8.1", + "php": ">=8.2", "psr/log": "^1|^2|^3", "symfony/deprecation-contracts": "^2.5|^3", "symfony/http-client-contracts": "~3.4.4|^3.5.2", @@ -4169,8 +4007,10 @@ "symfony/service-contracts": "^2.5|^3" }, "conflict": { + "amphp/amp": "<2.5", + "amphp/socket": "<1.1", "php-http/discovery": "<1.15", - "symfony/http-foundation": "<6.3" + "symfony/http-foundation": "<6.4" }, "provide": { "php-http/async-client-implementation": "*", @@ -4179,19 +4019,19 @@ "symfony/http-client-implementation": "3.0" }, "require-dev": { - "amphp/amp": "^2.5", - "amphp/http-client": "^4.2.1", - "amphp/http-tunnel": "^1.0", - "amphp/socket": "^1.1", + "amphp/http-client": "^4.2.1|^5.0", + "amphp/http-tunnel": "^1.0|^2.0", "guzzlehttp/promises": "^1.4|^2.0", "nyholm/psr7": "^1.0", "php-http/httplug": "^1.0|^2.0", "psr/http-client": "^1.0", - "symfony/dependency-injection": "^5.4|^6.0|^7.0", - "symfony/http-kernel": "^5.4|^6.0|^7.0", - "symfony/messenger": "^5.4|^6.0|^7.0", - "symfony/process": "^5.4|^6.0|^7.0", - "symfony/stopwatch": "^5.4|^6.0|^7.0" + "symfony/amphp-http-client-meta": "^1.0|^2.0", + "symfony/dependency-injection": "^6.4|^7.0", + "symfony/http-kernel": "^6.4|^7.0", + "symfony/messenger": "^6.4|^7.0", + "symfony/process": "^6.4|^7.0", + "symfony/rate-limiter": "^6.4|^7.0", + "symfony/stopwatch": "^6.4|^7.0" }, "type": "library", "autoload": { @@ -4222,7 +4062,7 @@ "http" ], "support": { - "source": "https://github.com/symfony/http-client/tree/v6.4.25" + "source": "https://github.com/symfony/http-client/tree/v7.3.3" }, "funding": [ { @@ -4242,7 +4082,7 @@ "type": "tidelift" } ], - "time": "2025-08-27T07:01:16+00:00" + "time": "2025-08-27T07:45:05+00:00" }, { "name": "symfony/http-client-contracts", @@ -4324,31 +4164,29 @@ }, { "name": "symfony/ldap", - "version": "v6.4.24", + "version": "v7.3.1", "source": { "type": "git", "url": "https://github.com/symfony/ldap.git", - "reference": "2eda8a14000f804d55adfa189f148f6b1cb020e1" + "reference": "ee23db6241e4ddaec316220e3a1d5884262e27d0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/ldap/zipball/2eda8a14000f804d55adfa189f148f6b1cb020e1", - "reference": "2eda8a14000f804d55adfa189f148f6b1cb020e1", + "url": "https://api.github.com/repos/symfony/ldap/zipball/ee23db6241e4ddaec316220e3a1d5884262e27d0", + "reference": "ee23db6241e4ddaec316220e3a1d5884262e27d0", "shasum": "" }, "require": { "ext-ldap": "*", - "php": ">=8.1", - "symfony/deprecation-contracts": "^2.5|^3", - "symfony/options-resolver": "^5.4|^6.0|^7.0" + "php": ">=8.2", + "symfony/options-resolver": "^7.3" }, "conflict": { - "symfony/options-resolver": "<5.4", - "symfony/security-core": "<5.4" + "symfony/security-core": "<6.4" }, "require-dev": { - "symfony/security-core": "^5.4|^6.0|^7.0", - "symfony/security-http": "^5.4|^6.0|^7.0" + "symfony/security-core": "^6.4|^7.0", + "symfony/security-http": "^6.4|^7.0" }, "type": "library", "autoload": { @@ -4380,7 +4218,7 @@ "ldap" ], "support": { - "source": "https://github.com/symfony/ldap/tree/v6.4.24" + "source": "https://github.com/symfony/ldap/tree/v7.3.1" }, "funding": [ { @@ -4391,33 +4229,29 @@ "url": "https://github.com/fabpot", "type": "github" }, - { - "url": "https://github.com/nicolas-grekas", - "type": "github" - }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" } ], - "time": "2025-07-10T08:14:14+00:00" + "time": "2025-06-02T08:44:34+00:00" }, { "name": "symfony/options-resolver", - "version": "v6.4.25", + "version": "v7.3.3", "source": { "type": "git", "url": "https://github.com/symfony/options-resolver.git", - "reference": "d28e7e2db8a73e9511df892d36445f61314bbebe" + "reference": "0ff2f5c3df08a395232bbc3c2eb7e84912df911d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/options-resolver/zipball/d28e7e2db8a73e9511df892d36445f61314bbebe", - "reference": "d28e7e2db8a73e9511df892d36445f61314bbebe", + "url": "https://api.github.com/repos/symfony/options-resolver/zipball/0ff2f5c3df08a395232bbc3c2eb7e84912df911d", + "reference": "0ff2f5c3df08a395232bbc3c2eb7e84912df911d", "shasum": "" }, "require": { - "php": ">=8.1", + "php": ">=8.2", "symfony/deprecation-contracts": "^2.5|^3" }, "type": "library", @@ -4451,7 +4285,7 @@ "options" ], "support": { - "source": "https://github.com/symfony/options-resolver/tree/v6.4.25" + "source": "https://github.com/symfony/options-resolver/tree/v7.3.3" }, "funding": [ { @@ -4471,7 +4305,7 @@ "type": "tidelift" } ], - "time": "2025-08-04T17:06:28+00:00" + "time": "2025-08-05T10:16:07+00:00" }, { "name": "symfony/polyfill-ctype", @@ -4534,91 +4368,7 @@ "portable" ], "support": { - "source": "https://github.com/symfony/polyfill-ctype/tree/v1.33.0" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://github.com/nicolas-grekas", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2024-09-09T11:45:10+00:00" - }, - { - "name": "symfony/polyfill-iconv", - "version": "v1.33.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/polyfill-iconv.git", - "reference": "5f3b930437ae03ae5dff61269024d8ea1b3774aa" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-iconv/zipball/5f3b930437ae03ae5dff61269024d8ea1b3774aa", - "reference": "5f3b930437ae03ae5dff61269024d8ea1b3774aa", - "shasum": "" - }, - "require": { - "php": ">=7.2" - }, - "provide": { - "ext-iconv": "*" - }, - "suggest": { - "ext-iconv": "For best performance" - }, - "type": "library", - "extra": { - "thanks": { - "url": "https://github.com/symfony/polyfill", - "name": "symfony/polyfill" - } - }, - "autoload": { - "files": [ - "bootstrap.php" - ], - "psr-4": { - "Symfony\\Polyfill\\Iconv\\": "" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony polyfill for the Iconv extension", - "homepage": "https://symfony.com", - "keywords": [ - "compatibility", - "iconv", - "polyfill", - "portable", - "shim" - ], - "support": { - "source": "https://github.com/symfony/polyfill-iconv/tree/v1.33.0" + "source": "https://github.com/symfony/polyfill-ctype/tree/v1.33.0" }, "funding": [ { @@ -4638,7 +4388,7 @@ "type": "tidelift" } ], - "time": "2024-09-17T14:58:18+00:00" + "time": "2024-09-09T11:45:10+00:00" }, { "name": "symfony/polyfill-intl-grapheme", @@ -4892,86 +4642,6 @@ ], "time": "2024-12-23T08:48:59+00:00" }, - { - "name": "symfony/polyfill-php83", - "version": "v1.33.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/polyfill-php83.git", - "reference": "17f6f9a6b1735c0f163024d959f700cfbc5155e5" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php83/zipball/17f6f9a6b1735c0f163024d959f700cfbc5155e5", - "reference": "17f6f9a6b1735c0f163024d959f700cfbc5155e5", - "shasum": "" - }, - "require": { - "php": ">=7.2" - }, - "type": "library", - "extra": { - "thanks": { - "url": "https://github.com/symfony/polyfill", - "name": "symfony/polyfill" - } - }, - "autoload": { - "files": [ - "bootstrap.php" - ], - "psr-4": { - "Symfony\\Polyfill\\Php83\\": "" - }, - "classmap": [ - "Resources/stubs" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony polyfill backporting some PHP 8.3+ features to lower PHP versions", - "homepage": "https://symfony.com", - "keywords": [ - "compatibility", - "polyfill", - "portable", - "shim" - ], - "support": { - "source": "https://github.com/symfony/polyfill-php83/tree/v1.33.0" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://github.com/nicolas-grekas", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2025-07-08T02:45:35+00:00" - }, { "name": "symfony/polyfill-uuid", "version": "v1.33.0", @@ -5140,20 +4810,20 @@ }, { "name": "symfony/string", - "version": "v6.4.25", + "version": "v7.3.3", "source": { "type": "git", "url": "https://github.com/symfony/string.git", - "reference": "7cdec7edfaf2cdd9c18901e35bcf9653d6209ff1" + "reference": "17a426cce5fd1f0901fefa9b2a490d0038fd3c9c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/string/zipball/7cdec7edfaf2cdd9c18901e35bcf9653d6209ff1", - "reference": "7cdec7edfaf2cdd9c18901e35bcf9653d6209ff1", + "url": "https://api.github.com/repos/symfony/string/zipball/17a426cce5fd1f0901fefa9b2a490d0038fd3c9c", + "reference": "17a426cce5fd1f0901fefa9b2a490d0038fd3c9c", "shasum": "" }, "require": { - "php": ">=8.1", + "php": ">=8.2", "symfony/polyfill-ctype": "~1.8", "symfony/polyfill-intl-grapheme": "~1.0", "symfony/polyfill-intl-normalizer": "~1.0", @@ -5163,11 +4833,12 @@ "symfony/translation-contracts": "<2.5" }, "require-dev": { - "symfony/error-handler": "^5.4|^6.0|^7.0", - "symfony/http-client": "^5.4|^6.0|^7.0", - "symfony/intl": "^6.2|^7.0", + "symfony/emoji": "^7.1", + "symfony/error-handler": "^6.4|^7.0", + "symfony/http-client": "^6.4|^7.0", + "symfony/intl": "^6.4|^7.0", "symfony/translation-contracts": "^2.5|^3.0", - "symfony/var-exporter": "^5.4|^6.0|^7.0" + "symfony/var-exporter": "^6.4|^7.0" }, "type": "library", "autoload": { @@ -5206,7 +4877,7 @@ "utf8" ], "support": { - "source": "https://github.com/symfony/string/tree/v6.4.25" + "source": "https://github.com/symfony/string/tree/v7.3.3" }, "funding": [ { @@ -5226,7 +4897,7 @@ "type": "tidelift" } ], - "time": "2025-08-22T12:33:20+00:00" + "time": "2025-08-25T06:35:40+00:00" }, { "name": "symfony/translation-contracts", @@ -5487,33 +5158,32 @@ }, { "name": "symfony/var-dumper", - "version": "v6.4.25", + "version": "v7.3.3", "source": { "type": "git", "url": "https://github.com/symfony/var-dumper.git", - "reference": "c6cd92486e9fc32506370822c57bc02353a5a92c" + "reference": "34d8d4c4b9597347306d1ec8eb4e1319b1e6986f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/var-dumper/zipball/c6cd92486e9fc32506370822c57bc02353a5a92c", - "reference": "c6cd92486e9fc32506370822c57bc02353a5a92c", + "url": "https://api.github.com/repos/symfony/var-dumper/zipball/34d8d4c4b9597347306d1ec8eb4e1319b1e6986f", + "reference": "34d8d4c4b9597347306d1ec8eb4e1319b1e6986f", "shasum": "" }, "require": { - "php": ">=8.1", + "php": ">=8.2", "symfony/deprecation-contracts": "^2.5|^3", "symfony/polyfill-mbstring": "~1.0" }, "conflict": { - "symfony/console": "<5.4" + "symfony/console": "<6.4" }, "require-dev": { - "symfony/console": "^5.4|^6.0|^7.0", - "symfony/error-handler": "^6.3|^7.0", - "symfony/http-kernel": "^5.4|^6.0|^7.0", - "symfony/process": "^5.4|^6.0|^7.0", - "symfony/uid": "^5.4|^6.0|^7.0", - "twig/twig": "^2.13|^3.0.4" + "symfony/console": "^6.4|^7.0", + "symfony/http-kernel": "^6.4|^7.0", + "symfony/process": "^6.4|^7.0", + "symfony/uid": "^6.4|^7.0", + "twig/twig": "^3.12" }, "bin": [ "Resources/bin/var-dump-server" @@ -5551,7 +5221,7 @@ "dump" ], "support": { - "source": "https://github.com/symfony/var-dumper/tree/v6.4.25" + "source": "https://github.com/symfony/var-dumper/tree/v7.3.3" }, "funding": [ { @@ -5571,7 +5241,7 @@ "type": "tidelift" } ], - "time": "2025-08-13T09:41:44+00:00" + "time": "2025-08-13T11:49:31+00:00" }, { "name": "symfony/web-link", @@ -5792,216 +5462,6 @@ ], "time": "2025-08-17T07:17:47+00:00" }, - { - "name": "typo3/phar-stream-wrapper", - "version": "v3.1.8", - "source": { - "type": "git", - "url": "https://github.com/TYPO3/phar-stream-wrapper.git", - "reference": "a931b28f422a60052db85c0a84a05a366453b2c0" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/TYPO3/phar-stream-wrapper/zipball/a931b28f422a60052db85c0a84a05a366453b2c0", - "reference": "a931b28f422a60052db85c0a84a05a366453b2c0", - "shasum": "" - }, - "require": { - "ext-json": "*", - "php": "^7.0 || ~8.0 || ~8.1 || ~8.2 || ~8.3" - }, - "require-dev": { - "ext-xdebug": "*", - "phpspec/prophecy": "^1.10", - "symfony/phpunit-bridge": "^5.1" - }, - "suggest": { - "ext-fileinfo": "For PHP builtin file type guessing, otherwise uses internal processing" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "v3.x-dev" - } - }, - "autoload": { - "psr-4": { - "TYPO3\\PharStreamWrapper\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "description": "Interceptors for PHP's native phar:// stream handling", - "homepage": "https://typo3.org/", - "keywords": [ - "phar", - "php", - "security", - "stream-wrapper" - ], - "support": { - "issues": "https://github.com/TYPO3/phar-stream-wrapper/issues", - "source": "https://github.com/TYPO3/phar-stream-wrapper/tree/v3.1.8" - }, - "time": "2024-12-09T23:06:33+00:00" - }, - { - "name": "voku/portable-ascii", - "version": "2.0.3", - "source": { - "type": "git", - "url": "https://github.com/voku/portable-ascii.git", - "reference": "b1d923f88091c6bf09699efcd7c8a1b1bfd7351d" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/voku/portable-ascii/zipball/b1d923f88091c6bf09699efcd7c8a1b1bfd7351d", - "reference": "b1d923f88091c6bf09699efcd7c8a1b1bfd7351d", - "shasum": "" - }, - "require": { - "php": ">=7.0.0" - }, - "require-dev": { - "phpunit/phpunit": "~6.0 || ~7.0 || ~9.0" - }, - "suggest": { - "ext-intl": "Use Intl for transliterator_transliterate() support" - }, - "type": "library", - "autoload": { - "psr-4": { - "voku\\": "src/voku/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Lars Moelleken", - "homepage": "https://www.moelleken.org/" - } - ], - "description": "Portable ASCII library - performance optimized (ascii) string functions for php.", - "homepage": "https://github.com/voku/portable-ascii", - "keywords": [ - "ascii", - "clean", - "php" - ], - "support": { - "issues": "https://github.com/voku/portable-ascii/issues", - "source": "https://github.com/voku/portable-ascii/tree/2.0.3" - }, - "funding": [ - { - "url": "https://www.paypal.me/moelleken", - "type": "custom" - }, - { - "url": "https://github.com/voku", - "type": "github" - }, - { - "url": "https://opencollective.com/portable-ascii", - "type": "open_collective" - }, - { - "url": "https://www.patreon.com/voku", - "type": "patreon" - }, - { - "url": "https://tidelift.com/funding/github/packagist/voku/portable-ascii", - "type": "tidelift" - } - ], - "time": "2024-11-21T01:49:47+00:00" - }, - { - "name": "voku/portable-utf8", - "version": "dev-joomla-5.3", - "source": { - "type": "git", - "url": "https://github.com/joomla-backports/portable-utf8.git", - "reference": "eeb3d9e390411cd31af808caa7f7de337ea3a24c" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/joomla-backports/portable-utf8/zipball/eeb3d9e390411cd31af808caa7f7de337ea3a24c", - "reference": "eeb3d9e390411cd31af808caa7f7de337ea3a24c", - "shasum": "" - }, - "require": { - "php": ">=7.0.0", - "symfony/polyfill-iconv": "~1.0", - "symfony/polyfill-intl-grapheme": "~1.0", - "symfony/polyfill-intl-normalizer": "~1.0", - "symfony/polyfill-mbstring": "~1.0", - "symfony/polyfill-php72": "~1.0", - "voku/portable-ascii": "~2.0.0" - }, - "require-dev": { - "phpstan/phpstan": "1.9.*@dev", - "phpstan/phpstan-strict-rules": "1.4.*@dev", - "phpunit/phpunit": "~6.0 || ~7.0 || ~9.0", - "thecodingmachine/phpstan-strict-rules": "1.0.*@dev", - "voku/phpstan-rules": "3.1.*@dev" - }, - "suggest": { - "ext-ctype": "Use Ctype for e.g. hexadecimal digit detection", - "ext-fileinfo": "Use Fileinfo for better binary file detection", - "ext-iconv": "Use iconv for best performance", - "ext-intl": "Use Intl for best performance", - "ext-json": "Use JSON for string detection", - "ext-mbstring": "Use Mbstring for best performance" - }, - "type": "library", - "autoload": { - "psr-4": { - "voku\\": "src/voku/" - }, - "files": [ - "bootstrap.php" - ] - }, - "autoload-dev": { - "psr-4": { - "voku\\tests\\": "tests/" - } - }, - "license": [ - "(Apache-2.0 or GPL-2.0)" - ], - "authors": [ - { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Hamid Sarfraz", - "homepage": "http://pageconfig.com/" - }, - { - "name": "Lars Moelleken", - "homepage": "http://www.moelleken.org/" - } - ], - "description": "Portable UTF-8 library - performance optimized (unicode) string functions for php.", - "homepage": "https://github.com/voku/portable-utf8", - "keywords": [ - "clean", - "php", - "unicode", - "utf", - "utf-8", - "utf8" - ], - "time": "2024-11-20T09:42:04+00:00" - }, { "name": "wamania/php-stemmer", "version": "v4.0.0", @@ -7075,39 +6535,33 @@ }, { "name": "joomla/mediawiki", - "version": "3.0.1", + "version": "4.0.1", "source": { "type": "git", "url": "https://github.com/joomla-framework/mediawiki-api.git", - "reference": "9db43585a71148b0168e1758c298e09e31c6fef6" + "reference": "34f5b81eb61586938df86388fee2236f8fbc7131" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/joomla-framework/mediawiki-api/zipball/9db43585a71148b0168e1758c298e09e31c6fef6", - "reference": "9db43585a71148b0168e1758c298e09e31c6fef6", + "url": "https://api.github.com/repos/joomla-framework/mediawiki-api/zipball/34f5b81eb61586938df86388fee2236f8fbc7131", + "reference": "34f5b81eb61586938df86388fee2236f8fbc7131", "shasum": "" }, "require": { - "joomla/http": "^3.0", - "joomla/registry": "^3.0", - "joomla/uri": "^3.0", - "php": "^8.1.0" + "joomla/http": "^4.0", + "joomla/registry": "^4.0", + "joomla/uri": "^4.0", + "php": "^8.3.0" }, "require-dev": { "ext-simplexml": "*", - "joomla/test": "^3.0", - "phpstan/phpstan": "1.12.27", - "phpstan/phpstan-deprecation-rules": "1.2.1", - "phpunit/phpunit": "^9.5.28", + "joomla/test": "^4.0", + "phpstan/phpstan": "^2.1.17", + "phpstan/phpstan-deprecation-rules": "^2.0.3", + "phpunit/phpunit": "^12.2.6", "squizlabs/php_codesniffer": "^3.7.2" }, "type": "joomla-package", - "extra": { - "branch-alias": { - "dev-2.0-dev": "2.0-dev", - "dev-3.x-dev": "3.0-dev" - } - }, "autoload": { "psr-4": { "Joomla\\Mediawiki\\": "src/" @@ -7126,48 +6580,39 @@ ], "support": { "issues": "https://github.com/joomla-framework/mediawiki-api/issues", - "source": "https://github.com/joomla-framework/mediawiki-api/tree/3.0.1" + "source": "https://github.com/joomla-framework/mediawiki-api/tree/4.0.1" }, - "time": "2025-07-11T23:18:33+00:00" + "time": "2025-08-06T10:10:33+00:00" }, { "name": "joomla/test", - "version": "3.0.4", + "version": "4.0", "source": { "type": "git", "url": "https://github.com/joomla-framework/test.git", - "reference": "184bc36c0abeb4fa9471be472ecd5480125f1530" + "reference": "5c5651800bed4a657d596929db56a200da063600" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/joomla-framework/test/zipball/184bc36c0abeb4fa9471be472ecd5480125f1530", - "reference": "184bc36c0abeb4fa9471be472ecd5480125f1530", + "url": "https://api.github.com/repos/joomla-framework/test/zipball/5c5651800bed4a657d596929db56a200da063600", + "reference": "5c5651800bed4a657d596929db56a200da063600", "shasum": "" }, "require": { - "php": "^8.1.0" - }, - "conflict": { - "joomla/database": "<2.0" + "php": "^8.3.0" }, "require-dev": { - "joomla/database": "^3.0", - "phpstan/phpstan": "1.12.27", - "phpstan/phpstan-deprecation-rules": "1.2.1", - "phpunit/phpunit": "^9.5.28", - "squizlabs/php_codesniffer": "^3.7.2" + "joomla/database": "^4.0", + "phpstan/phpstan": "2.1.17", + "phpstan/phpstan-deprecation-rules": "2.0.3", + "phpunit/phpunit": "^12.0", + "squizlabs/php_codesniffer": "^3.10.2" }, "suggest": { "joomla/database": "To use the database test case, install joomla/database", "phpunit/phpunit": "To use the database test case, install phpunit/phpunit" }, "type": "joomla-package", - "extra": { - "branch-alias": { - "dev-master": "2.0-dev", - "dev-3.x-dev": "3.0-dev" - } - }, "autoload": { "psr-4": { "Joomla\\Test\\": "src/" @@ -7188,9 +6633,9 @@ ], "support": { "issues": "https://github.com/joomla-framework/test/issues", - "source": "https://github.com/joomla-framework/test/tree/3.0.4" + "source": "https://github.com/joomla-framework/test/tree/4.0" }, - "time": "2025-10-17T08:19:16+00:00" + "time": "2025-07-23T18:26:34+00:00" }, { "name": "myclabs/deep-copy", @@ -9586,24 +9031,24 @@ }, { "name": "symfony/event-dispatcher", - "version": "v6.4.25", + "version": "v7.3.3", "source": { "type": "git", "url": "https://github.com/symfony/event-dispatcher.git", - "reference": "b0cf3162020603587363f0551cd3be43958611ff" + "reference": "b7dc69e71de420ac04bc9ab830cf3ffebba48191" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/b0cf3162020603587363f0551cd3be43958611ff", - "reference": "b0cf3162020603587363f0551cd3be43958611ff", + "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/b7dc69e71de420ac04bc9ab830cf3ffebba48191", + "reference": "b7dc69e71de420ac04bc9ab830cf3ffebba48191", "shasum": "" }, "require": { - "php": ">=8.1", + "php": ">=8.2", "symfony/event-dispatcher-contracts": "^2.5|^3" }, "conflict": { - "symfony/dependency-injection": "<5.4", + "symfony/dependency-injection": "<6.4", "symfony/service-contracts": "<2.5" }, "provide": { @@ -9612,13 +9057,13 @@ }, "require-dev": { "psr/log": "^1|^2|^3", - "symfony/config": "^5.4|^6.0|^7.0", - "symfony/dependency-injection": "^5.4|^6.0|^7.0", - "symfony/error-handler": "^5.4|^6.0|^7.0", - "symfony/expression-language": "^5.4|^6.0|^7.0", - "symfony/http-foundation": "^5.4|^6.0|^7.0", + "symfony/config": "^6.4|^7.0", + "symfony/dependency-injection": "^6.4|^7.0", + "symfony/error-handler": "^6.4|^7.0", + "symfony/expression-language": "^6.4|^7.0", + "symfony/http-foundation": "^6.4|^7.0", "symfony/service-contracts": "^2.5|^3", - "symfony/stopwatch": "^5.4|^6.0|^7.0" + "symfony/stopwatch": "^6.4|^7.0" }, "type": "library", "autoload": { @@ -9646,7 +9091,7 @@ "description": "Provides tools that allow your application components to communicate with each other by dispatching events and listening to them", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/event-dispatcher/tree/v6.4.25" + "source": "https://github.com/symfony/event-dispatcher/tree/v7.3.3" }, "funding": [ { @@ -9666,7 +9111,7 @@ "type": "tidelift" } ], - "time": "2025-08-13T09:41:44+00:00" + "time": "2025-08-13T11:49:31+00:00" }, { "name": "symfony/event-dispatcher-contracts", @@ -9746,25 +9191,25 @@ }, { "name": "symfony/filesystem", - "version": "v6.4.24", + "version": "v7.3.2", "source": { "type": "git", "url": "https://github.com/symfony/filesystem.git", - "reference": "75ae2edb7cdcc0c53766c30b0a2512b8df574bd8" + "reference": "edcbb768a186b5c3f25d0643159a787d3e63b7fd" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/filesystem/zipball/75ae2edb7cdcc0c53766c30b0a2512b8df574bd8", - "reference": "75ae2edb7cdcc0c53766c30b0a2512b8df574bd8", + "url": "https://api.github.com/repos/symfony/filesystem/zipball/edcbb768a186b5c3f25d0643159a787d3e63b7fd", + "reference": "edcbb768a186b5c3f25d0643159a787d3e63b7fd", "shasum": "" }, "require": { - "php": ">=8.1", + "php": ">=8.2", "symfony/polyfill-ctype": "~1.8", "symfony/polyfill-mbstring": "~1.8" }, "require-dev": { - "symfony/process": "^5.4|^6.4|^7.0" + "symfony/process": "^6.4|^7.0" }, "type": "library", "autoload": { @@ -9792,7 +9237,7 @@ "description": "Provides basic utilities for the filesystem", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/filesystem/tree/v6.4.24" + "source": "https://github.com/symfony/filesystem/tree/v7.3.2" }, "funding": [ { @@ -9812,27 +9257,27 @@ "type": "tidelift" } ], - "time": "2025-07-10T08:14:14+00:00" + "time": "2025-07-07T08:17:47+00:00" }, { "name": "symfony/finder", - "version": "v6.4.24", + "version": "v7.3.2", "source": { "type": "git", "url": "https://github.com/symfony/finder.git", - "reference": "73089124388c8510efb8d2d1689285d285937b08" + "reference": "2a6614966ba1074fa93dae0bc804227422df4dfe" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/finder/zipball/73089124388c8510efb8d2d1689285d285937b08", - "reference": "73089124388c8510efb8d2d1689285d285937b08", + "url": "https://api.github.com/repos/symfony/finder/zipball/2a6614966ba1074fa93dae0bc804227422df4dfe", + "reference": "2a6614966ba1074fa93dae0bc804227422df4dfe", "shasum": "" }, "require": { - "php": ">=8.1" + "php": ">=8.2" }, "require-dev": { - "symfony/filesystem": "^6.0|^7.0" + "symfony/filesystem": "^6.4|^7.0" }, "type": "library", "autoload": { @@ -9860,7 +9305,7 @@ "description": "Finds files and directories via an intuitive fluent interface", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/finder/tree/v6.4.24" + "source": "https://github.com/symfony/finder/tree/v7.3.2" }, "funding": [ { @@ -9880,7 +9325,7 @@ "type": "tidelift" } ], - "time": "2025-07-15T12:02:45+00:00" + "time": "2025-07-15T13:41:35+00:00" }, { "name": "symfony/polyfill-php84", @@ -9964,20 +9409,20 @@ }, { "name": "symfony/process", - "version": "v6.4.25", + "version": "v7.3.3", "source": { "type": "git", "url": "https://github.com/symfony/process.git", - "reference": "6be2f0c9ab3428587c07bed03aa9e3d1b823c6c8" + "reference": "32241012d521e2e8a9d713adb0812bb773b907f1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/process/zipball/6be2f0c9ab3428587c07bed03aa9e3d1b823c6c8", - "reference": "6be2f0c9ab3428587c07bed03aa9e3d1b823c6c8", + "url": "https://api.github.com/repos/symfony/process/zipball/32241012d521e2e8a9d713adb0812bb773b907f1", + "reference": "32241012d521e2e8a9d713adb0812bb773b907f1", "shasum": "" }, "require": { - "php": ">=8.1" + "php": ">=8.2" }, "type": "library", "autoload": { @@ -10005,7 +9450,7 @@ "description": "Executes commands in sub-processes", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/process/tree/v6.4.25" + "source": "https://github.com/symfony/process/tree/v7.3.3" }, "funding": [ { @@ -10025,24 +9470,24 @@ "type": "tidelift" } ], - "time": "2025-08-14T06:23:17+00:00" + "time": "2025-08-18T09:42:54+00:00" }, { "name": "symfony/stopwatch", - "version": "v6.4.24", + "version": "v7.3.0", "source": { "type": "git", "url": "https://github.com/symfony/stopwatch.git", - "reference": "b67e94e06a05d9572c2fa354483b3e13e3cb1898" + "reference": "5a49289e2b308214c8b9c2fda4ea454d8b8ad7cd" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/stopwatch/zipball/b67e94e06a05d9572c2fa354483b3e13e3cb1898", - "reference": "b67e94e06a05d9572c2fa354483b3e13e3cb1898", + "url": "https://api.github.com/repos/symfony/stopwatch/zipball/5a49289e2b308214c8b9c2fda4ea454d8b8ad7cd", + "reference": "5a49289e2b308214c8b9c2fda4ea454d8b8ad7cd", "shasum": "" }, "require": { - "php": ">=8.1", + "php": ">=8.2", "symfony/service-contracts": "^2.5|^3" }, "type": "library", @@ -10071,7 +9516,7 @@ "description": "Provides a way to profile code", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/stopwatch/tree/v6.4.24" + "source": "https://github.com/symfony/stopwatch/tree/v7.3.0" }, "funding": [ { @@ -10082,16 +9527,12 @@ "url": "https://github.com/fabpot", "type": "github" }, - { - "url": "https://github.com/nicolas-grekas", - "type": "github" - }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" } ], - "time": "2025-07-10T08:14:14+00:00" + "time": "2025-02-24T10:49:57+00:00" }, { "name": "theseer/tokenizer", @@ -10144,23 +9585,15 @@ "time": "2024-03-03T12:36:25+00:00" } ], - "aliases": [ - { - "package": "voku/portable-utf8", - "version": "dev-joomla-5.3", - "alias": "6.0.13", - "alias_normalized": "6.0.13.0" - } - ], + "aliases": [], "minimum-stability": "stable", "stability-flags": { - "tobscure/json-api": 20, - "voku/portable-utf8": 20 + "tobscure/json-api": 20 }, "prefer-stable": false, "prefer-lowest": false, "platform": { - "php": "^8.1.0", + "php": "^8.3.0", "ext-json": "*", "ext-simplexml": "*", "ext-gd": "*", @@ -10168,7 +9601,7 @@ }, "platform-dev": {}, "platform-overrides": { - "php": "8.1.0" + "php": "8.3.0" }, "plugin-api-version": "2.6.0" } diff --git a/includes/incompatible.html b/includes/incompatible.html index 513d0941d61e5..f99eede0ce8db 100644 --- a/includes/incompatible.html +++ b/includes/incompatible.html @@ -6,7 +6,7 @@ Joomla: unsupported PHP version - +
diff --git a/index.php b/index.php index b070eda182c8c..72917d65fc1f8 100644 --- a/index.php +++ b/index.php @@ -10,7 +10,7 @@ // NOTE: This file should remain compatible with PHP 5.2 to allow us to run our PHP minimum check and show a friendly error message // Define the application's minimum supported PHP version as a constant so it can be referenced within the application. -define('JOOMLA_MINIMUM_PHP', '8.1.0'); +define('JOOMLA_MINIMUM_PHP', '8.3.0'); if (version_compare(PHP_VERSION, JOOMLA_MINIMUM_PHP, '<')) { die( diff --git a/installation/forms/setup.xml b/installation/forms/setup.xml index 3f9c6ba350309..1d72aa0df472b 100644 --- a/installation/forms/setup.xml +++ b/installation/forms/setup.xml @@ -7,6 +7,7 @@ label="INSTL_SELECT_LANGUAGE_TITLE" class="required" default="en-GB" + labelclass="hidden" /> Afrikaans (Suid-Afrika) - 5.4.1 + 6.0.1 2025-10 Afrikaans Translation Team (C) 2005 Open Source Matters, Inc. diff --git a/installation/language/ar-AA/joomla.ini b/installation/language/ar-AA/joomla.ini index db39e07eb138e..36c6fbedb55a1 100644 --- a/installation/language/ar-AA/joomla.ini +++ b/installation/language/ar-AA/joomla.ini @@ -5,55 +5,52 @@ ; Fatal error page ; These will be processed by the JavaScript Build -BUILD_FATAL_HEADER="عذرًا، كانت هناك مشكلة لم نتمكن من تجاوزها." +BUILD_FATAL_HEADER="عذرًا ، كانت هناك مشكلة لم نتمكن من تجاوزها." BUILD_FATAL_LANGUAGE="اللغة العربية بالكود الموحد" ; IMPORTANT NOTE FOR TRANSLATORS: Do not literally translate this line, instead add the localised name of the language. For example French will be Français FR -BUILD_FATAL_TEXT="أرجع الخادم \"{{statusCode_statusText}}\"" +BUILD_FATAL_TEXT="أعاد الخادم ملف \"{{statusCode_statusText}}\"" BUILD_FATAL_URL_TEXT="ساعدني في حل هذا" ; Build incomplete error page ; These will be processed by the JavaScript Build BUILD_INCOMPLETE_HEADER="إعداد البيئة غير مكتمل" BUILD_INCOMPLETE_LANGUAGE="اللغة العربية بالكود الموحد" ; IMPORTANT NOTE FOR TRANSLATORS: Do not literally translate this line, instead add the localised name of the language. For example French will be Français FR -BUILD_INCOMPLETE_TEXT="يبدو أنك تحاول تشغيل جوملا! من مستودع git الخاص بنا. يتطلب هذا منك إكمال خطوتين إضافيتين أولاً." -BUILD_INCOMPLETE_URL_TEXT="المزيد من التفاصيل" +BUILD_INCOMPLETE_TEXT="يبدو أنك تحاول تشغيل جوملا! من مستودع git الخاص بك. للقيام بذلك يتطلب منك إكمال خطوتين إضافيتين أولاً." +BUILD_INCOMPLETE_URL_TEXT="[ المزيد من التفاصيل %s]" ; No XML PHP error page ; These will be processed by the JavaScript Build -BUILD_NOXML_HEADER="عذرًا، PHP الخاص بك يفتقد مكتبة حيوية" +BUILD_NOXML_HEADER="عذرا ، PHP الخاص بك يفتقد مكتبة حيوية" BUILD_NOXML_LANGUAGE="اللغة العربية بالكود الموحد" ; IMPORTANT NOTE FOR TRANSLATORS: Do not literally translate this line, instead add the localised name of the language. For example French will be Français FR -BUILD_NOXML_TEXT="يحتاج الخادم الخاص بك إلى استخدام PHP مع دعم مكتبة XML لتشغيل هذا الإصدار من جوملا!" +BUILD_NOXML_TEXT="يحتاج مضيفك إلى استخدام PHP مع دعم مكتبة XML لتشغيل هذا الإصدار من جوملا!" BUILD_NOXML_URL_TEXT="ساعدني في حل هذا" ; Minimum PHP error page ; These will be processed by the JavaScript Build -BUILD_MIN_PHP_ERROR_HEADER="عذرًا، إصدار PHP الخاص بك غير مدعوم." +BUILD_MIN_PHP_ERROR_HEADER="عذرًا ، إصدار PHP الخاص بك غير مدعوم." BUILD_MIN_PHP_ERROR_LANGUAGE="اللغة العربية بالكود الموحد" ; IMPORTANT NOTE FOR TRANSLATORS: Do not literally translate this line, instead add the localised name of the language. For example French will be Français FR -BUILD_MIN_PHP_ERROR_TEXT="يحتاج الخادم الخاص بك إلى استخدام إصدار PHP {{phpversion}} أو أحدث لتشغيل هذا الإصدار من جوملا." +BUILD_MIN_PHP_ERROR_TEXT="يحتاج مضيفك إلى استخدام إصدار PHP {{phpversion}} أو أحدث لتشغيل هذا الإصدار من جوملا." BUILD_MIN_PHP_ERROR_URL_TEXT="ساعدني في حل هذا" ; Main Config -INSTL_SELECT_INSTALL_LANG="حدد لغة التثبيت" -INSTL_SELECT_LANGUAGE_TITLE="اختر اللغة" +INSTL_CHANGE_INSTALL_LANG_SHORT="تغيير الموضع" +INSTL_SELECT_INSTALL_LANG="حدد لغة التنصيب" +INSTL_SELECT_LANGUAGE_TITLE="اختار اللغة" INSTL_SETUP_LOGIN_DATA="إعداد بيانات تسجيل الدخول" -INSTL_WARNJAVASCRIPT="تحذير! يجب تمكين الجافاسكربت لكي يتم تثبيت نظام جوملا! بشكل صحيح." -INSTL_WARNJSON="يجب تفعيل JSON في نسخة PHP الخاصة بك لتتمكن من تثبيت جوملا!" +INSTL_WARNJAVASCRIPT="تحذير! يجب تمكين الجافا سكريبت لكي يتم تثبيت نظتم جوملا! بشكل صحيح" +INSTL_WARNJSON="PHP خلال تثبيتكم JSON للتمكن من تثيت جوملا . يجب تفعيل" ; Precheck view INSTL_DATABASE_SUPPORT="دعم قاعدة البيانات:" INSTL_JSON_SUPPORT_AVAILABLE="دعم JSON" INSTL_MB_LANGUAGE_IS_DEFAULT="استخدام لغة افتراضية متعددة وحدات البايت" -; Deprecated, will be removed with 6.0 -INSTL_MB_STRING_OVERLOAD_OFF="إيقاف التحميل الزائد للسلسة متعددة وحدات البايت" INSTL_NOTICE_DATABASE_SUPPORT="لم يتم العثور على قواعد البيانات المدعومة." -INSTL_NOTICE_JSON_SUPPORT_AVAILABLE="يجب تفعيل JSON في نسخة PHP الخاصة بك لتتمكن من تثبيت جوملا!" -INSTL_NOTICE_MBLANG_NOTDEFAULT="لم يتم تعيين لغة PHP mbstring على الحيادية. يمكن تعيين ذلك محليًا عن طريق إدخال php_value mbstring.languageutral في مِلَفّ .htaccess الخاص بك." -; Deprecated, will be removed with 6.0 -INSTL_NOTICE_MBSTRING_OVERLOAD_OFF="تم تعيين overload دالة PHP mbstring. يمكن إيقاف تشغيل هذه محليًا عن طريق إدخال php_value mbstring.func_overload 0 في مِلَفّ .htaccess الخاص بك." +INSTL_NOTICE_JSON_SUPPORT_AVAILABLE="PHP خلال تثبيتكم JSON للتمكن من تثيت جوملا . يجب تفعيل" +INSTL_NOTICE_MBLANG_NOTDEFAULT="لم يتم تعيين لغة PHP mbstring على الحيادية. يمكن تعيين ذلك محليًا عن طريق إدخال php_value mbstring.languageutral في ملف .htaccess الخاص بك." INSTL_NOTICE_PARSE_INI_FILE_AVAILABLE="وظائف php المطلوبة parse_ini_file و parse_ini_string معطلة على الخادم الخاص بك." INSTL_NOTICE_XML_SUPPORT="دعم XML غير متوفر. يجب تمكين هذا افتراضيًا في php ولكن قد يحتاج مستخدمو Ubuntu إلى تثبيت هذا عن طريق إجراء sudo apt-get install php-xml متبوعًا بإعادة تشغيل خادم الويب." INSTL_NOTICE_ZLIB_COMPRESSION_SUPPORT="لم يتم تعيين ضغط Zlib. يمكن تشغيل هذا محليًا عن طريق إدخال zlib.output_compression = On في ملف php.ini ." INSTL_PARSE_INI_FILE_AVAILABLE="دعم محلل INI" -INSTL_PRECHECK_ACTUAL="حاليًا" +INSTL_PRECHECK_ACTUAL="حالياً" INSTL_PRECHECK_DESC="إذا كان أي من هذه المناصر غير مدعوم \"أي غير متوفر\" سيكون مكتوب باللون الأحمر (لا) عندها يرجى القيام بالإجراءات اللازمة لتصحيحها.
لا يمكنك تنصيب جوملا! حتى توفير الإعدادت المطلوبة أدناه." INSTL_PRECHECK_DIRECTIVE="التوجيهات" INSTL_PRECHECK_RECOMMENDED="ينصح بها" @@ -135,8 +132,8 @@ INSTL_LANGUAGES_COLUMN_HEADER_LANGUAGE="اللغة" INSTL_LANGUAGES_COLUMN_HEADER_LANGUAGE_SELECT="اختار اللغة" INSTL_LANGUAGES_COLUMN_HEADER_LANGUAGE_TAG="كود اللغة" INSTL_LANGUAGES_COLUMN_HEADER_VERSION="الاصدار" -INSTL_LANGUAGES_DESC="واجهة Joomla متاحة بعدة لغات. اختر لغاتك المفضلة عن طريق اختيار خانات الاختيار ثم تثبيتها عن طريق تحديد زر \"تثبيت اللغات المحددة\".
ملاحظة: هذه العملية ستستغرق حوالي 10 ثوان لتنزيل وتثبيت كل لغة. لتجنب المهلة الزمنية يرجى تحديد ما لا يزيد عن 3 لغات للتثبيت." -INSTL_LANGUAGES_MESSAGE_PLEASE_WAIT="ستستغرق هذه العملية ما يصل إلى 10 ثوان في كل لغة للإكتمال
الرجاء الانتظار بينما نقوم بتنزيل وتثبيت اللغات …" +INSTL_LANGUAGES_DESC="واجهة جوملا متاحة بعدة لغات. اختر اللغات المفضلة لديك عن طريق اختيار خانات الاختيار ثم تثبيتها عن طريق تحديد زر \"تثبيت اللغات المحددة\".
ملاحظة: ستستغرق هذه العملية حوالي 10 ثوان لتحميل وتثبيت كل لغة. لتجنب المهلة الزمنية الرجاء تحديد ما لا يزيد عن 3 لغات للتثبيت." +INSTL_LANGUAGES_MESSAGE_PLEASE_WAIT="هذه العملية من الممكن ان تحتاج لأكثر من 10 ثوان لتنصيب اللغة
لطفاً انتظر بينما يتم تحميل و تنصيب اللغات..." INSTL_LANGUAGES_NO_LANGUAGE_SELECTED="لطفاً, حدد اللغة. إن لم تكن تريد تنصيب المزيد من اللغات فانقر على زر 'السابق' " INSTL_LANGUAGES_SELECTED="قم بتثبيت اللغات المحددة" INSTL_LANGUAGES_WARNING_BACK_BUTTON="العودة للمرحلة الأخيرة من التنصيب" @@ -222,8 +219,8 @@ INSTL_WRITABLE="%s قابل للكتابة" INSTL_ZIP_SUPPORT_AVAILABLE="توفر ZIP خاصية فك الملفات المضغوطة" ; Global strings -JADMINISTRATOR="الإدارة" -JCLOSE="أغلق" +JADMINISTRATOR="المدير" +JCLOSE="إغلاق" JEMAIL="البريد الإلكتروني" JERROR="خطأ" JERROR_LAYOUT_ERROR_HAS_OCCURRED_WHILE_PROCESSING_YOUR_REQUEST="لقد حدث خطأ أثناء معالجة طلبك." @@ -234,7 +231,7 @@ JGLOBAL_SELECT_NO_RESULTS_MATCH="لايوجد نتائج مشابهة" JGLOBAL_SELECT_SOME_OPTIONS="حدد بعض الخيارات" JHIDEPASSWORD="إخفاء كلمة المرور" JINVALID_TOKEN="رمز غير صالح" -JINVALID_TOKEN_NOTICE="قيم الكود الأمني غير متوافقة. تم رفض الطلب تفاديًا لأي خرق أمني محتمل. لطفاً حاول مرة أخرى." +JINVALID_TOKEN_NOTICE="لم يتطابق رمز الأمان. تم إلغاء الطلب لمنع أي خرق أمني. يُرجى المحاولة مرة أخرى." JNEXT="التالي" JNO="ابدا" JNOTICE="ملاحظة" @@ -257,7 +254,7 @@ JLIB_FILESYSTEM_ERROR_PATH_IS_NOT_A_FOLDER="JFolder: :حذف: المسار لا JLIB_FORM_FIELD_INVALID="حقل غير صحيح: " JLIB_FORM_VALIDATE_FIELD_INVALID="حقل غير صالح: %s" JLIB_FORM_VALIDATE_FIELD_REQUIRED="حقل مطلوب: %s" -JLIB_INSTALLER_ABORT="إيقاف تثبيت اللغة: %s" +JLIB_INSTALLER_ABORT="إحباط عملية تنصيب اللغة: %s" JLIB_INSTALLER_ABORT_CREATE_DIRECTORY="التطبيق %1$s: فشل انشاء الدليل باسم: %2$s" JLIB_INSTALLER_ABORT_NOINSTALLPATH="مسار التنصيب غير موجود" JLIB_INSTALLER_ABORT_PACK_INSTALL_ERROR_EXTENSION="الحزمة %1$s: حصل خطأ عند محاولة تنصيب الاضافة: %2$s" @@ -298,7 +295,7 @@ NOTICE="ملاحظة" WARNING="تحذير" ; Javascript ajax error messages -JLIB_JS_AJAX_ERROR_CONNECTION_ABORT="فشل الاتصال عند محاولة الحصول على بيانات JSON." +JLIB_JS_AJAX_ERROR_CONNECTION_ABORT="لقد حدث خطأ في الاتصال أثناء جلب بيانات JSON." JLIB_JS_AJAX_ERROR_NO_CONTENT="لايمكن استعادة المحتوى." JLIB_JS_AJAX_ERROR_OTHER="حدث خطأ أثناء جلب البيانات JSON: HTTP %s حالة الكود." JLIB_JS_AJAX_ERROR_PARSE="حدث خطأ في تحليل أثناء معالجة البيانات JSON التالية:
%s" diff --git a/installation/language/ar-AA/langmetadata.xml b/installation/language/ar-AA/langmetadata.xml index c314cce8c9501..7a00467d4aafd 100644 --- a/installation/language/ar-AA/langmetadata.xml +++ b/installation/language/ar-AA/langmetadata.xml @@ -1,7 +1,7 @@ Arabic (اللغة العربية) - 5.4.1 + 6.0.1 2025-10 Joomla! Project (Arabic Translation Team) (C) 2005 Open Source Matters, Inc. @@ -10,7 +10,7 @@ joomla.ini - Arabic (ar-AA) + Arabic Unitag (العربية الموحدة) Arabic (اللغة العربية) ar-AA 1 diff --git a/installation/language/be-BY/joomla.ini b/installation/language/be-BY/joomla.ini index 49ce48cf401e0..3c98f64b07750 100644 --- a/installation/language/be-BY/joomla.ini +++ b/installation/language/be-BY/joomla.ini @@ -5,114 +5,113 @@ ; Fatal error page ; These will be processed by the JavaScript Build -BUILD_FATAL_HEADER="Выбачайце, здарылася непапраўная памылка." +BUILD_FATAL_HEADER="Выбачце, здарылася крытычная памылка, якой мы ня можам даць рады." BUILD_FATAL_LANGUAGE="Беларуская BY" ; IMPORTANT NOTE FOR TRANSLATORS: Do not literally translate this line, instead add the localised name of the language. For example French will be Français FR -BUILD_FATAL_TEXT="Сервер вярнуў адказ: \"{{statusCode_statusText}}\"" -BUILD_FATAL_URL_TEXT="Дапамажыце мне выправіць гэта" +BUILD_FATAL_TEXT="Сервер звярнуў адказ \"{{statusCode_statusText}}\"" +BUILD_FATAL_URL_TEXT="Дапамажыце мне гэта вырашыць" ; Build incomplete error page ; These will be processed by the JavaScript Build -BUILD_INCOMPLETE_HEADER="Працоўнае асяроддзе не наладжанае" +BUILD_INCOMPLETE_HEADER="Наладжванне працоўнага асяроддзя не завершана" BUILD_INCOMPLETE_LANGUAGE="Беларуская BY" ; IMPORTANT NOTE FOR TRANSLATORS: Do not literally translate this line, instead add the localised name of the language. For example French will be Français FR -BUILD_INCOMPLETE_TEXT="Здаецца, Вы спрабуеце ўсталяваць Joomla з нашага Git-сховішча. Для гэтага спачатку зрабіце некалькі дадатковых крокаў." -BUILD_INCOMPLETE_URL_TEXT="Падрабязней" +BUILD_INCOMPLETE_TEXT="Падобна на тое, што вы спрабуеце ўсталяваць Joomla з нашага Git-рэпазітара. Калі ласка, выканайце некалькі дадатковых крокаў перад пачаткам усталявання." +BUILD_INCOMPLETE_URL_TEXT="Больш дэталяў" ; No XML PHP error page ; These will be processed by the JavaScript Build -BUILD_NOXML_HEADER="Выбачайце, у Вашай версіі PHP няма важнай бібліятэкі" +BUILD_NOXML_HEADER="У версіі PHP, якую вы выкарыстоўваеце, адключана падтрымка XML" BUILD_NOXML_LANGUAGE="Беларуская BY" ; IMPORTANT NOTE FOR TRANSLATORS: Do not literally translate this line, instead add the localised name of the language. For example French will be Français FR -BUILD_NOXML_TEXT="Каб запусціць гэтую версію Joomla, Ваш хост мусіць мець PHP з падтрымкай XML." -BUILD_NOXML_URL_TEXT="Дапамажыце мне выправіць гэта" +BUILD_NOXML_TEXT="Каб запусціць гэтую версію Joomla, на серверы трэба мець PHP з падтрымкай XML!" +BUILD_NOXML_URL_TEXT="Дапамажыце мне гэта вырашыць" ; Minimum PHP error page ; These will be processed by the JavaScript Build -BUILD_MIN_PHP_ERROR_HEADER="Выбачайце, Ваша версія PHP не падтрымліваецца" +BUILD_MIN_PHP_ERROR_HEADER="Выбачайце, Ваша версія PHP не падтрымліваецца." BUILD_MIN_PHP_ERROR_LANGUAGE="Беларуская BY" ; IMPORTANT NOTE FOR TRANSLATORS: Do not literally translate this line, instead add the localised name of the language. For example French will be Français FR -BUILD_MIN_PHP_ERROR_TEXT="Каб запусціць гэтую версію Joomla, Ваш хост мусіць мець PHP {{phpversion}} або навейшы." -BUILD_MIN_PHP_ERROR_URL_TEXT="Дапамажыце мне выправіць гэта" +BUILD_MIN_PHP_ERROR_TEXT="Каб запусціць гэтую версію Joomla, на серверы трэба мець версію PHP {{phpversion}} або навейшую." +BUILD_MIN_PHP_ERROR_URL_TEXT="Дапамажыце мне гэта вырашыць" ; Main Config -INSTL_SELECT_INSTALL_LANG="Мова ў працэсе ўсталявання" +INSTL_CHANGE_INSTALL_LANG="Змяніць мову ўсталявання" +INSTL_CHANGE_INSTALL_LANG_SHORT="Выбар пазіцыі" +INSTL_SELECTED_INSTALL_LANGUAGE="Бягучая мова: %s" +INSTL_SELECT_INSTALL_LANG="Выберыце мову ўсталёўкі" INSTL_SELECT_LANGUAGE_TITLE="Выберыце мову" INSTL_SETUP_LOGIN_DATA="Параметры ўліковага запісу" -INSTL_WARNJAVASCRIPT="Увага! Трэба падлучыць JavaScript у Вашым браўзеры, каб правільна ўсталяваць Joomla." +INSTL_WARNJAVASCRIPT="Папярэджанне: Каб правільна ўсталяваць Joomla, у вашым браўзеры павінны быць уключаны JavaScript." INSTL_WARNJSON="У Вашай версіі PHP трэба мець падлучаны JSON, каб усталяваць Joomla." ; Precheck view -INSTL_DATABASE_SUPPORT="Базы даных якія падтрымліваюцца:" -INSTL_JSON_SUPPORT_AVAILABLE="JSON падтрымоўваецца:" +INSTL_DATABASE_SUPPORT="Падтрымка базы дадзеных:" +INSTL_JSON_SUPPORT_AVAILABLE="Падтрымка JSON" INSTL_MB_LANGUAGE_IS_DEFAULT="MB Language выкарыстоўваецца па змаўчанні" -; Deprecated, will be removed with 6.0 -INSTL_MB_STRING_OVERLOAD_OFF="MB String Overload Off - адключаная" -INSTL_NOTICE_DATABASE_SUPPORT="Прыдатная база даных не знойдзеная." +INSTL_NOTICE_DATABASE_SUPPORT="Не знойдзена базаў дадзеных якія падтрымліваюцца." INSTL_NOTICE_JSON_SUPPORT_AVAILABLE="У Вашай версіі PHP трэба мець падлучаны JSON, каб усталяваць Joomla." -INSTL_NOTICE_MBLANG_NOTDEFAULT="Мова PHP mbstring не ўстаноўлена ў нейтральнае значэнне. Гэта можна ўсталяваць лакальна, увёўшы php_value mbstring.language neutral ў вашым файле .htaccess." -; Deprecated, will be removed with 6.0 -INSTL_NOTICE_MBSTRING_OVERLOAD_OFF="Заданае пераладаванне PHP-функцыі mbstring. Гэта можна лакальна змяніць, дадаўшы php_value mbstring.func_overload 0 у файл .htaccess." -INSTL_NOTICE_PARSE_INI_FILE_AVAILABLE="Абавязковыя функцыі PHP parse_ini_file і parse_ini_string адлучаныя на Вашым серверы." -INSTL_NOTICE_XML_SUPPORT="Падтрымка XML недаступная. Трэба стандартна падлучыць модуль у PHP, але карыстальнікам Ubuntu можа спатрэбіцца ўсталяваць яго праз тэрмінал. Выканайце sudo apt-get install php-xml і перазапусціце вэб-сервер." -INSTL_NOTICE_ZLIB_COMPRESSION_SUPPORT="Сцісканне з дапамогай Zlib не заданае. Яго можна лакальна падлучыць, увёўшы zlib.output_compression = On у файле php.ini." -INSTL_PARSE_INI_FILE_AVAILABLE="Падтрымка парсера INI" -INSTL_PRECHECK_ACTUAL="Фактычна" -INSTL_PRECHECK_DESC="Калі якісьці з гэтых пунктаў не падтрымоўваецца (метка Не), спрабуйце яго выправіць.
Вы не зможаце ўсталяваць Joomla, пакуль Вашы налады не будуць адпавядаць патрабаванням." +INSTL_NOTICE_MBLANG_NOTDEFAULT="Для дырэктывы mbstring.language ўстаноўлена значэнне не neutral. Гэта можна ўсталяваць лакальна, увёўшы php_value mbstring.language neutral ў вашым файле .htaccess." +INSTL_NOTICE_PARSE_INI_FILE_AVAILABLE="Неабходныя функцыі PHP parse_ini_file іparse_ini_string адключаныя на вашым серверы." +INSTL_NOTICE_XML_SUPPORT="Падтрымка XML недаступная на гэтым серверы. Трэба стандартна падлучыць модуль у PHP, але карыстальнікам Ubuntu можа спатрэбіцца ўсталяваць яго праз тэрмінал. Выканайце sudo apt-get install php-xml і перазапусціце вэб-сервер." +INSTL_NOTICE_ZLIB_COMPRESSION_SUPPORT="Падтрымка Zlib недаступная на гэтым серверы. Яго можна лакальна падлучыць, увёўшы zlib.output_compression = On у файл php.ini." +INSTL_PARSE_INI_FILE_AVAILABLE="Падтрымка INI Parser" +INSTL_PRECHECK_ACTUAL="Фактычны" +INSTL_PRECHECK_DESC="Калі якісьці з гэтых пунктаў не падтрымліваецца (метка Не), спрабуйце яго выправіць.
Вы не зможаце ўсталяваць Joomla, пакуль Вашы налады не будуць адпавядаць патрабаванням." INSTL_PRECHECK_DIRECTIVE="Параметр" INSTL_PRECHECK_RECOMMENDED="Рэкамендуецца" -INSTL_PRECHECK_RECOMMENDED_SETTINGS_DESC="Гэтыя налады рэкамендуюцца для поўнай сумяшчальнасці PHP з Joomla. Тым не менш Joomla можа працаваць, нават калі фактычныя налады не супадаюць з рэкамендаванымі." +INSTL_PRECHECK_RECOMMENDED_SETTINGS_DESC="Гэтыя налады рэкамендуюцца для поўнай сумяшчальнасці PHP з Joomla. Тым не менш Joomla можа працаваць, нават калі бягучыя значэнні не супадаюць з рэкамендаванымі." INSTL_PRECHECK_RECOMMENDED_SETTINGS_TITLE="Рэкамендаваныя налады" -INSTL_PRECHECK_TITLE="Кантроль перад усталяваннем" +INSTL_PRECHECK_TITLE="Праверка перад усталёўкай" INSTL_XML_SUPPORT="Падтрымка XML" -INSTL_ZLIB_COMPRESSION_SUPPORT="Zlib-сцісканне падтрымоўваецца:" +INSTL_ZLIB_COMPRESSION_SUPPORT="Падтрымка сціску Zlib" ; Database view -INSTL_DATABASE="Канфігурацыя базы даных" +INSTL_DATABASE="Канфігурацыя базы дадзеных" INSTL_DATABASE_ENCRYPTION_CA_LABEL="Шлях да файла CA" INSTL_DATABASE_ENCRYPTION_CERT_LABEL="Шлях да файла сертыфіката" -INSTL_DATABASE_ENCRYPTION_CIPHER_LABEL="(Неабавязкова.) Набор шыфраў, які падтрымоўваецца" -INSTL_DATABASE_ENCRYPTION_KEY_LABEL="Шлях да файла сакрэтнага ключа" +INSTL_DATABASE_ENCRYPTION_CIPHER_LABEL="Падтрымліваемы набор шыфраў (неабавязкова)" +INSTL_DATABASE_ENCRYPTION_KEY_LABEL="Шлях да файла прыватнага ключа" INSTL_DATABASE_ENCRYPTION_MODE_LABEL="Шыфраванне злучэння" -INSTL_DATABASE_ENCRYPTION_MODE_VALUE_NONE="Стандартнае (кіруецца серверам)" +INSTL_DATABASE_ENCRYPTION_MODE_VALUE_NONE="Па змаўчанні (кіруецца серверам)" INSTL_DATABASE_ENCRYPTION_MODE_VALUE_ONE_WAY="Аднабаковая аўтэнтыфікацыя" INSTL_DATABASE_ENCRYPTION_MODE_VALUE_TWO_WAY="Двухбаковая аўтэнтыфікацыя" -INSTL_DATABASE_ENCRYPTION_MSG_CONN_NOT_ENCRYPT="Вы абралі падлучэнне да базы даных з шыфраваннем, і злучэнне можна ўсталяваць, але не зашыфраваць. Прычынай можа быць тое, што сервер базы даных наладжаны на зварот да незашыфраванага злучэння ў выпадку праблемных параметраў шыфравання. Або праверце і выпраўце параметры шыфравання, або змяніце поле \"Шыфраванне злучэння\" назад на \"Стандартнае (кіруецца серверам)\"." -INSTL_DATABASE_ENCRYPTION_MSG_FILE_FIELD_BAD="Файл, пазначаны ў полі \"%s\", не існуе або недаступны." +INSTL_DATABASE_ENCRYPTION_MSG_CONN_NOT_ENCRYPT="Вы абралі падлучэнне да базы дадзеных з шыфраваннем, якое можа быць ўсталяванае, але не зашыфраванае. Прычынай можа быць тое, што сервер базы дадзеных наладжаны на зварот да незашыфраванага злучэння ў выпадку праблемных параметраў шыфравання. Або праверце і выпраўце параметры шыфравання, або змяніце поле \"Шыфраванне злучэння\" назад на \"Стандартнае (кіруецца серверам)\"." +INSTL_DATABASE_ENCRYPTION_MSG_FILE_FIELD_BAD="Файл, уведзены ў поле \" %s\", не існуе або недаступны." INSTL_DATABASE_ENCRYPTION_MSG_FILE_FIELD_EMPTY="Поле \"%s\" не запоўненае або не змяшчае дапушчальнага шляху." -INSTL_DATABASE_ENCRYPTION_MSG_LOCALHOST="Вы ўвялі \"localhost\" у якасці назвы хоста. У гэтым выпадку падлучэнне да базы даных з шыфраваннем можа не ўдацца. Або замяніце \"localhost\" на \"127.0.0.1\", ці \"::1\", ці іншую назву, або змяніце поле \"Шыфраванне злучэння\"на \"Стандартнае (кіруецца серверам)\"." -INSTL_DATABASE_ENCRYPTION_MSG_SRV_NOT_SUPPORTS="Сервер базы даных не падтрымоўвае шыфравання злучэння. Або дазвольце падтрымка TLS (часта называецца SSL у дакументах) на серверы базы даных, або змяніце поле \"Шыфраванне злучэння\" на \"Стандартнае (кіруецца серверам)\"." -INSTL_DATABASE_ENCRYPTION_VERIFY_SERVER_CERT_LABEL="Спраўджваць сертыфікат сервера" -INSTL_DATABASE_ERROR_POSTGRESQL_QUERY="Памылка запыту да базы даных PostgreSQL." -INSTL_DATABASE_HOST_DESC="Назва хоста, звычайна \"localhost\" або назва, выданая Вашым правайдарам:" -INSTL_DATABASE_HOST_IS_NOT_LOCALHOST_CREATE_FILE="Памылка стварэння файла. Стварыце файл \"%1$s\" уручную і заладуйце яго ў каталог \"%2$s\" Вашага сайта Joomla. Потым выберыце \"%3$s\", каб працягнуць." +INSTL_DATABASE_ENCRYPTION_MSG_LOCALHOST="Вы ўвялі Значэнне \"localhost\" у якасці імя хаста. У такім выпадку падключэнне да базы дадзеных з шыфраваннем злучэння можа завяршыцца памылкай. Неабходна змяніць імя хаста \"localhost\" на \"127.0.0.1\", \"::1\" іншае імя, або змяніць значэнне поля \"Conection Encryption\"на \"Default (server controlled)\"." +INSTL_DATABASE_ENCRYPTION_MSG_SRV_NOT_SUPPORTS="Сервер базы дадзеных не падтрымлівае шыфраванне злучэння. Альбо ўключыце падтрымку TLS (часта званую SSL у дакументах) на вашым серверы базы дадзеных, альбо змяніце поле \"Шыфраванне злучэння\" назад \"Па змаўчанні (кантралюецца серверам)\"." +INSTL_DATABASE_ENCRYPTION_VERIFY_SERVER_CERT_LABEL="Праверка сертыфіката сервера" +INSTL_DATABASE_ERROR_POSTGRESQL_QUERY="Памылка запыту да базы дадзеных PostgreSQL." +INSTL_DATABASE_HOST_DESC="Увядзіце назву хоста (звычайна \"localhost\" або назва, якую Вам прадаставіў хостынг-правайдар)." +INSTL_DATABASE_HOST_IS_NOT_LOCALHOST_CREATE_FILE="Памылка стварэння файла. Стварыце файл \"%1$s\" уручную і запампуйце яго ў каталог \"%2$s\" Вашага сайта Joomla. Потым выберыце \"%3$s\", каб працягнуць." INSTL_DATABASE_HOST_IS_NOT_LOCALHOST_DELETE_FILE="Каб пацвердзіць, што Вы — уладальнік сайта, выдаліце файл \"%1$s\", створаны сістэмай у каталозе \"%2$s\" Вашага сайта Joomla. Потым выберыце \"%3$s\", каб працягнуць." -INSTL_DATABASE_HOST_IS_NOT_LOCALHOST_GENERAL_MESSAGE="Вы спрабуеце выкарыстоўваць хост базы даных, якога няма на Вашым лакальным серверы. З прычын бяспекі Вам трэба спраўдзіць уласнасць на Ваш уліковы запіс вэб-хостынгу. Прачытайце дакументацыю, каб даведацца больш." +INSTL_DATABASE_HOST_IS_NOT_LOCALHOST_GENERAL_MESSAGE="Вы спрабуеце выкарыстоўваць хост базы дадзеных, якога няма на Вашым лакальным серверы. З прычын бяспекі Вам трэба спраўдзіць уласнасць на Ваш уліковы запіс вэб-хостынгу. Прачытайце дакументацыю, каб даведацца больш." INSTL_DATABASE_HOST_LABEL="Назва хоста" -INSTL_DATABASE_NAME_DESC="Назва базы даных:" -INSTL_DATABASE_NAME_LABEL="Назва базы даных" -INSTL_DATABASE_NAME_MSG_MYSQL="Памылковая назва базы даных. Яна не можа змяшчаць гэтых знакаў: \ /" -INSTL_DATABASE_NAME_MSG_POSTGRES="Памылковая назва базы даных. Яна павінна складацца з лічбаў і лацінскіх літар і пачынацца з літары." -INSTL_DATABASE_NO_SCHEMA="Не існуе схемы базы даных для гэтага тыпу базы." +INSTL_DATABASE_NAME_DESC="Увядзіце імя базы дадзеных." +INSTL_DATABASE_NAME_LABEL="Імя базы дадзеных" +INSTL_DATABASE_NAME_MSG_MYSQL="Памылковая назва базы дадзеных. Яна не можа змяшчаць гэтых знакаў: \ /" +INSTL_DATABASE_NAME_MSG_POSTGRES="Памылковая назва базы дадзеных. Яна павінна складацца з лічбаў і лацінскіх літар і пачынацца з літары." +INSTL_DATABASE_NO_SCHEMA="Не існуе схемы базы дадзеных для гэтага тыпу базы." INSTL_DATABASE_PASSWORD_DESC="Пароль да базы даных, які створаны Вамі або Вашым хостынг-правайдарам:" -INSTL_DATABASE_PREFIX_DESC="Прэфікс табліц або скарыстайцеся выпадкова створаным:" -INSTL_DATABASE_PREFIX_DUPLICATE_DESC="Калі ўжо выкарыстоўваецца база даных з табліцамі з тым жа прэфіксам, Joomla зменіць назву яе табліц, дадаўшы прэфікс \"bak_\"." +INSTL_DATABASE_PREFIX_DESC="Увядзіце прэфікс табліц БД або скарыстайце выпадкова створаны." +INSTL_DATABASE_PREFIX_DUPLICATE_DESC="Калі вы выкарыстоўваеце існуючую базу дадзеных з табліцамі з аднолькавымі прэфіксамі, Joomla пераймянуе існуючыя табліцы, дадаўшы прэфікс \"bak_\"." INSTL_DATABASE_PREFIX_MSG="Прэфікс табліцы павінен пачынацца з літары, пасля чаго могуць ісці літарна-лічбавыя сімвалы, і ён павінен заканчвацца знакам падкрэслівання." -INSTL_DATABASE_RESPONSE_ERROR="Не ўдалося завяршыць усталяванне." -INSTL_DATABASE_TYPE_DESC="Выберыце тып базы даных" +INSTL_DATABASE_RESPONSE_ERROR="Працэс усталёўкі завяршыўся няўдачай." +INSTL_DATABASE_TYPE_DESC="Выберыце тып базы дадзеных." INSTL_DATABASE_USER_DESC="Імя карыстальніка БД, створанае Вамі або Вашым хостынг-правайдарам." -INSTL_DATABASE_VALIDATION_ERROR="Праверце свае ўліковыя звесткі, а таксама тып і назву базы даных і назву хоста. Калі ў Вас усталяваная MySQL 8, прачытайце гэтую дакументацыю, каб даведацца больш." +INSTL_DATABASE_VALIDATION_ERROR="Праверце свае ўліковыя звесткі, а таксама тып і назву базы дадзеных і назву хоста. Калі ў Вас усталявана MySQL 8, прачытайце гэтую дакументацыю, каб даведацца больш." -INSTL_CONNECT_DB="Канфігурацыя базы даных" +INSTL_CONNECT_DB="Параметры базы дадзеных" INSTL_INSTALL_JOOMLA="Усталяваць Joomla" ; Site View -INSTL_ADMIN_EMAIL_DESC="Адрас электроннай пошты суперкарыстальніка" -INSTL_ADMIN_PASSWORD_DESC="Задайце пароль для ўліковага запісу суперкарыстальніка" -INSTL_ADMIN_PASSWORD_LENGTH="Пароль павінны быць не менш за 12 знакаў." -INSTL_ADMIN_USERNAME_DESC="Задайце назву ўліковага запісу суперкарыстальніка (лагін)" -INSTL_ADMIN_USER_DESC="Сапраўднае імя Вашага суперкарыстальніка" +INSTL_ADMIN_EMAIL_DESC="Увядзіце E-mail адміністратара." +INSTL_ADMIN_PASSWORD_DESC="Задайце пароль для ўліковага запісу Суперкарыстальніка." +INSTL_ADMIN_PASSWORD_LENGTH="Увядзіце не менш за 12 знакаў." +INSTL_ADMIN_USERNAME_DESC="Задайце назву ўліковага запісу СуперКарыстальніка (лагіну)." +INSTL_ADMIN_USER_DESC="Увядзіце сапраўднае імя Вашага СуперКарыстальніка." INSTL_LOGIN_DATA="Параметры ўліковага запісу" INSTL_SETUP_SITE_NAME="Налады сайта" INSTL_SITE="Асноўная канфігурацыя" -INSTL_SITE_DEVMODE_LABEL="Выяўлены рэжым распрацоўвання" -INSTL_SITE_NAME_DESC="Якая назва будзе ў Вашага сайта" +INSTL_SITE_DEVMODE_LABEL="Выяўлены рэжым распрацоўкі" +INSTL_SITE_NAME_DESC="Увядзіце назву Вашага сайта." ; Expert View INSTL_PUBLIC_FOLDER_DESC="Адносны альбо абсалютны шлях да агульнай папкі" @@ -120,29 +119,29 @@ INSTL_PUBLIC_FOLDER_DESC_SHORT="Адносны альбо абсалютны ш ; Complete view INSTL_COMPLETE_ADD_EXTRA_LANGUAGE="Усталяваць дадатковыя моўныя пакеты" -INSTL_COMPLETE_ADMIN_BTN="Адкрыць панэль адміністратара" -INSTL_COMPLETE_CONGRAT="Усталяванне скончанае! " +INSTL_COMPLETE_ADMIN_BTN="Адкрыць панэль кіравання" +INSTL_COMPLETE_CONGRAT="Усталёўка скончаная! " INSTL_COMPLETE_ERROR_FOLDER_DELETE="Не ўдалося выдаліць каталог \"%s\". Выдаліце ​​яго ўручную." -INSTL_COMPLETE_FINAL="Усталяванне завершанае" -INSTL_COMPLETE_FINAL_DESC="Joomla ўсталяваная і гатовая да выкарыстання." +INSTL_COMPLETE_FINAL="Усталёўка завершана" +INSTL_COMPLETE_FINAL_DESC="Joomla паспяхова ўсталявана і гатова да выкарыстання." INSTL_COMPLETE_REMOVE_FOLDER="Выдаліць каталог \"%s\"" INSTL_COMPLETE_SITE_BTN="Адкрыць сайт" -INSTL_COMPLETE_TITLE="Віншуем! Вы ўсталявалі Joomla! Ваш сайт гатовы да працы." +INSTL_COMPLETE_TITLE="Віншуем! Вы паспяхова ўсталявалі Joomla! Ваш сайт гатовы да працы." INSTL_REMOVE_INST_FOLDER="Вы ўпэўнены? Пацвердзіўшы, Вы незваротна выдаліце каталог \"%s\"." ; Languages view INSTL_LANGUAGES="Усталяваць дадатковыя моўныя пакеты" INSTL_LANGUAGES_COLUMN_HEADER_LANGUAGE="Мова" -INSTL_LANGUAGES_COLUMN_HEADER_LANGUAGE_SELECT="Выбар мовы" -INSTL_LANGUAGES_COLUMN_HEADER_LANGUAGE_TAG="Цэтлік мовы" +INSTL_LANGUAGES_COLUMN_HEADER_LANGUAGE_SELECT="Выберыце мову" +INSTL_LANGUAGES_COLUMN_HEADER_LANGUAGE_TAG="Тэг мовы" INSTL_LANGUAGES_COLUMN_HEADER_VERSION="Версія" -INSTL_LANGUAGES_DESC="Інтэрфейс Joomla даступны на мностве моў. Выберыце патрэбныя моўныя пакеты і націсніце \"Усталяваць выбраныя мовы\".

Увага: кожны моўны пакет заладоўваецца каля 10 секунд. Не рэкамендуецца ўсталёўваць больш за тры моўныя пакеты адначасова." -INSTL_LANGUAGES_MESSAGE_PLEASE_WAIT="Працэс зойме каля 10 секунд для кожнай мовы.
Пачакайце, пакуль усе моўныя пакеты ўсталююцца…" -INSTL_LANGUAGES_NO_LANGUAGE_SELECTED="Калі ласка, выберыце мову. Калі ўсталёўваць іншыя мовы не патрэбна, націсніце \"Прапусціць\"." -INSTL_LANGUAGES_SELECTED="Усталяваць выбраныя мовы" -INSTL_LANGUAGES_WARNING_BACK_BUTTON="Назад да папярэдняга кроку ўсталявання" -INSTL_LANGUAGES_WARNING_NO_INTERNET="Не ўдалося падлучыцца да сервера моўных пакетаў Joomla. Калі ласка, завяршыце ўсталяванне." -INSTL_LANGUAGES_WARNING_NO_INTERNET2="Увага: Вы зможаце ўсталяваць моўныя пакеты пазней у панэлі адміністратара Joomla." +INSTL_LANGUAGES_DESC="Інтэрфейс Joomla даступны на мностве моваў. Абярыце неабходныя моўныя пакеты і націсніце \"Далей\".

На ўсталёўку кожнага моўнага пакета неабходна каля 10 секунд. Не рэкамендуецца выбіраць больш за тры моўныя пакеты адначасова." +INSTL_LANGUAGES_MESSAGE_PLEASE_WAIT="На ўсталёўку кожнага моўнага пакета неабходна каля 10 секунд. Калі ласка, пачакайце пакуль моўныя пакеты будуць загружаны і ўсталяваны." +INSTL_LANGUAGES_NO_LANGUAGE_SELECTED="Калі ласка, абярыце моўныя пакеты для ўстаноўкі." +INSTL_LANGUAGES_SELECTED="Усталюйце выбраныя мовы" +INSTL_LANGUAGES_WARNING_BACK_BUTTON="Назад" +INSTL_LANGUAGES_WARNING_NO_INTERNET="Не ўдалося падключыцца да сервера моўных пакетаў Joomla! Калі ласка, завяршыце працэс усталёўкі." +INSTL_LANGUAGES_WARNING_NO_INTERNET2="Вы зможаце ўсталяваць моўныя пакеты пазней у панэлі кіравання Joomla." ; Automated Updates Opt Out INSTL_AUTOMATED_UPDATES="Аўтаматычныя абнаўленні" @@ -152,87 +151,87 @@ INSTL_COMPLETE_ERROR_AUTOMATED_UPDATES_DISABLE="Не атрымалася адк INSTL_DISABLE_AUTOUPDATE="Вы ўпэўненыя, што хочаце адключыць аўтаматычныя абнаўленні?" ; Default language view -INSTL_DEFAULTLANGUAGE_ADMINISTRATOR="Мова панэлі адміністратара" -INSTL_DEFAULTLANGUAGE_ADMIN_COULDNT_SET_DEFAULT="Не ўдалося задаць мову як стандартную. Англійская мова будзе заданая ў якасці стандартнай для панэлі адміністратара." -INSTL_DEFAULTLANGUAGE_ADMIN_SET_DEFAULT="Мова \"%s\" заданая стандартнай для панэлі адміністратара." +INSTL_DEFAULTLANGUAGE_ADMINISTRATOR="Мова панэлі кіравання" +INSTL_DEFAULTLANGUAGE_ADMIN_COULDNT_SET_DEFAULT="Не ўдалося задаць мову як стандартную. Англійская мова будзе заданая ў якасці стандартнай для панэлі кіравання." +INSTL_DEFAULTLANGUAGE_ADMIN_SET_DEFAULT="Мова \"%s\" усталявана па змаўчанні для панэлі кіравання." INSTL_DEFAULTLANGUAGE_COLUMN_HEADER_LANGUAGE="Мова" -INSTL_DEFAULTLANGUAGE_COLUMN_HEADER_SELECT="Выбар" +INSTL_DEFAULTLANGUAGE_COLUMN_HEADER_SELECT="Выбраць" INSTL_DEFAULTLANGUAGE_COLUMN_HEADER_TAG="Цэтлік" -INSTL_DEFAULTLANGUAGE_COULD_NOT_DOWNLOAD_PACKAGE="Не ўдалося заладаваць ці распакаваць моўны пакет з URL-адраса: %s" -INSTL_DEFAULTLANGUAGE_COULD_NOT_INSTALL_LANGUAGE="Не ўдалося ўсталяваць моўны пакет \"%s\"." -INSTL_DEFAULTLANGUAGE_DESC="Моўныя пакеты ўсталяваныя. Выберыце стандартную мову для панэлі адміністратара." -INSTL_DEFAULTLANGUAGE_DESC_FRONTEND="Моўныя пакеты ўсталяваныя. Выберыце стандартную мову для сайта." -INSTL_DEFAULTLANGUAGE_FRONTEND="Стандартная мова сайта" +INSTL_DEFAULTLANGUAGE_COULD_NOT_DOWNLOAD_PACKAGE="Не атрымалася загрузіць ці распакаваць моўны пакет па URL спасылцы: %s." +INSTL_DEFAULTLANGUAGE_COULD_NOT_INSTALL_LANGUAGE="Не атрымалася ўсталяваць моўны пакет \"%s\"." +INSTL_DEFAULTLANGUAGE_DESC="Моўныя пакеты ўсталяваны. Калі ласка, абярыце мову па змаўчанні для панэлі кіравання і націсніце \"Усталяваць па змаўчанні\"." +INSTL_DEFAULTLANGUAGE_DESC_FRONTEND="Моўныя пакеты ўсталяваны. Калі ласка, абярыце мову па змаўчанні для сайта і націсніце \"Усталяваць па змаўчанні\"." +INSTL_DEFAULTLANGUAGE_FRONTEND="Мова сайта па змаўчанні" INSTL_DEFAULTLANGUAGE_FRONTEND_COULDNT_SET_DEFAULT="Не ўдалося задаць мову як стандартную. Англійская мова будзе заданая ў якасці стандартнай для сайта." -INSTL_DEFAULTLANGUAGE_FRONTEND_SET_DEFAULT="Мова \"%s\" заданая стандартнай для сайта." -INSTL_DEFAULTLANGUAGE_SET_DEFAULT_LANGUAGE="Задаць стандартныя мовы" -INSTL_DEFAULTLANGUAGE_TRY_LATER="Вы зможаце ўсталяваць пакет пазней у панэлі адміністратара Joomla." +INSTL_DEFAULTLANGUAGE_FRONTEND_SET_DEFAULT="Мова \"%s\" усталявана па змаўчанні для сайта." +INSTL_DEFAULTLANGUAGE_SET_DEFAULT_LANGUAGE="Усталяваць па змаўчанні" +INSTL_DEFAULTLANGUAGE_TRY_LATER="Вы зможаце ўсталяваць яе пазней у панэлі кіравання Joomla." -INSTL_DEFAULTLANGUAGE_NATIVE_LANGUAGE_NAME="Беларуская" ; IMPORTANT NOTE FOR TRANSLATORS: Do not literally translate this line, instead add the localised name of the language. For example Spanish will be Español +INSTL_DEFAULTLANGUAGE_NATIVE_LANGUAGE_NAME="Беларуская (BY)" ; IMPORTANT NOTE FOR TRANSLATORS: Do not literally translate this line, instead add the localised name of the language. For example Spanish will be Español ; Database Model -INSTL_DATABASE_COULD_NOT_CONNECT="Не ўдалося падлучыцца да базы даных. Тэкст памылкі: %s." -INSTL_DATABASE_COULD_NOT_CREATE_DATABASE="Нельга падлучыцца да базы даных, і не ўдалося стварыць базу даных. Cпраўдзіце свае налады і пры патрэбе стварыце базу даных уручную." -INSTL_DATABASE_COULD_NOT_REFRESH_MANIFEST_CACHE="Не ўдалося абнавіць кэш маніфеста для пашырэння %s." -INSTL_DATABASE_ERROR_BACKINGUP="Пры стварэнні рэзервовай копіі базы даных узніклі некаторыя памылкі." -INSTL_DATABASE_ERROR_CREATE="Узнікла памылка пры спробе стварыць базу даных %s.
Можа быць, карыстальніку не стае прывілеяў для стварэння базы даных. Можа спатрэбіцца стварыць гэтую базу даных асобна, перш чым усталёўваць Joomla." -INSTL_DATABASE_ERROR_DELETE="Пры выдаленні базы даных узніклі некаторыя памылкі." -INSTL_DATABASE_ERROR_READING_SQL_FILE="Не ўдалося прачытаць файл SQL." -INSTL_DATABASE_FIELD_VALUE_BACKUP="Рэзерваваць" +INSTL_DATABASE_COULD_NOT_CONNECT="Не атрымалася падлучыцца да базы дадзеных: %s." +INSTL_DATABASE_COULD_NOT_CREATE_DATABASE="Не атрымалася падлучыцца да базы дадзеных і не ўдалося стварыць базу дадзеных. Калі ласка, праверце параметры і пры неабходнасці стварыце базу дадзеных уручную." +INSTL_DATABASE_COULD_NOT_REFRESH_MANIFEST_CACHE="Не ўдалося абнавіць кэш маніфесту для пашырэння: %s" +INSTL_DATABASE_ERROR_BACKINGUP="Пры стварэнні рэзервовай копіі базы дадзеных адбыліся некаторыя памылкі." +INSTL_DATABASE_ERROR_CREATE="Адбылася памылка пры спробе стварыць базу дадзеных %s.
Магчыма, у карыстальніка недастаткова прывілеяў для стварэння базы дадзеных. Магчыма, спатрэбіцца стварыць неабходную базу дадзеных асобна, перш чым вы зможаце ўсталяваць Joomla" +INSTL_DATABASE_ERROR_DELETE="Пры выдаленні базы дадзеных адбыліся некаторыя памылкі." +INSTL_DATABASE_ERROR_READING_SQL_FILE="Не ўдалося прачытаць SQL файл." +INSTL_DATABASE_FIELD_VALUE_BACKUP="Рэзервовая копія" INSTL_DATABASE_FIELD_VALUE_REMOVE="Выдаліць" INSTL_DATABASE_FILE_DOES_NOT_EXIST="Файл %s не існуе." -INSTL_DATABASE_FIX_LOWERCASE="Прэфікс табліц PostgreSQL мусіць быць у ніжнім рэгістры." -INSTL_DATABASE_FIX_TOO_LONG="Прэфікс табліц MySQL мусіць змяшчаць не больш за 15 знакаў." -INSTL_DATABASE_INVALID_DB_DETAILS="Параметры базы даных няправільныя або не ўведзеныя." +INSTL_DATABASE_FIX_LOWERCASE="Прэфікс табліцы павінен ўтрымліваць сімвалы ў ніжнім рэгістры для PostgreSQL." +INSTL_DATABASE_FIX_TOO_LONG="Прэфікс табліцы MySQL павінен змяшчаць не больш 15 знакаў." +INSTL_DATABASE_INVALID_DB_DETAILS="Прадстаўленыя звесткі аб базе дадзеных няслушныя і/або пустыя." INSTL_DATABASE_INVALID_MARIADB_VERSION="Каб працягнуць усталяванне, Вам трэба MariaDB версіі %1$s або навейшай. Ваша версія: %2$s." -INSTL_DATABASE_INVALID_MYSQLI_VERSION="Каб працягнуць усталяванне, Вам трэба MySQL версіі %1$s або навейшай. Ваша версія: %2$s" -INSTL_DATABASE_INVALID_MYSQL_VERSION="Каб працягнуць усталяванне, Вам трэба MySQL версіі %1$s або навейшай. Ваша версія: %2$s" -INSTL_DATABASE_INVALID_PGSQL_VERSION="Каб працягнуць усталяванне, Вам трэба PostgreSQL версіі %1$s або навейшай. Ваша версія: %2$s" -INSTL_DATABASE_INVALID_POSTGRESQL_VERSION="Каб працягнуць усталяванне, Вам трэба PostgreSQL версіі %1$s або навейшай. Ваша версія: %2$s" -INSTL_DATABASE_INVALID_TYPE="Калі ласка, выберыце тып базы даных." -INSTL_DATABASE_NAME_INVALID_CHAR="Ідэнтыфікатар MySQL не можа змяшчаць NULL ASCII (0x00)." -INSTL_DATABASE_NAME_INVALID_SPACES="Назвы базы даных і табліц MySQL не могуць пачынацца ці канчацца прабеламі." -INSTL_DATABASE_NAME_TOO_LONG="Назва базы даных MySQL мусіць змяшчаць не больш за 64 знакі." +INSTL_DATABASE_INVALID_MYSQLI_VERSION="Каб працягуць усталяванне вам патрэбны MySQL %1$s або вышэй. Ваша версія: %2$s" +INSTL_DATABASE_INVALID_MYSQL_VERSION="Каб працягуць усталяванне вам патрэбны MySQL %1$s або вышэй. Ваша версія: %2$s" +INSTL_DATABASE_INVALID_PGSQL_VERSION="Для працягу ўсталёўкі вам спатрэбіцца PostgreSQL %1$s або вышэй. Ваша версія: %2$s" +INSTL_DATABASE_INVALID_POSTGRESQL_VERSION="Для працягу ўсталёўкі вам спатрэбіцца PostgreSQL %1$s або вышэй. Ваша версія: %2$s" +INSTL_DATABASE_INVALID_TYPE="Выберыце тып базы дадзеных." +INSTL_DATABASE_NAME_INVALID_CHAR="Ідэнтыфікатар MySQL не можа мець NULL ASCII (0x00)." +INSTL_DATABASE_NAME_INVALID_SPACES="Імёны баз дадзеных MySQL і імёны табліц не могуць пачынацца або заканчвацца прабеламі." +INSTL_DATABASE_NAME_TOO_LONG="Імя базы дадзеных MySQL павінна складацца максімум з 64 знакаў." ; Controllers -INSTL_COOKIES_NOT_ENABLED="Здаецца, у Вашым браўзеры не дазволеныя файлы cookie або на серверы ўзнікла праблема з інструкцыяй session.save_path. У такім разе звярніцеся да свайго хостынг-правайдара, калі Вы не ведаеце, як гэта праверыць ці выправіць самастойна." +INSTL_COOKIES_NOT_ENABLED="Файлы cookie, напэўна, не ўключаныя ў вашым браўзэры-кліенце. Вы не зможаце ўсталяваць прыкладанне з адключанай гэтай функцыяй. У якасці альтэрнатывы, таксама можа паўстаць праблема з session.save_path сервера . Калі гэта так, калі ласка, пракансультуйцеся з вашым хостынг-правайдэрам, калі вы не ведаеце, як праверыць ці выправіць гэта самастойна." INSTL_HEADER_ERROR="Памылка" ; Helpers -INSTL_PAGE_TITLE="Усталёўнік Joomla" +INSTL_PAGE_TITLE="Усталёўшчык Joomla" ; Configuration model -INSTL_ERROR_CONNECT_DB="Не ўдалося падлучыцца да базы даных. Код памылкі: %d." -INSTL_STD_OFFLINE_MSG="Сайт закрыты на тэхнічнае абслугоўванне.
Калі ласка, зайдзіце пазней." +INSTL_ERROR_CONNECT_DB="Не атрымалася падлучыцца да базы дадзеных. Тэкст памылкі: %d." +INSTL_STD_OFFLINE_MSG="Сайт закрыты на тэхнічнае абслугоўванне.
Калі ласка, зайдзіце крыху пазней." ; Languages model -INSTL_ERROR_INVALID_URL="Некарэктны URL-адрас" +INSTL_ERROR_INVALID_URL="Некарэктны URL-адрас." ; Others -INSTL_CONFPROBLEM="Ваш канфігурацыйны файл ці каталог недаступны для запісу, або ўзнікла праблема пры стварэнні канфігурацыйнага файла. Калі ласка, вылучыце ўвесь прыведзены код у тэкставай пляцоўцы і ўстаўце ў новы тэкставы файл. Назавіце файл \"configuration.php\" і заладуйце яго ў каранёвы каталог Вашага сайта." -INSTL_DISPLAY_ERRORS="Паказ памылак" +INSTL_CONFPROBLEM="Ваш канфігурацыйны файл або папка недаступныя для запісу або паўстала праблема са стварэннем канфігурацыйнага файла. Вам прыйдзецца загрузіць наступны код ўручную. Вылучыце ў тэкставай вобласці ўвесь код, а затым устаўце ў новы тэкставы файл. Назавіце гэты файл\"configuration.php \" і загрузіце яго ў каранёвую папку вашага сайта." +INSTL_DISPLAY_ERRORS="Адлюстраванне памылак" INSTL_ERROR="Памылка" -INSTL_ERROR_DB="Пры запаўненні базы даных узніклі некаторыя памылкі: %s." -INSTL_ERROR_INITIALISE_SCHEMA="Не ўдаецца ініцыялізаваць схему базы даных." -INSTL_EXTENSION_AVAILABLE="Даступнае %s" -INSTL_FILE_UPLOADS="Заладаванне файлаў" +INSTL_ERROR_DB="Пры запаўненні базы дадзеных адбыліся некаторыя памылкі: %s." +INSTL_ERROR_INITIALISE_SCHEMA="Не ўдаецца ініцыялізаваць схему базы дадзеных." +INSTL_EXTENSION_AVAILABLE="%s даступна" +INSTL_FILE_UPLOADS="Загрузка файлаў" INSTL_GNU_GPL_LICENSE="Агульная грамадская ліцэнзія GNU" -INSTL_HELP_LINK="Дапамога з усталяваннем Joomla" -INSTL_NOTICE_NEEDSTOBEWRITABLE="Вы ўсё яшчэ можаце працягнуць усталяванне, калі наладзіце дазволы." +INSTL_HELP_LINK="Дапамога ва ўсталёўцы Joomla" +INSTL_NOTICE_NEEDSTOBEWRITABLE="Вы ўсё яшчэ можаце працягнуць усталёўку, калі адновіце правы доступу." INSTL_OUTPUT_BUFFERING="Буферызацыя вываду" INSTL_PHP_VERSION="Версія PHP" -INSTL_PHP_VERSION_NEWER="Версія PHP >=%s" -INSTL_PROCESS_BUSY="Працэс ідзе поўным ходам. Калі ласка, пачакайце…" -INSTL_SESSION_AUTO_START="Аўтаматычны запуск сеанса" -INSTL_WRITABLE="Няма дазволу на стварэнне файла %s" +INSTL_PHP_VERSION_NEWER="Версія PHP > = %s" +INSTL_PROCESS_BUSY="Працэс ідзе поўным ходам. Калі ласка, пачакайце …" +INSTL_SESSION_AUTO_START="Аўтаматычны запуск сеансу" +INSTL_WRITABLE="Недастаткова дазволу для стварэння файла %s." INSTL_ZIP_SUPPORT_AVAILABLE="Убудаваная падтрымка ZIP" ; Global strings JADMINISTRATOR="Адміністратар" JCLOSE="Закрыць" -JEMAIL="Электронны адрас" +JEMAIL="Email" JERROR="Памылка" -JERROR_LAYOUT_ERROR_HAS_OCCURRED_WHILE_PROCESSING_YOUR_REQUEST="Узнікла памылка апрацавання Вашага запыту." +JERROR_LAYOUT_ERROR_HAS_OCCURRED_WHILE_PROCESSING_YOUR_REQUEST="Падчас апрацоўкі вашага запыту адбылася памылка." JGLOBAL_ISFREESOFTWARE="%s - з'яўляецца бясплатным праграмным забеспячэннем, што распаўсюджваецца па ліцэнзіі GNU General Public License." JGLOBAL_LANGUAGE_VERSION_NOT_PLATFORM="Моўны пакет не адпавядае гэтай версіі Joomla!. Некаторыя радкі могуць адсутнічаць і будуць адлюстроўвацца на англійскай мове." JGLOBAL_SELECT_AN_OPTION="Выберыце параметр" @@ -250,42 +249,42 @@ JPREVIOUS="Папярэдні" JSHOWPASSWORD="Паказаць пароль" JSITE="Сайт" JSKIP="Прапусціць" -JUSERNAME="Імя карыстальніка" +JUSERNAME="Лагін" JYES="Так" ; Framework strings necessary when no lang pack is available JLIB_DATABASE_ERROR_CONNECT_MYSQL="Не атрымалася падлучыцца да MySQL." -JLIB_DATABASE_ERROR_DATABASE="Узнікла памылка базы даных." -JLIB_DATABASE_ERROR_LOAD_DATABASE_DRIVER="Не атрымалася загрузіць драйвер базы даных: %s" -JLIB_DATABASE_ERROR_VALID_MAIL="Калі ласка, увядзіце правільны адрас электроннай пошты." -JLIB_ENVIRONMENT_SESSION_EXPIRED="Тэрмін Вашага сеанса скончыўся. Калі ласка, абнавіце старонку." -JLIB_FILESYSTEM_ERROR_PATH_IS_NOT_A_FOLDER="%1$s: Шлях не вядзе да каталога. Шлях: %2$s" -JLIB_FORM_FIELD_INVALID="Няправільна запоўненае поле: " -JLIB_FORM_VALIDATE_FIELD_INVALID="Няправільна запоўненае поле: %s." -JLIB_FORM_VALIDATE_FIELD_REQUIRED="Абавязковае поле: %s." -JLIB_INSTALLER_ABORT="Спыненне ўсталявання мовы: %s" -JLIB_INSTALLER_ABORT_CREATE_DIRECTORY="Пашырэнне %1$s: не ўдалося стварыць каталог: %2$s." -JLIB_INSTALLER_ABORT_NOINSTALLPATH="Шлях усталявання не існуе." -JLIB_INSTALLER_ABORT_PACK_INSTALL_ERROR_EXTENSION="Пакет %1$s: узнікла памылка ўсталявання пашырэння: %2$s." -JLIB_INSTALLER_ABORT_PACK_INSTALL_NO_FILES="Пакет %s: няма файлаў для ўсталявання!" -JLIB_INSTALLER_ERROR_DOWNLOAD_SERVER_CONNECT="Памылка падлучэння да сервера: %s." -JLIB_INSTALLER_ERROR_FAIL_COPY_FILE="JInstaller: :Install: не ўдалося скапіяваць файл %1$s у %2$s." +JLIB_DATABASE_ERROR_DATABASE="Адбылася памылка базы дадзеных." +JLIB_DATABASE_ERROR_LOAD_DATABASE_DRIVER="Не атрымалася загрузіць драйвер базы дадзеных: %s" +JLIB_DATABASE_ERROR_VALID_MAIL="Уведзены вамі адрас электроннай пошты несапраўдны. Калі ласка, увядзіце іншы адрас электроннай пошты." +JLIB_ENVIRONMENT_SESSION_EXPIRED="Тэрмін дзеяння вашага сеансу скончыўся, калі ласка, перазагрузіце старонку." +JLIB_FILESYSTEM_ERROR_PATH_IS_NOT_A_FOLDER="%1$s: Шлях не вядзе да каталогу. Шлях: %2$s" +JLIB_FORM_FIELD_INVALID="Недапушчальнае поле: " +JLIB_FORM_VALIDATE_FIELD_INVALID="Некарэктна запоўнена поле: %s" +JLIB_FORM_VALIDATE_FIELD_REQUIRED="Неабходна запоўніць - абавязковае поле: %s" +JLIB_INSTALLER_ABORT="Перапыненне ўсталявання моўнага пакету: %s" +JLIB_INSTALLER_ABORT_CREATE_DIRECTORY="Пашырэнне %1$s: не атрымалася стварыць каталог: %2$s" +JLIB_INSTALLER_ABORT_NOINSTALLPATH="Шлях да усталёўкі не існуе." +JLIB_INSTALLER_ABORT_PACK_INSTALL_ERROR_EXTENSION="Пакет %1$s: Адбылася памылка падчас усталёўкі пашырэння: %2$s." +JLIB_INSTALLER_ABORT_PACK_INSTALL_NO_FILES="Пакет %s: не атрымалася знайсці файлы для ўсталёўкі!" +JLIB_INSTALLER_ERROR_DOWNLOAD_SERVER_CONNECT="Памылка падключэння да сервера: %s" +JLIB_INSTALLER_ERROR_FAIL_COPY_FILE="JInstaller: :Install: Не атрымалася скапіяваць файл %1$s у %2$s." JLIB_INSTALLER_INSTALL="Усталяваць" -JLIB_INSTALLER_NOT_ERROR="Калі памылка звязаная з усталяваннем моўных файлаў TinyMCE, яна не ўплывае на ўсталяванне моў. Некаторыя моўныя пакеты, створаныя раней за Joomla 3.2.0, могуць спрабаваць усталяваць асобныя моўныя файлы TinyMCE. Цяпер яны змешчаныя ў ядры, таму іх больш не трэба ўсталёўваць." -JLIB_INSTALLER_WARNING_UNABLE_TO_INSTALL_CONTENT_LANGUAGE="Нельга стварыць мову змесціва для мовы %s: %s." -JLIB_UPDATER_ERROR_COLLECTION_FOPEN="Дырэктыва PHP allow_url_fopen мусіць быць падлучаная, каб інструмент абнаўлення працаваў." -JLIB_UPDATER_ERROR_COLLECTION_OPEN_URL="Абнаўленне: :Collection: не ўдалося адкрыць %s." -JLIB_UPDATER_ERROR_COLLECTION_PARSE_URL="Абнаўленне: :Collection: не ўдалося прааналізаваць %s." +JLIB_INSTALLER_NOT_ERROR="Калі памылка звязана з усталяваннем моўных файлаў TinyMCE, яна не ўплывае на ўсталяванне моваў. Некаторыя моўныя пакеты, створаныя да Joomla 3.2.0, могуць спрабаваць усталяваць асобныя моўныя файлы TinyMCE. Паколькі яны цяпер уключаны ў ядро, іх больш не трэба ўсталёўваць." +JLIB_INSTALLER_WARNING_UNABLE_TO_INSTALL_CONTENT_LANGUAGE="Немагчыма стварыць мову змесціва для мовы %s: %s." +JLIB_UPDATER_ERROR_COLLECTION_FOPEN="Дырэктыва PHP allow_url_fopen адключаная. Гэты параметр павінен быць уключаны, каб праграма абнаўлення працавала." +JLIB_UPDATER_ERROR_COLLECTION_OPEN_URL="Update: :Collection: Немагчыма адкрыць %s" +JLIB_UPDATER_ERROR_COLLECTION_PARSE_URL="Update: :Collection: не атрымалася разабраць %s" JLIB_UPDATER_ERROR_OPEN_UPDATE_SITE="Абнаўленне: не ўдалося адкрыць сайт абнаўлення #%d "%s", URL: %s." -JLIB_UTIL_ERROR_CONNECT_DATABASE="JDatabase: :getInstance: не ўдалося падлучыцца да базы даных
joomla.library: %1$s — %2$s." +JLIB_UTIL_ERROR_CONNECT_DATABASE="JDatabase: :getInstance: Немагчыма падключыцца да базы дадзеных.
joomla.library: %1$s - %2$s." ; Strings for the language debugger -JDEBUG_LANGUAGE_FILES_IN_ERROR="Памылкі аналізу ў моўных файлах" -JDEBUG_LANGUAGE_UNTRANSLATED_STRING="Неперакладзеныя радкі" +JDEBUG_LANGUAGE_FILES_IN_ERROR="Памылкі разбору ў моўных файлах" +JDEBUG_LANGUAGE_UNTRANSLATED_STRING="Не перакладзеныя радкі" JNONE="Не" ; Necessary for errors -ADMIN_EMAIL="Электронны адрас адміністратара" +ADMIN_EMAIL="E-mail адміністратара" ADMIN_PASSWORD="Пароль адміністратара" SITE_NAME="Назва сайта" @@ -305,10 +304,10 @@ WARNING="Папярэджанне" ; Javascript ajax error messages JLIB_JS_AJAX_ERROR_CONNECTION_ABORT="Падчас атрымання даных JSON адбылося перапыненне злучэння." -JLIB_JS_AJAX_ERROR_NO_CONTENT="Ніякае змесціва не вернутае." -JLIB_JS_AJAX_ERROR_OTHER="Узнікла памылка пры атрыманні даных JSON: код стану HTTP %d." -JLIB_JS_AJAX_ERROR_PARSE="Узнікла памылка аналізу прыведзеных даных JSON:
%s" -JLIB_JS_AJAX_ERROR_TIMEOUT="Перавышаны час чакання пры атрыманні даных JSON." +JLIB_JS_AJAX_ERROR_NO_CONTENT="Змест не вернуты." +JLIB_JS_AJAX_ERROR_OTHER="Адбылася памылка пры атрыманні даных JSON: код стану HTTP %s." +JLIB_JS_AJAX_ERROR_PARSE="Падчас апрацоўкі наступных даных JSON адбылася памылка разбору:
%s" +JLIB_JS_AJAX_ERROR_TIMEOUT="Перавышаны час чакання адказу падчас атрымання даных JSON." ; Field password messages JFIELD_PASSWORD_INDICATE_COMPLETE="Пароль прыняты" @@ -318,10 +317,10 @@ JFIELD_PASSWORD_TOO_LONG="Пароль занадта доўгі. Паролі JFIELD_PASSWORD_TOO_SHORT_N="Пароль занадта кароткі. Паролі павінны ўтрымліваць не менш %s сімвалаў." ; Javascript Form Validation Messages -JLIB_FORM_CONTAINS_INVALID_FIELDS="Форма не можа быць адпраўленая, бо ў ёй не стае патрэбных даных.
Выпраўце пазначаныя палі і паўтарыце спробу." -JLIB_FORM_FIELD_INVALID_VALUE="Гэтае значэнне няправільнае." +JLIB_FORM_CONTAINS_INVALID_FIELDS="Форма не можа быць адпраўлена, бо ў ёй адсутнічаюць неабходныя даныя.
Калі ласка, выпраўце пазначаныя палі і паўтарыце ізноў." +JLIB_FORM_FIELD_INVALID_VALUE="Гэта значэнне несапраўднае." JLIB_FORM_FIELD_REQUIRED_CHECK="Трэба выбраць адзін з варыянтаў." -JLIB_FORM_FIELD_REQUIRED_VALUE="Калі ласка, запоўніце гэтае поле." +JLIB_FORM_FIELD_REQUIRED_VALUE="Калі ласка, запоўніце гэта поле." ; Installation progress screen INSTL="Усталёўка" diff --git a/installation/language/be-BY/langmetadata.xml b/installation/language/be-BY/langmetadata.xml index ac52431c03707..14525a723ac59 100644 --- a/installation/language/be-BY/langmetadata.xml +++ b/installation/language/be-BY/langmetadata.xml @@ -1,7 +1,7 @@ - Belarusian (Belarus) - 5.4.1 + Belarusian (be-BY) + 6.0.1 2025-10 Joomla Belarus Community (C) 2005 Open Source Matters, Inc. @@ -11,7 +11,7 @@ Belarusian (be-BY) - Belarusian (Belarus) + Belarusian (be-BY) be-BY 0 diff --git a/installation/language/bg-BG/joomla.ini b/installation/language/bg-BG/joomla.ini index 695459299f881..0980c8e1458b2 100644 --- a/installation/language/bg-BG/joomla.ini +++ b/installation/language/bg-BG/joomla.ini @@ -32,6 +32,7 @@ BUILD_MIN_PHP_ERROR_TEXT="Вашият хост трябва да използв BUILD_MIN_PHP_ERROR_URL_TEXT="Помогнете ми да разреша това" ; Main Config +INSTL_CHANGE_INSTALL_LANG_SHORT="Промяна" INSTL_SELECT_INSTALL_LANG="Изберете език за инсталиране" INSTL_SELECT_LANGUAGE_TITLE="Изберете език" INSTL_SETUP_LOGIN_DATA="Настройка на данни за вход" @@ -42,13 +43,9 @@ INSTL_WARNJSON="За да инсталирате Джумла! успешно JS INSTL_DATABASE_SUPPORT="Поддръжка на база данни:" INSTL_JSON_SUPPORT_AVAILABLE="Поддръжка на JSON" INSTL_MB_LANGUAGE_IS_DEFAULT="MB Language е по подразбиране" -; Deprecated, will be removed with 6.0 -INSTL_MB_STRING_OVERLOAD_OFF="Изключено претоварване на MB String" INSTL_NOTICE_DATABASE_SUPPORT="Не бяха намерени поддържани бази данни." INSTL_NOTICE_JSON_SUPPORT_AVAILABLE="За да инсталирате Джумла! успешно JSON трябва да бъде активиран в РНР файла!" INSTL_NOTICE_MBLANG_NOTDEFAULT="Функцията PHP mbstring language не е зададена като неутрална. Тя може да бъде променена локално като добавите следния код: php_value mbstring.language neutral във Вашия .htaccess файл." -; Deprecated, will be removed with 6.0 -INSTL_NOTICE_MBSTRING_OVERLOAD_OFF="Функцията PHP mbstring е включена. Тя може да бъде изключена локално като добавите следния код: php_value mbstring.func_overload 0 във Вашия .htaccess файл." INSTL_NOTICE_PARSE_INI_FILE_AVAILABLE="Необходимите php функции parse_ini_file и parse_ini_strin са деактивирани на вашия сървър." INSTL_NOTICE_XML_SUPPORT="Поддръжката на XML не е налична. Това трябва да бъде активирано по подразбиране в php, но потребителите на Ubuntu може да се наложи да го инсталират, като извършатsudo apt-get install php-xml последвано от рестартиране на уеб сървъра." INSTL_NOTICE_ZLIB_COMPRESSION_SUPPORT="Zlib компресирането не е настроена. Може да бъде включена локално чрез въвежданеzlib.output_compression = On във вашяphp.ini файл." diff --git a/installation/language/bg-BG/langmetadata.xml b/installation/language/bg-BG/langmetadata.xml index b4c28082b069c..f8ff2f8e7d88e 100644 --- a/installation/language/bg-BG/langmetadata.xml +++ b/installation/language/bg-BG/langmetadata.xml @@ -1,7 +1,7 @@ Bulgarian (bg-BG) - 5.4.1 + 6.0.1 2025-10 Joomla! Bulgaria (C) 2005 Open Source Matters, Inc. diff --git a/installation/language/ca-ES/joomla.ini b/installation/language/ca-ES/joomla.ini index 9db327b53b32c..a423c85c7813c 100644 --- a/installation/language/ca-ES/joomla.ini +++ b/installation/language/ca-ES/joomla.ini @@ -5,56 +5,55 @@ ; Fatal error page ; These will be processed by the JavaScript Build -BUILD_FATAL_HEADER="Ho sentim, hi ha hagut un problema que no hem pogut recuperar." -BUILD_FATAL_LANGUAGE="Català ca_ES" ; IMPORTANT NOTE FOR TRANSLATORS: Do not literally translate this line, instead add the localised name of the language. For example French will be Français FR +BUILD_FATAL_HEADER="Ho sentim, hi ha hagut un problema del qual no ens hem pogut recuperar." +BUILD_FATAL_LANGUAGE="Anglès GB" ; IMPORTANT NOTE FOR TRANSLATORS: Do not literally translate this line, instead add the localised name of the language. For example French will be Français FR BUILD_FATAL_TEXT="El servidor ha retornat \"{{statusCode_statusText}}\"" BUILD_FATAL_URL_TEXT="Ajuda'm a resoldre això" ; Build incomplete error page ; These will be processed by the JavaScript Build BUILD_INCOMPLETE_HEADER="Configuració de l'entorn incomplerta" -BUILD_INCOMPLETE_LANGUAGE="Català ca_ES" ; IMPORTANT NOTE FOR TRANSLATORS: Do not literally translate this line, instead add the localised name of the language. For example French will be Français FR -BUILD_INCOMPLETE_TEXT="Sembla que estàs intentant executar Joomla! des del nostre repositori a git. Per a fer-ho, primer has de completar un parell de passos addicionals." +BUILD_INCOMPLETE_LANGUAGE="Anglès GB" ; IMPORTANT NOTE FOR TRANSLATORS: Do not literally translate this line, instead add the localised name of the language. For example French will be Français FR +BUILD_INCOMPLETE_TEXT="Sembla que està intentant executar Joomla! des del nostre repositori en Git. Per a fer-ho, primer has de completar un parell de passos addicionals." BUILD_INCOMPLETE_URL_TEXT="Més detalls" ; No XML PHP error page ; These will be processed by the JavaScript Build BUILD_NOXML_HEADER="Ho sentim, al PHP li falta una llibreria imprescindible" -BUILD_NOXML_LANGUAGE="Català ca_ES" ; IMPORTANT NOTE FOR TRANSLATORS: Do not literally translate this line, instead add the localised name of the language. For example French will be Français FR +BUILD_NOXML_LANGUAGE="Anglès GB" ; IMPORTANT NOTE FOR TRANSLATORS: Do not literally translate this line, instead add the localised name of the language. For example French will be Français FR BUILD_NOXML_TEXT="El teu servidor necessita fer servir PHP amb suport de la llibreria XML per executar aquesta versió de Joomla!" BUILD_NOXML_URL_TEXT="Ajuda'm a resoldre això" ; Minimum PHP error page ; These will be processed by the JavaScript Build -BUILD_MIN_PHP_ERROR_HEADER="Ho sentim, la teva versió de PHP no és compatible." -BUILD_MIN_PHP_ERROR_LANGUAGE="Català ca_ES" ; IMPORTANT NOTE FOR TRANSLATORS: Do not literally translate this line, instead add the localised name of the language. For example French will be Français FR +BUILD_MIN_PHP_ERROR_HEADER="Ho sentim, la teva versió de PHP no es compatible." +BUILD_MIN_PHP_ERROR_LANGUAGE="Anglès GB" ; IMPORTANT NOTE FOR TRANSLATORS: Do not literally translate this line, instead add the localised name of the language. For example French will be Français FR BUILD_MIN_PHP_ERROR_TEXT="Cal que el teu servidor utilitzi la versió de PHP {{phpversion}} o posterior per executar aquesta versió de Joomla." BUILD_MIN_PHP_ERROR_URL_TEXT="Ajuda'm a resoldre això" ; Main Config +INSTL_CHANGE_INSTALL_LANG="Canvia l'idioma d'instal·lació" +INSTL_CHANGE_INSTALL_LANG_SHORT="Canviar" +INSTL_SELECTED_INSTALL_LANGUAGE="Idioma actual: %s" INSTL_SELECT_INSTALL_LANG="Selecciona l'idioma d'instal·lació" INSTL_SELECT_LANGUAGE_TITLE="Triar idioma" INSTL_SETUP_LOGIN_DATA="Configurar dades d'entrada" -INSTL_WARNJAVASCRIPT="Avís! Cal que JavaScript estigui habilitat per a la correcta instal·lació de Joomla." -INSTL_WARNJSON="La teva instal·lació de PHP necessita tenir activat JSON perquè Joomla es pugui instal·lar!" +INSTL_WARNJAVASCRIPT="Avís! Cal que Javascript estigui habilitat per a la correcta instal·lació de Joomla." +INSTL_WARNJSON="La teva instal·lació de PHP necessita tenir activat JSON per Joomla per instal·lar-lo." ; Precheck view -INSTL_DATABASE_SUPPORT="Base de dades de Suport:" +INSTL_DATABASE_SUPPORT="Base de dades de suport: " INSTL_JSON_SUPPORT_AVAILABLE="Suport JSON" INSTL_MB_LANGUAGE_IS_DEFAULT="Idioma MB és l'idioma per defecte" -; Deprecated, will be removed with 6.0 -INSTL_MB_STRING_OVERLOAD_OFF="Sobrecàrrega Cadena MB deshabilitat" -INSTL_NOTICE_DATABASE_SUPPORT="No s'ha trobat cap base de dates compatible." -INSTL_NOTICE_JSON_SUPPORT_AVAILABLE="La teva instal·lació de PHP necessita tenir activat JSON perquè Joomla es pugui instal·lar!" -INSTL_NOTICE_MBLANG_NOTDEFAULT="L'idioma mbstring de PHP no està definit com a neutre. Això es pot definir localment introduint php_value mbstring.language neutral al fitxer .htaccess." -; Deprecated, will be removed with 6.0 -INSTL_NOTICE_MBSTRING_OVERLOAD_OFF="La sobrecàrrega de la funció PHP mbstring està quantificada. Això es pot deshabilitar escrivint php_value mbstring.func_overload 0 al teu arxiu .htaccess." -INSTL_NOTICE_PARSE_INI_FILE_AVAILABLE="Les funcions de PHP necessàries parse_ini_file and parse_ini_string estan deshabilitades al teu servidor." -INSTL_NOTICE_XML_SUPPORT="El suport XML no està disponible. Això hauria d'estar habilitat per defecte a PHP, però els usuaris d'Ubuntu poden necessitar instal·lar això des de la consola amb sudo apt-get install php-xml seguit d'un reinici del servidor web." +INSTL_NOTICE_DATABASE_SUPPORT="No es va trobar cap base de dates compatible." +INSTL_NOTICE_JSON_SUPPORT_AVAILABLE="La teva instal·lació de PHP necessita tenir activat JSON per Joomla per instal·lar-lo." +INSTL_NOTICE_MBLANG_NOTDEFAULT="La cadena de Llenguatge PHP mbstring no s'ajusta a la posició neutral. Això es pot establir a nivell local mitjançant la introducció de mbstring.language php_value neutral al teu arxiu .htaccess ." +INSTL_NOTICE_PARSE_INI_FILE_AVAILABLE="Les funciones de PHP necessàries parse_ini_file and parse_ini_string estan deshabilitades al teu servidor." +INSTL_NOTICE_XML_SUPPORT="No est'a disponible el suport de XML. Això hauria d'estar habilitat per defecte a PHP però els usuaris d'Ubuntu poden necessitar instal·lar-ho executant sudo apt-get install php-xml seguit d'una reiniciació del servidor." INSTL_NOTICE_ZLIB_COMPRESSION_SUPPORT="La compressió Zlib no està activada. Pot activar-se localment afegint zlib.output_compression = On al fitxer php.ini." INSTL_PARSE_INI_FILE_AVAILABLE="Suport Parser INI" INSTL_PRECHECK_ACTUAL="Actual" -INSTL_PRECHECK_DESC="Si algun d'aquests elements no està suportat, si us plau, emprèn les accions necessàries per a corregir-ho.
No es podrà instal·lar Joomla! fins que es compleixi amb els següents requisits." +INSTL_PRECHECK_DESC="Si algun d'aquests elements no està suportat, si us plau, emprengui les accions necessàries per a corregir-ho.
No podrà instal·lar Joomla! fins que es compleixin amb els següents requisits." INSTL_PRECHECK_DIRECTIVE="Directiva" INSTL_PRECHECK_RECOMMENDED="Recomanat" INSTL_PRECHECK_RECOMMENDED_SETTINGS_DESC="Aquesta configuració de PHP és la recomanada per assegurar una compatibilitat total amb Joomla." @@ -67,7 +66,7 @@ INSTL_ZLIB_COMPRESSION_SUPPORT="Suport a compressió Zlib" INSTL_DATABASE="Configuració de la Base de Dades" INSTL_DATABASE_ENCRYPTION_CA_LABEL="Ruta de l'arxiu CA" INSTL_DATABASE_ENCRYPTION_CERT_LABEL="Ruta de l'arxiu del certificat" -INSTL_DATABASE_ENCRYPTION_CIPHER_LABEL="Cipher Suite Suportada (opcional)" +INSTL_DATABASE_ENCRYPTION_CIPHER_LABEL="Cipher Suite suportat (opcional)" INSTL_DATABASE_ENCRYPTION_KEY_LABEL="Ruta a l'arxiu de clau privada" INSTL_DATABASE_ENCRYPTION_MODE_LABEL="Encriptació de connexió" INSTL_DATABASE_ENCRYPTION_MODE_VALUE_NONE="Per defecte (controlat pel servidor)" @@ -78,20 +77,20 @@ INSTL_DATABASE_ENCRYPTION_MSG_FILE_FIELD_BAD="L'arxiu introduït en el camp \"%s INSTL_DATABASE_ENCRYPTION_MSG_FILE_FIELD_EMPTY="El camp \"%s\"\ està buit o no conté una ruta vàlida." INSTL_DATABASE_ENCRYPTION_MSG_LOCALHOST="Has introduït \"localhost\" com a nom de l'amfitrió. La connexió a la base de dades amb xifrat de connexió pot fallar amb això. Si canvies \"localhost\" a \"127.0.0.1\" o \ \"::1\" o un nom d'amfitrió diferent, o canvia el camp \"Encriptació de la connexió\" a \"Default (controlat pel servidor) \". " INSTL_DATABASE_ENCRYPTION_MSG_SRV_NOT_SUPPORTS="El servidor de bases de dades no admet el xifrat de connexió. O bé activa el suport TLS (sovint anomenat SSL en documents) al servidor de bases de dades, o canvia el camp \"Encriptació de la connexió\ \" de nou a \"Per defecte (controlat per servidor) \"." -INSTL_DATABASE_ENCRYPTION_VERIFY_SERVER_CERT_LABEL="Verificar Certificat de Servidor" +INSTL_DATABASE_ENCRYPTION_VERIFY_SERVER_CERT_LABEL="Verificar certificat de servidor" INSTL_DATABASE_ERROR_POSTGRESQL_QUERY="Ha fallat la consulta de base de dades PostgreSQL." -INSTL_DATABASE_HOST_DESC="Indiqui el nom del servidor, normalment \"localhost\" o un nom proporcionat pel vostre servei d'allotjament." +INSTL_DATABASE_HOST_DESC="Indiqui el nom del servidor, normalment \"localhost\" o un nom proporcionat pel seu servei de hospedatge." INSTL_DATABASE_HOST_IS_NOT_LOCALHOST_CREATE_FILE="No vam ser capaços de crear l'arxiu. Si us plau, creï manualment un arxiu anomenat \"%1$s\" i pugi-ho a la carpeta \"%2$s\" del seu lloc Joomla i seleccioni \"%3$s\" per continuar." INSTL_DATABASE_HOST_IS_NOT_LOCALHOST_DELETE_FILE="Per confirmar que ets el propietari d'aquest lloc web, si us plau, esborra el fitxer anomenat \"%1$s\" que s'ha creat a la carpeta \"%2$s\" del teu lloc Joomla i selecciona \"%3$s\" per continuar." -INSTL_DATABASE_HOST_IS_NOT_LOCALHOST_GENERAL_MESSAGE="Esteu intentant utilitzar un amfitrió de base de dades que no es troba al vostre servidor local. Per motius de seguretat, heu de verificar la propietat del vostre compte d'allotjament web. Llegiu la documentació per obtenir més informació." +INSTL_DATABASE_HOST_IS_NOT_LOCALHOST_GENERAL_MESSAGE="Està intentant usar un servidor de base de dades que no està en el seu servidor local. Per raons de seguretat, ha de verificar la propietat del seu compte d'allotjament web. Si us plau, llegeixi la documentació per a més infomració." INSTL_DATABASE_HOST_LABEL="Nom del servidor" -INSTL_DATABASE_NAME_DESC="Introduïu el nom de la base de dades." +INSTL_DATABASE_NAME_DESC="Nom de la base de dades." INSTL_DATABASE_NAME_LABEL="Nom de la base de dades" INSTL_DATABASE_NAME_MSG_MYSQL="El nom de la base de dades no és vàlid, no ha de contenir el següents caràcters: \ /" INSTL_DATABASE_NAME_MSG_POSTGRES="El nom de la base de dades no és vàlid. Ha de començar amb una lletra, seguida de caràcters alfanumèrics." INSTL_DATABASE_NO_SCHEMA="No hi ha esquema de base de dades per a aquest tipus de base de dades." INSTL_DATABASE_PASSWORD_DESC="Introduïu la contrasenya de la base de dades que heu creat o una contrasenya proporcionada pel vostre amfitrió." -INSTL_DATABASE_PREFIX_DESC="Introduïu un prefix de taula o utilitzeu el generat aleatòriament." +INSTL_DATABASE_PREFIX_DESC="Introdueix un prefix de taula o utilitza el generat aleatòriament." INSTL_DATABASE_PREFIX_DUPLICATE_DESC="Si utilitzeu una base de dades existent amb taules amb el mateix prefix, Joomla canviarà el nom d'aquestes taules existents afegint el prefix \"bak_\"." INSTL_DATABASE_PREFIX_MSG="El prefix de taula ha de començar per una lletra, opcionalment seguit par caràcters alfanumèrics i per un guió baix." INSTL_DATABASE_RESPONSE_ERROR="El procés d'instal·lació ha fallat." @@ -103,13 +102,13 @@ INSTL_CONNECT_DB="Configuració de la connexió de base de dades" INSTL_INSTALL_JOOMLA="Instal·lar Joomla" ; Site View -INSTL_ADMIN_EMAIL_DESC="Introduïu l'adreça electrònica del superusuari del lloc web." -INSTL_ADMIN_PASSWORD_DESC="Estableix la contrasenya del teu compte de Superusuari." +INSTL_ADMIN_EMAIL_DESC="Introdueix l'adreça de correu del superusuari del lloc web." +INSTL_ADMIN_PASSWORD_DESC="Contrasenya del compte de superusuari." INSTL_ADMIN_PASSWORD_LENGTH="Introdueix un mínim de 12 caràcters." -INSTL_ADMIN_USERNAME_DESC="Estableix el nom d'usuari per al teu compte de Superusuari." +INSTL_ADMIN_USERNAME_DESC="Pots canviar el nom del Superadministrador per defecte." INSTL_ADMIN_USER_DESC="Introdueix el nom real del superusuari." -INSTL_LOGIN_DATA="Dades d'Inici de Sessió" -INSTL_SETUP_SITE_NAME="Configurar Nom del Lloc" +INSTL_LOGIN_DATA="Dades d'entrades" +INSTL_SETUP_SITE_NAME="Configurar nom del lloc" INSTL_SITE="Configuració Principal" INSTL_SITE_DEVMODE_LABEL="Hem detectat el mode de desenvolupador" INSTL_SITE_NAME_DESC="Introdueix el nom del teu lloc Joomla." @@ -119,83 +118,83 @@ INSTL_PUBLIC_FOLDER_DESC="Camí relatiu o absolut a la carpeta pública" INSTL_PUBLIC_FOLDER_DESC_SHORT="Camí relatiu o absolut a la carpeta pública" ; Complete view -INSTL_COMPLETE_ADD_EXTRA_LANGUAGE="Instal·la Idiomes Addicionals" -INSTL_COMPLETE_ADMIN_BTN="Obrir Administrador" -INSTL_COMPLETE_CONGRAT="Enhorabona!" +INSTL_COMPLETE_ADD_EXTRA_LANGUAGE="Instal·lar idiomes addicionals" +INSTL_COMPLETE_ADMIN_BTN="Obrir administració" +INSTL_COMPLETE_CONGRAT="Felicitats!" INSTL_COMPLETE_ERROR_FOLDER_DELETE="La carpeta \"%s\" no s'ha pogut esborrar. Si us plau, esborra manualment la carpeta." INSTL_COMPLETE_FINAL="S'ha completat la instal·lació" INSTL_COMPLETE_FINAL_DESC="S'ha completat la instal·lació de Joomla i està llesta per utilitzar." INSTL_COMPLETE_REMOVE_FOLDER="Elimini la carpeta \"%s\"" -INSTL_COMPLETE_SITE_BTN="Obrir Lloc" -INSTL_COMPLETE_TITLE="Enhorabona! El vostre lloc web Joomla està a punt." -INSTL_REMOVE_INST_FOLDER="Esteu segur que voleu suprimir? Si ho confirmeu, la carpeta \"%s\" s'esborrarà permanentment." +INSTL_COMPLETE_SITE_BTN="Obrir lloc" +INSTL_COMPLETE_TITLE="Felicitats! Joomla! ja està instal·lat." +INSTL_REMOVE_INST_FOLDER="Estàs segur que vols esborrar? Si confirmes la carpeta \"%s\" s'esborrarà permanentment." ; Languages view -INSTL_LANGUAGES="Instal·la Idiomes Addicionals" +INSTL_LANGUAGES="Instal·lar idiomes addicionals" INSTL_LANGUAGES_COLUMN_HEADER_LANGUAGE="Idioma" -INSTL_LANGUAGES_COLUMN_HEADER_LANGUAGE_SELECT="Selecciona l'Idioma" -INSTL_LANGUAGES_COLUMN_HEADER_LANGUAGE_TAG="Etiqueta de l'idioma" +INSTL_LANGUAGES_COLUMN_HEADER_LANGUAGE_SELECT="Triar idioma" +INSTL_LANGUAGES_COLUMN_HEADER_LANGUAGE_TAG="Etiqueta de l`idioma" INSTL_LANGUAGES_COLUMN_HEADER_VERSION="Versió" -INSTL_LANGUAGES_DESC="La interfície de Joomla està disponible en diversos idiomes. Trieu els idiomes que preferiu marcant les caselles de selecció i, a continuació, instal·leu-los seleccionant el botó \"Instal·la els Idiomes Seleccionats\".
Nota: Aquesta operació trigarà uns 10 segons a descarregar i instal·lar cada idioma. Per evitar temps d'espera, seleccioneu no més de 3 idiomes per instal·lar." -INSTL_LANGUAGES_MESSAGE_PLEASE_WAIT="Aquesta operació trigarà fins a 10 segons per idioma a completar-se.
Espereu mentre descarreguem i instal·lem els idiomes …" +INSTL_LANGUAGES_DESC="La interfície de Joomla està disponible en diversos idiomes. Triï els idiomes que desitgi seleccionant la seva casella de selecció i després premi el botó \"Instal·lar idioma seleccionat\".
Nota: aquesta operació pot trigar uns deu segons per idioma seleccionat a descarregar i instal·lar. Si us plau, no seleccioni més de 3 idiomes a instal·lar per evitar expiracions de temps." +INSTL_LANGUAGES_MESSAGE_PLEASE_WAIT="Aquesta operació pot trigar més de 10 segons per idioma per a completar-se.
Si us plau, esperi mentre es descarreguen i s'instal·len els idiomes...…" INSTL_LANGUAGES_NO_LANGUAGE_SELECTED="No s'han seleccionat idiomes per instal·lar." INSTL_LANGUAGES_SELECTED="Instal·leu els idiomes seleccionats" INSTL_LANGUAGES_WARNING_BACK_BUTTON="Tornar a la darrera etapa de la instal·lació" -INSTL_LANGUAGES_WARNING_NO_INTERNET="Joomla no s'ha pogut connectar al servidor d'idiomes. Si us plau, finalitzeu el procés d'instal·lació." -INSTL_LANGUAGES_WARNING_NO_INTERNET2="Nota: Podreu instal·lar idiomes més endavant amb l'Administrador de Joomla." +INSTL_LANGUAGES_WARNING_NO_INTERNET="Joomla! no ha pogut connectar amb el servidor d'idiomes. Finalitza el procés d'instal·lació." +INSTL_LANGUAGES_WARNING_NO_INTERNET2="Nota: Després podrà instal·lar altres idiomes des de l'administració de Joomla." ; Automated Updates Opt Out -INSTL_AUTOMATED_UPDATES="Actualitzacions Automatitzades" +INSTL_AUTOMATED_UPDATES="Actualitzacions automatitzades" INSTL_AUTOMATED_UPDATES_DESC="Joomla s'actualitza automàticament per a versions menors i de revisions.

Si us plau, tingueu en compte: Les actualitzacions automatitzades registraran el vostre lloc al servei respectiu proporcionat pel projecte Joomla!. El registre permet que el projecte Joomla accedeixi a informació sobre el vostre lloc i l'entorn del servidor, concretament l'URL del lloc, la versió de PHP, el tipus i la versió de la base de dades, la versió del CMS i el tipus i la versió del sistema operatiu del servidor. Aquesta informació només s'utilitza per millorar el servei.

Alternativament, podeu desactivar les actualitzacions automatitzades mitjançant el botó següent." INSTL_AUTOMATED_UPDATES_DISABLE="Desactiva les actualitzacions automàtiques" INSTL_COMPLETE_ERROR_AUTOMATED_UPDATES_DISABLE="No s'han pogut desactivar les actualitzacions automàtiques." INSTL_DISABLE_AUTOUPDATE="Esteu segur que voleu desactivar les actualitzacions automàtiques?" ; Default language view -INSTL_DEFAULTLANGUAGE_ADMINISTRATOR="Idioma per defecte de l'Administrador" -INSTL_DEFAULTLANGUAGE_ADMIN_COULDNT_SET_DEFAULT="Joomla no ha pogut establir l'idioma per defecte. L'anglès s'usarà com a predeterminat per a l'administració." -INSTL_DEFAULTLANGUAGE_ADMIN_SET_DEFAULT="Joomla ha establert %s com a idioma predeterminat de l'ADMINISTRADOR." +INSTL_DEFAULTLANGUAGE_ADMINISTRATOR="Idioma per defecte de l'administrador" +INSTL_DEFAULTLANGUAGE_ADMIN_COULDNT_SET_DEFAULT="Joomla no ha pogut assignar l'idioma com a predeterminat. S'usarà l'idioma anglès com a predeterminat per a l'administració." +INSTL_DEFAULTLANGUAGE_ADMIN_SET_DEFAULT="Joomla ha establert %s com a idioma per defecte per a la teva administració." INSTL_DEFAULTLANGUAGE_COLUMN_HEADER_LANGUAGE="Idioma" INSTL_DEFAULTLANGUAGE_COLUMN_HEADER_SELECT="Selecciona" INSTL_DEFAULTLANGUAGE_COLUMN_HEADER_TAG="Etiqueta" -INSTL_DEFAULTLANGUAGE_COULD_NOT_DOWNLOAD_PACKAGE="Joomla ha fallat en descarregar o desempaquetar el paquet d'idiomes de: %s" +INSTL_DEFAULTLANGUAGE_COULD_NOT_DOWNLOAD_PACKAGE="Joomla no va poder descarregar o descomprimir el paquet d'idioma des de: %s" INSTL_DEFAULTLANGUAGE_COULD_NOT_INSTALL_LANGUAGE="Joomla no ha pogut instal·lar l'idioma %s." -INSTL_DEFAULTLANGUAGE_DESC="Joomla ha instal·lat els idiomes següents. Seleccioneu l'idioma predeterminat que vulgueu per a l'Administrador de Joomla." -INSTL_DEFAULTLANGUAGE_DESC_FRONTEND="Joomla ha instal·lat els idiomes següents. Seleccioneu l'idioma predeterminat que vulgueu per al Lloc de Joomla." -INSTL_DEFAULTLANGUAGE_FRONTEND="Idioma predeterminat del Lloc Web" -INSTL_DEFAULTLANGUAGE_FRONTEND_COULDNT_SET_DEFAULT="Joomla no ha pogut establir l'idioma per defecte. L'anglès s'utilitzarà com a idioma per defecte per al LLOC WEB." -INSTL_DEFAULTLANGUAGE_FRONTEND_SET_DEFAULT="Joomla ha establert %s com a idioma per defecte pel teu LLOC WEB." +INSTL_DEFAULTLANGUAGE_DESC="Joomla ha instal·lat els següents idiomes. Si us plau, seleccioni l'idioma que desitja usar com a predeterminat per a l'administració." +INSTL_DEFAULTLANGUAGE_DESC_FRONTEND="Joomla ha instal·lat els següents idiomes. Si us plau, seleccioni l'idioma que desitja usar com a predeterminat per a laweb." +INSTL_DEFAULTLANGUAGE_FRONTEND="Idioma per defecte del lloc web" +INSTL_DEFAULTLANGUAGE_FRONTEND_COULDNT_SET_DEFAULT="Joomla no ha pogut assignar l'idioma com a predeterminat. S'usarà l'idioma anglès com el predeterminat per al lloc web." +INSTL_DEFAULTLANGUAGE_FRONTEND_SET_DEFAULT="Joomla ha establert %s com a idioma per defecte pel teu lloc web." INSTL_DEFAULTLANGUAGE_SET_DEFAULT_LANGUAGE="Assignar l'idioma predeterminat" -INSTL_DEFAULTLANGUAGE_TRY_LATER="Podreu instal·lar-lo més endavant amb l'Administrador de Joomla." +INSTL_DEFAULTLANGUAGE_TRY_LATER="Pots instal·lar-ho més endavant amb l'administració de Joomla." -INSTL_DEFAULTLANGUAGE_NATIVE_LANGUAGE_NAME="Català (ca-ES)" ; IMPORTANT NOTE FOR TRANSLATORS: Do not literally translate this line, instead add the localised name of the language. For example Spanish will be Español +INSTL_DEFAULTLANGUAGE_NATIVE_LANGUAGE_NAME="Català (ES)" ; IMPORTANT NOTE FOR TRANSLATORS: Do not literally translate this line, instead add the localised name of the language. For example Spanish will be Español ; Database Model -INSTL_DATABASE_COULD_NOT_CONNECT="No s'ha pogut connectar a la base de dades. El connector ha retornat el missatge d'error: %s" -INSTL_DATABASE_COULD_NOT_CREATE_DATABASE="L'instal·lador no s'ha pogut connectar a la base de dades especificada i no ha pogut crear-la. Verifiqueu la configuració i, si cal, creeu la base de dades manualment." -INSTL_DATABASE_COULD_NOT_REFRESH_MANIFEST_CACHE="No s'ha pogut actualitzar la memòria cau del manifest per a l'extensió: %s" -INSTL_DATABASE_ERROR_BACKINGUP="S'han produït alguns errors en fer una còpia de seguretat de la base de dades." +INSTL_DATABASE_COULD_NOT_CONNECT="No es pot connectar amb la base de dades. El connector va retornar el missatge d'error %s" +INSTL_DATABASE_COULD_NOT_CREATE_DATABASE="L'instal·lador no pot connectar a la base de dades especificada i no ha pogut crear la base de dades. Comprova la configuració i si és necessari crea manualment la base de dades." +INSTL_DATABASE_COULD_NOT_REFRESH_MANIFEST_CACHE="No s'ha pogut actualitzar la memòria cau per l'extensió: %s" +INSTL_DATABASE_ERROR_BACKINGUP="Ha hagut alguns errors en la còpia de seguretat de la base de dades." INSTL_DATABASE_ERROR_CREATE="S'ha produït un error quan s'intentava crear la base de dades %s.
Pot ser que l'usuari no tingui privilegis suficients per a crear una base de dades. Tal vegada necessita crear la base de dades abans d'intentar instal·lar Joomla" -INSTL_DATABASE_ERROR_DELETE="S'han produït alguns errors en suprimir la base de dades." +INSTL_DATABASE_ERROR_DELETE="Ha hagut alguns errors esborrant la base de dades." INSTL_DATABASE_ERROR_READING_SQL_FILE="No s'ha pogut llegir el fitxer SQL." INSTL_DATABASE_FIELD_VALUE_BACKUP="Còpia de seguretat" INSTL_DATABASE_FIELD_VALUE_REMOVE="Elimina" INSTL_DATABASE_FILE_DOES_NOT_EXIST="El fitxer %s no existeix." -INSTL_DATABASE_FIX_LOWERCASE="El prefix de la taula ha de ser en minúscula per a PostgreSQL." -INSTL_DATABASE_FIX_TOO_LONG="El prefix de la taula MySQL ha de tenir un màxim de 15 caràcters." -INSTL_DATABASE_INVALID_DB_DETAILS="Les dades de la base de dades proporcionades són incorrectes i/o buides." -INSTL_DATABASE_INVALID_MARIADB_VERSION="Necessiteu MariaDB %1$s o superior per continuar la instal·lació. La vostra versió és: %2$s" -INSTL_DATABASE_INVALID_MYSQLI_VERSION="Necessiteu MySQL %1$s o superior per continuar la instal·lació. La vostra versió és: %2$s" -INSTL_DATABASE_INVALID_MYSQL_VERSION="Necessiteu MySQL %1$s o superior per continuar la instal·lació. La vostra versió és: %2$s" +INSTL_DATABASE_FIX_LOWERCASE="El prefix ha de ser minúscula per Postgresql." +INSTL_DATABASE_FIX_TOO_LONG="El prefix de taula MySQL ha de tenir un màxim de 15 caràcters." +INSTL_DATABASE_INVALID_DB_DETAILS="Els detalls de la base de dades proporcionades són incorrectes o inexistents." +INSTL_DATABASE_INVALID_MARIADB_VERSION="Necessites MariaDB %1$s. o superior per continuar la instal·lació. La teva versió és: %2$s" +INSTL_DATABASE_INVALID_MYSQLI_VERSION="Necessites MySQL %1$s. o superior per continuar la instal·lació. La teva versió és: %2$s" +INSTL_DATABASE_INVALID_MYSQL_VERSION="Necessites MySQL %1$s. o superior per continuar la instal·lació. La teva versió és: %2$s" INSTL_DATABASE_INVALID_PGSQL_VERSION="Necessites Posrgre %1$s. o superior per continuar la instal·lació. La teva versió és: %2$s" -INSTL_DATABASE_INVALID_POSTGRESQL_VERSION="Necessiteu PostgreSQL %1$s o superior per continuar la instal·lació. La vostra versió és: %2$s" +INSTL_DATABASE_INVALID_POSTGRESQL_VERSION="Necessites Posrgre %1$s. o superior per continuar la instal·lació. La teva versió és: %2$s" INSTL_DATABASE_INVALID_TYPE="Si us plau,, selecciona el tipus de base de dades." -INSTL_DATABASE_NAME_INVALID_CHAR="Cap identificador de MySQL pot tenir un valor NULL ASCII(0x00)." -INSTL_DATABASE_NAME_INVALID_SPACES="Els noms de les bases de dades i les taules MySQL no poden començar ni acabar amb espais." -INSTL_DATABASE_NAME_TOO_LONG="El nom de la base de dades MySQL ha de tenir un màxim de 64 caràcters." +INSTL_DATABASE_NAME_INVALID_CHAR="Cap identificador de MySQL pot contenir un ASCII NUL (0x00)." +INSTL_DATABASE_NAME_INVALID_SPACES="Els noms de base de dades MySQL i els noms de taules no poden començar ni acabar amb espais." +INSTL_DATABASE_NAME_TOO_LONG="El nom de base de dades MySQL ha de tenir un màxim de 64 caràcters." ; Controllers -INSTL_COOKIES_NOT_ENABLED="Sembla que les galetes no estan habilitades al vostre client de navegador. No podreu instal·lar l'aplicació amb aquesta funció desactivada. Alternativament, també podria haver-hi un problema amb el fitxer session.save_path del servidor. Si aquest és el cas, consulteu el vostre proveïdor d'allotjament si no sabeu com comprovar-ho o solucionar-ho vosaltres mateixos." +INSTL_COOKIES_NOT_ENABLED="Les galetes no semblen estar habilitades al teu navegador. No seràs capaç d'instal·lar Joomla amb aquesta característica desactivada. Alternativament, també podria ser un problema amb session.save_path del servidor . Si és aquest el cas, si us plau consulta el teu hostatjament si no saps com comprovar-ho o reparar-ho tu." INSTL_HEADER_ERROR="Error" ; Helpers @@ -203,27 +202,27 @@ INSTL_PAGE_TITLE="Instal·lador de Joomla" ; Configuration model INSTL_ERROR_CONNECT_DB="No es pot connectar amb la base de dades. El connector va retornar el número %s." -INSTL_STD_OFFLINE_MSG="Aquest lloc web està fora de servei per manteniment.
Torneu-ho a comprovar aviat." +INSTL_STD_OFFLINE_MSG="Aquest lloc està desactivat per manteniment.
Torna més tard, gràcies." ; Languages model -INSTL_ERROR_INVALID_URL="URL no vàlida" +INSTL_ERROR_INVALID_URL="Adreça URL no vàlida" ; Others -INSTL_CONFPROBLEM="El fitxer o carpeta de configuració no és escrivible o hi ha hagut un problema en crear el fitxer de configuració. Haureu de carregar el codi següent manualment. Seleccioneu a l'àrea de text per ressaltar tot el codi i, a continuació, enganxeu-lo en un fitxer de text nou. Anomeneu aquest fitxer 'configuration.php' i pengeu-lo a la carpeta arrel del vostre lloc web." -INSTL_DISPLAY_ERRORS="Mostrar Errors" +INSTL_CONFPROBLEM="L'arxiu de configuració o directori no té permís d'escriptura o ha hagut un problema en crear el fitxer de configuració. Hauràs de pujar el següent codi a mà. Fes clic a l'àrea de text per ressaltar tot el codi i enganxa'l en un nou fitxer de text. Anomena'l 'configuration.php' i puja'l a la carpeta arrel del lloc." +INSTL_DISPLAY_ERRORS="Mostrar errors" INSTL_ERROR="Error" -INSTL_ERROR_DB="S'han produït alguns errors en omplir la base de dades: %s." +INSTL_ERROR_DB="S'ha produït un error en omplir la base de dades. %s." INSTL_ERROR_INITIALISE_SCHEMA="No es pot inicialitzar l'esquema de la base de dades." -INSTL_EXTENSION_AVAILABLE="%s Disponible" -INSTL_FILE_UPLOADS="Càrregues de Fitxers" +INSTL_EXTENSION_AVAILABLE="%s disponible" +INSTL_FILE_UPLOADS="Pujada de fitxers" INSTL_GNU_GPL_LICENSE="Llicència General Pública GNU" INSTL_HELP_LINK="Ajuda amb la instal·lació de Joomla" INSTL_NOTICE_NEEDSTOBEWRITABLE="Encara pots continuar amb la instal·lació si modifiques els permisos." -INSTL_OUTPUT_BUFFERING="Memòria intermèdia de sortida" +INSTL_OUTPUT_BUFFERING="buffer de sortida" INSTL_PHP_VERSION="Versió PHP" INSTL_PHP_VERSION_NEWER="Versió de PHP >= %s" -INSTL_PROCESS_BUSY="El procés està en curs. Si us plau, espereu …" -INSTL_SESSION_AUTO_START="Inici Automàtic de la Sessió" +INSTL_PROCESS_BUSY="Procés realitzant-se. Espera…" +INSTL_SESSION_AUTO_START="Autoinici de sessió" INSTL_WRITABLE="Permisos insuficients per crear %s." INSTL_ZIP_SUPPORT_AVAILABLE="Suport nadiu ZIP" @@ -238,16 +237,16 @@ JGLOBAL_LANGUAGE_VERSION_NOT_PLATFORM="El paquet d'idioma no concorda amb aquest JGLOBAL_SELECT_AN_OPTION="Selecciona una opció" JGLOBAL_SELECT_NO_RESULTS_MATCH="Cap resultat no coincideix" JGLOBAL_SELECT_SOME_OPTIONS="Selecciona algunes opcions" -JHIDEPASSWORD="Amaga la Contrasenya" -JINVALID_TOKEN="La petició més recent s'ha denegat perquè contenia un codi de seguretat no vàlid. Actualitzeu la pàgina i torneu-ho a provar." -JINVALID_TOKEN_NOTICE="Els testimonis de seguretat no coincideixen. La sol·licitud ha estat avortada per evitar qualsevol violació de la seguretat. Torna-ho a provar." +JHIDEPASSWORD="Amagar contrasenya" +JINVALID_TOKEN="La petició més recent s'ha denegat perquè contenia un codi de seguretat no vàlid. Actualitza la pàgina i torna-ho a provar." +JINVALID_TOKEN_NOTICE="El testimoni de seguretat no coincideix. La sol·licitud ha estat avortada per evitar qualsevol violació de la seguretat. Torna-ho a provar." JNEXT="Següent" JNO="No" -JNOTICE="Avís" +JNOTICE="Informació" JOFF="Desactivat" JON="Activat" JPREVIOUS="Anterior" -JSHOWPASSWORD="Mostrar Contrasenya" +JSHOWPASSWORD="Mostrar contrasenya" JSITE="Lloc" JSKIP="Ometre" JUSERNAME="Nom d'usuari" @@ -255,39 +254,39 @@ JYES="Sí" ; Framework strings necessary when no lang pack is available JLIB_DATABASE_ERROR_CONNECT_MYSQL="No s'ha pogut connectar a MySQL." -JLIB_DATABASE_ERROR_DATABASE="S'ha produït un error a la base de dades." +JLIB_DATABASE_ERROR_DATABASE="Ha hagut un error a la base de dades." JLIB_DATABASE_ERROR_LOAD_DATABASE_DRIVER="No s'ha pogut carregar el controlador de la base de dades: %s" -JLIB_DATABASE_ERROR_VALID_MAIL="L'adreça electrònica que has introduït no és vàlida. Si us plau, introdueix una altra adreça electrònica." +JLIB_DATABASE_ERROR_VALID_MAIL="L'adreça de correu que has introduït no és vàlida. Introdueix una adreça de correu electrònic diferent." JLIB_ENVIRONMENT_SESSION_EXPIRED="La teva sessió ha expirat, si us plau , recarrega la pàgina." JLIB_FILESYSTEM_ERROR_PATH_IS_NOT_A_FOLDER="%1$s: La ruta no és una carpeta. Ruta: %2$s" -JLIB_FORM_FIELD_INVALID="Camp no vàlid: " +JLIB_FORM_FIELD_INVALID="Camp no vàlid: " JLIB_FORM_VALIDATE_FIELD_INVALID="Camp no vàlid: %s" JLIB_FORM_VALIDATE_FIELD_REQUIRED="Camp requerit: %s" -JLIB_INSTALLER_ABORT="S'està aturant la instal·lació de l'idioma: %s" +JLIB_INSTALLER_ABORT="Aturant la instal·lació de l'idioma: %s" JLIB_INSTALLER_ABORT_CREATE_DIRECTORY="Extensió %1$s: No s'ha pogut crear el directori: %2$s" JLIB_INSTALLER_ABORT_NOINSTALLPATH="La ruta d'instal·lació no existeix." JLIB_INSTALLER_ABORT_PACK_INSTALL_ERROR_EXTENSION="Paquet %1$s: S'ha produït un error en instal·lar una extensió: %2$s." -JLIB_INSTALLER_ABORT_PACK_INSTALL_NO_FILES="Paquet %s: No hi ha fitxers per instal·lar!" +JLIB_INSTALLER_ABORT_PACK_INSTALL_NO_FILES="Paquet %s: no hi ha arxius a instal·lar!" JLIB_INSTALLER_ERROR_DOWNLOAD_SERVER_CONNECT="Error connectant al servidor: %s" JLIB_INSTALLER_ERROR_FAIL_COPY_FILE="JInstaller: :Instal·lació: Error en copiar el fitxer %1$s a %2$s." JLIB_INSTALLER_INSTALL="Instal·la" JLIB_INSTALLER_NOT_ERROR="Si l'error està relacionat amb la instal·lació dels fitxers d'idioma de TinyMCE, no tindrà efecte en la instal·lació dels idiomes. Alguns paquets d'idioma creats abans de Joomla! 3.2.0 poden intentar instal·lar fitxers d'idioma per separat de TinyMCE. Com que ara s'inclouen al nucli, ja no cal instal·lar-los." JLIB_INSTALLER_WARNING_UNABLE_TO_INSTALL_CONTENT_LANGUAGE="No es pot crear un idioma de contingut per a l'idioma %s: %s." JLIB_UPDATER_ERROR_COLLECTION_FOPEN="La configuració de PHP allow_url_fopen està desactivada. Aquesta configuració ha d'estar activada perquè l'actualitzador funcioni." -JLIB_UPDATER_ERROR_COLLECTION_OPEN_URL="Update: :Collection: No s'ha pogut obrir %s" +JLIB_UPDATER_ERROR_COLLECTION_OPEN_URL="Update: :Collection: No es pot obrir %s" JLIB_UPDATER_ERROR_COLLECTION_PARSE_URL="Update: :Collection: No s'ha pogut analitzar %s" JLIB_UPDATER_ERROR_OPEN_UPDATE_SITE="Actualització: No s'ha pogut obrir el lloc d'actualització #%d "%s", URL: %s." JLIB_UTIL_ERROR_CONNECT_DATABASE="JDatabase: :getInstance: No s'ha pogut connectar amb la base de dades
joomla.library: %1$s - %2$s." ; Strings for the language debugger -JDEBUG_LANGUAGE_FILES_IN_ERROR="Anàlisi d'errors en fitxers d'idioma" +JDEBUG_LANGUAGE_FILES_IN_ERROR="Parsejant errors als arxius d`idioma" JDEBUG_LANGUAGE_UNTRANSLATED_STRING="Cadenes sense traduir" JNONE="Cap" ; Necessary for errors -ADMIN_EMAIL="Correu electrònic de l'Administrador" -ADMIN_PASSWORD="Contrasenya d'Administrador" -SITE_NAME="Nom del Lloc" +ADMIN_EMAIL="Email de l'Administrador" +ADMIN_PASSWORD="Contrasenya d'administrador" +SITE_NAME="Nom del lloc" ; Database types (allows for a more descriptive label than the internal name) MYSQL="MySQL (DOP)" diff --git a/installation/language/ca-ES/langmetadata.xml b/installation/language/ca-ES/langmetadata.xml index 5a14371ad6ebb..8d7614dd91973 100644 --- a/installation/language/ca-ES/langmetadata.xml +++ b/installation/language/ca-ES/langmetadata.xml @@ -1,7 +1,7 @@ Catalan (ca-ES) - 5.4.1 + 6.0.1 2025-10 Catalan [ca-ES] Translation Team (C) 2005 Open Source Matters, Inc. @@ -11,7 +11,7 @@ Catalan (ca-ES) - Català (ca-ES) + Catalan (ca-ES) ca-ES 0 diff --git a/installation/language/cs-CZ/joomla.ini b/installation/language/cs-CZ/joomla.ini index 4ef29d6b2537d..90aa0afdcfb9a 100644 --- a/installation/language/cs-CZ/joomla.ini +++ b/installation/language/cs-CZ/joomla.ini @@ -32,6 +32,9 @@ BUILD_MIN_PHP_ERROR_TEXT="Pro spuštění této verze Joomla musí váš hostite BUILD_MIN_PHP_ERROR_URL_TEXT="Pomozte mi to vyřešit" ; Main Config +INSTL_CHANGE_INSTALL_LANG="Změnit instalační jazyk" +INSTL_CHANGE_INSTALL_LANG_SHORT="Změnit" +INSTL_SELECTED_INSTALL_LANGUAGE="Aktuální jazyk: %s" INSTL_SELECT_INSTALL_LANG="Vyberte jazyk pro instalaci" INSTL_SELECT_LANGUAGE_TITLE="Zvolte jazyk" INSTL_SETUP_LOGIN_DATA="Nastavit přihlašovací údaje" @@ -42,13 +45,9 @@ INSTL_WARNJSON="Aby mohla být Joomla! nainstalována, je třeba mít v PHP povo INSTL_DATABASE_SUPPORT="Podpora databáze:" INSTL_JSON_SUPPORT_AVAILABLE="Podpora JSON" INSTL_MB_LANGUAGE_IS_DEFAULT="MB Language je Výchozí" -; Deprecated, will be removed with 6.0 -INSTL_MB_STRING_OVERLOAD_OFF="MB String Overload vypnuto" INSTL_NOTICE_DATABASE_SUPPORT="Nebyly nalezeny žádné podporované databáze." INSTL_NOTICE_JSON_SUPPORT_AVAILABLE="Aby mohla být Joomla! nainstalována, je třeba mít v PHP povolen JSON!" INSTL_NOTICE_MBLANG_NOTDEFAULT="Proměnná PHP mbstring language není nastavena na hodnotu neutral. Můžete to změnit zadáním hodnoty php_value mbstring.language neutral do souboru .htaccess." -; Deprecated, will be removed with 6.0 -INSTL_NOTICE_MBSTRING_OVERLOAD_OFF="Je zapnuta funkce PHP mbstring. Lokálně ji můžete vypnout zadáním hodnoty php_value mbstring.func_overload 0 do souboru .htaccess." INSTL_NOTICE_PARSE_INI_FILE_AVAILABLE="Požadované php funkce parse_ini_file a parse_ini_string jsou na vašem serveru zakázány." INSTL_NOTICE_XML_SUPPORT="Podpora XML není k dispozici. Toto by mělo být ve výchozím nastavení povoleno u uživatelů php, ale Ubuntu možná bude třeba nainstalovat tak, že sudo apt-get nainstaluje php-xml a poté restartuje webový server." INSTL_NOTICE_ZLIB_COMPRESSION_SUPPORT="Zlib komprese není nastavena. Lze ji lokálně zapnout zadáním zlib.output_compression = On do souboru php.ini." @@ -236,11 +235,11 @@ JERROR_LAYOUT_ERROR_HAS_OCCURRED_WHILE_PROCESSING_YOUR_REQUEST="Při zpracován JGLOBAL_ISFREESOFTWARE="%s je svobodný software šířený pod GNU General Public License." JGLOBAL_LANGUAGE_VERSION_NOT_PLATFORM="Jazykový balíček neodpovídá nainstalované verzi Joomla!, některé řetězce mohou chybět a budou zobrazeny v angličtině." JGLOBAL_SELECT_AN_OPTION="Vybrat možnost" -JGLOBAL_SELECT_NO_RESULTS_MATCH="Nebyly nalezeny žádné odpovídající výsledky" +JGLOBAL_SELECT_NO_RESULTS_MATCH="Nejsou odpovídající výsledky" JGLOBAL_SELECT_SOME_OPTIONS="Vyberte nějaké možnosti" JHIDEPASSWORD="Skrýt heslo" JINVALID_TOKEN="Nejnovější požadavek byl odmítnut, protože obsahuje neplatný bezpečnostní symbol. Obnovte stránku a zkuste to znovu." -JINVALID_TOKEN_NOTICE="Bezpečnostní klíče se neshodují. Požadavek byl přerušen, aby se zabránilo narušení bezpečnosti. Opakujte akci." +JINVALID_TOKEN_NOTICE="Bezpečnostní token se neshodoval. Požadavek byl přerušen, aby se zabránilo jakémukoli narušení bezpečnosti. Zkuste to znovu." JNEXT="Následující" JNO="Ne" JNOTICE="Upozornění" @@ -263,7 +262,7 @@ JLIB_FILESYSTEM_ERROR_PATH_IS_NOT_A_FOLDER="%1$s: Cesta není složka. Cesta: %2 JLIB_FORM_FIELD_INVALID="Neplatné pole:  " JLIB_FORM_VALIDATE_FIELD_INVALID="Neplatné pole: %s" JLIB_FORM_VALIDATE_FIELD_REQUIRED="Povinné pole: %s" -JLIB_INSTALLER_ABORT="Instalace jazyku byla přerušena: %s" +JLIB_INSTALLER_ABORT="Instalace jazyka byla přerušena: %s" JLIB_INSTALLER_ABORT_CREATE_DIRECTORY="%1$s rozšíření: Nepodařilo se vytvořit složku %2$s" JLIB_INSTALLER_ABORT_NOINSTALLPATH="Cesta pro instalaci neexistuje" JLIB_INSTALLER_ABORT_PACK_INSTALL_ERROR_EXTENSION="Balíček %1$s: Došlo k chybě při instalaci rozšíření: %2$s" @@ -304,7 +303,7 @@ NOTICE="Oznámení" WARNING="Varování" ; Javascript ajax error messages -JLIB_JS_AJAX_ERROR_CONNECTION_ABORT="Při načítání dat JSON došlo k přerušení připojení." +JLIB_JS_AJAX_ERROR_CONNECTION_ABORT="Při načítání dat formátu JSON došlo k přerušení spojení." JLIB_JS_AJAX_ERROR_NO_CONTENT="Nebyl vrácen žádný obsah." JLIB_JS_AJAX_ERROR_OTHER="Při načítání dat JSON došlo k chybě: stavový kód HTTP %d." JLIB_JS_AJAX_ERROR_PARSE="Při zpracování následující data JSON došlo k chybě parsování:
%s" diff --git a/installation/language/cs-CZ/langmetadata.xml b/installation/language/cs-CZ/langmetadata.xml index 8029965aef24d..58e861402ac75 100644 --- a/installation/language/cs-CZ/langmetadata.xml +++ b/installation/language/cs-CZ/langmetadata.xml @@ -1,7 +1,7 @@ Czech (Čeština) - 5.4.1 + 6.0.1 2025-10 Czech Translation Team (C) 2005 Open Source Matters, Inc. diff --git a/installation/language/cy-GB/joomla.ini b/installation/language/cy-GB/joomla.ini index f948ff1b7b481..49210ebe52061 100644 --- a/installation/language/cy-GB/joomla.ini +++ b/installation/language/cy-GB/joomla.ini @@ -32,6 +32,7 @@ BUILD_MIN_PHP_ERROR_TEXT="Mae eich lletywr angen defnyddio fersiwn PHP {{phpvers BUILD_MIN_PHP_ERROR_URL_TEXT="Helpwch fi i ddatrys hyn" ; Main Config +INSTL_CHANGE_INSTALL_LANG_SHORT="Newid" INSTL_SELECT_INSTALL_LANG="Dewiswch Iaith Gosod" INSTL_SELECT_LANGUAGE_TITLE="Dewiswch iaith" INSTL_SETUP_LOGIN_DATA="Ffurfweddu Data Mewngofnodi" @@ -42,13 +43,9 @@ INSTL_WARNJSON="Mae’n rhaid galluogi JSON yn eich gosodiad o PHP er mwyn gosod INSTL_DATABASE_SUPPORT="Cymorth cronfa ddata:" INSTL_JSON_SUPPORT_AVAILABLE="Cymorth JSON" INSTL_MB_LANGUAGE_IS_DEFAULT="Iaith MB yw'r diofyn" -; Deprecated, will be removed with 6.0 -INSTL_MB_STRING_OVERLOAD_OFF="Cyfarwyddeb MB String Overload wedi'i ddiffodd" INSTL_NOTICE_DATABASE_SUPPORT="Methu canfod cronfa ddata da ni'n gefnogi." INSTL_NOTICE_JSON_SUPPORT_AVAILABLE="Mae’n rhaid galluogi JSON yn eich gosodiad o PHP er mwyn gosod Joomla!" INSTL_NOTICE_MBLANG_NOTDEFAULT="Nid yw iaith PHP mbstring wedi ei osod yn niwtral. Mae'n bosibl gosod hwn yn lleol trwy roi php_value mbstring.language neutral yng nghod eich ffeil .htaccess." -; Deprecated, will be removed with 6.0 -INSTL_NOTICE_MBSTRING_OVERLOAD_OFF="Mae swyddogaeth PHP mbstring overload wedi ei osod. Gallwch ddiffodd hwn yn lleol trwy fewnbynnu php_value mbstring.func_overload 0 yng nghod eich ffeil .htaccess." INSTL_NOTICE_PARSE_INI_FILE_AVAILABLE="Nid yw'r swyddogaethau php gofynnol parse_ini_file a parse_ini_string wedi eu galluogi ar eich gweinydd." INSTL_NOTICE_XML_SUPPORT="Does dim cefnogaeth ar gyfer XML ar gael. Dylai hyn fod wedi ei alluogi yn ddiofyn yn php ond gall fod angen i ddefnyddwyr Ubuntu ei osod drwy ddefnyddio sudo apt-get install php-xml ac yna ail gychwyn y gweinydd gwe." INSTL_NOTICE_ZLIB_COMPRESSION_SUPPORT="Nid yw cywasgu Zlib wedi ei ffurfweddu. Gelir rhoi hyn ymlaen yn lleol drwy roi zlib.output_compression = On yn eich ffeil php.ini." diff --git a/installation/language/cy-GB/langmetadata.xml b/installation/language/cy-GB/langmetadata.xml index aefbd5da75a3a..c90ccd339a0c3 100644 --- a/installation/language/cy-GB/langmetadata.xml +++ b/installation/language/cy-GB/langmetadata.xml @@ -1,7 +1,7 @@ Welsh (United Kingdom) - 5.4.1 + 6.0.1 2025-10 Joomla! Project - Welsh Translation Team (C) 2005 Open Source Matters, Inc. diff --git a/installation/language/da-DK/joomla.ini b/installation/language/da-DK/joomla.ini index c5ef87ec4f1f9..f94c25db8e954 100644 --- a/installation/language/da-DK/joomla.ini +++ b/installation/language/da-DK/joomla.ini @@ -32,6 +32,9 @@ BUILD_MIN_PHP_ERROR_TEXT="Din host skal anvende PHP version {{phpversion}} eller BUILD_MIN_PHP_ERROR_URL_TEXT="Hjælp mig med at løse dette" ; Main Config +INSTL_CHANGE_INSTALL_LANG="Skift installationssprog" +INSTL_CHANGE_INSTALL_LANG_SHORT="Skift" +INSTL_SELECTED_INSTALL_LANGUAGE="Aktuelt sprog: %s" INSTL_SELECT_INSTALL_LANG="Vælg installationssprog" INSTL_SELECT_LANGUAGE_TITLE="Vælg sprog" INSTL_SETUP_LOGIN_DATA="Setup log på data" @@ -42,13 +45,9 @@ INSTL_WARNJSON="Din PHP installation skal have JSON aktiveret for at Joomla kan INSTL_DATABASE_SUPPORT="Database understøttelse:" INSTL_JSON_SUPPORT_AVAILABLE="JSON understøttelse" INSTL_MB_LANGUAGE_IS_DEFAULT="MB sprog er standard" -; Deprecated, will be removed with 6.0 -INSTL_MB_STRING_OVERLOAD_OFF="MB strenge overload off" INSTL_NOTICE_DATABASE_SUPPORT="Ingen understøttet database blev fundet." INSTL_NOTICE_JSON_SUPPORT_AVAILABLE="Din PHP installation skal have JSON aktiveret for at Joomla kan installeres!" INSTL_NOTICE_MBLANG_NOTDEFAULT="PHP mbstring sprog er ikke sat til neutral. Dette kan indstilles lokalt ved at indtaste php_value mbstring.language neutral i .htaccess" -; Deprecated, will be removed with 6.0 -INSTL_NOTICE_MBSTRING_OVERLOAD_OFF="PHP mbstring function overload er indstillet. Dette kan deaktiveres lokalt ved at indtaste php_value mbstring.func_overload 0 i .htaccess." INSTL_NOTICE_PARSE_INI_FILE_AVAILABLE="De krævede php funktioner parse_ini_file og parse_ini_string er deaktiverede på din server." INSTL_NOTICE_XML_SUPPORT="XML understøttelse er ikke tilgængelig. Dette burde være aktiveret som standard i php, men Ubuntu brugere skal måske installere det, ved at køre sudo apt-get install php-xml efterfulgt af en genstart af webserveren." INSTL_NOTICE_ZLIB_COMPRESSION_SUPPORT="Zlib komprimering er ikke sat. Dette kan aktiveres lokalt ved at indsætte zlib.output_compression = On i din php.ini fil." diff --git a/installation/language/da-DK/langmetadata.xml b/installation/language/da-DK/langmetadata.xml index 53bf8425d86e5..c07bc4e0aa7e3 100644 --- a/installation/language/da-DK/langmetadata.xml +++ b/installation/language/da-DK/langmetadata.xml @@ -1,7 +1,7 @@ Danish (Danmark) - 5.4.1 + 6.0.1 2025-10 Danish Translation Team (Transl.: Ronny Buelund) (C) 2005 Open Source Matters, Inc. diff --git a/installation/language/de-AT/joomla.ini b/installation/language/de-AT/joomla.ini index 9dd3b4d87990a..08e3293e57728 100644 --- a/installation/language/de-AT/joomla.ini +++ b/installation/language/de-AT/joomla.ini @@ -33,6 +33,9 @@ BUILD_MIN_PHP_ERROR_TEXT="Der Webserver muss die PHP-Version {{phpversion}} oder BUILD_MIN_PHP_ERROR_URL_TEXT="Weitere Informationen sind in der Dokumentation zu finden." ; Main Config +INSTL_CHANGE_INSTALL_LANG="Installationssprache ändern" +INSTL_CHANGE_INSTALL_LANG_SHORT="Ändern" +INSTL_SELECTED_INSTALL_LANGUAGE="Aktuelle Sprache: %s" INSTL_SELECT_INSTALL_LANG="Installationssprache auswählen" INSTL_SELECT_LANGUAGE_TITLE="Sprachauswahl" INSTL_SETUP_LOGIN_DATA="Zugangsdaten einrichten" @@ -43,13 +46,9 @@ INSTL_WARNJSON="In der PHP-Umgebung muss JSON aktiviert sein, damit Joomla! inst INSTL_DATABASE_SUPPORT="Datenbankunterstützung:" INSTL_JSON_SUPPORT_AVAILABLE="JSON-Support" INSTL_MB_LANGUAGE_IS_DEFAULT="PHPs mbstring Spracheinstellung ist neutral" -; Deprecated, will be removed with 6.0 -INSTL_MB_STRING_OVERLOAD_OFF="PHPs „mbstring function overload“ ist deaktiviert" INSTL_NOTICE_DATABASE_SUPPORT="Es wurden keine unterstützten Datenbanken gefunden." INSTL_NOTICE_JSON_SUPPORT_AVAILABLE="In der PHP-Umgebung muss JSON aktiviert sein, damit Joomla! installiert werden kann." INSTL_NOTICE_MBLANG_NOTDEFAULT="PHPs mbstring Spracheinstellung ist nicht auf „neutral“ gesetzt. Dies kann lokal aktiviert werden, indem eine neue Zeile mit php_value mbstring.language neutral in die .htaccess Datei eingefügt wird." -; Deprecated, will be removed with 6.0 -INSTL_NOTICE_MBSTRING_OVERLOAD_OFF="PHPs „mbstring function overload“ ist aktiviert. Dies kann lokal deaktiviert werden, indem eine neue Zeile mit php_value mbstring.func_overload 0 in die .htaccess Datei eingefügt wird." INSTL_NOTICE_PARSE_INI_FILE_AVAILABLE="Die erforderlichen php-Funktionen parse_ini_file und parse_ini_string sind auf dem Webserver deaktiviert." INSTL_NOTICE_XML_SUPPORT="Die XML-Unterstützung ist nicht verfügbar. Dies sollte standardmäßig in php aktiviert sein, Ubuntu-Benutzer müssen möglicherweise durch Ausführen von sudo apt-get install php-xml die benötigten Pakete installieren, gefolgt von einem Neustart des Webservers." INSTL_NOTICE_ZLIB_COMPRESSION_SUPPORT="Die Zlib-Kompression ist nicht aktiviert. Dies kann lokal aktiviert werden, indem eine neue Zeile mit zlib.output_compression = On in die php.ini Datei eingefügt wird." diff --git a/installation/language/de-AT/langmetadata.xml b/installation/language/de-AT/langmetadata.xml index 33cf1e23a7030..3c87582aa91d5 100644 --- a/installation/language/de-AT/langmetadata.xml +++ b/installation/language/de-AT/langmetadata.xml @@ -1,7 +1,7 @@ German (Austria) - 5.4.0 + 6.0.0 2025-10 J!German (C) 2005 Open Source Matters, Inc. diff --git a/installation/language/de-CH/joomla.ini b/installation/language/de-CH/joomla.ini index ebb1038c328a8..4bcf0e6946ab5 100644 --- a/installation/language/de-CH/joomla.ini +++ b/installation/language/de-CH/joomla.ini @@ -33,6 +33,9 @@ BUILD_MIN_PHP_ERROR_TEXT="Der Webserver muss die PHP-Version {{phpversion}} oder BUILD_MIN_PHP_ERROR_URL_TEXT="Weitere Informationen sind in der Dokumentation zu finden." ; Main Config +INSTL_CHANGE_INSTALL_LANG="Installationssprache ändern" +INSTL_CHANGE_INSTALL_LANG_SHORT="Ändern" +INSTL_SELECTED_INSTALL_LANGUAGE="Aktuelle Sprache: %s" INSTL_SELECT_INSTALL_LANG="Installationssprache auswählen" INSTL_SELECT_LANGUAGE_TITLE="Sprachauswahl" INSTL_SETUP_LOGIN_DATA="Zugangsdaten einrichten" @@ -43,13 +46,9 @@ INSTL_WARNJSON="In der PHP-Umgebung muss JSON aktiviert sein, damit Joomla! inst INSTL_DATABASE_SUPPORT="Datenbankunterstützung:" INSTL_JSON_SUPPORT_AVAILABLE="JSON-Support" INSTL_MB_LANGUAGE_IS_DEFAULT="PHPs mbstring Spracheinstellung ist neutral" -; Deprecated, will be removed with 6.0 -INSTL_MB_STRING_OVERLOAD_OFF="PHPs „mbstring function overload“ ist deaktiviert" INSTL_NOTICE_DATABASE_SUPPORT="Es wurden keine unterstützten Datenbanken gefunden." INSTL_NOTICE_JSON_SUPPORT_AVAILABLE="In der PHP-Umgebung muss JSON aktiviert sein, damit Joomla! installiert werden kann." INSTL_NOTICE_MBLANG_NOTDEFAULT="PHPs mbstring Spracheinstellung ist nicht auf „neutral“ gesetzt. Dies kann lokal aktiviert werden, indem eine neue Zeile mit php_value mbstring.language neutral in die .htaccess Datei eingefügt wird." -; Deprecated, will be removed with 6.0 -INSTL_NOTICE_MBSTRING_OVERLOAD_OFF="PHPs „mbstring function overload“ ist aktiviert. Dies kann lokal deaktiviert werden, indem eine neue Zeile mit php_value mbstring.func_overload 0 in die .htaccess Datei eingefügt wird." INSTL_NOTICE_PARSE_INI_FILE_AVAILABLE="Die erforderlichen php-Funktionen parse_ini_file und parse_ini_string sind auf dem Webserver deaktiviert." INSTL_NOTICE_XML_SUPPORT="Die XML-Unterstützung ist nicht verfügbar. Dies sollte standardmässig in php aktiviert sein, Ubuntu-Benutzer müssen möglicherweise durch Ausführen von sudo apt-get install php-xml die benötigten Pakete installieren, gefolgt von einem Neustart des Webservers." INSTL_NOTICE_ZLIB_COMPRESSION_SUPPORT="Die Zlib-Kompression ist nicht aktiviert. Dies kann lokal aktiviert werden, indem eine neue Zeile mit zlib.output_compression = On in die php.ini Datei eingefügt wird." diff --git a/installation/language/de-CH/langmetadata.xml b/installation/language/de-CH/langmetadata.xml index a15fb818efcaa..55be75a064c5f 100644 --- a/installation/language/de-CH/langmetadata.xml +++ b/installation/language/de-CH/langmetadata.xml @@ -1,7 +1,7 @@ German (Switzerland) - 5.4.0 + 6.0.0 2025-10 J!German (C) 2005 Open Source Matters, Inc. diff --git a/installation/language/de-DE/joomla.ini b/installation/language/de-DE/joomla.ini index 1c0329dddbe62..c35b7ee854270 100644 --- a/installation/language/de-DE/joomla.ini +++ b/installation/language/de-DE/joomla.ini @@ -33,6 +33,9 @@ BUILD_MIN_PHP_ERROR_TEXT="Der Webserver muss die PHP-Version {{phpversion}} oder BUILD_MIN_PHP_ERROR_URL_TEXT="Weitere Informationen sind in der Dokumentation zu finden." ; Main Config +INSTL_CHANGE_INSTALL_LANG="Installationssprache ändern" +INSTL_CHANGE_INSTALL_LANG_SHORT="Ändern" +INSTL_SELECTED_INSTALL_LANGUAGE="Aktuelle Sprache: %s" INSTL_SELECT_INSTALL_LANG="Installationssprache auswählen" INSTL_SELECT_LANGUAGE_TITLE="Sprachauswahl" INSTL_SETUP_LOGIN_DATA="Zugangsdaten einrichten" @@ -43,13 +46,9 @@ INSTL_WARNJSON="In der PHP-Umgebung muss JSON aktiviert sein, damit Joomla! inst INSTL_DATABASE_SUPPORT="Datenbankunterstützung:" INSTL_JSON_SUPPORT_AVAILABLE="JSON-Support" INSTL_MB_LANGUAGE_IS_DEFAULT="PHPs mbstring Spracheinstellung ist neutral" -; Deprecated, will be removed with 6.0 -INSTL_MB_STRING_OVERLOAD_OFF="PHPs „mbstring function overload“ ist deaktiviert" INSTL_NOTICE_DATABASE_SUPPORT="Es wurden keine unterstützten Datenbanken gefunden." INSTL_NOTICE_JSON_SUPPORT_AVAILABLE="In der PHP-Umgebung muss JSON aktiviert sein, damit Joomla! installiert werden kann." INSTL_NOTICE_MBLANG_NOTDEFAULT="PHPs mbstring Spracheinstellung ist nicht auf „neutral“ gesetzt. Dies kann lokal aktiviert werden, indem eine neue Zeile mit php_value mbstring.language neutral in die .htaccess Datei eingefügt wird." -; Deprecated, will be removed with 6.0 -INSTL_NOTICE_MBSTRING_OVERLOAD_OFF="PHPs „mbstring function overload“ ist aktiviert. Dies kann lokal deaktiviert werden, indem eine neue Zeile mit php_value mbstring.func_overload 0 in die .htaccess Datei eingefügt wird." INSTL_NOTICE_PARSE_INI_FILE_AVAILABLE="Die erforderlichen php-Funktionen parse_ini_file und parse_ini_string sind auf dem Webserver deaktiviert." INSTL_NOTICE_XML_SUPPORT="Die XML-Unterstützung ist nicht verfügbar. Dies sollte standardmäßig in php aktiviert sein, Ubuntu-Benutzer müssen möglicherweise durch Ausführen von sudo apt-get install php-xml die benötigten Pakete installieren, gefolgt von einem Neustart des Webservers." INSTL_NOTICE_ZLIB_COMPRESSION_SUPPORT="Die Zlib-Kompression ist nicht aktiviert. Dies kann lokal aktiviert werden, indem eine neue Zeile mit zlib.output_compression = On in die php.ini Datei eingefügt wird." diff --git a/installation/language/de-DE/langmetadata.xml b/installation/language/de-DE/langmetadata.xml index a43693fa136f1..249c4f6128076 100644 --- a/installation/language/de-DE/langmetadata.xml +++ b/installation/language/de-DE/langmetadata.xml @@ -1,7 +1,7 @@ German (Germany) - 5.4.0 + 6.0.0 2025-10 J!German (C) 2005 Open Source Matters, Inc. diff --git a/installation/language/de-LI/joomla.ini b/installation/language/de-LI/joomla.ini index 49899b149499a..0f893f3fd3ae5 100644 --- a/installation/language/de-LI/joomla.ini +++ b/installation/language/de-LI/joomla.ini @@ -33,6 +33,9 @@ BUILD_MIN_PHP_ERROR_TEXT="Der Webserver muss die PHP-Version {{phpversion}} oder BUILD_MIN_PHP_ERROR_URL_TEXT="Weitere Informationen sind in der Dokumentation zu finden." ; Main Config +INSTL_CHANGE_INSTALL_LANG="Installationssprache ändern" +INSTL_CHANGE_INSTALL_LANG_SHORT="Ändern" +INSTL_SELECTED_INSTALL_LANGUAGE="Aktuelle Sprache: %s" INSTL_SELECT_INSTALL_LANG="Installationssprache auswählen" INSTL_SELECT_LANGUAGE_TITLE="Sprachauswahl" INSTL_SETUP_LOGIN_DATA="Zugangsdaten einrichten" @@ -43,13 +46,9 @@ INSTL_WARNJSON="In der PHP-Umgebung muss JSON aktiviert sein, damit Joomla! inst INSTL_DATABASE_SUPPORT="Datenbankunterstützung:" INSTL_JSON_SUPPORT_AVAILABLE="JSON-Support" INSTL_MB_LANGUAGE_IS_DEFAULT="PHPs mbstring Spracheinstellung ist neutral" -; Deprecated, will be removed with 6.0 -INSTL_MB_STRING_OVERLOAD_OFF="PHPs „mbstring function overload“ ist deaktiviert" INSTL_NOTICE_DATABASE_SUPPORT="Es wurden keine unterstützten Datenbanken gefunden." INSTL_NOTICE_JSON_SUPPORT_AVAILABLE="In der PHP-Umgebung muss JSON aktiviert sein, damit Joomla! installiert werden kann." INSTL_NOTICE_MBLANG_NOTDEFAULT="PHPs mbstring Spracheinstellung ist nicht auf „neutral“ gesetzt. Dies kann lokal aktiviert werden, indem eine neue Zeile mit php_value mbstring.language neutral in die .htaccess Datei eingefügt wird." -; Deprecated, will be removed with 6.0 -INSTL_NOTICE_MBSTRING_OVERLOAD_OFF="PHPs „mbstring function overload“ ist aktiviert. Dies kann lokal deaktiviert werden, indem eine neue Zeile mit php_value mbstring.func_overload 0 in die .htaccess Datei eingefügt wird." INSTL_NOTICE_PARSE_INI_FILE_AVAILABLE="Die erforderlichen php-Funktionen parse_ini_file und parse_ini_string sind auf dem Webserver deaktiviert." INSTL_NOTICE_XML_SUPPORT="Die XML-Unterstützung ist nicht verfügbar. Dies sollte standardmässig in php aktiviert sein, Ubuntu-Benutzer müssen möglicherweise durch Ausführen von sudo apt-get install php-xml die benötigten Pakete installieren, gefolgt von einem Neustart des Webservers." INSTL_NOTICE_ZLIB_COMPRESSION_SUPPORT="Die Zlib-Kompression ist nicht aktiviert. Dies kann lokal aktiviert werden, indem eine neue Zeile mit zlib.output_compression = On in die php.ini Datei eingefügt wird." diff --git a/installation/language/de-LI/langmetadata.xml b/installation/language/de-LI/langmetadata.xml index bbade5d0d3747..7550f28c4952d 100644 --- a/installation/language/de-LI/langmetadata.xml +++ b/installation/language/de-LI/langmetadata.xml @@ -1,7 +1,7 @@ German (Liechtenstein) - 5.4.0 + 6.0.0 2025-10 J!German (C) 2005 Open Source Matters, Inc. diff --git a/installation/language/de-LU/joomla.ini b/installation/language/de-LU/joomla.ini index 977679b44a06d..0bd814036eeb5 100644 --- a/installation/language/de-LU/joomla.ini +++ b/installation/language/de-LU/joomla.ini @@ -33,6 +33,9 @@ BUILD_MIN_PHP_ERROR_TEXT="Der Webserver muss die PHP-Version {{phpversion}} oder BUILD_MIN_PHP_ERROR_URL_TEXT="Weitere Informationen sind in der Dokumentation zu finden." ; Main Config +INSTL_CHANGE_INSTALL_LANG="Installationssprache ändern" +INSTL_CHANGE_INSTALL_LANG_SHORT="Ändern" +INSTL_SELECTED_INSTALL_LANGUAGE="Aktuelle Sprache: %s" INSTL_SELECT_INSTALL_LANG="Installationssprache auswählen" INSTL_SELECT_LANGUAGE_TITLE="Sprachauswahl" INSTL_SETUP_LOGIN_DATA="Zugangsdaten einrichten" @@ -43,13 +46,9 @@ INSTL_WARNJSON="In der PHP-Umgebung muss JSON aktiviert sein, damit Joomla! inst INSTL_DATABASE_SUPPORT="Datenbankunterstützung:" INSTL_JSON_SUPPORT_AVAILABLE="JSON-Support" INSTL_MB_LANGUAGE_IS_DEFAULT="PHPs mbstring Spracheinstellung ist neutral" -; Deprecated, will be removed with 6.0 -INSTL_MB_STRING_OVERLOAD_OFF="PHPs „mbstring function overload“ ist deaktiviert" INSTL_NOTICE_DATABASE_SUPPORT="Es wurden keine unterstützten Datenbanken gefunden." INSTL_NOTICE_JSON_SUPPORT_AVAILABLE="In der PHP-Umgebung muss JSON aktiviert sein, damit Joomla! installiert werden kann." INSTL_NOTICE_MBLANG_NOTDEFAULT="PHPs mbstring Spracheinstellung ist nicht auf „neutral“ gesetzt. Dies kann lokal aktiviert werden, indem eine neue Zeile mit php_value mbstring.language neutral in die .htaccess Datei eingefügt wird." -; Deprecated, will be removed with 6.0 -INSTL_NOTICE_MBSTRING_OVERLOAD_OFF="PHPs „mbstring function overload“ ist aktiviert. Dies kann lokal deaktiviert werden, indem eine neue Zeile mit php_value mbstring.func_overload 0 in die .htaccess Datei eingefügt wird." INSTL_NOTICE_PARSE_INI_FILE_AVAILABLE="Die erforderlichen php-Funktionen parse_ini_file und parse_ini_string sind auf dem Webserver deaktiviert." INSTL_NOTICE_XML_SUPPORT="Die XML-Unterstützung ist nicht verfügbar. Dies sollte standardmäßig in php aktiviert sein, Ubuntu-Benutzer müssen möglicherweise durch Ausführen von sudo apt-get install php-xml die benötigten Pakete installieren, gefolgt von einem Neustart des Webservers." INSTL_NOTICE_ZLIB_COMPRESSION_SUPPORT="Die Zlib-Kompression ist nicht aktiviert. Dies kann lokal aktiviert werden, indem eine neue Zeile mit zlib.output_compression = On in die php.ini Datei eingefügt wird." diff --git a/installation/language/de-LU/langmetadata.xml b/installation/language/de-LU/langmetadata.xml index 895644825562e..9dcd1a567ff51 100644 --- a/installation/language/de-LU/langmetadata.xml +++ b/installation/language/de-LU/langmetadata.xml @@ -1,7 +1,7 @@ German (Luxembourg) - 5.4.0 + 6.0.0 2025-10 J!German (C) 2005 Open Source Matters, Inc. diff --git a/installation/language/el-GR/joomla.ini b/installation/language/el-GR/joomla.ini index 40bd7949bff33..1c422c8eb6882 100644 --- a/installation/language/el-GR/joomla.ini +++ b/installation/language/el-GR/joomla.ini @@ -32,6 +32,7 @@ BUILD_MIN_PHP_ERROR_TEXT="Ο διακομιστής πρέπει να διαθέ BUILD_MIN_PHP_ERROR_URL_TEXT="Βοήθεια για την επίλυση" ; Main Config +INSTL_CHANGE_INSTALL_LANG_SHORT="Αλλαγή Θέσης" INSTL_SELECT_INSTALL_LANG="Επιλέξτε Γλώσσα Εγκατάστασης" INSTL_SELECT_LANGUAGE_TITLE="Επιλογή γλώσσας" INSTL_SETUP_LOGIN_DATA="Ρύθμιση Δεδομένων Σύνδεσης" @@ -42,13 +43,9 @@ INSTL_WARNJSON="Η εγκατάσταση PHP πρέπει να έχει ενε INSTL_DATABASE_SUPPORT="Υποστήριξη Βάσης Δεδομένων:" INSTL_JSON_SUPPORT_AVAILABLE="Υποστήριξη JSON" INSTL_MB_LANGUAGE_IS_DEFAULT="Η γλώσσα MB είναι προεπιλεγμένη" -; Deprecated, will be removed with 6.0 -INSTL_MB_STRING_OVERLOAD_OFF="MB String Overload απενεργοποιημένο" INSTL_NOTICE_DATABASE_SUPPORT="Δεν βρέθηκαν βάσεις δεδομένων που υποστηρίζονται." INSTL_NOTICE_JSON_SUPPORT_AVAILABLE="Η εγκατάσταση PHP πρέπει να έχει ενεργοποιημένη την JSON για να εγκατασταθεί το Joomla!" INSTL_NOTICE_MBLANG_NOTDEFAULT="Η γλώσσα PHP mbstring δεν ορίστηκε σαν ουδέτερη. Αυτό μπορεί να οριστεί τοπικά γράφοντας php_value mbstring.language neutral στο αρχείο .htaccess ." -; Deprecated, will be removed with 6.0 -INSTL_NOTICE_MBSTRING_OVERLOAD_OFF="Η λειτουργία υπερφόρτωσης για την PHP mbstring έχει οριστεί. Αυτή μπορεί να απενεργοποιηθεί γράφοντας php_value mbstring.func_overload 0 στο αρχείο .htaccess ." INSTL_NOTICE_PARSE_INI_FILE_AVAILABLE="Οι απαιτούμενες php συναρτήσεις parse_ini_file και parse_ini_string είναι απενεργοποιημένες στον διακομιστή σας." INSTL_NOTICE_XML_SUPPORT="XML υποστήριξη δεν είναι διαθέσιμη. Αυτό πρέπει να είναι ενεργοποιημένο από προεπιλογή στην php, αλλά οι χρήστες Ubuntu μπορεί να χρειαστεί να το εγκαταστήσουν κάνοντας sudo apt-get εγκατάσταση php-xml και στη συνέχεια επανεκκίνηση του διακομιστή ιστού." INSTL_NOTICE_ZLIB_COMPRESSION_SUPPORT="Η συμπίεση Zlib δεν έχει οριστεί. Αυτό μπορεί να ενεργοποιηθεί τοπικά εισάγοντας zlib.output_compression = On στο αρχείο php.ini." @@ -222,7 +219,7 @@ INSTL_WRITABLE="Ανεπαρκή δικαιώματα για τη δημιουρ INSTL_ZIP_SUPPORT_AVAILABLE="Ενσωματωμένη υποστήριξη ZIP" ; Global strings -JADMINISTRATOR="Περιοχή Διαχείρισης" +JADMINISTRATOR="Διαχειριστής" JCLOSE="Κλείσιμο" JEMAIL="Email" JERROR="Σφάλμα" @@ -236,7 +233,7 @@ JHIDEPASSWORD="Απόκρυψη κωδικού" JINVALID_TOKEN="Το πιο πρόσφατο αίτημα απορρίφθηκε επειδή περιείχε μη έγκυρο διακριτικό ασφαλείας. Ανανεώστε τη σελίδα και ξαναπροσπαθήστε." JINVALID_TOKEN_NOTICE="Το διακριτικό ασφαλείας δεν ταιριάζει. Το αίτημα ματαιώθηκε για την αποφυγή οποιασδήποτε παραβίασης ασφαλείας. Παρακαλώ δοκιμάστε ξανά." JNEXT="Επόμενο" -JNO="Όχι" +JNO="Ποτέ" JNOTICE="Ειδοποίηση" JOFF="Απενεργοποιημένο" JON="Ενεργοποιημένο" @@ -257,7 +254,7 @@ JLIB_FILESYSTEM_ERROR_PATH_IS_NOT_A_FOLDER="%1$s: Η διαδρομή δεν ε JLIB_FORM_FIELD_INVALID="Μη έγκυρο πεδίο: " JLIB_FORM_VALIDATE_FIELD_INVALID="Άκυρο πεδίο: %s" JLIB_FORM_VALIDATE_FIELD_REQUIRED="Υποχρεωτικό πεδίο: %s" -JLIB_INSTALLER_ABORT="Η εγκατάσταση τη γλώσσας διακόπηκε: %s" +JLIB_INSTALLER_ABORT="Η εγκατάσταση τη γλωσσας ματαιώθηκε: %s" JLIB_INSTALLER_ABORT_CREATE_DIRECTORY="Επέκταση %1$s: Αποτυχία δημιουργίας καταλόγου: %2$s" JLIB_INSTALLER_ABORT_NOINSTALLPATH="Η διαδρομή εγκατάστασης δεν υπάρχει" JLIB_INSTALLER_ABORT_PACK_INSTALL_ERROR_EXTENSION="Πακέτο %1$s: Προέκυψε σφάλμα κατά την εγκατάσταση μιας επέκτασης: %2$s." diff --git a/installation/language/el-GR/langmetadata.xml b/installation/language/el-GR/langmetadata.xml index 657c4e031698f..8b90367ccfe16 100644 --- a/installation/language/el-GR/langmetadata.xml +++ b/installation/language/el-GR/langmetadata.xml @@ -1,7 +1,7 @@ Greek (el-GR) - 5.4.1 + 6.0.1 2025-10 Ομάδα Μετάφρασης: joomla. gr (C) 2005 Open Source Matters, Inc. diff --git a/installation/language/en-AU/joomla.ini b/installation/language/en-AU/joomla.ini index be52437d6c519..d66e6bc6942d0 100644 --- a/installation/language/en-AU/joomla.ini +++ b/installation/language/en-AU/joomla.ini @@ -32,6 +32,7 @@ BUILD_MIN_PHP_ERROR_TEXT="Your host needs to use PHP version {{phpversion}} or n BUILD_MIN_PHP_ERROR_URL_TEXT="Help me resolve this" ; Main Config +INSTL_CHANGE_INSTALL_LANG_SHORT="Change" INSTL_SELECT_INSTALL_LANG="Select Installation Language" INSTL_SELECT_LANGUAGE_TITLE="Select Language" INSTL_SETUP_LOGIN_DATA="Setup Login Data" @@ -42,13 +43,9 @@ INSTL_WARNJSON="Your PHP installation needs to have JSON enabled for Joomla to b INSTL_DATABASE_SUPPORT="Database Support:" INSTL_JSON_SUPPORT_AVAILABLE="JSON Support" INSTL_MB_LANGUAGE_IS_DEFAULT="MB Language is Default" -; Deprecated, will be removed with 6.0 -INSTL_MB_STRING_OVERLOAD_OFF="MB String Overload Off" INSTL_NOTICE_DATABASE_SUPPORT="No supported databases were found." INSTL_NOTICE_JSON_SUPPORT_AVAILABLE="Your PHP installation needs to have JSON enabled for Joomla to be installed!" INSTL_NOTICE_MBLANG_NOTDEFAULT="PHP mbstring language is not set to neutral. This can be set locally by entering php_value mbstring.language neutral in your .htaccess file." -; Deprecated, will be removed with 6.0 -INSTL_NOTICE_MBSTRING_OVERLOAD_OFF="PHP mbstring function overload is set. This can be turned off locally by entering php_value mbstring.func_overload 0 in your .htaccess file." INSTL_NOTICE_PARSE_INI_FILE_AVAILABLE="The required php functions parse_ini_file and parse_ini_string are disabled on your server." INSTL_NOTICE_XML_SUPPORT="XML Support is not available. This should be enabled by default in php but Ubuntu users may need to install this by doing sudo apt-get install php-xml followed by web server restart." INSTL_NOTICE_ZLIB_COMPRESSION_SUPPORT="Zlib compression is not set. This can be turned on locally by entering zlib.output_compression = On in your php.ini file." diff --git a/installation/language/en-AU/langmetadata.xml b/installation/language/en-AU/langmetadata.xml index 06ebe1f7e4e09..8a5a4d8a63d1c 100644 --- a/installation/language/en-AU/langmetadata.xml +++ b/installation/language/en-AU/langmetadata.xml @@ -1,7 +1,7 @@ English (Australia) - 5.4.1 + 6.0.1 2025-10 Joomla! Project (C) 2005 Open Source Matters, Inc. diff --git a/installation/language/en-CA/joomla.ini b/installation/language/en-CA/joomla.ini index dea34bbe498ca..3b6f824d0e94f 100644 --- a/installation/language/en-CA/joomla.ini +++ b/installation/language/en-CA/joomla.ini @@ -32,6 +32,7 @@ BUILD_MIN_PHP_ERROR_TEXT="Your host needs to use PHP version {{phpversion}} or n BUILD_MIN_PHP_ERROR_URL_TEXT="Help me resolve this" ; Main Config +INSTL_CHANGE_INSTALL_LANG_SHORT="Change" INSTL_SELECT_INSTALL_LANG="Select Installation Language" INSTL_SELECT_LANGUAGE_TITLE="Select Language" INSTL_SETUP_LOGIN_DATA="Setup Login Data" @@ -42,13 +43,9 @@ INSTL_WARNJSON="Your PHP installation needs to have JSON enabled for Joomla to b INSTL_DATABASE_SUPPORT="Database Support:" INSTL_JSON_SUPPORT_AVAILABLE="JSON Support" INSTL_MB_LANGUAGE_IS_DEFAULT="MB Language is Default" -; Deprecated, will be removed with 6.0 -INSTL_MB_STRING_OVERLOAD_OFF="MB String Overload Off" INSTL_NOTICE_DATABASE_SUPPORT="No supported databases were found." INSTL_NOTICE_JSON_SUPPORT_AVAILABLE="Your PHP installation needs to have JSON enabled for Joomla to be installed!" INSTL_NOTICE_MBLANG_NOTDEFAULT="PHP mbstring language is not set to neutral. This can be set locally by entering php_value mbstring.language neutral in your .htaccess file." -; Deprecated, will be removed with 6.0 -INSTL_NOTICE_MBSTRING_OVERLOAD_OFF="PHP mbstring function overload is set. This can be turned off locally by entering php_value mbstring.func_overload 0 in your .htaccess file." INSTL_NOTICE_PARSE_INI_FILE_AVAILABLE="The required php functions parse_ini_file and parse_ini_string are disabled on your server." INSTL_NOTICE_XML_SUPPORT="XML Support is not available. This should be enabled by default in php but Ubuntu users may need to install this by doing sudo apt-get install php-xml followed by web server restart." INSTL_NOTICE_ZLIB_COMPRESSION_SUPPORT="Zlib compression is not set. This can be turned on locally by entering zlib.output_compression = On in your php.ini file." diff --git a/installation/language/en-CA/langmetadata.xml b/installation/language/en-CA/langmetadata.xml index 4b12f4075d2ec..e7c7ace6ff2f7 100644 --- a/installation/language/en-CA/langmetadata.xml +++ b/installation/language/en-CA/langmetadata.xml @@ -1,7 +1,7 @@ English (Canada) - 5.4.1 + 6.0.1 2025-10 Joomla! Project (C) 2005 Open Source Matters, Inc. diff --git a/installation/language/en-GB/joomla.ini b/installation/language/en-GB/joomla.ini index 44ae57b9d363d..08bddfc4c5179 100644 --- a/installation/language/en-GB/joomla.ini +++ b/installation/language/en-GB/joomla.ini @@ -32,6 +32,9 @@ BUILD_MIN_PHP_ERROR_TEXT="Your host needs to use PHP version {{phpversion}} or n BUILD_MIN_PHP_ERROR_URL_TEXT="Help me resolve this" ; Main Config +INSTL_CHANGE_INSTALL_LANG="Change Installation Language" +INSTL_CHANGE_INSTALL_LANG_SHORT="Change" +INSTL_SELECTED_INSTALL_LANGUAGE="Current language: %s" INSTL_SELECT_INSTALL_LANG="Select Installation Language" INSTL_SELECT_LANGUAGE_TITLE="Select Language" INSTL_SETUP_LOGIN_DATA="Setup Login Data" @@ -42,13 +45,9 @@ INSTL_WARNJSON="Your PHP installation needs to have JSON enabled for Joomla to b INSTL_DATABASE_SUPPORT="Database Support:" INSTL_JSON_SUPPORT_AVAILABLE="JSON Support" INSTL_MB_LANGUAGE_IS_DEFAULT="MB Language is Default" -; Deprecated, will be removed with 6.0 -INSTL_MB_STRING_OVERLOAD_OFF="MB String Overload Off" INSTL_NOTICE_DATABASE_SUPPORT="No supported databases were found." INSTL_NOTICE_JSON_SUPPORT_AVAILABLE="Your PHP installation needs to have JSON enabled for Joomla to be installed!" INSTL_NOTICE_MBLANG_NOTDEFAULT="PHP mbstring language is not set to neutral. This can be set locally by entering php_value mbstring.language neutral in your .htaccess file." -; Deprecated, will be removed with 6.0 -INSTL_NOTICE_MBSTRING_OVERLOAD_OFF="PHP mbstring function overload is set. This can be turned off locally by entering php_value mbstring.func_overload 0 in your .htaccess file." INSTL_NOTICE_PARSE_INI_FILE_AVAILABLE="The required php functions parse_ini_file and parse_ini_string are disabled on your server." INSTL_NOTICE_XML_SUPPORT="XML Support is not available. This should be enabled by default in php but Ubuntu users may need to install this by doing sudo apt-get install php-xml followed by web server restart." INSTL_NOTICE_ZLIB_COMPRESSION_SUPPORT="Zlib compression is not set. This can be turned on locally by entering zlib.output_compression = On in your php.ini file." diff --git a/installation/language/en-GB/langmetadata.xml b/installation/language/en-GB/langmetadata.xml index dc887f8204b19..346210f4f598e 100644 --- a/installation/language/en-GB/langmetadata.xml +++ b/installation/language/en-GB/langmetadata.xml @@ -1,7 +1,7 @@ English (United Kingdom) - 5.4.1 + 6.0.1 2025-10 Joomla! Project (C) 2005 Open Source Matters, Inc. diff --git a/installation/language/en-NZ/joomla.ini b/installation/language/en-NZ/joomla.ini index 381447fc911f4..5073ec443417c 100644 --- a/installation/language/en-NZ/joomla.ini +++ b/installation/language/en-NZ/joomla.ini @@ -32,6 +32,7 @@ BUILD_MIN_PHP_ERROR_TEXT="Your host needs to use PHP version {{phpversion}} or n BUILD_MIN_PHP_ERROR_URL_TEXT="Help me resolve this" ; Main Config +INSTL_CHANGE_INSTALL_LANG_SHORT="Change" INSTL_SELECT_INSTALL_LANG="Select Installation Language" INSTL_SELECT_LANGUAGE_TITLE="Select Language" INSTL_SETUP_LOGIN_DATA="Setup Login Data" @@ -42,13 +43,9 @@ INSTL_WARNJSON="Your PHP installation needs to have JSON enabled for Joomla to b INSTL_DATABASE_SUPPORT="Database Support:" INSTL_JSON_SUPPORT_AVAILABLE="JSON Support" INSTL_MB_LANGUAGE_IS_DEFAULT="MB Language is Default" -; Deprecated, will be removed with 6.0 -INSTL_MB_STRING_OVERLOAD_OFF="MB String Overload Off" INSTL_NOTICE_DATABASE_SUPPORT="No supported databases were found." INSTL_NOTICE_JSON_SUPPORT_AVAILABLE="Your PHP installation needs to have JSON enabled for Joomla to be installed!" INSTL_NOTICE_MBLANG_NOTDEFAULT="PHP mbstring language is not set to neutral. This can be set locally by entering php_value mbstring.language neutral in your .htaccess file." -; Deprecated, will be removed with 6.0 -INSTL_NOTICE_MBSTRING_OVERLOAD_OFF="PHP mbstring function overload is set. This can be turned off locally by entering php_value mbstring.func_overload 0 in your .htaccess file." INSTL_NOTICE_PARSE_INI_FILE_AVAILABLE="The required php functions parse_ini_file and parse_ini_string are disabled on your server." INSTL_NOTICE_XML_SUPPORT="XML Support is not available. This should be enabled by default in php but Ubuntu users may need to install this by doing sudo apt-get install php-xml followed by web server restart." INSTL_NOTICE_ZLIB_COMPRESSION_SUPPORT="Zlib compression is not set. This can be turned on locally by entering zlib.output_compression = On in your php.ini file." diff --git a/installation/language/en-NZ/langmetadata.xml b/installation/language/en-NZ/langmetadata.xml index 6189f89f333bd..41cb1f64cc469 100644 --- a/installation/language/en-NZ/langmetadata.xml +++ b/installation/language/en-NZ/langmetadata.xml @@ -1,7 +1,7 @@ English (New Zealand) - 5.4.1 + 6.0.1 2025-10 Joomla! Project (C) 2005 Open Source Matters, Inc. diff --git a/installation/language/en-US/joomla.ini b/installation/language/en-US/joomla.ini index bdca6ea745c12..46904ba170ea4 100644 --- a/installation/language/en-US/joomla.ini +++ b/installation/language/en-US/joomla.ini @@ -32,6 +32,7 @@ BUILD_MIN_PHP_ERROR_TEXT="Your host needs to use PHP version {{phpversion}} or n BUILD_MIN_PHP_ERROR_URL_TEXT="Help me resolve this" ; Main Config +INSTL_CHANGE_INSTALL_LANG_SHORT="Change" INSTL_SELECT_INSTALL_LANG="Select Installation Language" INSTL_SELECT_LANGUAGE_TITLE="Select Language" INSTL_SETUP_LOGIN_DATA="Setup Login Data" @@ -42,13 +43,9 @@ INSTL_WARNJSON="Your PHP installation needs to have JSON enabled for Joomla to b INSTL_DATABASE_SUPPORT="Database Support:" INSTL_JSON_SUPPORT_AVAILABLE="JSON Support" INSTL_MB_LANGUAGE_IS_DEFAULT="MB Language is Default" -; Deprecated, will be removed with 6.0 -INSTL_MB_STRING_OVERLOAD_OFF="MB String Overload Off" INSTL_NOTICE_DATABASE_SUPPORT="No supported databases were found." INSTL_NOTICE_JSON_SUPPORT_AVAILABLE="Your PHP installation needs to have JSON enabled for Joomla to be installed!" INSTL_NOTICE_MBLANG_NOTDEFAULT="PHP mbstring language is not set to neutral. This can be set locally by entering php_value mbstring.language neutral in your .htaccess file." -; Deprecated, will be removed with 6.0 -INSTL_NOTICE_MBSTRING_OVERLOAD_OFF="PHP mbstring function overload is set. This can be turned off locally by entering php_value mbstring.func_overload 0 in your .htaccess file." INSTL_NOTICE_PARSE_INI_FILE_AVAILABLE="The required php functions parse_ini_file and parse_ini_string are disabled on your server." INSTL_NOTICE_XML_SUPPORT="XML Support is not available. This should be enabled by default in php but Ubuntu users, may need to install by doing sudo apt-get install php-xml followed by web server restart." INSTL_NOTICE_ZLIB_COMPRESSION_SUPPORT="Zlib compression is not set. This can be turned on locally by entering zlib.output_compression = On in your php.ini file." @@ -240,9 +237,9 @@ JGLOBAL_SELECT_NO_RESULTS_MATCH="Select some options" JGLOBAL_SELECT_SOME_OPTIONS="Select some options" JHIDEPASSWORD="Hide Password" JINVALID_TOKEN="The most recent request was denied because it contained an invalid security token. Please refresh the page and try again." -JINVALID_TOKEN_NOTICE="The security token did not match. The request was cancelled to prevent any security breach. Please try again." +JINVALID_TOKEN_NOTICE="The security token did not match. The request was aborted to prevent any security breach. Please try again." JNEXT="Next" -JNO="No" +JNO="Never" JNOTICE="Notice" JOFF="Off" JON="On" @@ -263,7 +260,7 @@ JLIB_FILESYSTEM_ERROR_PATH_IS_NOT_A_FOLDER="%1$s: Path is not a folder. Path: %2 JLIB_FORM_FIELD_INVALID="Invalid field: " JLIB_FORM_VALIDATE_FIELD_INVALID="Invalid field: %s" JLIB_FORM_VALIDATE_FIELD_REQUIRED="Field required: %s" -JLIB_INSTALLER_ABORT="Stopping language installation: %s" +JLIB_INSTALLER_ABORT="Aborting language installation: %s" JLIB_INSTALLER_ABORT_CREATE_DIRECTORY="Extension %1$s: Failed to create folder: %2$s" JLIB_INSTALLER_ABORT_NOINSTALLPATH="Install path does not exist." JLIB_INSTALLER_ABORT_PACK_INSTALL_ERROR_EXTENSION="Package %1$s: There was an error installing an extension: %2$s" @@ -304,7 +301,7 @@ NOTICE="Notice" WARNING="Warning" ; Javascript ajax error messages -JLIB_JS_AJAX_ERROR_CONNECTION_ABORT="A connection error has occurred while fetching the JSON data." +JLIB_JS_AJAX_ERROR_CONNECTION_ABORT="A connection abort has occured while fetching the JSON data." JLIB_JS_AJAX_ERROR_NO_CONTENT="No content was returned." JLIB_JS_AJAX_ERROR_OTHER="An error has occurred while fetching the JSON data: HTTP %d status code." JLIB_JS_AJAX_ERROR_PARSE="A parse error has occurred while processing the following JSON data:
%s" diff --git a/installation/language/en-US/langmetadata.xml b/installation/language/en-US/langmetadata.xml index 8c7f19508a51b..9c500f68f38c6 100644 --- a/installation/language/en-US/langmetadata.xml +++ b/installation/language/en-US/langmetadata.xml @@ -1,7 +1,7 @@ English (United States) - 5.4.1 + 6.0.1 2025-10 Joomla! Project (C) 2005 Open Source Matters, Inc. diff --git a/installation/language/es-ES/joomla.ini b/installation/language/es-ES/joomla.ini index 650f222970ec4..b9805c22ba487 100644 --- a/installation/language/es-ES/joomla.ini +++ b/installation/language/es-ES/joomla.ini @@ -6,49 +6,46 @@ ; Fatal error page ; These will be processed by the JavaScript Build BUILD_FATAL_HEADER="Lo sentimos, hubo un problema del que no pudimos recuperarnos." -BUILD_FATAL_LANGUAGE="Español ES" ; IMPORTANT NOTE FOR TRANSLATORS: Do not literally translate this line, instead add the localised name of the language. For example French will be Français FR +BUILD_FATAL_LANGUAGE="English GB" ; IMPORTANT NOTE FOR TRANSLATORS: Do not literally translate this line, instead add the localised name of the language. For example French will be Français FR BUILD_FATAL_TEXT="El servidor devuelve un \"{{statusCode_statusText}}\"" BUILD_FATAL_URL_TEXT="Ayúdeme a resolver esto" ; Build incomplete error page ; These will be processed by the JavaScript Build BUILD_INCOMPLETE_HEADER="Configuración del entorno de trabajo incompleta" -BUILD_INCOMPLETE_LANGUAGE="Español ES" ; IMPORTANT NOTE FOR TRANSLATORS: Do not literally translate this line, instead add the localised name of the language. For example French will be Français FR +BUILD_INCOMPLETE_LANGUAGE="English GB" ; IMPORTANT NOTE FOR TRANSLATORS: Do not literally translate this line, instead add the localised name of the language. For example French will be Français FR BUILD_INCOMPLETE_TEXT="Parece que está intentando ejecutar Joomla! desde nuestro repositorio en Git. Para hacerlo, primero debe completar un par de pasos adicionales." BUILD_INCOMPLETE_URL_TEXT="Más detalles" ; No XML PHP error page ; These will be processed by the JavaScript Build BUILD_NOXML_HEADER="Lo sentimos, a su PHP le falta una biblioteca esencial" -BUILD_NOXML_LANGUAGE="Español ES" ; IMPORTANT NOTE FOR TRANSLATORS: Do not literally translate this line, instead add the localised name of the language. For example French will be Français FR +BUILD_NOXML_LANGUAGE="English GB" ; IMPORTANT NOTE FOR TRANSLATORS: Do not literally translate this line, instead add the localised name of the language. For example French will be Français FR BUILD_NOXML_TEXT="Su hospedaje necesita usar PHP con soporte para la biblioteca XML y así poder ejecutar esta versión de Joomla!" BUILD_NOXML_URL_TEXT="Ayúdeme a resolver esto" ; Minimum PHP error page ; These will be processed by the JavaScript Build BUILD_MIN_PHP_ERROR_HEADER="Lo sentimos, su versión de PHP no es compatible." -BUILD_MIN_PHP_ERROR_LANGUAGE="Español ES" ; IMPORTANT NOTE FOR TRANSLATORS: Do not literally translate this line, instead add the localised name of the language. For example French will be Français FR +BUILD_MIN_PHP_ERROR_LANGUAGE="English GB" ; IMPORTANT NOTE FOR TRANSLATORS: Do not literally translate this line, instead add the localised name of the language. For example French will be Français FR BUILD_MIN_PHP_ERROR_TEXT="Para poder usar esta versión de Joomla su hospedaje necesita usar la versión {{phpversion}} de PHP o superior." BUILD_MIN_PHP_ERROR_URL_TEXT="Ayúdeme a resolver esto" ; Main Config +INSTL_CHANGE_INSTALL_LANG_SHORT="Cambiar" INSTL_SELECT_INSTALL_LANG="Seleccione el idioma de instalación" INSTL_SELECT_LANGUAGE_TITLE="Seleccione el idioma" INSTL_SETUP_LOGIN_DATA="Configurar los datos de inicio de sesión" INSTL_WARNJAVASCRIPT="¡Advertencia! JavaScript debe estar habilitado para una correcta instalación de Joomla." -INSTL_WARNJSON="¡Para que se pueda instalar Joomla su instalación de PHP necesita tener habilitado JSON!" +INSTL_WARNJSON="Para que se pueda instalar Joomla su instalacción de PHP necesita tener habilitado JSON." ; Precheck view INSTL_DATABASE_SUPPORT="Soporte de la base de datos:" INSTL_JSON_SUPPORT_AVAILABLE="Soporte JSON" INSTL_MB_LANGUAGE_IS_DEFAULT="El idioma de MB es el predeterminado" -; Deprecated, will be removed with 6.0 -INSTL_MB_STRING_OVERLOAD_OFF="'MB String Overload' desactivado" INSTL_NOTICE_DATABASE_SUPPORT="No se encontraron bases de datos compatibles." INSTL_NOTICE_JSON_SUPPORT_AVAILABLE="Para que se pueda instalar Joomla su instalacción de PHP necesita tener habilitado JSON." INSTL_NOTICE_MBLANG_NOTDEFAULT="El lenguaje de PHP mbstring no está configurado como neutral. Esto se puede configurar localmente introduciendo php_value mbstring.language neutral en su archivo .htaccess." -; Deprecated, will be removed with 6.0 -INSTL_NOTICE_MBSTRING_OVERLOAD_OFF="La sobrecarga de la función PHP mbstring está configurada. Esto se puede desactivar localmente introduciendo php_value mbstring.func_overload 0 en su archivo .htaccess." INSTL_NOTICE_PARSE_INI_FILE_AVAILABLE="Las funciones requeridas parse_ini_file y parse_ini_string están deshabilitadas en su servidor." INSTL_NOTICE_XML_SUPPORT="El soporte XML no está disponible. Esto debería estar habilitado de forma predeterminada en php, pero los usuarios de Ubuntu pueden necesitar instalar esto desde la consola con sudo apt-get install php-xml seguido del reinicio del servidor web." INSTL_NOTICE_ZLIB_COMPRESSION_SUPPORT="La compresión Zlib no está activada. Esto se puede activar localmente añadiendo zlib.output_compression = On en su archivo .htaccess." @@ -242,7 +239,7 @@ JHIDEPASSWORD="Ocultar contraseña" JINVALID_TOKEN="Las solicitudes recientes han sido denegadas porque tenían un 'token' de seguridad inválido. Por favor, actualice la página e inténtelo de nuevo." JINVALID_TOKEN_NOTICE="El token de seguridad no coincidía. La solicitud se abortó para evitar cualquier violación de seguridad. Vuelve a intentarlo." JNEXT="Siguiente" -JNO="No" +JNO="Nunca" JNOTICE="Notificación" JOFF="Desactivado" JON="Activado" diff --git a/installation/language/es-ES/langmetadata.xml b/installation/language/es-ES/langmetadata.xml index 26957cad71f52..0cbbf5b09b784 100644 --- a/installation/language/es-ES/langmetadata.xml +++ b/installation/language/es-ES/langmetadata.xml @@ -1,7 +1,7 @@ Spanish (es-ES) - 5.4.1 + 6.0.1 2025-10 Spanish [es-ES] Translation Team (C) 2005 Open Source Matters, Inc. @@ -11,7 +11,7 @@ Spanish (es-ES) - Español (España) + Spanish (es-ES) es-ES 0 diff --git a/installation/language/et-EE/joomla.ini b/installation/language/et-EE/joomla.ini index 3ad5ece347458..8958d120484a5 100644 --- a/installation/language/et-EE/joomla.ini +++ b/installation/language/et-EE/joomla.ini @@ -32,6 +32,7 @@ BUILD_MIN_PHP_ERROR_TEXT="Sinu veebimajutuse pakkuja peab kasutama PHP versiooni BUILD_MIN_PHP_ERROR_URL_TEXT="Aita mul seda lahendada" ; Main Config +INSTL_CHANGE_INSTALL_LANG_SHORT="Muuda" INSTL_SELECT_INSTALL_LANG="Vali paigalduse keel" INSTL_SELECT_LANGUAGE_TITLE="Vali keel" INSTL_SETUP_LOGIN_DATA="Sisesta sisselogimise info" @@ -42,13 +43,9 @@ INSTL_WARNJSON="Et Joomlat saaks installida, peab sinu PHP-s olema JSON sisse l INSTL_DATABASE_SUPPORT="Andmebaasi tugi:" INSTL_JSON_SUPPORT_AVAILABLE="JSON tugi" INSTL_MB_LANGUAGE_IS_DEFAULT="MB Language on vaikeväärtus" -; Deprecated, will be removed with 6.0 -INSTL_MB_STRING_OVERLOAD_OFF="MB String Overload on välja lülitatud" INSTL_NOTICE_DATABASE_SUPPORT="Ühtegi toetatud andmebaasi ei leitud." INSTL_NOTICE_JSON_SUPPORT_AVAILABLE="Et Joomlat saaks installida, peab sinu PHP-s olema JSON sisse lülitatud!" INSTL_NOTICE_MBLANG_NOTDEFAULT="PHP mbstring language funktsioon pole pandud neutraalseks. Seda saab teha sisestades faili .htaccess rea php_value mbstring.language neutral." -; Deprecated, will be removed with 6.0 -INSTL_NOTICE_MBSTRING_OVERLOAD_OFF="PHP mbstring overload funktsioon on sisse lülitatud. Selle saab välja sisestades faili .htaccess rida php_value mbstring.func_overload 0." INSTL_NOTICE_PARSE_INI_FILE_AVAILABLE="Nõutud PHP funktsioonid parse_ini_file ja parse_ini_string on sinu serveris keelatud." INSTL_NOTICE_XML_SUPPORT="XML tugi pole saadaval. See peaks olema vaikimisi lubatud, aga Ubuntu serveris tuleb seda paigaldada käsuga sudo apt-get install php-xml ja siis server taaskäivitada." INSTL_NOTICE_ZLIB_COMPRESSION_SUPPORT="Zlib pakkimismeetod on määramata. Selle saab sisse lülitada sisestades zlib.output_compression = On sinu php.ini faili." @@ -145,7 +142,6 @@ INSTL_LANGUAGES_WARNING_NO_INTERNET="Joomla! ei suutnud keelte serveriga ühendu INSTL_LANGUAGES_WARNING_NO_INTERNET2="Märkus: Sa saad keeled hiljem Joomla! adminiliidesest paigaldada." ; Automated Updates Opt Out -INSTL_AUTOMATED_UPDATES="Automaatsed uuendused" INSTL_AUTOMATED_UPDATES_DESC="Joomla uuendab end automaatselt väikeste väljalasete ja parandusväljalasete korral.

Palun pane tähele: automaatsed uuendused registreerivad sinu lehe Joomla! projekti hallatavas teenuses. See registreerimine võimaldab Joomla projektil saada teavet sinu lehe ja serveri keskkonna kohta, sealhulgas lehe URL, PHP versioon, andmebaasi tüüp ja versioon, CMS-i versioon ning serveri operatsioonisüsteemi tüüp ja versioon. Seda teavet kasutatakse ainult teenuse parandamiseks.

Soovi korral saad automaatsed uuendused alloleva nupu abil keelata." INSTL_AUTOMATED_UPDATES_DISABLE="Keela automaatsed uuendused" INSTL_COMPLETE_ERROR_AUTOMATED_UPDATES_DISABLE="Ei suutnud keelata automaatset uuendamist." diff --git a/installation/language/et-EE/langmetadata.xml b/installation/language/et-EE/langmetadata.xml index 3a456407e7bb5..454b5e1fc5c2e 100644 --- a/installation/language/et-EE/langmetadata.xml +++ b/installation/language/et-EE/langmetadata.xml @@ -1,7 +1,7 @@ Estonian - 5.4.1 + 6.0.1 2025-10 Joomla! Project (C) 2005 Open Source Matters, Inc. diff --git a/installation/language/eu-ES/joomla.ini b/installation/language/eu-ES/joomla.ini index 4302a87c0e689..be839c0f2d583 100644 --- a/installation/language/eu-ES/joomla.ini +++ b/installation/language/eu-ES/joomla.ini @@ -32,6 +32,7 @@ BUILD_MIN_PHP_ERROR_TEXT="Zure ostalariak PHP bertsio hau {{phpversion}} edo be BUILD_MIN_PHP_ERROR_URL_TEXT="Lagundu niri hau konpontzen" ; Main Config +INSTL_CHANGE_INSTALL_LANG_SHORT="Aldatu" INSTL_SELECT_INSTALL_LANG="Hautatu Instalazio Hizkuntza" INSTL_SELECT_LANGUAGE_TITLE="Hautatu Hizkuntza" INSTL_SETUP_LOGIN_DATA="Konfiguratu Saio-hasierako Datuak" @@ -42,13 +43,9 @@ INSTL_WARNJSON="Zure PHP instalazioak JSON gaituta eduki behar du Joomla! instal INSTL_DATABASE_SUPPORT="Datu-base Laguntza:" INSTL_JSON_SUPPORT_AVAILABLE="JSON Laguntza" INSTL_MB_LANGUAGE_IS_DEFAULT="MB Hizkuntza da Lehenetsia" -; Deprecated, will be removed with 6.0 -INSTL_MB_STRING_OVERLOAD_OFF="MB String Overload desgaituta" INSTL_NOTICE_DATABASE_SUPPORT="Ez da aurkitu datu-base bateragarririk." INSTL_NOTICE_JSON_SUPPORT_AVAILABLE="Zure PHP instalazioak JSON gaituta eduki behar du Joomla! instalatu ahal izateko!" INSTL_NOTICE_MBLANG_NOTDEFAULT="PHP mbstring language ez dago jarrita neutral gisa jarrita. Hau ezar daiteke gunean bertan idatziz php_value mbstring.language neutral zure .htaccess fitxategian." -; Deprecated, will be removed with 6.0 -INSTL_NOTICE_MBSTRING_OVERLOAD_OFF="PHP 'mbstring function overload' gaituta dago. Hau desgaitu daiteke gunean bertan idatziz php_value mbstring.func_overload 0 zure .htaccess fitxategian." INSTL_NOTICE_PARSE_INI_FILE_AVAILABLE="Beharrezko php funtzioak parse_ini_file eta parse_ini_string desgaituta daude zure zerbitzarian." INSTL_NOTICE_XML_SUPPORT="XML laguntza ez dago erabilgarri. Hau lehenetsita gaitu beharko litzateke php-n, baina Ubuntu erabiltzaileek instalatu beharko dute sudo apt-get install php-xml eginez eta ondoren web zerbitzaria berrabiarazteko." INSTL_NOTICE_ZLIB_COMPRESSION_SUPPORT="Zlib konpresioa ez dago ezarrita. Hau lokalki aktiba daiteke zlib.output_compression = On ezarrita zure php.ini fitxategian." diff --git a/installation/language/eu-ES/langmetadata.xml b/installation/language/eu-ES/langmetadata.xml index 21b84efbb2bc0..413d76ed2334f 100644 --- a/installation/language/eu-ES/langmetadata.xml +++ b/installation/language/eu-ES/langmetadata.xml @@ -1,7 +1,7 @@ Basque - 5.4.1 + 6.0.1 2025-10 Joomla! Basque Translation Team (C) 2005 Open Source Matters, Inc. diff --git a/installation/language/fa-AF/joomla.ini b/installation/language/fa-AF/joomla.ini index 4a3318f6b882c..5d53f8d29b55d 100644 --- a/installation/language/fa-AF/joomla.ini +++ b/installation/language/fa-AF/joomla.ini @@ -32,6 +32,7 @@ BUILD_MIN_PHP_ERROR_TEXT="شما برای اجرای این نسخه از جوم BUILD_MIN_PHP_ERROR_URL_TEXT="برای حل این مشکل کمک کن" ; Main Config +INSTL_CHANGE_INSTALL_LANG_SHORT="تغییر" INSTL_SELECT_INSTALL_LANG="زبان نصب را انتخاب کنید" INSTL_SELECT_LANGUAGE_TITLE="انتخاب لسان" INSTL_SETUP_LOGIN_DATA="تنظیمات اطلاعات ورود" @@ -42,13 +43,9 @@ INSTL_WARNJSON="برای نصب جوملا ، تابع JSON باید در PHP س INSTL_DATABASE_SUPPORT="پشتیبانی از دیتابیس:" INSTL_JSON_SUPPORT_AVAILABLE="پشتیبانی از JSON" INSTL_MB_LANGUAGE_IS_DEFAULT="MB Language پیش‌فرض است" -; Deprecated, will be removed with 6.0 -INSTL_MB_STRING_OVERLOAD_OFF="MB String Overload خاموش است" INSTL_NOTICE_DATABASE_SUPPORT="هیچ دیتابیسی که توسط جوملا پشتیبانی شود پیدا نشد." INSTL_NOTICE_JSON_SUPPORT_AVAILABLE="برای نصب جوملا ، تابع JSON باید در PHP سرور شما فعال باشد!" INSTL_NOTICE_MBLANG_NOTDEFAULT="متغیر MB String در پی اچ پی تنظیم نشده است.می‌توانید این مورد را با وارد کردن php_value mbstring.language neutral در فایل .htaccess>/code> خود تنظیم کنید." -; Deprecated, will be removed with 6.0 -INSTL_NOTICE_MBSTRING_OVERLOAD_OFF="متغییر mbstring overload در پی اچ پی تنظیم شده است. و می‌توانید با وارد کردن php_value mbstring.func_overload 0 در فایل .htaccess آنرا غیر فعال کنید." INSTL_NOTICE_PARSE_INI_FILE_AVAILABLE="توابع الزامی parse_ini_file و parse_ini_string باید روی سرور غیرفعال باشند." INSTL_NOTICE_XML_SUPPORT="پشتیبانی از XML در دسترس نیست. این مورد باید بصورت پیش‌فرض فعال باشد اما برای کاربران اوبونتو می‌توانید با دستور sudo apt-get install php-xml و ری‌استارت سرور این مورد را در php خود نصب کنید." INSTL_NOTICE_ZLIB_COMPRESSION_SUPPORT="قابلیت Zlib compression تعیین نشده است. شما می‌توانید بصورت محلی با وارد کردن zlib.output_compression = Onدر php.ini این قابلیت را فعال کنید." @@ -74,10 +71,6 @@ INSTL_DATABASE_ENCRYPTION_MODE_VALUE_NONE="پیش‌فرض (کنترل شده‌ INSTL_DATABASE_ENCRYPTION_MODE_VALUE_ONE_WAY="احراز هویت تک مرحله‌ای" INSTL_DATABASE_ENCRYPTION_MODE_VALUE_TWO_WAY="احراز هویت دو مرحله‌ای" INSTL_DATABASE_ENCRYPTION_MSG_CONN_NOT_ENCRYPT="شما رمزنگاری اتصال به دیتابیس را انتخاب کرده‌اید، و می‌توان این اتصال را برقرار کرد، اما این اتصال رمزنگاری نشده است. دلیل این اتفاق ممکن است از پیکربندی نادرست برای بازگشت یک اتصال رمزنگاری نشده از طرف سرور بابت پارامترهای رمزنگاری باشد. به همین منظور پارامترهای رمزنگاری دیتابیس را چک کنید یا فیلد مربوط به «رمزنگاری اتصال» را به حالت «پیش‌فرض (کنترل شده توسط سرور)» تغییر دهید." -INSTL_DATABASE_ENCRYPTION_MSG_FILE_FIELD_BAD="فایل وارد شده در فیلد «%s» وجود ندارد یا در دسترس نیست." -INSTL_DATABASE_ENCRYPTION_MSG_FILE_FIELD_EMPTY="فیلد \"%s\" خالی است یا شامل مسیر معتبر نیست." -INSTL_DATABASE_ENCRYPTION_MSG_LOCALHOST="شما نام هاست را «localhost» وارد کرده‌اید. اتصال به پایگاه داده با رمزگذاری اتصال ممکن است ناموفق باشد. برای این کار می‌توانید به جای عبارت «localhost» از «127.0.0.1» یا «::1» یا سایر نام هاست‌ها استفاده کنید یا اینکه «رمرزنگاری اتصال» را به حالت «پیش‌فرض (کنترل شده توسط سرور)» برگردانید." -INSTL_DATABASE_ENCRYPTION_MSG_SRV_NOT_SUPPORTS="سرور دیتابیس، از رمزنگاری اتصال پشتیبانی نمی‌کند. با فعالسازی TLS (که در مستندات به SSL از آن یاد شده) ممکن است مشکل حل شود، یا اینکه فیلد «رمزنگاری اتصال» را به «پیش‌فرض (کنترل توسط سرور)» تغییر دهید." INSTL_DATABASE_ENCRYPTION_VERIFY_SERVER_CERT_LABEL="نمایش گواهینامه‌های سرور" INSTL_DATABASE_ERROR_POSTGRESQL_QUERY="کوئری پایگاه داده PostgreSQ ناموفق بود." INSTL_DATABASE_HOST_DESC="نام هاست را وارد کنید، معمولا «localhost» یا نامی که توسط هاست معرفی می‌شود است." @@ -249,7 +242,6 @@ JYES="بلی" JLIB_DATABASE_ERROR_CONNECT_MYSQL="اتصال به MYSQL ناموفق بود." JLIB_DATABASE_ERROR_DATABASE="خطایی در دیتابیس رخ داده است." JLIB_DATABASE_ERROR_LOAD_DATABASE_DRIVER="بارگذاری درایور دیتابیس امکان پذیر نیست: %s" -JLIB_DATABASE_ERROR_VALID_MAIL="آدرس ایمیل وارد شده نامعتبر است. لطفاً از یک ایمیل دیگر استفاده کنید." JLIB_ENVIRONMENT_SESSION_EXPIRED="نشست شما منقضی شده است، لطفا صفحه را (Reload) مجدداً بارگزاری کنید." JLIB_FILESYSTEM_ERROR_PATH_IS_NOT_A_FOLDER="%1$s: مسیر شامل پوشه نیست. مسیر: %2$s" JLIB_FORM_FIELD_INVALID="فیلد نامعتبر:  " @@ -310,7 +302,6 @@ JFIELD_PASSWORD_TOO_LONG="رمزعبور خیلی طولانیست. رمزعبو JFIELD_PASSWORD_TOO_SHORT_N="رمزعبور خیلی کوتاه است. رمزعبور حداقل باید %d حرف داشته باشد." ; Javascript Form Validation Messages -JLIB_FORM_CONTAINS_INVALID_FIELDS="فرم را نمی‌توان ارسال کرد زیرا فاقد اطلاعات مورد نیاز است.
لطفاً فیلدهایی که ستاره‌دار هستند را با دقت پر کنید و مجدداً تلاش کنید." JLIB_FORM_FIELD_INVALID_VALUE="این مقدار معتبر نیست." JLIB_FORM_FIELD_REQUIRED_CHECK="یک گزینه باید انتخاب شود." JLIB_FORM_FIELD_REQUIRED_VALUE="این فیلد را پر کنید." diff --git a/installation/language/fa-AF/langmetadata.xml b/installation/language/fa-AF/langmetadata.xml index f73634ffef5b7..6ccfde9097a5c 100644 --- a/installation/language/fa-AF/langmetadata.xml +++ b/installation/language/fa-AF/langmetadata.xml @@ -1,7 +1,7 @@ فارسی (دری) - 5.4.1 + 6.0.1 2025-10 JoomlaPersian Translation Team (C) 2005 Open Source Matters, Inc. diff --git a/installation/language/fa-IR/joomla.ini b/installation/language/fa-IR/joomla.ini index fc597004f0d43..6c766ca9c278a 100644 --- a/installation/language/fa-IR/joomla.ini +++ b/installation/language/fa-IR/joomla.ini @@ -32,6 +32,7 @@ BUILD_MIN_PHP_ERROR_TEXT="میزبان شما برای اجرای این نسخ BUILD_MIN_PHP_ERROR_URL_TEXT="به من کمک کنید تا این مسئله را حل کنم" ; Main Config +INSTL_CHANGE_INSTALL_LANG_SHORT="تغییر" INSTL_SELECT_INSTALL_LANG="زبان نصب را انتخاب کنید" INSTL_SELECT_LANGUAGE_TITLE="انتخاب زبان" INSTL_SETUP_LOGIN_DATA="داده ورود به سیستم را تنظیم کنید" @@ -42,13 +43,9 @@ INSTL_WARNJSON="برای نصب PHP شما باید JSON فعال باشد تا INSTL_DATABASE_SUPPORT="پشتیبانی پایگاه داده:" INSTL_JSON_SUPPORT_AVAILABLE="پشتیبانی از JSON" INSTL_MB_LANGUAGE_IS_DEFAULT="MB زبان پیش فرض است" -; Deprecated, will be removed with 6.0 -INSTL_MB_STRING_OVERLOAD_OFF="MB اضافه بار رشته خاموش است" INSTL_NOTICE_DATABASE_SUPPORT="هیچ پایگاه داده پشتیبانی شده یافت نشد." INSTL_NOTICE_JSON_SUPPORT_AVAILABLE="برای نصب PHP شما باید JSON فعال باشد تا جوملا نصب شود!" INSTL_NOTICE_MBLANG_NOTDEFAULT="زبان PHP mbstring روی حالت خنثی تنظیم نشده است. می توانید بصورت دستی با وارد کردن php_value mbstring.language neutral در فایل .htaccess خود تنظیم کنید." -; Deprecated, will be removed with 6.0 -INSTL_NOTICE_MBSTRING_OVERLOAD_OFF="اضافه بار تابع PHP mbstring تنظیم شده است. می توانید با وارد کردن به صورت محلی php_value mbstring.func_overload 0 در فایل .htaccess خاموش کرد." INSTL_NOTICE_PARSE_INI_FILE_AVAILABLE="توابع مورد نیاز parse_ini_file و parse_ini_string در سرور شما غیر فعال هستند." INSTL_NOTICE_XML_SUPPORT="پشتیبانی XML در دسترس نیست. این مورد باید به صورت پیش فرض در php فعال باشد اما ممکن است کاربران اوبونتو با انجام sudo apt-get install php-xml و سپس اه اندازی مجدد وب سرور، این مورد را نصب کنند." INSTL_NOTICE_ZLIB_COMPRESSION_SUPPORT="فشرده سازی Zlib تنظیم نشده است. با وارد کردن zlib.output_compression = روشن در پرونده php.ini خود، می توانید این مورد را به صورت محلی فعال کنید." diff --git a/installation/language/fa-IR/langmetadata.xml b/installation/language/fa-IR/langmetadata.xml index 1d97c43bc8d22..eac55d452c09c 100644 --- a/installation/language/fa-IR/langmetadata.xml +++ b/installation/language/fa-IR/langmetadata.xml @@ -1,7 +1,7 @@ Persian (fa-IR) - 5.4.1 + 6.0.1 2025-10 Persian Translation Team: joomlafarsi.com (C) 2005 Open Source Matters, Inc. diff --git a/installation/language/fi-FI/joomla.ini b/installation/language/fi-FI/joomla.ini index fef53acd61a1c..23b280bb963e9 100644 --- a/installation/language/fi-FI/joomla.ini +++ b/installation/language/fi-FI/joomla.ini @@ -32,6 +32,9 @@ BUILD_MIN_PHP_ERROR_TEXT="Palvelimen täytyy käyttää PHP-versiota {{phpversio BUILD_MIN_PHP_ERROR_URL_TEXT="Auta minua ratkaisemaan tämä" ; Main Config +INSTL_CHANGE_INSTALL_LANG="Muuta asennuskieltä" +INSTL_CHANGE_INSTALL_LANG_SHORT="Vaihda" +INSTL_SELECTED_INSTALL_LANGUAGE="Käytössä oleva kieli: %s" INSTL_SELECT_INSTALL_LANG="Valitse asennuskieli" INSTL_SELECT_LANGUAGE_TITLE="Valitse kieli" INSTL_SETUP_LOGIN_DATA="Aseta kirjautumistiedot" @@ -42,13 +45,9 @@ INSTL_WARNJSON="PHP-asennuksessasi tulee olla JSON käytössä, jotta Joomla ase INSTL_DATABASE_SUPPORT="Database Support:" INSTL_JSON_SUPPORT_AVAILABLE="JSON-tuki" INSTL_MB_LANGUAGE_IS_DEFAULT="MB Language on oletus" -; Deprecated, will be removed with 6.0 -INSTL_MB_STRING_OVERLOAD_OFF="MB String Overload Off" INSTL_NOTICE_DATABASE_SUPPORT="Tuettuja tietokantoja ei löytynyt." INSTL_NOTICE_JSON_SUPPORT_AVAILABLE="PHP-asennuksessasi tulee olla JSON käytössä, jotta Joomla asentuu!" INSTL_NOTICE_MBLANG_NOTDEFAULT="PHP mbstring kieli ei ole asetettu arvoon neutral. Tämä voidaan tehdä paikallisesti kirjoittamalla php_value mbstring.language neutral tiedostoon .htaccess." -; Deprecated, will be removed with 6.0 -INSTL_NOTICE_MBSTRING_OVERLOAD_OFF="PHP mbstring function overload -asetus on käytössä. Tämä voidaan estää paikallisesti kirjoittamalla php_value mbstring.func_overload 0 tiedostoon .htaccess." INSTL_NOTICE_PARSE_INI_FILE_AVAILABLE="Vaaditut php-funktiot parse_ini_file ja parse_ini_string eivät ole käytettävissä palvelimellasi." INSTL_NOTICE_XML_SUPPORT="XML-tuki ei ole käytettävissä. Tämän pitäisi olla oletusarvoisesti käytössä php:ssä, mutta Ubuntu käyttäjät saattavat joutua asentamaan tämän komennolla sudo apt-get install php-xml sekä tehdä web-palvelimen uudelleenkäynnistys." INSTL_NOTICE_ZLIB_COMPRESSION_SUPPORT="Zlib-pakkaus ei ole käytettävissä. Tämän voi ottaa käyttöön paikallisesti lisäämällä teksti zlib.output_compression = Onphp.ini-tiedostoon." diff --git a/installation/language/fi-FI/langmetadata.xml b/installation/language/fi-FI/langmetadata.xml index 050c7f53afd11..6e5529be42320 100644 --- a/installation/language/fi-FI/langmetadata.xml +++ b/installation/language/fi-FI/langmetadata.xml @@ -1,7 +1,7 @@ Finnish (Finland) - 5.4.1 + 6.0.1 2025-10 Finnish translation team: Joomla.fi (C) 2005 Open Source Matters, Inc. diff --git a/installation/language/fr-CA/joomla.ini b/installation/language/fr-CA/joomla.ini index c3a7086440124..9754358fd80ad 100644 --- a/installation/language/fr-CA/joomla.ini +++ b/installation/language/fr-CA/joomla.ini @@ -14,7 +14,7 @@ BUILD_FATAL_URL_TEXT="Aidez-moi à résoudre ceci" ; These will be processed by the JavaScript Build BUILD_INCOMPLETE_HEADER="Configuration de l'environnement incomplète" BUILD_INCOMPLETE_LANGUAGE="Français FR" ; IMPORTANT NOTE FOR TRANSLATORS: Do not literally translate this line, instead add the localised name of the language. For example French will be Français FR -BUILD_INCOMPLETE_TEXT="Il semble que vous essayez d'exécuter Joomla! depuis notre dépôt git. Pour cela vous devez d'abord compléter quelques étapes supplémentaires." +BUILD_INCOMPLETE_TEXT="Il semble que vous essayez d'exécuter Joomla! depuis notre dépôt git. Pour ce faire, vous devez d'abord compléter quelques étapes supplémentaires." BUILD_INCOMPLETE_URL_TEXT="Plus de détails" ; No XML PHP error page @@ -32,6 +32,9 @@ BUILD_MIN_PHP_ERROR_TEXT="Votre serveur a besoin d'utiliser la version {{phpvers BUILD_MIN_PHP_ERROR_URL_TEXT="Aidez-moi à résoudre ceci" ; Main Config +INSTL_CHANGE_INSTALL_LANG="Changer la langue d'installation" +INSTL_CHANGE_INSTALL_LANG_SHORT="Sélectionnez la position" +INSTL_SELECTED_INSTALL_LANGUAGE="Langue actuelle : %s" INSTL_SELECT_INSTALL_LANG="Choix de la langue d’installation" INSTL_SELECT_LANGUAGE_TITLE="Choix de la langue" INSTL_SETUP_LOGIN_DATA="Configuration des données de connexion" @@ -42,13 +45,9 @@ INSTL_WARNJSON="JSON doit être activé sur le serveur PHP pour pouvoir installe INSTL_DATABASE_SUPPORT="Bases de données supportées :" INSTL_JSON_SUPPORT_AVAILABLE="Support JSON" INSTL_MB_LANGUAGE_IS_DEFAULT="Directive Mbstring langage par défaut" -; Deprecated, will be removed with 6.0 -INSTL_MB_STRING_OVERLOAD_OFF="Directive Mbstring overload désactivée" INSTL_NOTICE_DATABASE_SUPPORT="Aucune base de données prise en charge n’a été trouvée." INSTL_NOTICE_JSON_SUPPORT_AVAILABLE="JSON doit être activé sur le serveur PHP pour pouvoir installer Joomla." INSTL_NOTICE_MBLANG_NOTDEFAULT="La directive PHP mbstring language n'est pas paramétrée à 'neutral'. Cela peut être fait en rajoutant php_value mbstring.language neutral dans le fichier .htaccess." -; Deprecated, will be removed with 6.0 -INSTL_NOTICE_MBSTRING_OVERLOAD_OFF="La directive PHP mbstring overload est activée. Vous pouvez la désactiver en ajoutant php_value mbstring.func_overload 0 dans le fichier ..htaccess." INSTL_NOTICE_PARSE_INI_FILE_AVAILABLE="Les fonctions parse_ini_file et parse_ini_string sont requises mais elles sont déactivées sur votre serveur PHP." INSTL_NOTICE_XML_SUPPORT="Le support XML n'est pas activé dans PHP. Les utilisateurs d'Ubuntu peuvent l'installer avec la commande sudo apt-get install php-xml suivi d'un redémarrage du serveur web." INSTL_NOTICE_ZLIB_COMPRESSION_SUPPORT="La compression Zlib n'est pas définie. Elle peut être activée localement en saisissant la ligne zlib.output_compression = On dans le fichier php.ini." @@ -240,9 +239,9 @@ JGLOBAL_SELECT_NO_RESULTS_MATCH="Aucun résultat correspondant" JGLOBAL_SELECT_SOME_OPTIONS="Sélectionnez certaines options" JHIDEPASSWORD="Masquer le mot de passe" JINVALID_TOKEN="La dernière requête a été refusée car elle contenait un marqueur de sécurité invalide. Rafraîchissez la page et réessayez." -JINVALID_TOKEN_NOTICE="L'identifiant de sécurité ne correspond pas. La requête a été annulée pour éviter toute violation de sécurité. Veuillez réessayer." +JINVALID_TOKEN_NOTICE="L'identifiant de sécurité ne correspondait pas. La demande a été interrompue pour empêcher toute violation de la sécurité. Veuillez réessayer." JNEXT="Suivant" -JNO="Non" +JNO="Jamais" JNOTICE="Annonce" JOFF="Désactivé" JON="Activé" @@ -263,7 +262,7 @@ JLIB_FILESYSTEM_ERROR_PATH_IS_NOT_A_FOLDER="%1$s : Le chemin n'est pas un dossie JLIB_FORM_FIELD_INVALID="Champ invalide : " JLIB_FORM_VALIDATE_FIELD_INVALID="Champ invalide: %s" JLIB_FORM_VALIDATE_FIELD_REQUIRED="Champ requis: %s" -JLIB_INSTALLER_ABORT="Arrêt de l'installation de la langue : %s" +JLIB_INSTALLER_ABORT="Interruption de l'installation de la langue : %s" JLIB_INSTALLER_ABORT_CREATE_DIRECTORY="Extension %1$s : Impossible de créer le répertoire %2$s" JLIB_INSTALLER_ABORT_NOINSTALLPATH="Le chemin d'installation n'existe pas" JLIB_INSTALLER_ABORT_PACK_INSTALL_ERROR_EXTENSION="Pack %1$s : erreur lors de l'installation de l'extension %2$s." @@ -304,7 +303,7 @@ NOTICE="Annonce" WARNING="Alerte" ; Javascript ajax error messages -JLIB_JS_AJAX_ERROR_CONNECTION_ABORT="Une erreur de connexion a eu lieu lors de la récupération des données JSON." +JLIB_JS_AJAX_ERROR_CONNECTION_ABORT="Une interruption de connexion est survenue lors de la récupération des données JSON." JLIB_JS_AJAX_ERROR_NO_CONTENT="Aucun contenu n'a été retourné." JLIB_JS_AJAX_ERROR_OTHER="Une erreur s'est produite lors de la récupération des données JSON : HTTP %d status code." JLIB_JS_AJAX_ERROR_PARSE="Une erreur d'analyse s'est produite lors du traitement des données JSON suivantes :
%s" diff --git a/installation/language/fr-CA/langmetadata.xml b/installation/language/fr-CA/langmetadata.xml index 7392882db4a0c..df0b1d1144574 100644 --- a/installation/language/fr-CA/langmetadata.xml +++ b/installation/language/fr-CA/langmetadata.xml @@ -1,9 +1,9 @@ French (Canada) - 5.4.1 + 6.0.1 2025-10 - Joomla! Project - French translation team + Joomla! Project - Canadian translation team (C) 2005 Open Source Matters, Inc. GNU General Public License version 2 or later; see LICENSE.txt diff --git a/installation/language/fr-FR/joomla.ini b/installation/language/fr-FR/joomla.ini index 2a96496f5e2a6..edc89f17177c7 100644 --- a/installation/language/fr-FR/joomla.ini +++ b/installation/language/fr-FR/joomla.ini @@ -32,6 +32,9 @@ BUILD_MIN_PHP_ERROR_TEXT="Votre serveur a besoin d'utiliser la version {{phpvers BUILD_MIN_PHP_ERROR_URL_TEXT="Aidez-moi à résoudre ceci" ; Main Config +INSTL_CHANGE_INSTALL_LANG="Changer la langue d'installation" +INSTL_CHANGE_INSTALL_LANG_SHORT="Sélectionnez la position" +INSTL_SELECTED_INSTALL_LANGUAGE="Langue actuelle : %s" INSTL_SELECT_INSTALL_LANG="Choix de la langue d’installation" INSTL_SELECT_LANGUAGE_TITLE="Choix de la langue" INSTL_SETUP_LOGIN_DATA="Configuration des données de connexion" @@ -42,13 +45,9 @@ INSTL_WARNJSON="JSON doit être activé sur le serveur PHP pour pouvoir installe INSTL_DATABASE_SUPPORT="Bases de données supportées :" INSTL_JSON_SUPPORT_AVAILABLE="Support JSON" INSTL_MB_LANGUAGE_IS_DEFAULT="Directive Mbstring langage par défaut" -; Deprecated, will be removed with 6.0 -INSTL_MB_STRING_OVERLOAD_OFF="Directive Mbstring overload désactivée" INSTL_NOTICE_DATABASE_SUPPORT="Aucune base de données prise en charge n’a été trouvée." INSTL_NOTICE_JSON_SUPPORT_AVAILABLE="JSON doit être activé sur le serveur PHP pour pouvoir installer Joomla." INSTL_NOTICE_MBLANG_NOTDEFAULT="La directive PHP mbstring language n'est pas paramétrée à 'neutral'. Cela peut être fait en rajoutant php_value mbstring.language neutral dans le fichier .htaccess." -; Deprecated, will be removed with 6.0 -INSTL_NOTICE_MBSTRING_OVERLOAD_OFF="La directive PHP mbstring overload est activée. Vous pouvez la désactiver en ajoutant php_value mbstring.func_overload 0 dans le fichier ..htaccess." INSTL_NOTICE_PARSE_INI_FILE_AVAILABLE="Les fonctions parse_ini_file et parse_ini_string sont requises mais elles sont déactivées sur votre serveur PHP." INSTL_NOTICE_XML_SUPPORT="Le support XML n'est pas activé dans PHP. Les utilisateurs d'Ubuntu peuvent l'installer avec la commande sudo apt-get install php-xml suivi d'un redémarrage du serveur web." INSTL_NOTICE_ZLIB_COMPRESSION_SUPPORT="La compression Zlib n'est pas définie. Elle peut être activée localement en saisissant la ligne zlib.output_compression = On dans le fichier php.ini." @@ -145,7 +144,7 @@ INSTL_LANGUAGES_WARNING_NO_INTERNET="Le système d'installation ne peut pas se c INSTL_LANGUAGES_WARNING_NO_INTERNET2="Note : vous pourrez installer d’autres langues plus tard depuis l’administration de Joomla." ; Automated Updates Opt Out -INSTL_AUTOMATED_UPDATES="Mises à jour automatiques" +INSTL_AUTOMATED_UPDATES="Mises à jour automatisées" INSTL_AUTOMATED_UPDATES_DESC="Joomla se met à jour automatiquement pour les versions mineures et les correctifs.

Veuillez noter que : les mises à jour automatisées enregistrent votre site auprès du service fourni par le projet Joomla, ce qui lui permet d'accéder aux informations suivantes sur votre site web et votre environnement serveur : Url du site, version PHP, version et type de base de données, version du CMS et version du système d'exploitation du serveur. Ces informations ne sont utilisées que pour améliorer le service.

Si vous ne souhaitez pas communiquer ces informations, vous pouvez désactiver les mises à jour automatisées en cliquant sur le bouton ci-dessous." INSTL_AUTOMATED_UPDATES_DISABLE="Désactiver les mises à jour automatisées" INSTL_COMPLETE_ERROR_AUTOMATED_UPDATES_DISABLE="Impossible de désactiver les mises à jour automatisées." @@ -240,7 +239,7 @@ JGLOBAL_SELECT_NO_RESULTS_MATCH="Aucun résultat correspondant" JGLOBAL_SELECT_SOME_OPTIONS="Sélectionnez certaines options" JHIDEPASSWORD="Masquer le mot de passe" JINVALID_TOKEN="La dernière requête a été refusée car elle contenait un marqueur de sécurité invalide. Rafraîchissez la page et réessayez." -JINVALID_TOKEN_NOTICE="L'identifiant de sécurité ne correspond pas. La requête a été annulée pour éviter toute violation de sécurité. Veuillez réessayer." +JINVALID_TOKEN_NOTICE="L'identifiant de sécurité ne correspondait pas. La demande a été interrompue pour empêcher toute violation de la sécurité. Veuillez réessayer." JNEXT="Suivant" JNO="Non" JNOTICE="Annonce" @@ -263,7 +262,7 @@ JLIB_FILESYSTEM_ERROR_PATH_IS_NOT_A_FOLDER="%1$s : Le chemin n'est pas un dossie JLIB_FORM_FIELD_INVALID="Champ invalide : " JLIB_FORM_VALIDATE_FIELD_INVALID="Champ invalide: %s" JLIB_FORM_VALIDATE_FIELD_REQUIRED="Champ requis: %s" -JLIB_INSTALLER_ABORT="Arrêt de l'installation de la langue : %s" +JLIB_INSTALLER_ABORT="Interruption de l'installation de la langue : %s" JLIB_INSTALLER_ABORT_CREATE_DIRECTORY="Extension %1$s : Impossible de créer le répertoire %2$s" JLIB_INSTALLER_ABORT_NOINSTALLPATH="Le chemin d'installation n'existe pas" JLIB_INSTALLER_ABORT_PACK_INSTALL_ERROR_EXTENSION="Pack %1$s : erreur lors de l'installation de l'extension %2$s." @@ -304,7 +303,7 @@ NOTICE="Annonce" WARNING="Alerte" ; Javascript ajax error messages -JLIB_JS_AJAX_ERROR_CONNECTION_ABORT="Une erreur de connexion a eu lieu lors de la récupération des données JSON." +JLIB_JS_AJAX_ERROR_CONNECTION_ABORT="Une interruption de connexion est survenue lors de la récupération des données JSON." JLIB_JS_AJAX_ERROR_NO_CONTENT="Aucun contenu n'a été retourné." JLIB_JS_AJAX_ERROR_OTHER="Une erreur s'est produite lors de la récupération des données JSON : HTTP %d status code." JLIB_JS_AJAX_ERROR_PARSE="Une erreur d'analyse s'est produite lors du traitement des données JSON suivantes :
%s" diff --git a/installation/language/fr-FR/langmetadata.xml b/installation/language/fr-FR/langmetadata.xml index 962a2173f370f..75a59771aa8ef 100644 --- a/installation/language/fr-FR/langmetadata.xml +++ b/installation/language/fr-FR/langmetadata.xml @@ -1,7 +1,7 @@ French (fr-FR) - 5.4.1 + 6.0.1 2025-10 Joomla! Project - French translation team (C) 2005 Open Source Matters, Inc. diff --git a/installation/language/he-IL/joomla.ini b/installation/language/he-IL/joomla.ini index 5d0f76362c9dc..2da54ba162a8e 100644 --- a/installation/language/he-IL/joomla.ini +++ b/installation/language/he-IL/joomla.ini @@ -32,6 +32,7 @@ BUILD_MIN_PHP_ERROR_TEXT="השרת מארח שלך צריך להשתמש בגר BUILD_MIN_PHP_ERROR_URL_TEXT="עזור לי לפתור זאת" ; Main Config +INSTL_CHANGE_INSTALL_LANG_SHORT="שינוי מיקום" INSTL_SELECT_INSTALL_LANG="בחר שפת התקנה" INSTL_SELECT_LANGUAGE_TITLE="בחירת שפה" INSTL_SETUP_LOGIN_DATA="הגדרת נתוני התחברות" @@ -42,13 +43,9 @@ INSTL_WARNJSON="גרסת ה-PHP המותקנת, מחייבת JSON במצב מא INSTL_DATABASE_SUPPORT="תמיכה בבסיסי נתונים:" INSTL_JSON_SUPPORT_AVAILABLE="תמיכת JSON" INSTL_MB_LANGUAGE_IS_DEFAULT="שפת (קידוד) מרובת בתים היא ברירת המחדל" -; Deprecated, will be removed with 6.0 -INSTL_MB_STRING_OVERLOAD_OFF="העמסת מחרוזת בשפת (קידוד) מרובת בתים כבויה" INSTL_NOTICE_DATABASE_SUPPORT="לא נמצאו בסיסי נתונים נתמכים." INSTL_NOTICE_JSON_SUPPORT_AVAILABLE="גרסת ה-PHP המותקנת, מחייבת JSON במצב מאופשר, כדי להתקין את ג'ומלה!" INSTL_NOTICE_MBLANG_NOTDEFAULT="PHP שפת (קידוד) מרובת בתים אינה מוגדרת למצב טבעי.ניתן להגדיר זאת על ידי הכנסת php_value mbstring.language neutral בקובץ .htaccess שלכם." -; Deprecated, will be removed with 6.0 -INSTL_NOTICE_MBSTRING_OVERLOAD_OFF="PHP שפת (קידוד) מרובת בתים - פונקציית טעינת יתר מוגדרת. ניתן לבטל את ההגדרה בעזרת הכנסת php_value mbstring.func_overload 0 בקובץ .htaccess שלכם." INSTL_NOTICE_PARSE_INI_FILE_AVAILABLE="The required php functions parse_ini_file and parse_ini_string are disabled on your server." INSTL_NOTICE_XML_SUPPORT="XML Support is not available. This should be enabled by default in php but Ubuntu users may need to install this by doing sudo apt-get install php-xml followed by web server restart." INSTL_NOTICE_ZLIB_COMPRESSION_SUPPORT="Zlib compression is not set. This can be turned on locally by entering zlib.output_compression = On in your php.ini file." diff --git a/installation/language/he-IL/langmetadata.xml b/installation/language/he-IL/langmetadata.xml index 838e89b4ee387..5c998d7eafef4 100644 --- a/installation/language/he-IL/langmetadata.xml +++ b/installation/language/he-IL/langmetadata.xml @@ -1,7 +1,7 @@ Hebrew (Israel) - 5.4.1 + 6.0.1 2025-10 פרוייקט ג'ומלה (C) 2005 Open Source Matters, Inc. diff --git a/installation/language/hr-HR/joomla.ini b/installation/language/hr-HR/joomla.ini index a58ef269d9dd2..9643cd3a0d721 100644 --- a/installation/language/hr-HR/joomla.ini +++ b/installation/language/hr-HR/joomla.ini @@ -32,6 +32,7 @@ BUILD_MIN_PHP_ERROR_TEXT="Za pokretanje ove Joomla verzije, vaš host treba kori BUILD_MIN_PHP_ERROR_URL_TEXT="Pomozite mi riješiti ovo" ; Main Config +INSTL_CHANGE_INSTALL_LANG_SHORT="Promjena pozicije" INSTL_SELECT_INSTALL_LANG="Odaberite jezik instalacije" INSTL_SELECT_LANGUAGE_TITLE="Odaberite jezik" INSTL_SETUP_LOGIN_DATA="Postavke podataka za pristup" @@ -42,13 +43,9 @@ INSTL_WARNJSON="Vaša PHP instalacija mora imati podršku za JSON da bi se Jooml INSTL_DATABASE_SUPPORT="Podrška baze podataka:" INSTL_JSON_SUPPORT_AVAILABLE="JSON podrška" INSTL_MB_LANGUAGE_IS_DEFAULT="MB jezik je osnovni" -; Deprecated, will be removed with 6.0 -INSTL_MB_STRING_OVERLOAD_OFF="MB String Overload isključen" INSTL_NOTICE_DATABASE_SUPPORT="Nije pronađena podržana baza podataka." INSTL_NOTICE_JSON_SUPPORT_AVAILABLE="Vaša PHP instalacija mora imati podršku za JSON da bi se Joomla! mogla instalirati!" INSTL_NOTICE_MBLANG_NOTDEFAULT="PHP mbstring jezik nije neutralan. Ovo možete namjestiti lokalno unošenjem php_value mbstring.language neutral u .htaccess." -; Deprecated, will be removed with 6.0 -INSTL_NOTICE_MBSTRING_OVERLOAD_OFF="PHP mbstring function overload je uključen. Ovo može biti isključeno lokalno unošenjem php_value mbstring.func_overload 0 u .htaccess." INSTL_NOTICE_PARSE_INI_FILE_AVAILABLE="Potrebne php funkcije parse_ini_file i parse_ini_string onemogućene su na vašem serveru." INSTL_NOTICE_XML_SUPPORT="XML podrška nije dostupna. Ovo bi trebalo biti omogućeno prema zadanim postavkama u php-u, ali korisnici Ubuntu-a možda će to trebati instalirati izvedbom sudo apt-get install php-xml nakon čega je potrebno resetirati web server." INSTL_NOTICE_ZLIB_COMPRESSION_SUPPORT="Zlib kompresija nije postavljena. To se može lokalno uključiti unosom zlib.output_compression = On u datoteku php.ini." @@ -67,7 +64,6 @@ INSTL_ZLIB_COMPRESSION_SUPPORT="Podrška za Zlib kompresiju" INSTL_DATABASE="Konfiguracija baze podataka" INSTL_DATABASE_ENCRYPTION_CA_LABEL="Putanja do CA datoteke" INSTL_DATABASE_ENCRYPTION_CERT_LABEL="Putanja do datoteke certifikata" -INSTL_DATABASE_ENCRYPTION_CIPHER_LABEL="Podržani Cipher Suite - paket šifriranja (opcionalno)" INSTL_DATABASE_ENCRYPTION_KEY_LABEL="Putanja do datoteke privatnog ključa" INSTL_DATABASE_ENCRYPTION_MODE_LABEL="Enkripcija konekcije" INSTL_DATABASE_ENCRYPTION_MODE_VALUE_NONE="Standardno (kontrolira poslužitelj)" @@ -76,7 +72,6 @@ INSTL_DATABASE_ENCRYPTION_MODE_VALUE_TWO_WAY="Dvosmjerna autentifikacija" INSTL_DATABASE_ENCRYPTION_MSG_CONN_NOT_ENCRYPT="Odabrano je korištenje šifrirane veze s bazom podataka i veza bi se mogla uspostaviti, ali nije šifrirana. Razlog bi mogao biti taj što je poslužitelj baze podataka konfiguriran da se vrati na nešifriranu vezu u slučaju loših parametara šifriranja. Provjeri i ispravi parametre šifriranja baze podataka ili promijeni polje \"Šifriranje veze\" natrag na \"Zadano (kontrolira poslužitelj)\"." INSTL_DATABASE_ENCRYPTION_MSG_FILE_FIELD_BAD="Datoteka unesena u polje \"%s\" ne postoji ili joj nije moguće pristupiti." INSTL_DATABASE_ENCRYPTION_MSG_FILE_FIELD_EMPTY="Polje \"%s\" je prazno ili ne sadrži važeću putanju." -INSTL_DATABASE_ENCRYPTION_MSG_LOCALHOST="Upisali ste \"localhost\" kao naziv hosta. Povezivanje s bazom podataka pomoću šifrirane veze moglo bi dovesti do neuspjeha. Ili promijenite \"localhost\" u \"127.0.0.1\" ili \":: 1\" ili drugi naziv hosta ili promijenite polje \"Šifriranje veze\" natrag na \"Zadano (kontrolira poslužitelj) \"." INSTL_DATABASE_ENCRYPTION_MSG_SRV_NOT_SUPPORTS="Poslužitelj baze podataka ne podržava šifriranje veze. Ili omogući podršku za TLS (često se naziva SSL u dokumentima) na svom poslužitelju baze podataka ili promijeni polje \"Šifriranje veze\" natrag na \"Zadano (kontrolira poslužitelj)\"." INSTL_DATABASE_ENCRYPTION_VERIFY_SERVER_CERT_LABEL="Provjeri certifikat servera" INSTL_DATABASE_ERROR_POSTGRESQL_QUERY="PostgreSQL upit na bazu nije uspio." @@ -114,7 +109,7 @@ INSTL_SITE_DEVMODE_LABEL="Detektiran je razvojni način rada" INSTL_SITE_NAME_DESC="Upišite ime vašeg Joomla sitea." ; Expert View -INSTL_PUBLIC_FOLDER_DESC="Relativna ili absolutna putanja do javnog direktorija" +INSTL_PUBLIC_FOLDER_DESC="Relativna ili apsolutna putanja do javnog direktorja" INSTL_PUBLIC_FOLDER_DESC_SHORT="Relativna ili apsolutna putanja do javnog direktorja" ; Complete view @@ -234,9 +229,7 @@ JGLOBAL_SELECT_NO_RESULTS_MATCH="Nijedan rezultat se ne poklapa" JGLOBAL_SELECT_SOME_OPTIONS="Odaberi neke opcije" JHIDEPASSWORD="Sakrij lozinku" JINVALID_TOKEN="Posljednji zahtjev je odbijen jer je sadržavao neispravan sigurnosni token. Molimo osvježite stranicu i pokušajte ponovo." -JINVALID_TOKEN_NOTICE="Sigurnosni "_QQ_"token"_QQ_" ne odgovara. Zahtjev je prekinut kako bi se spriječila bilo kakva povreda sigurnosti. Molimo pokušajte ponovno." JNEXT="Sljedeće" -JNO="Ne" JNOTICE="Napomena" JOFF="Isključeno" JON="Uključeno" diff --git a/installation/language/hr-HR/langmetadata.xml b/installation/language/hr-HR/langmetadata.xml index a806ec64be6ce..71beccea3f4c5 100644 --- a/installation/language/hr-HR/langmetadata.xml +++ b/installation/language/hr-HR/langmetadata.xml @@ -1,7 +1,7 @@ Hrvatski (Hrvatska) - 5.4.1 + 6.0.1 2025-10 Joomla! Hrvatska team (C) 2005 Open Source Matters, Inc. diff --git a/installation/language/hu-HU/joomla.ini b/installation/language/hu-HU/joomla.ini index 30d7cf5a3e709..b769c7814c56a 100644 --- a/installation/language/hu-HU/joomla.ini +++ b/installation/language/hu-HU/joomla.ini @@ -32,6 +32,7 @@ BUILD_MIN_PHP_ERROR_TEXT="Ennek a Joomla! verziónak a futtatásához a kiszolg BUILD_MIN_PHP_ERROR_URL_TEXT="Segíts ezt megoldani" ; Main Config +INSTL_CHANGE_INSTALL_LANG_SHORT="Módosítás" INSTL_SELECT_INSTALL_LANG="Telepítési nyelv kiválasztása" INSTL_SELECT_LANGUAGE_TITLE="Válasszon nyelvet" INSTL_SETUP_LOGIN_DATA="Bejelentkezési adatok beállítása" @@ -42,13 +43,9 @@ INSTL_WARNJSON="A PHP-telepítés a JSON engedélyezését igényli a Joomla tel INSTL_DATABASE_SUPPORT="Adatbázis-támogatás:" INSTL_JSON_SUPPORT_AVAILABLE="JSON-támogatás" INSTL_MB_LANGUAGE_IS_DEFAULT="MB nyelv az alapértelmezett" -; Deprecated, will be removed with 6.0 -INSTL_MB_STRING_OVERLOAD_OFF="MB String túlterhelés ki" INSTL_NOTICE_DATABASE_SUPPORT="Nem találtunk támogatott adatbázisokat." INSTL_NOTICE_JSON_SUPPORT_AVAILABLE="A PHP-telepítés a JSON engedélyezését igényli a Joomla telepítéséhez!" INSTL_NOTICE_MBLANG_NOTDEFAULT="A PHP mbstring nyelvet nem semlegesre állították. Ezt a .htaccess fájlba a php_value mbstring.language neutral beírásával helyben is ki tudja kapcsolni." -; Deprecated, will be removed with 6.0 -INSTL_NOTICE_MBSTRING_OVERLOAD_OFF="A PHP mbstring függvény túlterhelését állították be. Ezt a .htaccess fájlba a php_value mbstring.func_overload 0 beírásával helyben is ki tudja kapcsolni." INSTL_NOTICE_PARSE_INI_FILE_AVAILABLE="A szükséges parse_ini_file és parse_ini_string php függvények le vannak tiltva a kiszolgálóján." INSTL_NOTICE_XML_SUPPORT="Az XML támogatás nem érhető el. Ezt alapértelmezés szerint engedélyezni kell a php-ban, de előfordulhat, hogy az Ubuntu felhasználóknak ezt telepíteniük kell a sudo apt-get install php-xml paranccsal és a kiszolgáló újraindításával." INSTL_NOTICE_ZLIB_COMPRESSION_SUPPORT="A Zlib tömörítés nincs beállítva. Ezt helyileg kapcsolhatja be, ha beírja a zlib.output_compression = On parancsot a php.ini fájlba." @@ -240,7 +237,7 @@ JGLOBAL_SELECT_NO_RESULTS_MATCH="Nincs találat" JGLOBAL_SELECT_SOME_OPTIONS="Válasszon néhány lehetőséget" JHIDEPASSWORD="Jelszó elrejtése" JINVALID_TOKEN="A legutolsó kérés visszautasításra került, mert érvénytelen biztonsági vezérjelet tartalmazott. Frissítse az oldalt, és próbálja meg újra." -JINVALID_TOKEN_NOTICE="Nem egyezik a biztonsági vezérjel. A kérést eldobtuk a lehetséges biztonsági problémák megelőzése érdekében. Kérjük, próbálja meg újra." +JINVALID_TOKEN_NOTICE="Nem egyezik a biztonsági vezérjel. A kérést eldobtuk a lehetséges biztonsági problémák megelőzése érdekében. Kérjük, hogy próbálja meg újra." JNEXT="Következő" JNO="Nem" JNOTICE="Megjegyzés" @@ -263,7 +260,7 @@ JLIB_FILESYSTEM_ERROR_PATH_IS_NOT_A_FOLDER="%1$s: az elérési út nem könyvtá JLIB_FORM_FIELD_INVALID="Érvénytelen mező: " JLIB_FORM_VALIDATE_FIELD_INVALID="Érvénytelen mező: %s" JLIB_FORM_VALIDATE_FIELD_REQUIRED="Kötelező mező: %s" -JLIB_INSTALLER_ABORT="A(z) %s nyelv telepítésének leállítása." +JLIB_INSTALLER_ABORT="A nyelv telepítésének leállítása: %s" JLIB_INSTALLER_ABORT_CREATE_DIRECTORY="Bővítmény %1$s: Hiba a következő mappa létrehozásánál: %2$s." JLIB_INSTALLER_ABORT_NOINSTALLPATH="A telepítés elérési útja nem létezik" JLIB_INSTALLER_ABORT_PACK_INSTALL_ERROR_EXTENSION="Csomag %1$s: Hiba volt egy bővítmény telepítésekor: %2$s" diff --git a/installation/language/hu-HU/langmetadata.xml b/installation/language/hu-HU/langmetadata.xml index 3bc27b16e5297..6d02b8cda0c07 100644 --- a/installation/language/hu-HU/langmetadata.xml +++ b/installation/language/hu-HU/langmetadata.xml @@ -1,7 +1,7 @@ Hungarian (Magyar) - 5.4.1 + 6.0.1 2025-10 Joomla! Magyarország (C) 2005 Open Source Matters, Inc. diff --git a/installation/language/id-ID/joomla.ini b/installation/language/id-ID/joomla.ini index 398127804c02c..d2627a9526c3b 100644 --- a/installation/language/id-ID/joomla.ini +++ b/installation/language/id-ID/joomla.ini @@ -27,6 +27,7 @@ BUILD_MIN_PHP_ERROR_TEXT="Host anda memerlukan PHP versi {{phpversion}} atau yan BUILD_MIN_PHP_ERROR_URL_TEXT="Bantu saya menyelesaikan masalah ini" ; Main Config +INSTL_CHANGE_INSTALL_LANG_SHORT="Ganti Posisi" INSTL_SELECT_INSTALL_LANG="Pilih Bahasa Instalasi" INSTL_SELECT_LANGUAGE_TITLE="Pilih Bahasa" INSTL_SETUP_LOGIN_DATA="Setelan Data Login" @@ -37,12 +38,8 @@ INSTL_WARNJSON="Konfigurasi JSON harus diaktifkan pada pemasangan PHP Anda untuk INSTL_DATABASE_SUPPORT="Dukungan Database:" INSTL_JSON_SUPPORT_AVAILABLE="Dukungan JSON" INSTL_MB_LANGUAGE_IS_DEFAULT="Bahasa MB adalah Bawaan" -; Deprecated, will be removed with 6.0 -INSTL_MB_STRING_OVERLOAD_OFF="MB String Overload Padam" INSTL_NOTICE_DATABASE_SUPPORT="Tidak ada database mendukung yang ditemukan." INSTL_NOTICE_JSON_SUPPORT_AVAILABLE="Konfigurasi JSON harus diaktifkan pada pemasangan PHP Anda untuk melanjutkan proses pemasangan Joomla!" -; Deprecated, will be removed with 6.0 -INSTL_NOTICE_MBSTRING_OVERLOAD_OFF="Fungsi PHP mbstring overload telah diaktifkan. Hal ini dapat dimatikan secara lokal dengan memasukkan php_value mbstring.func_overload 0 di berkas .htaccess Anda." INSTL_NOTICE_PARSE_INI_FILE_AVAILABLE="Fungsi php yang diperlukan parse_ini_file dan parse_ini_string dinonaktifkan di server Anda." INSTL_NOTICE_XML_SUPPORT="Dukungan XML tidak tersedia. Ini harus diaktifkan secara default di php tetapi pengguna Ubuntu mungkin perlu menginstal ini dengan melakukan Sudo apt-get install php-xml diikuti dengan restart server web." INSTL_NOTICE_ZLIB_COMPRESSION_SUPPORT="Kompresi Zlib tidak disetel. Ini dapat diaktifkan secara lokal dengan memasukkan zlib.output_compression = On di file php.ini Anda." diff --git a/installation/language/id-ID/langmetadata.xml b/installation/language/id-ID/langmetadata.xml index d4bf9fa60f085..a96794eb5e5e0 100644 --- a/installation/language/id-ID/langmetadata.xml +++ b/installation/language/id-ID/langmetadata.xml @@ -1,7 +1,7 @@ Bahasa Indonesia (id-ID) - 5.4.1 + 6.0.1 2025-10 Joomla! Indonesia (C) 2005 Open Source Matters, Inc. diff --git a/installation/language/it-IT/joomla.ini b/installation/language/it-IT/joomla.ini index ab781c55d5a2c..00c6993bbd9f8 100644 --- a/installation/language/it-IT/joomla.ini +++ b/installation/language/it-IT/joomla.ini @@ -32,6 +32,9 @@ BUILD_MIN_PHP_ERROR_TEXT="Il tuo host ha bisogno della versione di PHP {{phpvers BUILD_MIN_PHP_ERROR_URL_TEXT="Aiutami a risolvere questo" ; Main Config +INSTL_CHANGE_INSTALL_LANG="Cambia lingua di installazione" +INSTL_CHANGE_INSTALL_LANG_SHORT="Cambia" +INSTL_SELECTED_INSTALL_LANGUAGE="Lingua corrente: %s" INSTL_SELECT_INSTALL_LANG="Seleziona la Lingua di Installazione" INSTL_SELECT_LANGUAGE_TITLE="Seleziona la lingua" INSTL_SETUP_LOGIN_DATA="Configura dati di accesso" @@ -41,14 +44,10 @@ INSTL_WARNJSON="La tua installazione di PHP deve avere JSON abilitato perchè Jo ; Precheck view INSTL_DATABASE_SUPPORT="Supporto Database:" INSTL_JSON_SUPPORT_AVAILABLE="Supporto JSON" -INSTL_MB_LANGUAGE_IS_DEFAULT="MB Lingua Predefinita" -; Deprecated, will be removed with 6.0 -INSTL_MB_STRING_OVERLOAD_OFF="MB String Overload Off" +INSTL_MB_LANGUAGE_IS_DEFAULT="MB language è predefinito" INSTL_NOTICE_DATABASE_SUPPORT="Nessun database supportato trovato." INSTL_NOTICE_JSON_SUPPORT_AVAILABLE="La tua installazione di PHP deve avere JSON abilitato perchè Joomla!® venga installato!" INSTL_NOTICE_MBLANG_NOTDEFAULT="PHP mbstring language non è configurato su 'neutral'. Questo può essere configurato in locale inserendo php_value mbstring.language neutral nel file .htaccess." -; Deprecated, will be removed with 6.0 -INSTL_NOTICE_MBSTRING_OVERLOAD_OFF="E' attiva la funzione PHP mbstring overload. Questa può essere disattivata in locale inserendo php_value mbstring.func_overload 0 nel file .htaccess." INSTL_NOTICE_PARSE_INI_FILE_AVAILABLE="Le funzioni php parse_ini_file e parse_ini_string richieste sono disabilitate sul tuo server." INSTL_NOTICE_XML_SUPPORT="Il supporto XML non è disponibile. Dovrebbe venire abilitato di default in php ma gli utenti Ubuntu potrebbero aver bisogno di installarlo eseguendo sudo apt-get install php-xml seguito dal riavvio del server web." INSTL_NOTICE_ZLIB_COMPRESSION_SUPPORT="La compressione Zlib non è impostata. Può essere attivata localmente inserendo zlib.output_compression = On nel tuo file php.ini." @@ -56,12 +55,12 @@ INSTL_PARSE_INI_FILE_AVAILABLE="Supporto INI Parser" INSTL_PRECHECK_ACTUAL="Attuali" INSTL_PRECHECK_DESC="Se qualcuno di questi elementi non è supportato si prega di intervenire per correggerlo.
Non è possibile installare Joomla fino a che la configurazione non soddisfi questi requisiti." INSTL_PRECHECK_DIRECTIVE="Direttiva" -INSTL_PRECHECK_RECOMMENDED="Raccomandato" +INSTL_PRECHECK_RECOMMENDED="Raccomandati" INSTL_PRECHECK_RECOMMENDED_SETTINGS_DESC="Queste impostazioni sono raccomandate per assicurare l'assoluta compatibilità di PHP con Joomla." INSTL_PRECHECK_RECOMMENDED_SETTINGS_TITLE="Impostazioni raccomandate" INSTL_PRECHECK_TITLE="Controlli pre-installazione" INSTL_XML_SUPPORT="Supporto XML" -INSTL_ZLIB_COMPRESSION_SUPPORT="Supporto Zlib Compression" +INSTL_ZLIB_COMPRESSION_SUPPORT="Zlib Compression Support" ; Database view INSTL_DATABASE="Configurazione database" @@ -76,8 +75,8 @@ INSTL_DATABASE_ENCRYPTION_MODE_VALUE_TWO_WAY="Autenticazione a due fattori" INSTL_DATABASE_ENCRYPTION_MSG_CONN_NOT_ENCRYPT="Hai selezionato una connessione al database cifrata ma è stata stabilita una connessione non cifrata. Il motivo potrebbe essere dovuto da una settaggio del database impostato per restituire una connessione non cifrata in caso di errata configurazione dei parametri. Controlla e correggi i parametri di crittografia del database, o cambia l'impostazione da \"Connessione cifrata\" a \"Predefinita\"." INSTL_DATABASE_ENCRYPTION_MSG_FILE_FIELD_BAD="Il file inserito nel campo \"%s\" non esiste o non è accessibile." INSTL_DATABASE_ENCRYPTION_MSG_FILE_FIELD_EMPTY="Il campo \"%s\" è vuoto o non contiene un percorso valido." -INSTL_DATABASE_ENCRYPTION_MSG_LOCALHOST="Hai inserito \"localhost\" come nome host. Una connessione cifrata verso il database potrebbe non andare a buon fine. Cambia \"localhost\" in \"127.0.0.1\" o \"::1\" o usa un nome host differente. Altrimenti, cambia il parametro \"Connessione cifrata\" in \"Predefinita (controllata dal server)\"." -INSTL_DATABASE_ENCRYPTION_MSG_SRV_NOT_SUPPORTS="Il server del database non supporta la connessione cifrata. Abilita il supporto TLS (altrimenti chiamato SSL nelle documentazioni) sul server del tuo database, oppure cambia il parametro \"Connessione cifrata\" a \"Predefinita (controllata dal server)\"." +INSTL_DATABASE_ENCRYPTION_MSG_LOCALHOST="Hai inserito \"localhost\" come nome host. Una connessione cifrata verso il database potrebbe non andare a buon fine. Cambia \"localhost\" in \"127.0.0.1\" o \"::1\" o usa un nome host differente. Altrimenti, cambia il parametro \"Connessione cifrata\" in \"Predefinito (controllato dal server)\"." +INSTL_DATABASE_ENCRYPTION_MSG_SRV_NOT_SUPPORTS="Il server del database non supporta la connessione cifrata. Abilita il supporto TLS (altrimenti chiamato SSL nelle documentazioni) sul server del tuo database, oppure cambia il parametro \"Connessione cifrata\" a \"Predefinito (controllato dal server)\"." INSTL_DATABASE_ENCRYPTION_VERIFY_SERVER_CERT_LABEL="Verifica certificato server " INSTL_DATABASE_ERROR_POSTGRESQL_QUERY="Query del database PostgreSQL fallita." INSTL_DATABASE_HOST_DESC="Immetti il nome dell'host, solitamente \"localhost\" o un nome fornito dal tuo host." @@ -86,7 +85,7 @@ INSTL_DATABASE_HOST_IS_NOT_LOCALHOST_DELETE_FILE="Per confermare che sei il prop INSTL_DATABASE_HOST_IS_NOT_LOCALHOST_GENERAL_MESSAGE="Stai cercando di utilizzare un host di database che non si trova sul tuo server locale. Per motivi di sicurezza, devi verificare la proprietà del tuo account di web hosting. Leggi la documentazione per ulteriori informazioni." INSTL_DATABASE_HOST_LABEL="Nome Host" INSTL_DATABASE_NAME_DESC="Immetti il nome del database." -INSTL_DATABASE_NAME_LABEL="Nome del database" +INSTL_DATABASE_NAME_LABEL="Nome database" INSTL_DATABASE_NAME_MSG_MYSQL="Il nome del database non è valido. Non deve continuare i seguenti caratteri: \ / ." INSTL_DATABASE_NAME_MSG_POSTGRES="Il nome del database non è valido. Deve iniziare con una lettera, seguita da caratteri alfanumerici." INSTL_DATABASE_NO_SCHEMA="Non esiste nessun schema di database per questo tipo di database." @@ -203,14 +202,14 @@ INSTL_PAGE_TITLE="Installazione di Joomla" ; Configuration model INSTL_ERROR_CONNECT_DB="Impossibile connettersi al database. Il connettore ha restituito il messaggio di errore numero: %d." -INSTL_STD_OFFLINE_MSG="Sito fuori servizio per manutenzione.
Riprovare più tardi." +INSTL_STD_OFFLINE_MSG="Sito fuori servizio per manutenzione.
Riprovare più tardi." ; Languages model INSTL_ERROR_INVALID_URL="URL invalido" ; Others INSTL_CONFPROBLEM="Il file di configurazione o la cartella non è scrivibile, oppure si sono verificati problemi durante la creazione del file configuration.php. Clicca nell'area di testo sottostante per evidenziare tutto il codice e copialo in un nuovo file di testo. Nomina questo file configuration.php e caricalo nella root del tuo sito." -INSTL_DISPLAY_ERRORS="Mostra Errori" +INSTL_DISPLAY_ERRORS="Display Errors" INSTL_ERROR="Errore" INSTL_ERROR_DB="Si sono verificati alcuni errori durante il popolamento del database: %s" INSTL_ERROR_INITIALISE_SCHEMA="Impossibile inizializzare lo schema del database" @@ -225,12 +224,12 @@ INSTL_PHP_VERSION_NEWER="Versione di PHP >= %s" INSTL_PROCESS_BUSY="Processo in esecuzione. Attendere …" INSTL_SESSION_AUTO_START="Auto start sessione" INSTL_WRITABLE="Permessi non sufficienti per creare %s" -INSTL_ZIP_SUPPORT_AVAILABLE="Supporto nativo per ZIP" +INSTL_ZIP_SUPPORT_AVAILABLE="Native ZIP support" ; Global strings JADMINISTRATOR="Amministratore" JCLOSE="Chiudi" -JEMAIL="E-mail" +JEMAIL="Email" JERROR="Errore" JERROR_LAYOUT_ERROR_HAS_OCCURRED_WHILE_PROCESSING_YOUR_REQUEST="si è verificato un errore durante l'esecuzione della richiesta." JGLOBAL_ISFREESOFTWARE="%s è un software libero rilasciato sotto licenza %s." @@ -280,9 +279,9 @@ JLIB_UPDATER_ERROR_OPEN_UPDATE_SITE="Aggiornamento: Non è possibile accedere al JLIB_UTIL_ERROR_CONNECT_DATABASE="JDatabase: :getInstance: Non è stato possibile connettersi al database
joomla.library:%1$s - %2$s." ; Strings for the language debugger -JDEBUG_LANGUAGE_FILES_IN_ERROR="Errori nell'analisi nei file di lingua" +JDEBUG_LANGUAGE_FILES_IN_ERROR="Errori nei file di lingua da analizzare" JDEBUG_LANGUAGE_UNTRANSLATED_STRING="Stringhe non tradotte" -JNONE="Nessuno" +JNONE="Nessuna" ; Necessary for errors ADMIN_EMAIL="Email amministratore" diff --git a/installation/language/it-IT/langmetadata.xml b/installation/language/it-IT/langmetadata.xml index 74c5bf9926157..7aae0398a9169 100644 --- a/installation/language/it-IT/langmetadata.xml +++ b/installation/language/it-IT/langmetadata.xml @@ -1,7 +1,7 @@ Italiano (it-IT) - 5.4.1 + 6.0.1 2025-10 Joomla! Project (Italian Translation Team) (C) 2005 Open Source Matters, Inc. diff --git a/installation/language/ja-JP/joomla.ini b/installation/language/ja-JP/joomla.ini index 79a5c92fecbae..22443df9fce33 100644 --- a/installation/language/ja-JP/joomla.ini +++ b/installation/language/ja-JP/joomla.ini @@ -32,6 +32,9 @@ BUILD_MIN_PHP_ERROR_TEXT="このバージョンのJoomlaを実行するには、 BUILD_MIN_PHP_ERROR_URL_TEXT="この問題を解決するには" ; Main Config +INSTL_CHANGE_INSTALL_LANG="インストール言語の変更" +INSTL_CHANGE_INSTALL_LANG_SHORT="変更" +INSTL_SELECTED_INSTALL_LANGUAGE="現在の言語: %s" INSTL_SELECT_INSTALL_LANG="インストール言語の選択" INSTL_SELECT_LANGUAGE_TITLE="言語を選択" INSTL_SETUP_LOGIN_DATA="ログインデータの設定" @@ -42,13 +45,9 @@ INSTL_WARNJSON="Joomlaをインストールするには、PHPインストール INSTL_DATABASE_SUPPORT="データベースのサポート:" INSTL_JSON_SUPPORT_AVAILABLE="JSON サポート" INSTL_MB_LANGUAGE_IS_DEFAULT="MB Language デフォルト" -; Deprecated, will be removed with 6.0 -INSTL_MB_STRING_OVERLOAD_OFF="MB String オーバーロード オフ" INSTL_NOTICE_DATABASE_SUPPORT="サポートされているデータベースが見つかりませんでした。" INSTL_NOTICE_JSON_SUPPORT_AVAILABLE="Joomlaをインストールするには、PHPインストールでJSONを有効にする必要があります。" INSTL_NOTICE_MBLANG_NOTDEFAULT="PHP mbstring 言語がニュートラルに設定されていません。.htaccess ファイルに php_value mbstring.language neutralを入力することでローカルで設定できます。" -; Deprecated, will be removed with 6.0 -INSTL_NOTICE_MBSTRING_OVERLOAD_OFF="PHP mbstring 関数のオーバーロード機能が設定されています。.htaccess ファイルに php_value mbstring.func_overload 0を入力することでローカルでオフにすることができます。" INSTL_NOTICE_PARSE_INI_FILE_AVAILABLE="必要なphp関数 parse_ini_fileparse_ini_string サーバーで無効になっています。" INSTL_NOTICE_XML_SUPPORT="XMLサポートは利用できません。これはphpでデフォルトで有効になっているはずですが、Ubuntuユーザーは sudo apt-get install php-xml を実行してからWebサーバーを再起動することでこれをインストールする必要がある場合があります。" INSTL_NOTICE_ZLIB_COMPRESSION_SUPPORT="Zlib圧縮が設定されていません。これはphp.ini ファイルに zlib.output_compression = On と入力することでローカルでオンにできます。" @@ -92,7 +91,7 @@ INSTL_DATABASE_NAME_MSG_POSTGRES="データベース名が無効です。文字 INSTL_DATABASE_NO_SCHEMA="このデータベースタイプのデータベーススキーマは存在しません。" INSTL_DATABASE_PASSWORD_DESC="作成したデータベースパスワード、またはホストから提供されたパスワードを入力します。" INSTL_DATABASE_PREFIX_DESC="テーブルプレフィックスを入力するか、ランダムに生成されたプレフィックスを使用" -INSTL_DATABASE_PREFIX_DUPLICATE_DESC="同じプレフィックスを持つテーブルを持つ既存のデータベースを使用している場合、Joomlaはこれらの既存プレフィックスに\"bak_\"を加えて別名に変更します。" +INSTL_DATABASE_PREFIX_DUPLICATE_DESC="同じプレフィックスを持つテーブルを持つ既存のデータベースを使用している場合、Joomlaは接頭辞 「bak_」を追加することで、既存のテーブルの名前を変更します。" INSTL_DATABASE_PREFIX_MSG="テーブル接頭辞は文字で始まり、任意で英数字も使えますが、最後はアンダースコアで終わらなければなりません。" INSTL_DATABASE_RESPONSE_ERROR="インストールプロセスが失敗しました。" INSTL_DATABASE_TYPE_DESC="データベースタイプを選択" diff --git a/installation/language/ja-JP/langmetadata.xml b/installation/language/ja-JP/langmetadata.xml index f3b32b3bbdc00..78282b42b15d4 100644 --- a/installation/language/ja-JP/langmetadata.xml +++ b/installation/language/ja-JP/langmetadata.xml @@ -1,7 +1,7 @@ Japanese (Japan) - 5.4.1 + 6.0.1 2025-10 Joomla!じゃぱん (C) 2005 Open Source Matters, Inc. diff --git a/installation/language/ka-GE/joomla.ini b/installation/language/ka-GE/joomla.ini index 7698e572b2d23..083a29c636754 100644 --- a/installation/language/ka-GE/joomla.ini +++ b/installation/language/ka-GE/joomla.ini @@ -15,7 +15,7 @@ BUILD_FATAL_URL_TEXT="დამეხმარეთ პრობლემის BUILD_INCOMPLETE_HEADER="გარემოს კონფიგურირება არ არის დასულებული" BUILD_INCOMPLETE_LANGUAGE="ქართული GE" ; IMPORTANT NOTE FOR TRANSLATORS: Do not literally translate this line, instead add the localised name of the language. For example French will be Français FR BUILD_INCOMPLETE_TEXT="როგორც ჩანს, თქვენ ცდილობთ Joomla! დაყენებას ჩვენი Git-რეპოზიტორიდან. ამისათვის საჭიროა ჯერ შეასრულოთ რამოდენიმე დამატებითი ნაბიჯი." -BUILD_INCOMPLETE_URL_TEXT="ვრცლად" +BUILD_INCOMPLETE_URL_TEXT="დეტალურად" ; No XML PHP error page ; These will be processed by the JavaScript Build @@ -32,8 +32,9 @@ BUILD_MIN_PHP_ERROR_TEXT="Joomla! ამ ვერსიის დასაყ BUILD_MIN_PHP_ERROR_URL_TEXT="დამეხმარეთ პრობლემის მოგვარებაში" ; Main Config +INSTL_CHANGE_INSTALL_LANG_SHORT="პოზიციის შეცვლა" INSTL_SELECT_INSTALL_LANG="აირჩიეთ დაყენების ენა" -INSTL_SELECT_LANGUAGE_TITLE="აირჩიეთ ენა" +INSTL_SELECT_LANGUAGE_TITLE="ენის არჩევა" INSTL_SETUP_LOGIN_DATA="შესვლის პარამეტრები" INSTL_WARNJAVASCRIPT="ყურადღება! Joomla! სწორად ინსტალაციისთვის ბრაუზერში ჩართული უნდა იყოს JavaScript!" INSTL_WARNJSON="Joomla! ინსტალაციისთვის PHP-ში ჩართული უნდა იყოს JSON!" @@ -41,14 +42,10 @@ INSTL_WARNJSON="Joomla! ინსტალაციისთვის PHP-ში ; Precheck view INSTL_DATABASE_SUPPORT="მონაცემთა ბაზის მხარდაჭერა:" INSTL_JSON_SUPPORT_AVAILABLE="JSON მხარდაჭერა" -INSTL_MB_LANGUAGE_IS_DEFAULT="MB Language არის ავტომატური" -; Deprecated, will be removed with 6.0 -INSTL_MB_STRING_OVERLOAD_OFF="MB String Overload გამორთულია" +INSTL_MB_LANGUAGE_IS_DEFAULT="MB Language ავტომატური" INSTL_NOTICE_DATABASE_SUPPORT="მხარდაჭერილი მონაცემთა ბაზები ვერ მოიძებნა." INSTL_NOTICE_JSON_SUPPORT_AVAILABLE="Joomla! ინსტალაციისთვის PHP-ში ჩართული უნდა იყოს JSON!" -INSTL_NOTICE_MBLANG_NOTDEFAULT="ენა PHP mbstring არ არის დაყენებული neutral. ეს შეგიძლიათ შეცვალოთ ლოკალურად, php_value mbstring.language neutral სტრიქონის დამატებით თქვენს .htaccess ფაილში." -; Deprecated, will be removed with 6.0 -INSTL_NOTICE_MBSTRING_OVERLOAD_OFF="PHP mbstring ფუნქციის გადატვირთვა ჩართულია. ეს შეგიძლიათ გამორთოთ ლოკალურად, php_value mbstring.func_overload 0 სტრიქონის დამატებით თქვენს .htaccess ფაილში." +INSTL_NOTICE_MBLANG_NOTDEFAULT="PHP mbstring ენა არ არის neutral. თქვენ შეგიძლიათ შეცვალოთ მნიშვნელობა ლოკალურად, თუ დაამატებთ სტრიქონს php_value mbstring.language neutral თქვენს .htaccess ფაილში." INSTL_NOTICE_PARSE_INI_FILE_AVAILABLE="საჭირო php ფუნქციები parse_ini_file და parse_ini_string გამორთულია თქვენს სერვერზე." INSTL_NOTICE_XML_SUPPORT="XML მხარდაჭერა არ არის ხელმისაწვდომი. ეს ავტომატურად უნდა იყოს ჩართული php-ში, თუმცა Ubuntu მომხმარებლებს შეიძლება დასჭირდეთ მისი დაყენება sudo apt-get install php-xml ბრძანების შესრულებით, რის შემდეგაც უნდა გადაიტვირთოს ვებ-სერვერი." INSTL_NOTICE_ZLIB_COMPRESSION_SUPPORT="Zlib შეკუმშვა არ არის დაყენებული. ეს შეგიძლიათ ჩართოთ ლოკალურად, zlib.output_compression = On სტრიქონის დამატებით თქვენს php.ini ფაილში." @@ -61,23 +58,23 @@ INSTL_PRECHECK_RECOMMENDED_SETTINGS_DESC="ეს პარამეტრებ INSTL_PRECHECK_RECOMMENDED_SETTINGS_TITLE="რეკომენდებული პარამეტრები:" INSTL_PRECHECK_TITLE="წინა-საინსტალაციო შემოწმება" INSTL_XML_SUPPORT="XML მხარდაჭერა" -INSTL_ZLIB_COMPRESSION_SUPPORT="Zlib შეკუმშვის მხარდაჭერა" +INSTL_ZLIB_COMPRESSION_SUPPORT="Zlib Compression მხადაჭერა" ; Database view INSTL_DATABASE="მონაცემთა ბაზის კონფიგურაცია" INSTL_DATABASE_ENCRYPTION_CA_LABEL="CA ფაილის გზა" INSTL_DATABASE_ENCRYPTION_CERT_LABEL="სერთიფიკატის ფაილის გზა" -INSTL_DATABASE_ENCRYPTION_CIPHER_LABEL="მხარდაჭერილი შიფრების კრებული (არასავალდებულო)" +INSTL_DATABASE_ENCRYPTION_CIPHER_LABEL="მხარდაჭერილი შიფრების ნაკრები (ნებაყოფლობითი)" INSTL_DATABASE_ENCRYPTION_KEY_LABEL="პრივატული გასაღების ფაილის გზა" -INSTL_DATABASE_ENCRYPTION_MODE_LABEL="შეერთების დაშიფრვა" -INSTL_DATABASE_ENCRYPTION_MODE_VALUE_NONE="ავტომატური (კონტროლდება სერვერით)" +INSTL_DATABASE_ENCRYPTION_MODE_LABEL="მიერთების დაშიფრვა" +INSTL_DATABASE_ENCRYPTION_MODE_VALUE_NONE="ავტორი (კონტროლდება სერვერით)" INSTL_DATABASE_ENCRYPTION_MODE_VALUE_ONE_WAY="ერთმხრივი ავთენტიფიკაცია" INSTL_DATABASE_ENCRYPTION_MODE_VALUE_TWO_WAY="ორმხრივი ავთენტიფიკაცია" INSTL_DATABASE_ENCRYPTION_MSG_CONN_NOT_ENCRYPT="თქვენ აირჩიეთ მონაცემთა ბაზასთან მიერთება დაშიფრვით, რომელიც შეიძლება დამყარდეს, მაგრამ არ იქნება დაშიფრული. მიზეზი შეიძლება იყოს იმაში, რომ სერვერი კონფიგურირებულია არადაშიფრულ შეერთებასთან დაბრუნებაზე, არასწორი დაშიფრვის პარამეტრების შემთხვევაში. საჭიროა შემოწნდეს და გასწორდეს შეერთების დაშიფრვის პარამეტრები, ან შეიცვალოს ველის მნიშვნელობა \"შეერთების დაშიფრვა\" მნიშვნელობით \"ავტომატური (კონტროლდება სერვერით)\"." -INSTL_DATABASE_ENCRYPTION_MSG_FILE_FIELD_BAD="ფაილი, რომელიც შეყვანილი ველში \"%s\" არ არსებობს ან არ არის წვდომადი." -INSTL_DATABASE_ENCRYPTION_MSG_FILE_FIELD_EMPTY="ველი \"%s\" არ არის შევსებული ან არ შეიცავს სწორ გზას." -INSTL_DATABASE_ENCRYPTION_MSG_LOCALHOST="თქვენ შეიყვანეთ \"localhost\" როგორც ჰოსტის სახელი. ასეთ შემთხვევაში მიერთება მონაცემთა ბაზასთან შეერთების დაშიფრვით შეიძლება დასრულდეს შეცდომით. საჭირო შეიცვალოს ჰოსტის სახელი \"localhost\" მნიშვნელობით \"127.0.0.1\" ან \"::1\" ან სხვა სახელით, ან შეიცვალოს ველს მნიშვნელობა \"შეერთების დაშიფრვა\" მნიშვნელობით \"ავტომატური (კონტროლდება სერვერით)\"." -INSTL_DATABASE_ENCRYPTION_MSG_SRV_NOT_SUPPORTS="მონაცემთა ბაზის სერვერს არა აქვს შეერთების დაშიფრვის მხარდაჭერა. საჭიროა ჩაირთოს TLS (ხშირად ეძახიან SSL დოკუმენტაციაში) მხარდაჭერა თქვენს მონაცემთა ბაზის სერვერზე, ან ან შეიცვალოს ველს მნიშვნელობა \"შეერთების დაშიფრვა\" მნიშვნელობით \"ავტომატური (კონტროლდება სერვერით)\"." +INSTL_DATABASE_ENCRYPTION_MSG_FILE_FIELD_BAD="ფაილი, რომელიც შეყვანილია ველში \"%s\" არ არსებობს ან არ არის წვდომადი." +INSTL_DATABASE_ENCRYPTION_MSG_FILE_FIELD_EMPTY="ველი \"%s\" არ არის შევსებული ან ფაილის გზა არასწორია." +INSTL_DATABASE_ENCRYPTION_MSG_LOCALHOST="თქვენ შეიყვანეთ \"localhost\" როგორც ჰოსტის სახელი. ასეთ შემთხვევაში მონაცემთა ბაზასთან შეერთება მიერთების დაშიფრვით შეიძლება დასრულდეს შეცდომით. საჭიროა შეიცვალოს ჰოსტის სახელი \"localhost\" მნიშვნელობით \"127.0.0.1\" ან \"::1\" ან სხვა ჰოსტის სახელით, ან შეიცვალოს ველის მნიშვნელობა \"შეერთების დაშიფრვა\" მნიშვნელობით \"ავტომატური (კონტროლდება სერვერით)\"." +INSTL_DATABASE_ENCRYPTION_MSG_SRV_NOT_SUPPORTS="მონაცემთა ბაზის სერვერს არა აქვს შეერთების დაშიფრვის მხარდაჭერა. საჭიროა სერვერზე ჩაირთოს TLS (ხშირად უწოდებენ SSL დოკუმენტაციაში) მხარდაჭერა, ან შეიცვალოს ველის მნიშვნელობა \"შეერთების დაშიფრვა\" მნიშვნელობით \"ავტომატური (კონტროლდება სერვერით)\"." INSTL_DATABASE_ENCRYPTION_VERIFY_SERVER_CERT_LABEL="სერვერის სერთიფიკატის შემოწმება" INSTL_DATABASE_ERROR_POSTGRESQL_QUERY="PostgreSQL მონაცემთა ბაზაზე მოთხოვნა ვერ მოხერხდა." INSTL_DATABASE_HOST_DESC="შეიყვანეთ ჰოსტის სახელი, როგორც წესი \"localhost\" ან ჰოსტის მიერ მოწოდებული სახელი." @@ -145,7 +142,6 @@ INSTL_LANGUAGES_WARNING_NO_INTERNET="Joomla! ენის პაკეტებ INSTL_LANGUAGES_WARNING_NO_INTERNET2="შენიშვნა: თქვენ შეძლებთ დააყენოთ სასურველი ენების პაკეტები მოგვიანებით, Joomla! მართვის პანელიდან." ; Automated Updates Opt Out -INSTL_AUTOMATED_UPDATES="ავტომატური განახლებები" INSTL_AUTOMATED_UPDATES_DESC="Joomla! ავტომატურად განაახლებს თავის მცირე და პატჩის გამოცემებს.

გთხოვთ მიაქციოთ ყურადღება: ავტომატური განახლებები დაარეგისტრირებს თქვენს საიტს Joomla! მიერ მოწოდებულ შესაბამის სერვისზე. რეგისტრაცია საშუალებას აძლევს Joomla! პროექტს თქვენი საიტისა და სერვერის გარემოს შესახებ ინფორმაცაზე წვდომის, კონკრეტულად საიტის Url, PHP ვერსია, მონაცემთა ბაზის ტიპი და ვერსია, CMS ვერსია და სერვერის OS ტიპი და ვერსია. ეს ინფორმაცია გამოიყენება მხოლოდ მომსახურების გასაუმჯობესებლად.

გარდა ამისა, თქვენ შეგიძლიათ გამორთოთ ავტომატური განახლებები ქვემოთ მოცემული ღილაკის გამოყენებით." INSTL_AUTOMATED_UPDATES_DISABLE="გამორთეთ ავტომატური განახლებები" INSTL_COMPLETE_ERROR_AUTOMATED_UPDATES_DISABLE="ავტომატური განახლებების გამორთვა შეუძლებელია." @@ -157,7 +153,7 @@ INSTL_DEFAULTLANGUAGE_ADMIN_COULDNT_SET_DEFAULT="ავტომატური INSTL_DEFAULTLANGUAGE_ADMIN_SET_DEFAULT="ენა %s მოინიშნა Joomla!-ს მართვის პანელის ავტომატურ ენად." INSTL_DEFAULTLANGUAGE_COLUMN_HEADER_LANGUAGE="ენა" INSTL_DEFAULTLANGUAGE_COLUMN_HEADER_SELECT="არჩევა" -INSTL_DEFAULTLANGUAGE_COLUMN_HEADER_TAG="ტეგი" +INSTL_DEFAULTLANGUAGE_COLUMN_HEADER_TAG="თაგი" INSTL_DEFAULTLANGUAGE_COULD_NOT_DOWNLOAD_PACKAGE="Joomla! ენის პაკეტის ჩამოტვირთვა ან გაშლა ვერ მოხერხდა მისამართიდან: %s" INSTL_DEFAULTLANGUAGE_COULD_NOT_INSTALL_LANGUAGE="Joomla! ენის პაკეტის %s დაყენება ვერ მოხერხდა." INSTL_DEFAULTLANGUAGE_DESC="Joomla! ენის პაკეტები დაყენებულია. გთხოვთ აირჩიოთ ავტომატური ენის პაკეტი მართვის პანელისთვის და დააჭირეთ ღილაკს \"დააყენე ავტომატურად\"." @@ -203,10 +199,10 @@ INSTL_PAGE_TITLE="Joomla! ვებ ინსტალატორი" ; Configuration model INSTL_ERROR_CONNECT_DB="მონაცემთა ბაზასთან დაკავშირება ვერ მოხერხდა. დამაკავშირებელმა დააბრუნა ნომერი: %d." -INSTL_STD_OFFLINE_MSG="საიტი დროებით დახურულია ტექნიკური მიზეზების გამო.
გთხოვთ შემოხვიდეთ მოგვიანებით." +INSTL_STD_OFFLINE_MSG="საიტი გამორთულია ტექნიკური სამუშაოების გამო.
გთხოვთ სცადოთ მოგვიანებით." ; Languages model -INSTL_ERROR_INVALID_URL="Invalid URL" +INSTL_ERROR_INVALID_URL="არასწორი URL" ; Others INSTL_CONFPROBLEM="თქვენი კონფიგურაციის ფაილი ან საქაღალდე არ არის ჩაწერადი ან კონფიგურაციის ფაილის შექმნისას წარმოიშვა შეცდომა. საჭიროა ხელით შექმნათ ტექსტური ფაილი, დაარქვათ სახელი 'configuration.php', გამოყოთ/დააკოპიროთ გამოსახული კოდი და ჩასვათ მასში, და ამმის შემდეგ მოათავსოთ კონფიგურაციის ფაილი საიტის ძირეულ საქაღალდეში." @@ -219,31 +215,31 @@ INSTL_FILE_UPLOADS="ფაილების ატვირთვა" INSTL_GNU_GPL_LICENSE="GNU საერთო სახალხო ლიცენზია" INSTL_HELP_LINK="Joomla! დაყენებაზე დახმარება" INSTL_NOTICE_NEEDSTOBEWRITABLE="თქვენ მაინც შეგიძლიათ გააგრძელოთ Joomla! დაყენება, თუ აღადგენთ ნებართვას." -INSTL_OUTPUT_BUFFERING="გამოყვანის ბუფერიზაცია" +INSTL_OUTPUT_BUFFERING="შედეგების ბუფერიზაცია" INSTL_PHP_VERSION="PHP ვერსია" INSTL_PHP_VERSION_NEWER="PHP ვერსია >= %s" INSTL_PROCESS_BUSY="მიმდინარეობს დაყენების პროცესი. გთხოვთ მოიცადოთ …" -INSTL_SESSION_AUTO_START="Session Auto Start" +INSTL_SESSION_AUTO_START="სესიის ავტომატური გაშვება" INSTL_WRITABLE="%s ფაილის შესაქმნელად არ გვაქვს საკმარისი უფლება." INSTL_ZIP_SUPPORT_AVAILABLE="Native ZIP მხარდაჭერა" ; Global strings -JADMINISTRATOR="მართვის პანელი" +JADMINISTRATOR="ადმინისტრატორი" JCLOSE="დახურვა" JEMAIL="ელ-ფოსტა" JERROR="შეცდომა" JERROR_LAYOUT_ERROR_HAS_OCCURRED_WHILE_PROCESSING_YOUR_REQUEST="თქვენი მოთხოვნის დამუშავებისას მოხდა შეცდომა." JGLOBAL_ISFREESOFTWARE="%s არის თავისუფალი პროგრამული უზრუნველყოფა, რომელიც ვრცელდება ლიცენზიით %s." JGLOBAL_LANGUAGE_VERSION_NOT_PLATFORM="ენის პაკეტი არ შეესაბამება Joomla! ამ ვერსიას. ზოგიერთი ენის კონსტანტა შეიძლება იყოს გამოტოვებული და ნაჩვენები იქნება ინგლისურად." -JGLOBAL_SELECT_AN_OPTION="აირჩიეთ მნიშვნელობა" -JGLOBAL_SELECT_NO_RESULTS_MATCH="შედეგები არ დაემთხვა" -JGLOBAL_SELECT_SOME_OPTIONS="აირჩიეთ რამოდენიმე მნიშვნელობა" -JHIDEPASSWORD="პარილის დამალვა" +JGLOBAL_SELECT_AN_OPTION="აირჩიეთ პარამეტრი" +JGLOBAL_SELECT_NO_RESULTS_MATCH="შედეგები არ ემთხვევა" +JGLOBAL_SELECT_SOME_OPTIONS="აირჩიეთ რამოდენიმე პარამეტრი" +JHIDEPASSWORD="პაროლის დამალვა" JINVALID_TOKEN="უკანასკნელი მოთხოვნა უარყოფილი იქნა, რადგან შეიცავდა არასწორ უსაფრთხოების ტოკენს. გთხოვთ განაახლოთ გვერდი და სცადოთ კიდევ ერთხელ." -JINVALID_TOKEN_NOTICE="უსაფრთხოების ტოკენმა ვერ გაიარა შემოწმება. მოთხოვნა გაუქმდა უსაფრთხოების დარღვევის თავიდან ასაცილებლად. გთხოვთ სცადოთ ხელახლა." +JINVALID_TOKEN_NOTICE="უსაფრთხოების ტოკენი არ ემთხვევა. მოთხოვნა გაუქმდა უსაფრთხოების დარღვევის თავიდან ასაცილებლად. გთხოვთ, სცადოთ თავიდან." JNEXT="შემდეგი" JNO="არა" -JNOTICE="ყურადღება" +JNOTICE="შეტყობინება" JOFF="გამორთული" JON="ჩართული" JPREVIOUS="წინა" @@ -254,40 +250,40 @@ JUSERNAME="მომხმარებლის სახელი" JYES="კი" ; Framework strings necessary when no lang pack is available -JLIB_DATABASE_ERROR_CONNECT_MYSQL="MySQL-თან დაკავშირება ვერ მოხერხდა." +JLIB_DATABASE_ERROR_CONNECT_MYSQL="ვერ ვუკავშირდები MySQL-ს." JLIB_DATABASE_ERROR_DATABASE="მოხდა მონაცემთა ბაზის შეცდომა" -JLIB_DATABASE_ERROR_LOAD_DATABASE_DRIVER="ვერ მოხერხდა მონაცემთა ბაზის დრაივერის ჩატვირთვა: %s" +JLIB_DATABASE_ERROR_LOAD_DATABASE_DRIVER="მონაცემთა ბაზის დრაივერის ჩატვირთვა ვერ მოხერხდა: %s." JLIB_DATABASE_ERROR_VALID_MAIL="თქვენს მიერ შეყვანილი ელ-ფოსტის მისამართი არასწორია. გთხოვთ შეიყვანოთ სხვა ელ-ფოსტის მისამართი." JLIB_ENVIRONMENT_SESSION_EXPIRED="თქვენი სესიისთვის განკუთვნილი დრო ამოიწურა, გთხოვთ განაახლოთ გვერდი." -JLIB_FILESYSTEM_ERROR_PATH_IS_NOT_A_FOLDER="%1$s: გზა არ წარმოადგენს საქაღალდეს. გზა: %2$s" +JLIB_FILESYSTEM_ERROR_PATH_IS_NOT_A_FOLDER="%1$s: გზა არ არის საქაღალდე. გზა: %2$s" JLIB_FORM_FIELD_INVALID="ველი არასწორად არის შევსებული: " -JLIB_FORM_VALIDATE_FIELD_INVALID="ველი არასწორად არის შევსებული: %s" -JLIB_FORM_VALIDATE_FIELD_REQUIRED="აუცილებელია შეივსოს ველი: %s" +JLIB_FORM_VALIDATE_FIELD_INVALID="არასწორად შევსებული ველი: %s" +JLIB_FORM_VALIDATE_FIELD_REQUIRED="აუცილებელი ველი: %s" JLIB_INSTALLER_ABORT="ენის ინსტალაციის შეჩერება: %s" -JLIB_INSTALLER_ABORT_CREATE_DIRECTORY="გაფართოება %1$s: ვერ მოხერხდა საქაღალეს შექმნა: %2$s" -JLIB_INSTALLER_ABORT_NOINSTALLPATH="ინსტალაციის მისამართი არ არსებობს." +JLIB_INSTALLER_ABORT_CREATE_DIRECTORY="გაფართოება %1$s: შცდომა საქაღალდის შექმნისას: %2$s" +JLIB_INSTALLER_ABORT_NOINSTALLPATH="ინსტალაციის გზა არ არსებობს." JLIB_INSTALLER_ABORT_PACK_INSTALL_ERROR_EXTENSION="პაკეტი %1$s: გაფართოების ინსტალაციისას მოხდა შეცდომა: %2$s." -JLIB_INSTALLER_ABORT_PACK_INSTALL_NO_FILES="პაკეტი %s: ინსტალაციისთვის არ გვაქვს ფაილები!" +JLIB_INSTALLER_ABORT_PACK_INSTALL_NO_FILES="პაკეტი %s: არ იყო დასაინსტალირებელი ფაილები!" JLIB_INSTALLER_ERROR_DOWNLOAD_SERVER_CONNECT="სერვერთან დაკავშირების შეცდომა: %s" JLIB_INSTALLER_ERROR_FAIL_COPY_FILE="JInstaller: :Install: ფაილის %1$s ასლის შექმნის დროს წარმოიშვა შეცდომა %2$s-ში." JLIB_INSTALLER_INSTALL="ინსტალაცია" JLIB_INSTALLER_NOT_ERROR="ენის ფაილების TinyMCE დაყენების დროს მომხდარი შეცდომები არანაირად არ აისახება ენის პაკეტის ინსტალაციაზე. ენის ზოგიერთი პაკეტი, რომელიც შექმნილია Joomla! 3.2.0-ზე ქვედა ვერსიებისთვის, შესაძლოა შეეცადოს დააყენოს TinyMCE ენის ფაილები. თუმცა, TinyMCE ენის ფაილები უკვე გათვალისწინებულია და შედის ძირითად ბირთვში, ამიტომ მისი დამატებით დაყენება საჭირო არ არის." JLIB_INSTALLER_WARNING_UNABLE_TO_INSTALL_CONTENT_LANGUAGE="ვერ მოხერხდა კონტენტის ენის შექმნა ენისთვის %s: %s." -JLIB_UPDATER_ERROR_COLLECTION_FOPEN="PHP allow_url_fopen პარამეტრი გამორთულია. განახლების მუშაობისთვის ეს პარამეტრი უნდა იყოს ჩართული." -JLIB_UPDATER_ERROR_COLLECTION_OPEN_URL="Update: :Collection: ვერ მოხერხდა გახსნა %s" +JLIB_UPDATER_ERROR_COLLECTION_FOPEN="PHP კოფიგურაციაში პარამეტრი allow_url_fopen გამორთულია. განახლების ფუნქციის გამოსაყენებლად ეს პარამეტრი უნდა იყოს ჩართული." +JLIB_UPDATER_ERROR_COLLECTION_OPEN_URL="Update: :Collection: ვერ ვხსნი %s-ს" JLIB_UPDATER_ERROR_COLLECTION_PARSE_URL="Update: :Collection: ვერ მოხერხდა დამუშავება %s" JLIB_UPDATER_ERROR_OPEN_UPDATE_SITE="Update: ვერ მოხერხდა განახლების სერვერის გახსნა #%d "%s", URL: %s." JLIB_UTIL_ERROR_CONNECT_DATABASE="JDatabase: :getInstance: ვერ მოხერხდა მონაცემთა ბაზასთან მიერთება
joomla.library: %1$s - %2$s." ; Strings for the language debugger -JDEBUG_LANGUAGE_FILES_IN_ERROR="შეცდომები ენის ფაილებში" +JDEBUG_LANGUAGE_FILES_IN_ERROR="გარჩევის შეცდომები ენის ფაილებში" JDEBUG_LANGUAGE_UNTRANSLATED_STRING="სათარგმნი სტრიქონები" JNONE="არცერთი" ; Necessary for errors ADMIN_EMAIL="ადმინისტრატორის ელ-ფოსტა" ADMIN_PASSWORD="ადმინისტრატორის პაროლი" -SITE_NAME="საიტის დასახელება" +SITE_NAME="საიტის სახელი" ; Database types (allows for a more descriptive label than the internal name) MYSQL="MySQL (PDO)" @@ -300,25 +296,25 @@ SQLITE="SQLite" ; Javascript message titles ERROR="შეცდომა" MESSAGE="შეტყობინება" -NOTICE="ყურადღება" +NOTICE="შეტყობინება" WARNING="გაფრთხილება" ; Javascript ajax error messages JLIB_JS_AJAX_ERROR_CONNECTION_ABORT="JSON მონაცემების მიღებისას მოხდა კავშირის შეცდომა." -JLIB_JS_AJAX_ERROR_NO_CONTENT="კონტენტი არ დაბრუნებულა." +JLIB_JS_AJAX_ERROR_NO_CONTENT="კონტენტი ვერ დაბრუნდა." JLIB_JS_AJAX_ERROR_OTHER="შეხდომა მოხდა JSON მონაცემების მიღებისას: HTTP %d სტატუსის კოდი." -JLIB_JS_AJAX_ERROR_PARSE="შეცდომა მოხდა სინტაქსური ანალიზისას შემდეგი JSON მონაცემების დამუშავების დროს:
%s" -JLIB_JS_AJAX_ERROR_TIMEOUT="JSON მონაცემების მიღებისას მოხდა ლოდინის დროის გადაჭარბება (timeout)." +JLIB_JS_AJAX_ERROR_PARSE="სინტაქსური ანალიზისას (parse) მოხდა შეცდომა, შემდეგი JSON მონაცემების დამუშავების დროს:
%s" +JLIB_JS_AJAX_ERROR_TIMEOUT="JSON მონაცემების მიღებისას მოხდა შეყოვნება (timeout)." ; Field password messages JFIELD_PASSWORD_INDICATE_COMPLETE="პაროლი მიღებულია" JFIELD_PASSWORD_INDICATE_INCOMPLETE="პაროლი არ შეესაბამება საიტის მოთხოვნებს." -JFIELD_PASSWORD_SPACES_IN_PASSWORD="პაროლი არ უნდა შეიცავდეს პრობელებს სტრიქონის დასაწყისში ან ბოლოში." -JFIELD_PASSWORD_TOO_LONG="პაროლი საკმაოდ გრძელია. პაროლის სიგრძე უნდა იყოს 100 სიმბოლოზე ნაკლები." +JFIELD_PASSWORD_SPACES_IN_PASSWORD="პაროლი არ უნდა შეიცავდეს პრობელს სტრიქონის დასაწყისში ან ბოლოში." +JFIELD_PASSWORD_TOO_LONG="პაროლი ძალინ გრძელია. ის უნდა შეიცავდეს არაუმეტეს 100 სიმბოლოსა." JFIELD_PASSWORD_TOO_SHORT_N="პაროლი საკმაოდ მოკლეა. პაროლის სიგრძე უნდა იყოს არანაკლები %d სიმბოლოსი." ; Javascript Form Validation Messages -JLIB_FORM_CONTAINS_INVALID_FIELDS="ფორმა ვერ გაიგზავნება, რადგან ერთი ან რამოდენიმე ველი არ არის შევსებული სწორად.
გთხოვთ გაასწოროთ მონიშნული ველები და სცადეთ ხელახლა." +JLIB_FORM_CONTAINS_INVALID_FIELDS="ფორმის გაგზავნა ვერ ხერხდება, ერთი ან რამოდენიმე ველი არ არის სწორად შევსებული.
გთხოვთ გაასწოროთ მონიშნული ველები და სცადეთ ხელახლა." JLIB_FORM_FIELD_INVALID_VALUE="გთხოვთ შეიყვანოთ სწორი მნიშვნელობა." JLIB_FORM_FIELD_REQUIRED_CHECK="გთხოვთ აირჩიოთ მნიშვნელობა." JLIB_FORM_FIELD_REQUIRED_VALUE="გთხოვთ შეავსოთ ველი." diff --git a/installation/language/ka-GE/langmetadata.xml b/installation/language/ka-GE/langmetadata.xml index a97ef93b76805..dec88552f5722 100644 --- a/installation/language/ka-GE/langmetadata.xml +++ b/installation/language/ka-GE/langmetadata.xml @@ -1,7 +1,7 @@ Georgian (Georgia) - 5.4.1 + 6.0.1 2025-10 Georgian Translation Team (C) 2005 Open Source Matters, Inc. @@ -11,7 +11,7 @@
Georgian (ka-GE) - ქართული (საქართველო) + Georgian (Georgia) ka-GE 0 diff --git a/installation/language/kk-KZ/joomla.ini b/installation/language/kk-KZ/joomla.ini index 58a19859f6867..72fba50b42464 100644 --- a/installation/language/kk-KZ/joomla.ini +++ b/installation/language/kk-KZ/joomla.ini @@ -32,6 +32,7 @@ BUILD_MIN_PHP_ERROR_TEXT="Хостыңыз PHP {{phpversion}} немесе од BUILD_MIN_PHP_ERROR_URL_TEXT="Бұл мәселені шешуге көмектес" ; Main Config +INSTL_CHANGE_INSTALL_LANG_SHORT="Өзгерту" INSTL_SELECT_INSTALL_LANG="Орнату тілін таңдау" INSTL_SELECT_LANGUAGE_TITLE="Тілді таңдаңыз" INSTL_SETUP_LOGIN_DATA="Логин туралы мәліметтер орнату" @@ -42,13 +43,9 @@ INSTL_WARNJSON="Joomla-ді орнату үшін сіздің PHP орнаты INSTL_DATABASE_SUPPORT="Деректер базасын қолдау:" INSTL_JSON_SUPPORT_AVAILABLE="JSON қолдауы" INSTL_MB_LANGUAGE_IS_DEFAULT="МБ тілі әдепкі" -; Deprecated, will be removed with 6.0 -INSTL_MB_STRING_OVERLOAD_OFF="МБ жолды шамадан тыс жүктеу өшірулі" INSTL_NOTICE_DATABASE_SUPPORT="Дерекқор табылмады." INSTL_NOTICE_JSON_SUPPORT_AVAILABLE="Joomla-ді орнату үшін сіздің PHP орнатылымыңыз JSON функциясын қажет етеді!" INSTL_NOTICE_MBLANG_NOTDEFAULT="PHP mbstring тілі бейтарап күйге орнатылмаған. Мұны .htaccess файлыңызға php_value mbstring.language бейтарап енгізу арқылы жергілікті түрде орнатуға болады." -; Deprecated, will be removed with 6.0 -INSTL_NOTICE_MBSTRING_OVERLOAD_OFF="PHP mbstring функциясының шамадан тыс жүктелуі орнатылды. Мұны .htaccess файлыңызға php_value mbstring.func_overload 0 енгізу арқылы жергілікті түрде өшіруге болады." INSTL_NOTICE_PARSE_INI_FILE_AVAILABLE="Қажетті PHP функциялары parse_ini_file және parse_ini_string серверде өшірілген." INSTL_NOTICE_XML_SUPPORT="XML қолдауы қол жетімді емес. Мұны php-де әдепкі бойынша қосу керек, бірақ Ubuntu пайдаланушыларына оны орнату қажет болуы мүмкін sudo apt-get install php-xml, содан кейін веб-сервер қайта іске қосылады." INSTL_NOTICE_ZLIB_COMPRESSION_SUPPORT="Zlib қысу орнатылмаған. Мұны php.ini файлыңызға zlib.output_compression = On енгізу арқылы жергілікті түрде қосуға болады." @@ -263,7 +260,7 @@ JLIB_INSTALLER_ABORT_PACK_INSTALL_ERROR_EXTENSION=" %1$s пакеті: кеңе JLIB_INSTALLER_ABORT_PACK_INSTALL_NO_FILES="%s бумасы: Орнатылатын файлдар жоқ!" JLIB_INSTALLER_ERROR_DOWNLOAD_SERVER_CONNECT="Серверге қосылу қатесі: %s" JLIB_INSTALLER_ERROR_FAIL_COPY_FILE=" JInstaller:: Install: %1$s файлын %2$s ішіне көшіру мүмкін емес." -JLIB_INSTALLER_INSTALL="Орнату" +JLIB_INSTALLER_INSTALL="Орнатуы" JLIB_INSTALLER_NOT_ERROR="Егер қате TinyMCE тіл файлдарын орнатумен байланысты болса, ол тілді(тілдерді) орнатуға әсер етпейді. Кейбір тіл бумалары дейін құрылған Joomla! 3.2.0 жеке TinyMCE тіл файлдарын орнатуға тырысуы мүмкін. Олар енді ядроға енгізілгендіктен, оларды орнату қажет емес." JLIB_INSTALLER_WARNING_UNABLE_TO_INSTALL_CONTENT_LANGUAGE="%s тілі үшін мазмұн тілін жасау мүмкін емес: %s." JLIB_UPDATER_ERROR_COLLECTION_FOPEN="PHP allow_url_fopen параметрі өшірілген. Жаңартқыш жұмыс істеуі үшін бұл параметрді қосу керек." diff --git a/installation/language/kk-KZ/langmetadata.xml b/installation/language/kk-KZ/langmetadata.xml index c121a67e9ada2..5e034ce0ab972 100644 --- a/installation/language/kk-KZ/langmetadata.xml +++ b/installation/language/kk-KZ/langmetadata.xml @@ -1,7 +1,7 @@ Kazakh (Kazakhstan) - 5.4.1 + 6.0.1 2025-10 Sarvarov Akylkerey (C) 2005 Open Source Matters, Inc. diff --git a/installation/language/ko-KR/joomla.ini b/installation/language/ko-KR/joomla.ini index fadfe59d13502..7ecba579a3461 100644 --- a/installation/language/ko-KR/joomla.ini +++ b/installation/language/ko-KR/joomla.ini @@ -7,14 +7,14 @@ ; These will be processed by the JavaScript Build BUILD_FATAL_HEADER="자동 복구될 수 없는 문제가 발생했습니다." BUILD_FATAL_LANGUAGE="Korean KO" ; IMPORTANT NOTE FOR TRANSLATORS: Do not literally translate this line, instead add the localised name of the language. For example French will be Français FR -BUILD_FATAL_TEXT="서버가 \"{{statusCode_statusText}}\" 를 리턴했습니다." -BUILD_FATAL_URL_TEXT="이 문제를 해결하도록 도와주세요." +BUILD_FATAL_TEXT="서버 리턴 값은 \"{{statusCode_statusText}}\" 입니다." +BUILD_FATAL_URL_TEXT="처리해야 하는 문제가 발생했습니다." ; Build incomplete error page ; These will be processed by the JavaScript Build -BUILD_INCOMPLETE_HEADER="환경 설정 불완전" +BUILD_INCOMPLETE_HEADER="환경 설정이 완료되지 않았습니다." BUILD_INCOMPLETE_LANGUAGE="Korean KO" ; IMPORTANT NOTE FOR TRANSLATORS: Do not literally translate this line, instead add the localised name of the language. For example French will be Français FR -BUILD_INCOMPLETE_TEXT="Joomla가 git repository에서 작동되기 위해서는 추가 설정이 필요합니다." +BUILD_INCOMPLETE_TEXT="Git 저장소에서 Joomla!를 설치하려는 것 같습니다. 이렇게 하려면 먼저 몇 가지 추가 단계를 완료해야 합니다." BUILD_INCOMPLETE_URL_TEXT="자세히 보기" ; No XML PHP error page @@ -22,17 +22,18 @@ BUILD_INCOMPLETE_URL_TEXT="자세히 보기" BUILD_NOXML_HEADER="PHP에 필수 라이브러리를 찾을 수 없습니다." BUILD_NOXML_LANGUAGE="Korean KO" ; IMPORTANT NOTE FOR TRANSLATORS: Do not literally translate this line, instead add the localised name of the language. For example French will be Français FR BUILD_NOXML_TEXT="해당 Joomla 버전을 사용하기 위해서는 호스트가 XML 라이브러리가 지원되는 PHP를 사용해야 합니다." -BUILD_NOXML_URL_TEXT="이 문제를 해결하도록 도와주세요." +BUILD_NOXML_URL_TEXT="처리해야 하는 문제가 발생했습니다." ; Minimum PHP error page ; These will be processed by the JavaScript Build -BUILD_MIN_PHP_ERROR_HEADER="죄송합니다. 사용 중인 PHP 버전이 지원되지 않습니다." +BUILD_MIN_PHP_ERROR_HEADER="죄송합니다. 사용 중인 PHP 버전은 지원되지 않습니다." BUILD_MIN_PHP_ERROR_LANGUAGE="Korean KO" ; IMPORTANT NOTE FOR TRANSLATORS: Do not literally translate this line, instead add the localised name of the language. For example French will be Français FR BUILD_MIN_PHP_ERROR_TEXT="해당 버전의 Joomla를 사용하기 위해서는 PHP 버전 {{phpversion}} 또는 그 상위 버전이 필요합니다." -BUILD_MIN_PHP_ERROR_URL_TEXT="이 문제를 해결하도록 도와주세요." +BUILD_MIN_PHP_ERROR_URL_TEXT="처리해야 하는 문제가 발생했습니다." ; Main Config -INSTL_SELECT_INSTALL_LANG="설치될 언어를 선택해 주세요." +INSTL_CHANGE_INSTALL_LANG_SHORT="위치 변경" +INSTL_SELECT_INSTALL_LANG="설치할 언어를 선택해 주세요." INSTL_SELECT_LANGUAGE_TITLE="언어 선택" INSTL_SETUP_LOGIN_DATA="로그인 정보 설정" INSTL_WARNJAVASCRIPT="경고! Joomla를 정상적으로 설치하기 위해서는 JavaScript가 반드시 필요합니다." @@ -42,19 +43,15 @@ INSTL_WARNJSON="Joomla가 설치되기 위해서는 PHP 설치에서 JSON 사용 INSTL_DATABASE_SUPPORT="데이터베이스 지원:" INSTL_JSON_SUPPORT_AVAILABLE="JSON 지원" INSTL_MB_LANGUAGE_IS_DEFAULT="MB 언어가 기본값 입니다." -; Deprecated, will be removed with 6.0 -INSTL_MB_STRING_OVERLOAD_OFF="MB 문자열(스트링) 오버로드 끄기" -INSTL_NOTICE_DATABASE_SUPPORT="지원되는 데이터베이스가 발견되지 않았습니다." +INSTL_NOTICE_DATABASE_SUPPORT="지원되는 데이터베이스를 찾을 수 없습니다." INSTL_NOTICE_JSON_SUPPORT_AVAILABLE="Joomla가 설치되기 위해서는 PHP 설치에서 JSON 사용이 활성화되어야 합니다." -INSTL_NOTICE_MBLANG_NOTDEFAULT="PHP mbstring 언어가 중립(neutral)으로 설정되어있지 않습니다. 이는 로컬에서 .htaccess 파일에 php_value mbstring.language neutral를 입력하여 설정할 수 있습니다." -; Deprecated, will be removed with 6.0 -INSTL_NOTICE_MBSTRING_OVERLOAD_OFF="PHP mbstring 함수 오버로드가 설정되어 있습니다. 이는 로컬에서 .htaccess 파일에 php_value mbstring.func_overload 0을 입력하여 설정을 해제할수있습니다." -INSTL_NOTICE_PARSE_INI_FILE_AVAILABLE="필수 PHP 함수인 parse_ini_fileparse_ini_string이(가) 서버에 비활성화되어 있습니다." +INSTL_NOTICE_MBLANG_NOTDEFAULT="PHP mbstring 언어가 중립으로 설정되지 않았습니다. 이 값은 .htaccess 파일에 php_value mbstring.language neutral 을 입력하여 로컬에서 설정할 수 있습니다." +INSTL_NOTICE_PARSE_INI_FILE_AVAILABLE="필수 PHP 함수인 parse_ini_fileparse_ini_string이(가) 서버에서 비활성화되어 있습니다." INSTL_NOTICE_XML_SUPPORT="XML 지원이 사용 불가능합니다. 이는 PHP에서 기본적으로 활성화되어야 하지만, Ubuntu 사용자는 sudo apt-get install php-xml 명령어를 실행한 후 웹 서버를 재시작해야 합니다." INSTL_NOTICE_ZLIB_COMPRESSION_SUPPORT="Zlib 압축이 설정되어 있지 않습니다. 이를 로컬에서 활성화하려면 php.ini 파일에 zlib.output_compression = On을 입력하면 됩니다." INSTL_PARSE_INI_FILE_AVAILABLE="INI Parser 지원" INSTL_PRECHECK_ACTUAL="최신" -INSTL_PRECHECK_DESC="지원되지 않는 아이템이 있다면 서버의 설정을 고치기 위한 조치를 취해야합니다.
아래의 요구 사항이 충족되지 않으면 Joomla를 설치할 수 없습니다." +INSTL_PRECHECK_DESC="지원되지 않는 항목에 대한 조치가 필요합니다.
요구 사항이 충족되지 않으면 Joomla를 설치할 수 없습니다." INSTL_PRECHECK_DIRECTIVE="지시문" INSTL_PRECHECK_RECOMMENDED="추천" INSTL_PRECHECK_RECOMMENDED_SETTINGS_DESC="PHP에서 Joomla와의 완전한 호환성을 보장하려면 이러한 설정을 권장합니다." @@ -64,13 +61,13 @@ INSTL_XML_SUPPORT="XML 지원" INSTL_ZLIB_COMPRESSION_SUPPORT="Zlib 압축 지원" ; Database view -INSTL_DATABASE="데이터베이스 구성" +INSTL_DATABASE="데이터베이스 설정" INSTL_DATABASE_ENCRYPTION_CA_LABEL="CA 파일 경로" INSTL_DATABASE_ENCRYPTION_CERT_LABEL="인증서 파일 경로" INSTL_DATABASE_ENCRYPTION_CIPHER_LABEL="지원되는 암호 스위트(선택 사항)" -INSTL_DATABASE_ENCRYPTION_KEY_LABEL="개인키 파일 경로" +INSTL_DATABASE_ENCRYPTION_KEY_LABEL="개인 키 파일 경로" INSTL_DATABASE_ENCRYPTION_MODE_LABEL="연결 암호화" -INSTL_DATABASE_ENCRYPTION_MODE_VALUE_NONE="디폴트 (서버 조작)" +INSTL_DATABASE_ENCRYPTION_MODE_VALUE_NONE="표준(서버 제어)" INSTL_DATABASE_ENCRYPTION_MODE_VALUE_ONE_WAY="사용자 인증(single factor)" INSTL_DATABASE_ENCRYPTION_MODE_VALUE_TWO_WAY="2단계 보안 인증(2FA)" INSTL_DATABASE_ENCRYPTION_MSG_CONN_NOT_ENCRYPT="데이터베이스 연결 암호화를 사용하도록 선택했으며 연결이 설정될 수 있지만 암호화되지 않았습니다. 그 이유는 데이터베이스 서버가 암호화 매개변수가 잘못된 경우 암호화되지 않은 연결로 되돌아가도록 구성되어 있기 때문일 수 있습니다. 데이터베이스 암호화 매개변수를 확인하여 수정하거나 \"연결 암호화\" 필드를 \"기본값(서버 제어)\"으로 다시 변경합니다." @@ -83,12 +80,12 @@ INSTL_DATABASE_ERROR_POSTGRESQL_QUERY="PostgreSQL 데이터베이스 쿼리에 INSTL_DATABASE_HOST_DESC="호스트 이름(일반적으로 \"localhost\" 또는 호스트가 제공한 이름)을 입력하세요." INSTL_DATABASE_HOST_IS_NOT_LOCALHOST_CREATE_FILE="파일을 만들 수 없습니다. "_QQ_"\"%1$s\"라는 파일을 수동으로 생성하여 Joomla 사이트의 \"%2$s\"폴더에 업로드하세요. 그런 다음 \"%3$s\"를 선택하여 계속하세요." INSTL_DATABASE_HOST_IS_NOT_LOCALHOST_DELETE_FILE="이 웹 사이트의 소유자임을 확인하려면 Joomla 사이트의 \"%2$s\"폴더에 생성된 \"%1$s\"라는 파일을 삭제하십시오. 그런 다음 \"%3$s\"를 선택하여 계속하세요." -INSTL_DATABASE_HOST_IS_NOT_LOCALHOST_GENERAL_MESSAGE="로컬 서버에 없는 데이터베이스 호스트를 사용하려고 합니다. 보안 상의 이유로 웹 호스팅 계정의 소유권을 확인해야 합니다. 자세한 내용은 이 문서에서 참조하세요. " +INSTL_DATABASE_HOST_IS_NOT_LOCALHOST_GENERAL_MESSAGE="로컬 서버에 없는 데이터베이스 호스트를 사용하려고 합니다. 보안상의 이유로 웹 호스팅 계정의 소유권을 확인해야 합니다. 자세한 내용은 이 문서에서 참조하세요. " INSTL_DATABASE_HOST_LABEL="호스트 이름" INSTL_DATABASE_NAME_DESC="데이터베이스 이름을 입력하세요." INSTL_DATABASE_NAME_LABEL="데이타베이스 이름" INSTL_DATABASE_NAME_MSG_MYSQL="데이터베이스 이름이 잘못되었습니다. 다음 문자를 포함해서는 안 됩니다: \ /" -INSTL_DATABASE_NAME_MSG_POSTGRES="데이터베이스 이름이 잘못되었습니다. 데이터베이스 이름은 반드시 문자로 시작하고 그 뒤에 영문자와 숫자가 와야 합니다." +INSTL_DATABASE_NAME_MSG_POSTGRES="데이터베이스 이름이 잘못되었습니다. 문자로 시작하고 그 뒤에 영문자와 숫자가 와야 합니다." INSTL_DATABASE_NO_SCHEMA="이 데이터베이스 유형에 대한 데이터베이스 스키마가 존재하지 않습니다." INSTL_DATABASE_PREFIX_DESC="테이블 접두사를 입력하거나 무작위로 생성된 접두사를 사용합니다." INSTL_DATABASE_PREFIX_DUPLICATE_DESC="접두사가 같은 테이블이 있는 기존 데이터베이스를 사용하는 경우 Joomla는 접두사 \"bak_\"를 추가하여 기존 테이블의 이름을 바꿉니다." @@ -119,13 +116,13 @@ INSTL_PUBLIC_FOLDER_DESC_SHORT="공용 폴더의 상대 또는 절대 경로" INSTL_COMPLETE_ADD_EXTRA_LANGUAGE="추가 언어 설치" INSTL_COMPLETE_ADMIN_BTN="관리자 열기" INSTL_COMPLETE_CONGRAT="축하드립니다!" -INSTL_COMPLETE_ERROR_FOLDER_DELETE="\"%s\" 폴더는 삭제될 수 없습니다. 폴더를 수동으로 삭제해 주세요." +INSTL_COMPLETE_ERROR_FOLDER_DELETE="\"%s\" 폴더는 삭제될 수 없습니다. 직접 삭제해 주세요." INSTL_COMPLETE_FINAL="설치 완료되었습니다." INSTL_COMPLETE_FINAL_DESC="Joomla 설치가 완료되었고, 지금 바로 사용 가능합니다." INSTL_COMPLETE_REMOVE_FOLDER="\"%s\" 폴더 삭제" INSTL_COMPLETE_SITE_BTN="사이트 열기" INSTL_COMPLETE_TITLE="축하드립니다! Joomla 사이트가 준비되었습니다." -INSTL_REMOVE_INST_FOLDER="정말로 지우겠습니까? 삭제 시 \"%s\" 는 복구 불가합니다." +INSTL_REMOVE_INST_FOLDER="정말로 지우겠습니까? 삭제시 \"%s\" 는 복구 불가합니다." ; Languages view INSTL_LANGUAGES="추가 언어 설치" @@ -133,11 +130,11 @@ INSTL_LANGUAGES_COLUMN_HEADER_LANGUAGE="언어" INSTL_LANGUAGES_COLUMN_HEADER_LANGUAGE_SELECT="언어 선택" INSTL_LANGUAGES_COLUMN_HEADER_LANGUAGE_TAG="언어 태그" INSTL_LANGUAGES_COLUMN_HEADER_VERSION="버전" -INSTL_LANGUAGES_DESC="Joomla 인터페이스는 여러 언어로 이용 가능합니다. 원하는 언어의 체크박스를 선택 후, 버튼 \"I선택한 언어 설치\" 을 클릭해 주세요.
참고로, 각 언어당 약 10 초 정도의 설치 시간이 소요됩니다. 오류 가능성을 줄이기 위해, 4개 이상의 언어팩을 동시에 설치하지 말아 주세요." +INSTL_LANGUAGES_DESC="Joomla 인터페이스는 여러 언어로 이용 가능합니다. 원하는 언어의 체크박스를 선택 후, \"선택한 언어 설치\" 버튼을 클릭해 주세요.
참고로, 각 언어당 약 10 초 정도의 설치 시간이 소요됩니다. 오류 가능성을 줄이기 위해, 4개 이상의 언어팩을 동시에 설치하지 말아 주세요." INSTL_LANGUAGES_MESSAGE_PLEASE_WAIT="이 작업을 완료하는 데 언어당 최대 10초가 소요됩니다
언어를 다운로드하고 설치하는 동안 잠시 기다려 주세요 …" INSTL_LANGUAGES_NO_LANGUAGE_SELECTED="설치할 언어가 선택되지 않았습니다." INSTL_LANGUAGES_SELECTED="선택된 언어 설치하기" -INSTL_LANGUAGES_WARNING_BACK_BUTTON="이전 설치 단계로 돌아가기" +INSTL_LANGUAGES_WARNING_BACK_BUTTON="마지막 설치 단계로 돌아가기" INSTL_LANGUAGES_WARNING_NO_INTERNET="Joomla가 언어 서버에 연결하지 못했습니다. 설치 프로세스를 완료해 주십시오." INSTL_LANGUAGES_WARNING_NO_INTERNET2="참고: 나중에 Joomla 관리자에서 언어를 설치할 수 있습니다." @@ -163,7 +160,7 @@ INSTL_DEFAULTLANGUAGE_TRY_LATER="나중에 Joomla 관리자에서 설치할 수 INSTL_DEFAULTLANGUAGE_NATIVE_LANGUAGE_NAME="한국어 (Korean)" ; IMPORTANT NOTE FOR TRANSLATORS: Do not literally translate this line, instead add the localised name of the language. For example Spanish will be Español ; Database Model -INSTL_DATABASE_COULD_NOT_CONNECT="데이터베이스에 연결할 수 없습니다. 커넥터로부터 반환받은 번호: %s" +INSTL_DATABASE_COULD_NOT_CONNECT="데이터베이스에 연결할 수 없습니다. 커넥터 에러 메시지: %s" INSTL_DATABASE_COULD_NOT_CREATE_DATABASE="설치 프로그램이 지정한 데이터베이스에 연결할 수 없어 데이터베이스를 만들 수 없습니다. 설정을 다시 확인하고 필요한 경우 데이터베이스를 수동으로 생성하세요." INSTL_DATABASE_COULD_NOT_REFRESH_MANIFEST_CACHE="확장 프로그램을 위한 manifest 캐시를 새로 고치지 못했습니다: %s" INSTL_DATABASE_ERROR_BACKINGUP="데이터베이스 백업 중 오류가 발생했습니다." @@ -173,9 +170,9 @@ INSTL_DATABASE_ERROR_READING_SQL_FILE="SQL 파일을 읽을 수 없습니다." INSTL_DATABASE_FIELD_VALUE_BACKUP="백업" INSTL_DATABASE_FIELD_VALUE_REMOVE="삭제" INSTL_DATABASE_FILE_DOES_NOT_EXIST="파일 %s이(가) 존재하지 않습니다." -INSTL_DATABASE_FIX_LOWERCASE="PostgreSQL의 테이블 접두사는 반드시 소문자여야 합니다." +INSTL_DATABASE_FIX_LOWERCASE="PostgreSQL의 테이블 접두사는 소문자여야 합니다." INSTL_DATABASE_FIX_TOO_LONG="MySQL 테이블 접두사는 최대 15자까지만 입력할 수 있습니다." -INSTL_DATABASE_INVALID_DB_DETAILS="입력한 데이터베이스 세부 정보가 잘못되었거나 비어 있습니다." +INSTL_DATABASE_INVALID_DB_DETAILS="데이터베이스 세부 정보가 잘못되었거나 비어 있습니다." INSTL_DATABASE_INVALID_MARIADB_VERSION="설치를 계속하려면 MariaDB %1$s 혹은 그 이상이 필요합니다. 사용 중인 버전: %2$s" INSTL_DATABASE_INVALID_MYSQLI_VERSION="설치를 계속하려면 MySQL %1$s 혹은 그 이상이 필요합니다. 사용 중인 버전: %2$s" INSTL_DATABASE_INVALID_MYSQL_VERSION="설치를 계속하려면 MySQL %1$s 혹은 그 이상이 필요합니다. 사용 중인 버전: %2$s" @@ -195,15 +192,15 @@ INSTL_PAGE_TITLE="Joomla 설치 프로그램" ; Configuration model INSTL_ERROR_CONNECT_DB="데이터베이스에 연결할 수 없습니다. 커넥터로부터 반환받은 번호: %d." -INSTL_STD_OFFLINE_MSG="이 사이트는 유지보수를 위해 닫혀 있습니다.
잠시 후 다시 확인해 주세요." +INSTL_STD_OFFLINE_MSG="이 사이트는 유지보수를 위해 닫혀 있습니다.
잠시 후 다시 확인해 주세요." ; Languages model -INSTL_ERROR_INVALID_URL="유효하지 않은 URL" +INSTL_ERROR_INVALID_URL="잘못된 URL" ; Others -INSTL_CONFPROBLEM="구성 파일 또는 폴더를 작성 수 없거나 구성 파일을 만드는 데 문제가 있습니다. 다음 코드를 수동으로 업로드해야 합니다. 텍스트 영역에서 선택하여 모든 코드를 강조 표시한 다음 새 텍스트 파일에 붙여넣습니다. 이 파일의 이름을 'configuration.php'로 지정하고 사이트 루트 폴더에 업로드합니다." +INSTL_CONFPROBLEM="구성 파일 또는 폴더를 쓸 수 없거나 구성 파일을 만드는 데 문제가 있습니다. 다음 코드를 직접 업로드해야 합니다. 텍스트 영역에서 선택하여 모든 코드를 강조 표시한 다음 새 텍스트 파일에 붙여넣습니다. 이 파일의 이름을 'configuration.php'로 지정하고 사이트 루트 폴더에 업로드합니다." INSTL_DISPLAY_ERRORS="디스플레이 오류" -INSTL_ERROR="오류" +INSTL_ERROR="에러" INSTL_ERROR_DB="데이터베이스를 채우는 동안 오류가 발생했습니다: %s." INSTL_ERROR_INITIALISE_SCHEMA="데이터베이스 스키마를 초기화할 수 없습니다." INSTL_EXTENSION_AVAILABLE="%s 사용 가능" @@ -223,23 +220,23 @@ INSTL_ZIP_SUPPORT_AVAILABLE="기본 ZIP 지원" JADMINISTRATOR="관리자" JCLOSE="닫기" JEMAIL="이메일" -JERROR="오류" +JERROR="에러" JERROR_LAYOUT_ERROR_HAS_OCCURRED_WHILE_PROCESSING_YOUR_REQUEST="요청 처리 도중 오류가 발생했습니다." JGLOBAL_ISFREESOFTWARE="%s은(는) GNU 일반 공중 사용 허가서로 릴리즈된 자유 소프트웨어 입니다." -JGLOBAL_LANGUAGE_VERSION_NOT_PLATFORM="언어팩이 이 Joomla!버전과 일치하지 않습니다. 몇몇 문자열이 누락되어 영어로 표시될 것입니다." +JGLOBAL_LANGUAGE_VERSION_NOT_PLATFORM="언어 팩이 설치된 Joomla! 버전과 일치하지 않습니다. 따라서 일부 번역이 누락되어 영어로 표시될 수 있습니다." JGLOBAL_SELECT_AN_OPTION="옵션을 선택하세요." JGLOBAL_SELECT_NO_RESULTS_MATCH="일치하는 결과가 없습니다." JGLOBAL_SELECT_SOME_OPTIONS="몇개의 옵션을 선택하세요." JHIDEPASSWORD="비밀번호 숨기기" -JINVALID_TOKEN="가장 최근의 요청이 잘못된 보안 토큰을 가지고 있어서 거부되었습니다. 페이지를 새로 고침하여 다시 시도하세요." -JINVALID_TOKEN_NOTICE="보안 토큰이 일치하지 않습니다. 보안 침해를 방지하기 위해 요청이 취소되었습니다. 다시 시도해 주세요." +JINVALID_TOKEN="요청이 잘못된 토큰을 가지고 있어서 거부되었습니다. 페이지를 새로 고침하여 다시 시도하세요." +JINVALID_TOKEN_NOTICE="토큰이 일치하지 않습니다. 보안 위반을 막기 위해 요청이 중단되었습니다. 다시 시도해 주세요." JNEXT="다음" JNO="Never" -JNOTICE="공지" +JNOTICE="공지사항" JOFF="비활성" JON="활성" JPREVIOUS="이전" -JSHOWPASSWORD="비밀번호 보기" +JSHOWPASSWORD="비밀번호 보이기" JSITE="사이트" JSKIP="건너뛰기" JUSERNAME="사용자 이름" @@ -251,29 +248,29 @@ JLIB_DATABASE_ERROR_DATABASE="데이터베이스 오류가 발생했습니다." JLIB_DATABASE_ERROR_LOAD_DATABASE_DRIVER="%s 데이터베이스 드라이버를 불러올 수 없습니다." JLIB_DATABASE_ERROR_VALID_MAIL="유효한 이메일 주소를 입력하세요." JLIB_ENVIRONMENT_SESSION_EXPIRED="세션이 만료되었습니다. 페이지를 새로 고침하세요." -JLIB_FILESYSTEM_ERROR_PATH_IS_NOT_A_FOLDER="%1$s: 경로는 폴더가 아닙니다. 경로: %2$s" +JLIB_FILESYSTEM_ERROR_PATH_IS_NOT_A_FOLDER="JFolder: :삭제: 경로는 폴더가 아닙니다. 경로: %s" JLIB_FORM_FIELD_INVALID="유효하지 않은 필드: " JLIB_FORM_VALIDATE_FIELD_INVALID="유효하지 않은 필드: %s" JLIB_FORM_VALIDATE_FIELD_REQUIRED="필드 요구사항: %s" JLIB_INSTALLER_ABORT="언어 설치 중단: %s" -JLIB_INSTALLER_ABORT_CREATE_DIRECTORY="확장기능 %1$s: 폴더 생성 실패: %2$s" +JLIB_INSTALLER_ABORT_CREATE_DIRECTORY="확장 프로그램 %1$s: 폴더 생성 실패: %2$s" JLIB_INSTALLER_ABORT_NOINSTALLPATH="설치 경로가 존재하지 않습니다." -JLIB_INSTALLER_ABORT_PACK_INSTALL_ERROR_EXTENSION="패키지 %1$s: 확장기능 설치중에 에러가 발생했습니다.: %2$s." +JLIB_INSTALLER_ABORT_PACK_INSTALL_ERROR_EXTENSION="패키지 %1$s: 확장 프로그램 설치중에 에러가 발생했습니다.: %2$s." JLIB_INSTALLER_ABORT_PACK_INSTALL_NO_FILES="패키지 %s: 설치할 파일이 없습니다!" JLIB_INSTALLER_ERROR_DOWNLOAD_SERVER_CONNECT="서버 접속 오류: %s" JLIB_INSTALLER_ERROR_FAIL_COPY_FILE="JInstaller: :Install: %1$s 파일을 %2$s로 복사하는데 실패했습니다." JLIB_INSTALLER_INSTALL="설치" JLIB_INSTALLER_NOT_ERROR="오류가 TinyMCE 언어 파일의 설치와 연관되어 있다면 그것은 언어의 설치에 아무런 영향을 미치지 않습니다. 몇몇 언어 팩은 Joomla 3.2.0 이전 버전에 만들어져서, 별도로 TimyMCE 언어파일을 설치하려고 할 수도 있습니다. 이러한 경우, 줌라의 핵심 파일로 포함되어 있기 때문에, 더이상 설치할 필요가 없습니다." -JLIB_INSTALLER_WARNING_UNABLE_TO_INSTALL_CONTENT_LANGUAGE="%s 언어를 위한 콘텐츠 언어를 만들 수 없음: %s." -JLIB_UPDATER_ERROR_COLLECTION_FOPEN="PHP의 allow_url_fopen 설정이 비활성화되어 있습니다. 이 설정은 작동 업데이트를 위해 활성화되어 있어야합니다." -JLIB_UPDATER_ERROR_COLLECTION_OPEN_URL="업데이트: :Collection: %s을(를) 열수 없습니다." -JLIB_UPDATER_ERROR_COLLECTION_PARSE_URL="업데이트: :Collection: %s를(을) parse할 수 없습니다." +JLIB_INSTALLER_WARNING_UNABLE_TO_INSTALL_CONTENT_LANGUAGE="%s 언어를 위한 컨텐츠 언어를 생성할 수 없음: %s." +JLIB_UPDATER_ERROR_COLLECTION_FOPEN="PHP의 allow_url_fopen 설정이 비활성화되어 있습니다. 이 설정은 작동 업데이를 활성화해야합니다." +JLIB_UPDATER_ERROR_COLLECTION_OPEN_URL="업데이트: :수집: %s을 열수 없습니다." +JLIB_UPDATER_ERROR_COLLECTION_PARSE_URL="업데이트: :수집: %s를 parse 할수 없습니다." JLIB_UPDATER_ERROR_OPEN_UPDATE_SITE="업데이트: 업데이트 사이트 #%d "%s"를(을) 열 수 없음, URL: %s." -JLIB_UTIL_ERROR_CONNECT_DATABASE="JDatabase: :getInstance: 데이터베이스에 접속할 수 없습니다.
joomla.library: %1$s - %2$s." +JLIB_UTIL_ERROR_CONNECT_DATABASE="JDatabase: ::getInstance: 데이터베이스에 접속할 수 없습니다.
joomla.library: %1$s - %2$s." ; Strings for the language debugger -JDEBUG_LANGUAGE_FILES_IN_ERROR="언어 파일에서 Parsing 오류" -JDEBUG_LANGUAGE_UNTRANSLATED_STRING="번역되지 않은 문자열" +JDEBUG_LANGUAGE_FILES_IN_ERROR="언어 파일에서 파실(Parsing)오류" +JDEBUG_LANGUAGE_UNTRANSLATED_STRING="번역되지 않은 스트링" JNONE="없음" ; Necessary for errors @@ -282,7 +279,7 @@ ADMIN_PASSWORD="관리자 비밀번호" SITE_NAME="사이트 이름" ; Database types (allows for a more descriptive label than the internal name) -MYSQL="MySQL (PDO)" +MYSQL="MySQL" MYSQLI="MySQLi" ORACLE="Oracle" PGSQL="PostgreSQL (PDO)" @@ -290,20 +287,20 @@ POSTGRESQL="PostgreSQL" SQLITE="SQLite" ; Javascript message titles -ERROR="오류" +ERROR="에러" MESSAGE="메시지" -NOTICE="공지" +NOTICE="공지사항" WARNING="경고" ; Javascript ajax error messages JLIB_JS_AJAX_ERROR_CONNECTION_ABORT="JSON 데이터 수신 중 연결 중단이 발생했습니다." JLIB_JS_AJAX_ERROR_NO_CONTENT="콘텐츠가 없습니다." -JLIB_JS_AJAX_ERROR_OTHER="JSON 데이터를 가져오는 중 오류 발생: HTTP %d 상태 코드." -JLIB_JS_AJAX_ERROR_PARSE="JSON 데이터 처리 파싱 에러 발생:
%s" +JLIB_JS_AJAX_ERROR_OTHER="JSON 데이터를 가져오는 동안 오류가 발생했습니다: HTTP %d 상태 코드입니다." +JLIB_JS_AJAX_ERROR_PARSE="JSON 데이터 처리 파싱 에러 발생:
%s" JLIB_JS_AJAX_ERROR_TIMEOUT="JSON 데이터 수신에 타임아웃 오류가 발생했습니다." ; Field password messages -JFIELD_PASSWORD_INDICATE_COMPLETE="비밀번호가 허용됨" +JFIELD_PASSWORD_INDICATE_COMPLETE="비밀번호가 수락됨" JFIELD_PASSWORD_INDICATE_INCOMPLETE="비밀번호가 사이트 요구 사항을 충족하지 않습니다." JFIELD_PASSWORD_SPACES_IN_PASSWORD="비밀번호는 앞이나 뒤에 공백이 없어야 합니다." JFIELD_PASSWORD_TOO_LONG="비밀번호가 너무 깁니다. 비밀번호는 100자 미만이어야 합니다." @@ -313,7 +310,7 @@ JFIELD_PASSWORD_TOO_SHORT_N="비밀번호가 너무 짧습니다. 비밀번호 JLIB_FORM_CONTAINS_INVALID_FIELDS="필수 데이터가 누락되어 양식을 제출할 수 없습니다.
표시된 필드를 수정하고 다시 시도하십시오." JLIB_FORM_FIELD_INVALID_VALUE="이 값은 유효하지 않습니다." JLIB_FORM_FIELD_REQUIRED_CHECK="옵션 중 하나를 반드시 선택해야 합니다." -JLIB_FORM_FIELD_REQUIRED_VALUE="이 필드를 작성하십시오." +JLIB_FORM_FIELD_REQUIRED_VALUE="이 필드를 작성하세요." ; Installation progress screen INSTL="설치" diff --git a/installation/language/ko-KR/langmetadata.xml b/installation/language/ko-KR/langmetadata.xml index 75b4773d6b132..20232b0fd5e63 100644 --- a/installation/language/ko-KR/langmetadata.xml +++ b/installation/language/ko-KR/langmetadata.xml @@ -1,7 +1,7 @@ - Korean (Republic of Korea) - 5.4.1 + Korean (ko-KR) + 6.0.1 2025-10 Joomla! 프로젝트 (C) 2005 Open Source Matters, Inc. @@ -11,7 +11,7 @@ Korean (ko-KR) - Korean (Republic of Korea) + Korean (ko-KR) ko-KR 0 diff --git a/installation/language/lt-LT/joomla.ini b/installation/language/lt-LT/joomla.ini index 1574f81a53e26..c86fd13e545ad 100644 --- a/installation/language/lt-LT/joomla.ini +++ b/installation/language/lt-LT/joomla.ini @@ -32,6 +32,7 @@ BUILD_MIN_PHP_ERROR_TEXT="Kad paleisti šios versijos Joomla, Jūsų talpinimo s BUILD_MIN_PHP_ERROR_URL_TEXT="Padėkite man tai išspręsti" ; Main Config +INSTL_CHANGE_INSTALL_LANG_SHORT="Pakeisti" INSTL_SELECT_INSTALL_LANG="Pasirinkite diegimo kalbą" INSTL_SELECT_LANGUAGE_TITLE="Pasirinkite kalbą" INSTL_SETUP_LOGIN_DATA="Nustatykite prisijungimo duomenis" @@ -42,13 +43,9 @@ INSTL_WARNJSON="Jūsų PHP diegimui turi būti įgalintas JSON, kad Joomla! būt INSTL_DATABASE_SUPPORT="Duomenų bazės palaikymas:" INSTL_JSON_SUPPORT_AVAILABLE="JSON palaikymas" INSTL_MB_LANGUAGE_IS_DEFAULT="MB kalba yra numatytoji" -; Deprecated, will be removed with 6.0 -INSTL_MB_STRING_OVERLOAD_OFF="MB String Overload Išjungta" INSTL_NOTICE_DATABASE_SUPPORT="Nerasta jokių palaikomų duomenų bazių." INSTL_NOTICE_JSON_SUPPORT_AVAILABLE="Jūsų PHP diegimui turi būti įgalintas JSON, kad Joomla! būtų tinkamai įdiegta!" INSTL_NOTICE_MBLANG_NOTDEFAULT="PHP mbstring kalba nėra nustatyta į neutralią. Tai galima nustatyti lokaliai, įrašant php_value mbstring.language neutral vertę .htaccess faile." -; Deprecated, will be removed with 6.0 -INSTL_NOTICE_MBSTRING_OVERLOAD_OFF="PHP mbstring funkcijos perkrovą yra įjungta. Tai galima išjungti lokaliai, įrašant php_value mbstring.func_overload 0 vertę .htaccess faile." INSTL_NOTICE_PARSE_INI_FILE_AVAILABLE="Reikalingos php funkcijos parse_ini_file ir parse_ini_string jūsų serveryje yra išjungtos." INSTL_NOTICE_XML_SUPPORT="XML palaikymas negalimas. Tai turėtų būti įjungta pagal numatytuosius nustatymus „php“, tačiau „Ubuntu“ vartotojams gali tekti tai įdiegti įvykdžius sudo apt-get install php-xml , ir po to iš naujo paleidus žiniatinklio serverį." INSTL_NOTICE_ZLIB_COMPRESSION_SUPPORT="„Zlib“ suspaudimas nenustatytas. Tai galima įjungti byloje, php.ini faile įvedus zlib.output_compression = On ." @@ -298,7 +295,7 @@ NOTICE="Pranešimas" WARNING="Įspėjimas" ; Javascript ajax error messages -JLIB_JS_AJAX_ERROR_CONNECTION_ABORT="Gaunant JSON duomenis įvyko ryšio klaida." +JLIB_JS_AJAX_ERROR_CONNECTION_ABORT="Ryšys nutrauktas išrenkant JSON duomenis." JLIB_JS_AJAX_ERROR_NO_CONTENT="Rezultatų negrąžinta." JLIB_JS_AJAX_ERROR_OTHER="Klaida išrenkant JSON duomenis: HTTP %s būsenos kodas." JLIB_JS_AJAX_ERROR_PARSE="Apdorojant šiuos JSON duomenis įvyko analizavimo klaida:
%s" diff --git a/installation/language/lt-LT/langmetadata.xml b/installation/language/lt-LT/langmetadata.xml index cf89a6586cb1c..50b4d41f08f9c 100644 --- a/installation/language/lt-LT/langmetadata.xml +++ b/installation/language/lt-LT/langmetadata.xml @@ -1,7 +1,7 @@ Lietuvių (lt-LT) - 5.4.1 + 6.0.1 2025-10 Oskaras Jankauskas (C) 2005 Open Source Matters, Inc. diff --git a/installation/language/lv-LV/joomla.ini b/installation/language/lv-LV/joomla.ini index 09dd7abd782be..28cb0d13f4966 100644 --- a/installation/language/lv-LV/joomla.ini +++ b/installation/language/lv-LV/joomla.ini @@ -32,6 +32,7 @@ BUILD_MIN_PHP_ERROR_TEXT="Lai palaistu šo Joomla versiju, serverim ir jāizmant BUILD_MIN_PHP_ERROR_URL_TEXT="Palīdziet man to atrisināt" ; Main Config +INSTL_CHANGE_INSTALL_LANG_SHORT="Mainīt pozīciju" INSTL_SELECT_INSTALL_LANG="Izvēlieties instalācijas valodu" INSTL_SELECT_LANGUAGE_TITLE="Izvēlieties valodu" INSTL_SETUP_LOGIN_DATA="Iestatīt pievienošanās datus" @@ -42,13 +43,9 @@ INSTL_WARNJSON="PHP dzinējā jābūt ieslēgtam JSON funkciju atbalstam, lai va INSTL_DATABASE_SUPPORT="Datu bāzu atbalsts:" INSTL_JSON_SUPPORT_AVAILABLE="JSON atbalsts" INSTL_MB_LANGUAGE_IS_DEFAULT="Daudz bitu kodējums ir noklusētais" -; Deprecated, will be removed with 6.0 -INSTL_MB_STRING_OVERLOAD_OFF="Daudz bitu virkņu pārlādēšana atslēgta" INSTL_NOTICE_DATABASE_SUPPORT="Netika atrasta neviena atbalstīta datu bāze." INSTL_NOTICE_JSON_SUPPORT_AVAILABLE="PHP dzinējā jābūt ieslēgtam JSON funkciju atbalstam, lai varētu instalēt Joomla!" INSTL_NOTICE_MBLANG_NOTDEFAULT="PHP mbstring valoda nav iestatīta kā 'neutral'. To var iestatīt ierakstot php_value mbstring.language neutral .htaccess failā, kas atrodas vietnes saknes direktorijā.<0>." -; Deprecated, will be removed with 6.0 -INSTL_NOTICE_MBSTRING_OVERLOAD_OFF="PHP mbstring valoda ir ieslēgta. To var atslēgt ierakstot 'php_value mbstring.func_overload 0' .htaccess failā, kas atrodas vietnes saknes direktorijā." INSTL_NOTICE_PARSE_INI_FILE_AVAILABLE="Nepieciešamās php funkcijas parse_ini_file un parse_ini_string uz servera ir izslēgtas." INSTL_NOTICE_XML_SUPPORT="XML atbalsts nav pieejams. Tas ir jāiespējo pēc noklusējuma programmā php, bet Ubuntu lietotājiem tas, iespējams, būs jāinstalē, veicot sudo apt-get install php-xml , pēc tam jāveic web servisa pārstarēšana." INSTL_NOTICE_ZLIB_COMPRESSION_SUPPORT="Zlib kompresija nav ieslēgta. To var ieslēgt ievadot zlib.output_compression = On servera php.ini failā." @@ -236,7 +233,7 @@ JHIDEPASSWORD="Slēpt paroli" JINVALID_TOKEN="Pēdējais pieprasījums netika apstrādāts, jo nebija pareizs drošības kods. Lūdzu atjaunojiet lapu un mēģiniet vēlreiz." JINVALID_TOKEN_NOTICE="Neatbilstoša drošības atpazīšana. Pieprasījums ir pārtraukts lai novērstu drošības apdraudējumu. Mēģiniet vēlreiz." JNEXT="Nākamā" -JNO="Nē" +JNO="Nekad" JNOTICE="Paziņojums" JOFF="Izslēgts" JON="Ieslēgts" diff --git a/installation/language/lv-LV/langmetadata.xml b/installation/language/lv-LV/langmetadata.xml index 49366c1ab6d5c..285225926c328 100644 --- a/installation/language/lv-LV/langmetadata.xml +++ b/installation/language/lv-LV/langmetadata.xml @@ -1,7 +1,7 @@ Latvian (Latvia) - 5.4.1 + 6.0.1 2025-10 Joomla! Projekts (C) 2005 Open Source Matters, Inc. diff --git a/installation/language/mk-MK/joomla.ini b/installation/language/mk-MK/joomla.ini index dfa37b08bd3b3..dc56348b77f48 100644 --- a/installation/language/mk-MK/joomla.ini +++ b/installation/language/mk-MK/joomla.ini @@ -32,6 +32,7 @@ BUILD_MIN_PHP_ERROR_TEXT="Вашиот хост треба да користи P BUILD_MIN_PHP_ERROR_URL_TEXT="Помогни ми да го решам ова" ; Main Config +INSTL_CHANGE_INSTALL_LANG_SHORT="Смени" INSTL_SELECT_INSTALL_LANG="Изберете јазик за инсталација" INSTL_SELECT_LANGUAGE_TITLE="Одбери јазик" INSTL_SETUP_LOGIN_DATA="Поставете податоци за најавување" @@ -42,13 +43,9 @@ INSTL_WARNJSON="Вашата PHP -инсталација треба да има INSTL_DATABASE_SUPPORT="Поддршка за база на податоци:" INSTL_JSON_SUPPORT_AVAILABLE="JSON поддршка" INSTL_MB_LANGUAGE_IS_DEFAULT="MB Language е поставено" -; Deprecated, will be removed with 6.0 -INSTL_MB_STRING_OVERLOAD_OFF="MB String Overload исклучено" INSTL_NOTICE_DATABASE_SUPPORT="Не беа пронајдени поддржани бази на податоци." INSTL_NOTICE_JSON_SUPPORT_AVAILABLE="Вашата PHP -инсталација треба да има овозможено JSON за да се инсталира Joomla!" INSTL_NOTICE_MBLANG_NOTDEFAULT="PHP mbstring јазикот не е поставен на neutral. Ова може да биде поставено и локално со внесување на php_value mbstring.language neutral во вашиот .htaccess документ." -; Deprecated, will be removed with 6.0 -INSTL_NOTICE_MBSTRING_OVERLOAD_OFF="PHP mbstring функцијата overload е поставена. Ова може да биде исклучено и локално со внесување на php_value mbstring.func_overload 0 во вашиот .htaccess документ." INSTL_NOTICE_PARSE_INI_FILE_AVAILABLE="Потребните php функции parse_ini_file и parse_ini_string се оневозможени на вашиот сервер." INSTL_NOTICE_XML_SUPPORT="Поддршката за XML не е достапна. Ова треба да биде стандардно овозможено во php, но корисниците на Ubuntu можеби ќе треба да го инсталираат ова со правење sudo apt-get install php-xml проследено со рестартирање на веб-серверот." INSTL_NOTICE_ZLIB_COMPRESSION_SUPPORT="Компресијата на Zlib не е поставена. Ова може да се вклучи локално со внесување zlib.output_compression = On во вашата датотека php.ini." diff --git a/installation/language/mk-MK/langmetadata.xml b/installation/language/mk-MK/langmetadata.xml index 14f448929d494..b587ebebeeb5b 100644 --- a/installation/language/mk-MK/langmetadata.xml +++ b/installation/language/mk-MK/langmetadata.xml @@ -1,7 +1,7 @@ Macedonian (mk-MK) - 5.4.1 + 6.0.1 2025-10 Joomla! Project (C) 2005 Open Source Matters, Inc. diff --git a/installation/language/nl-BE/joomla.cli.ini b/installation/language/nl-BE/joomla.cli.ini index e4a4b84890d4e..f253e78176a06 100644 --- a/installation/language/nl-BE/joomla.cli.ini +++ b/installation/language/nl-BE/joomla.cli.ini @@ -1,7 +1,7 @@ INSTL_ADMIN_EMAIL_DESC="Voer het e-mailadres in van de website Super gebruiker" INSTL_ADMIN_EMAIL_DESC_SHORT="E-mailadres van de supergebruiker van de website" INSTL_ADMIN_PASSWORD_DESC="Stel het wachtwoord in voor uw Super Gebruiker account" -INSTL_ADMIN_PASSWORD_DESC_SHORT="Wachtwoord van uw Super User account" +INSTL_ADMIN_PASSWORD_DESC_SHORT="Stel het wachtwoord in voor uw Super Gebruiker account" INSTL_ADMIN_USERNAME_DESC="Stel de gebruikersnaam in voor uw Supergebruiker account" INSTL_ADMIN_USERNAME_DESC_SHORT="Gebruikersnaam van uw supergebruiker account" INSTL_ADMIN_USER_DESC="Voer de echte naam in van uw supergebruiker" diff --git a/installation/language/nl-BE/joomla.ini b/installation/language/nl-BE/joomla.ini index 07665adc73df8..7e9be9cfb76f0 100644 --- a/installation/language/nl-BE/joomla.ini +++ b/installation/language/nl-BE/joomla.ini @@ -6,32 +6,35 @@ ; Fatal error page ; These will be processed by the JavaScript Build BUILD_FATAL_HEADER="Sorry, er deed zich een probleem voor dat we niet konden herstellen." -BUILD_FATAL_LANGUAGE="Vlaams BE" ; IMPORTANT NOTE FOR TRANSLATORS: Do not literally translate this line, instead add the localised name of the language. For example French will be Français FR +BUILD_FATAL_LANGUAGE="Engels GB" ; IMPORTANT NOTE FOR TRANSLATORS: Do not literally translate this line, instead add the localised name of the language. For example French will be Français FR BUILD_FATAL_TEXT="De server heeft een \"{{statusCode_statusText}} \" teruggestuurd" BUILD_FATAL_URL_TEXT="Help dit probleem op te lossen" ; Build incomplete error page ; These will be processed by the JavaScript Build BUILD_INCOMPLETE_HEADER="Omgeving instellen onvolledig" -BUILD_INCOMPLETE_LANGUAGE="Vlaams BE" ; IMPORTANT NOTE FOR TRANSLATORS: Do not literally translate this line, instead add the localised name of the language. For example French will be Français FR +BUILD_INCOMPLETE_LANGUAGE="Engels GB" ; IMPORTANT NOTE FOR TRANSLATORS: Do not literally translate this line, instead add the localised name of the language. For example French will be Français FR BUILD_INCOMPLETE_TEXT="Het lijkt erop dat u probeert Joomla! uit te voeren vanuit onze git repository. Hiervoor is vereist dat u eerst een aantal extra stappen heeft voltooid." BUILD_INCOMPLETE_URL_TEXT="Meer details" ; No XML PHP error page ; These will be processed by the JavaScript Build BUILD_NOXML_HEADER="Sorry, uw PHP mist een noodzakelijke library" -BUILD_NOXML_LANGUAGE="Vlaams BE" ; IMPORTANT NOTE FOR TRANSLATORS: Do not literally translate this line, instead add the localised name of the language. For example French will be Français FR +BUILD_NOXML_LANGUAGE="Engels GB" ; IMPORTANT NOTE FOR TRANSLATORS: Do not literally translate this line, instead add the localised name of the language. For example French will be Français FR BUILD_NOXML_TEXT="Om deze versie van Joomla! uit te kunnen voeren moet uw host PHP gebruiken met ondersteuning voor de XML-library" BUILD_NOXML_URL_TEXT="Help dit probleem op te lossen" ; Minimum PHP error page ; These will be processed by the JavaScript Build BUILD_MIN_PHP_ERROR_HEADER="Sorry, uw PHP-versie wordt niet ondersteund." -BUILD_MIN_PHP_ERROR_LANGUAGE="Vlaams BE" ; IMPORTANT NOTE FOR TRANSLATORS: Do not literally translate this line, instead add the localised name of the language. For example French will be Français FR +BUILD_MIN_PHP_ERROR_LANGUAGE="Engels GB" ; IMPORTANT NOTE FOR TRANSLATORS: Do not literally translate this line, instead add the localised name of the language. For example French will be Français FR BUILD_MIN_PHP_ERROR_TEXT="Uw host moet PHP versie {{phpversion}} of nieuwer gebruiken om deze versie van Joomla uit te voeren." BUILD_MIN_PHP_ERROR_URL_TEXT="Help dit probleem op te lossen" ; Main Config +INSTL_CHANGE_INSTALL_LANG="Verander de installatietaal" +INSTL_CHANGE_INSTALL_LANG_SHORT="Verander" +INSTL_SELECTED_INSTALL_LANGUAGE="Huidige taal: %s" INSTL_SELECT_INSTALL_LANG="Installatietaal selecteren" INSTL_SELECT_LANGUAGE_TITLE="Selecteer taal" INSTL_SETUP_LOGIN_DATA="Inloggegevens instellen" @@ -42,13 +45,9 @@ INSTL_WARNJSON="Uw PHP installatie moet JSON geactiveerd hebben om Joomla! te ku INSTL_DATABASE_SUPPORT="Database ondersteuning:" INSTL_JSON_SUPPORT_AVAILABLE="JSON ondersteuning" INSTL_MB_LANGUAGE_IS_DEFAULT="MB Language is standaard" -; Deprecated, will be removed with 6.0 -INSTL_MB_STRING_OVERLOAD_OFF="MB String overload uit" INSTL_NOTICE_DATABASE_SUPPORT="Er zijn geen ondersteunde databases gevonden." INSTL_NOTICE_JSON_SUPPORT_AVAILABLE="Uw PHP installatie moet JSON geactiveerd hebben om Joomla! te kunnen installeren!" INSTL_NOTICE_MBLANG_NOTDEFAULT="PHP mbstring language is niet ingesteld op neutraal. Dit kan lokaal ingesteld worden door het ingeven van php_value mbstring.language neutral in uw .htaccess bestand." -; Deprecated, will be removed with 6.0 -INSTL_NOTICE_MBSTRING_OVERLOAD_OFF="PHP mbstring function overload is ingesteld. Dit kan lokaal uitgeschakeld worden door het ingeven van php_value mbstring.func_overload 0 in uw .htaccess bestand." INSTL_NOTICE_PARSE_INI_FILE_AVAILABLE="De vereiste php-functies parse_ini_file en parse_ini_string zijn uitgeschakeld op uw server." INSTL_NOTICE_XML_SUPPORT="XML-ondersteuning is niet beschikbaar. Dit moet standaard worden ingeschakeld in php, maar Ubuntu-gebruikers moeten sudo apt-get install php-xml installeren gevolgd door opnieuw opstarten van de webserver." INSTL_NOTICE_ZLIB_COMPRESSION_SUPPORT="Zlib-compressie is niet ingesteld. Dit kan lokaal worden ingeschakeld door zlib.output_compression = On in uw php.ini -bestand in te voeren." @@ -168,7 +167,7 @@ INSTL_DEFAULTLANGUAGE_FRONTEND_SET_DEFAULT="Joomla heeft %s ingesteld als uw sta INSTL_DEFAULTLANGUAGE_SET_DEFAULT_LANGUAGE="Standaardtaal instellen" INSTL_DEFAULTLANGUAGE_TRY_LATER="U kunt het later installeren met behulp van Joomla beheer." -INSTL_DEFAULTLANGUAGE_NATIVE_LANGUAGE_NAME="Flemish (BE)" ; IMPORTANT NOTE FOR TRANSLATORS: Do not literally translate this line, instead add the localised name of the language. For example Spanish will be Español +INSTL_DEFAULTLANGUAGE_NATIVE_LANGUAGE_NAME="Vlaams (BE)" ; IMPORTANT NOTE FOR TRANSLATORS: Do not literally translate this line, instead add the localised name of the language. For example Spanish will be Español ; Database Model INSTL_DATABASE_COULD_NOT_CONNECT="Kan geen verbinding maken met de database. Foutmelding: %s" @@ -222,7 +221,7 @@ INSTL_NOTICE_NEEDSTOBEWRITABLE="U kunt de installatie laten doorgaan als u de re INSTL_OUTPUT_BUFFERING="Uitvoer buffering" INSTL_PHP_VERSION="PHP versie" INSTL_PHP_VERSION_NEWER="PHP versie >= %s" -INSTL_PROCESS_BUSY="Verwerking is bezig. Even geduld …" +INSTL_PROCESS_BUSY="Proces in verwerking. Even wachten …" INSTL_SESSION_AUTO_START="Sessie auto start" INSTL_WRITABLE="Niet voldoende rechten voor het aanmaken van %s." INSTL_ZIP_SUPPORT_AVAILABLE="Ingebakken ZIP ondersteuning" diff --git a/installation/language/nl-BE/langmetadata.xml b/installation/language/nl-BE/langmetadata.xml index 9b195959a038a..67d7261dfaacf 100644 --- a/installation/language/nl-BE/langmetadata.xml +++ b/installation/language/nl-BE/langmetadata.xml @@ -1,17 +1,17 @@ - Vlaams (België) - 5.4.1 + Dutch (Belgium) + 6.0.1 2025-10 - Vlaams (BE) translation team + Dutch (BE) translation team (C) 2005 Open Source Matters, Inc. GNU General Public License version 2 or later; see LICENSE.txt joomla.ini - Vlaams (nl-BE) - Vlaams (België) + Dutch (nl-BE) + Dutch (Belgium) nl-BE 0 diff --git a/installation/language/nl-NL/joomla.ini b/installation/language/nl-NL/joomla.ini index a8b25b9e3bd2b..d0b8b93af3e39 100644 --- a/installation/language/nl-NL/joomla.ini +++ b/installation/language/nl-NL/joomla.ini @@ -32,6 +32,9 @@ BUILD_MIN_PHP_ERROR_TEXT="Uw host moet PHP versie {{phpversion}} of nieuwer gebr BUILD_MIN_PHP_ERROR_URL_TEXT="Help dit probleem op te lossen" ; Main Config +INSTL_CHANGE_INSTALL_LANG="Verander installatietaal" +INSTL_CHANGE_INSTALL_LANG_SHORT="Wijzigen" +INSTL_SELECTED_INSTALL_LANGUAGE="Huidige taal: %s" INSTL_SELECT_INSTALL_LANG="Installatietaal selecteren" INSTL_SELECT_LANGUAGE_TITLE="Selecteer taal" INSTL_SETUP_LOGIN_DATA="Inloggegevens instellen" @@ -42,13 +45,9 @@ INSTL_WARNJSON="In de PHP installatie dient JSON ingeschakeld te zijn om Joomla INSTL_DATABASE_SUPPORT="Database ondersteuning:" INSTL_JSON_SUPPORT_AVAILABLE="JSON ondersteuning" INSTL_MB_LANGUAGE_IS_DEFAULT="MB taal is standaard" -; Deprecated, will be removed with 6.0 -INSTL_MB_STRING_OVERLOAD_OFF="MB string overload uitgeschakeld" INSTL_NOTICE_DATABASE_SUPPORT="Er zijn geen ondersteunde databases gevonden." INSTL_NOTICE_JSON_SUPPORT_AVAILABLE="In de PHP installatie dient JSON ingeschakeld te zijn om Joomla te kunnen installeren!" INSTL_NOTICE_MBLANG_NOTDEFAULT="PHP mbstring taal is niet ingesteld op neutral. Voeg de regel php_value mbstring.language neutral toe aan het .htaccess bestand." -; Deprecated, will be removed with 6.0 -INSTL_NOTICE_MBSTRING_OVERLOAD_OFF="PHP mbstring function overload is ingesteld. Dit kan lokaal uitgeschakeld worden door de regel php_value mbstring.func_overload 0 in het .htaccess bestand op te nemen." INSTL_NOTICE_PARSE_INI_FILE_AVAILABLE="De vereiste php-functies parse_ini_file en parse_ini_string zijn uitgeschakeld op uw server." INSTL_NOTICE_XML_SUPPORT="XML-ondersteuning is niet beschikbaar. Dit moet standaard worden ingeschakeld in php, maar Ubuntu-gebruikers moeten sudo apt-get install php-xml installeren gevolgd door opnieuw opstarten van de webserver." INSTL_NOTICE_ZLIB_COMPRESSION_SUPPORT="Zlib-compressie is niet ingesteld. Dit kan lokaal worden ingeschakeld door zlib.output_compression = On in uw php.ini -bestand in te voeren." @@ -240,7 +239,7 @@ JGLOBAL_SELECT_NO_RESULTS_MATCH="Geen overeenkomende resultaten" JGLOBAL_SELECT_SOME_OPTIONS="Selecteer enkele opties" JHIDEPASSWORD="Wachtwoord verbergen" JINVALID_TOKEN="Het laatste verzoek is geweigerd omdat het een ongeldig veiligheidsteken bevat. Vernieuw de pagina en probeer het opnieuw." -JINVALID_TOKEN_NOTICE="Het beveiligingstoken komt niet overeen. Het verzoek is geannuleerd om een inbreuk op de beveiliging te voorkomen. Probeer het opnieuw." +JINVALID_TOKEN_NOTICE="Het beveiligingstoken komt niet overeen. Het verzoek is afgebroken om een inbreuk op de beveiliging te voorkomen. Probeer het opnieuw." JNEXT="Volgende" JNO="Nee" JNOTICE="Attentie" diff --git a/installation/language/nl-NL/langmetadata.xml b/installation/language/nl-NL/langmetadata.xml index 0f6f07df48ff3..5ab0fd4ce23fc 100644 --- a/installation/language/nl-NL/langmetadata.xml +++ b/installation/language/nl-NL/langmetadata.xml @@ -1,7 +1,7 @@ - Dutch (Netherlands) - 5.4.1 + Dutch (nl-NL) + 6.0.1 2025-10 Dutch Translation Team (C) 2005 Open Source Matters, Inc. diff --git a/installation/language/pl-PL/joomla.ini b/installation/language/pl-PL/joomla.ini index 2077e539abb09..c327b76700fe8 100644 --- a/installation/language/pl-PL/joomla.ini +++ b/installation/language/pl-PL/joomla.ini @@ -32,6 +32,9 @@ BUILD_MIN_PHP_ERROR_TEXT="Twój serwer musi używać PHP w wersji {{phpversion}} BUILD_MIN_PHP_ERROR_URL_TEXT="Pomoc w rozwiązaniu tego problemu" ; Main Config +INSTL_CHANGE_INSTALL_LANG="Zmień język instalacji" +INSTL_CHANGE_INSTALL_LANG_SHORT="Zmień" +INSTL_SELECTED_INSTALL_LANGUAGE="Obecny język: %s" INSTL_SELECT_INSTALL_LANG="Wybierz język instalacji" INSTL_SELECT_LANGUAGE_TITLE="Wybierz język" INSTL_SETUP_LOGIN_DATA="Ustawienia danych logowania" @@ -42,13 +45,9 @@ INSTL_WARNJSON="Aby zainstalować Joomla, w ustawieniach PHP na serwerze musi by INSTL_DATABASE_SUPPORT="Obsługiwane bazy danych:" INSTL_JSON_SUPPORT_AVAILABLE="Obsługa JSON" INSTL_MB_LANGUAGE_IS_DEFAULT="Język wielobajtowy - neutralny" -; Deprecated, will be removed with 6.0 -INSTL_MB_STRING_OVERLOAD_OFF="Nadpisywanie funkcji MB - wyłączone" INSTL_NOTICE_DATABASE_SUPPORT="Nie znaleziono obsługiwanych baz danych." INSTL_NOTICE_JSON_SUPPORT_AVAILABLE="Aby zainstalować Joomla, w ustawieniach PHP na serwerze musi być włączona obsługa JSON." INSTL_NOTICE_MBLANG_NOTDEFAULT="Wartość dyrektywy PHP mb_language nie została ustawiona na \"neutral\". Można zmienić to ustawienie poprzez dopisanie php_value mbstring.language neutral w pliku .htaccess." -; Deprecated, will be removed with 6.0 -INSTL_NOTICE_MBSTRING_OVERLOAD_OFF="Funkcja PHP przeciążania mbstring jest włączona. Można ją lokalnie wyłączyć poprzez dopisanie php_value mbstring.func_overload 0 w pliku .htaccess." INSTL_NOTICE_PARSE_INI_FILE_AVAILABLE="Wymagane funkcje php parse_ini_file i parse_ini_string są wyłączone na twoim serwerze." INSTL_NOTICE_XML_SUPPORT="Obsługa plików XML jest niedostępna. Powinna być domyślnie włączona w php. W przypadku korzystania z Ubuntu wymagana może być dodatkowa instalacja mechanizmu obsługi z wykorzystaniem sudo apt-get install php-xml. Po zakończeniu instalacji należy wykonać restart serwera www." INSTL_NOTICE_ZLIB_COMPRESSION_SUPPORT="Kompresja Zlib nie jest uruchomiona. Można ją włączyć lokalnie, wpisując zlib.output_compression = On w pliku php.ini." diff --git a/installation/language/pl-PL/langmetadata.xml b/installation/language/pl-PL/langmetadata.xml index c5405a90cae20..c9eb25a820e23 100644 --- a/installation/language/pl-PL/langmetadata.xml +++ b/installation/language/pl-PL/langmetadata.xml @@ -1,7 +1,7 @@ Polski (PL) - 5.4.0 + 6.0.0 2025-10-13 Projekt Joomla! (C) 2005 Open Source Matters, Inc. diff --git a/installation/language/pt-BR/joomla.ini b/installation/language/pt-BR/joomla.ini index 53158b8b1b7f7..75ea834211268 100644 --- a/installation/language/pt-BR/joomla.ini +++ b/installation/language/pt-BR/joomla.ini @@ -5,7 +5,7 @@ ; Fatal error page ; These will be processed by the JavaScript Build -BUILD_FATAL_HEADER="Desculpe, houve um problema que não pôde ser recuperado." +BUILD_FATAL_HEADER="Desculpe, houve um problema do qual não pudemos nos recuperar." BUILD_FATAL_LANGUAGE="Português do Brasil (pt-BR)" ; IMPORTANT NOTE FOR TRANSLATORS: Do not literally translate this line, instead add the localised name of the language. For example French will be Français FR BUILD_FATAL_TEXT="O servidor retornou um \"{{statusCode_statusText}}\"" BUILD_FATAL_URL_TEXT="Ajude-me a resolver isto" @@ -15,7 +15,7 @@ BUILD_FATAL_URL_TEXT="Ajude-me a resolver isto" BUILD_INCOMPLETE_HEADER="Configuração do Ambiente Incompleta" BUILD_INCOMPLETE_LANGUAGE="Português do Brasil (pt-BR)" ; IMPORTANT NOTE FOR TRANSLATORS: Do not literally translate this line, instead add the localised name of the language. For example French will be Français FR BUILD_INCOMPLETE_TEXT="Parece que você está tentando executar o Joomla! do nosso repositório git. Para fazer isso, primeiro é necessário que você conclua alguns passos adicionais." -BUILD_INCOMPLETE_URL_TEXT="Mais detalhes" +BUILD_INCOMPLETE_URL_TEXT="[ Mais Detalhe %s ]" ; No XML PHP error page ; These will be processed by the JavaScript Build @@ -32,8 +32,9 @@ BUILD_MIN_PHP_ERROR_TEXT="Seu servidor precisa usar a versão {{phpversion}} do BUILD_MIN_PHP_ERROR_URL_TEXT="Ajude-me a resolver isto" ; Main Config +INSTL_CHANGE_INSTALL_LANG_SHORT="Alterar Posição" INSTL_SELECT_INSTALL_LANG="Selecione o Idioma de Instalação" -INSTL_SELECT_LANGUAGE_TITLE="Selecionar idioma" +INSTL_SELECT_LANGUAGE_TITLE="Selecionar a linguagem" INSTL_SETUP_LOGIN_DATA="Configuração dos Dados de Autenticação" INSTL_WARNJAVASCRIPT="Atenção! O JavaScript deve estar ativado para a instalação correta do Joomla." INSTL_WARNJSON="A sua instalação do PHP no servidor precisa ter o JSON ativado para instalar o Joomla!" @@ -42,13 +43,9 @@ INSTL_WARNJSON="A sua instalação do PHP no servidor precisa ter o JSON ativado INSTL_DATABASE_SUPPORT="Suporte a Banco de dados:" INSTL_JSON_SUPPORT_AVAILABLE="Suporte a JSON" INSTL_MB_LANGUAGE_IS_DEFAULT="MB Language é padrão" -; Deprecated, will be removed with 6.0 -INSTL_MB_STRING_OVERLOAD_OFF="MB String Overload Off" INSTL_NOTICE_DATABASE_SUPPORT="Não foram encontrados bancos de dados suportados." INSTL_NOTICE_JSON_SUPPORT_AVAILABLE="A sua instalação do PHP no servidor precisa ter o JSON ativado para instalar o Joomla!" INSTL_NOTICE_MBLANG_NOTDEFAULT="PHP mbstring não está configurado como neutro. Isto pode ser configurado localmente mediante a inserção de php_value mbstring.language neutral no seu arquivo . htaccess ." -; Deprecated, will be removed with 6.0 -INSTL_NOTICE_MBSTRING_OVERLOAD_OFF="Sobrecarga de função PHP mbstring está ativada. Isto pode ser desativado localmente mediante a inserção de php_value mbstring.func_overload 0 no seu arquivo .htaccess ." INSTL_NOTICE_PARSE_INI_FILE_AVAILABLE="As funções do php necessárias parse_ini_file e parse_ini_string estão desativadas no seu servidor." INSTL_NOTICE_XML_SUPPORT="O suporte a XML não está disponível. Isto deve ser habilitado por padrão no php, mas usuários do Ubuntu podem precisar instalar isso através do comando sudo apt-get install php-xml seguido de reinicialização do servidor web." INSTL_NOTICE_ZLIB_COMPRESSION_SUPPORT="A compressão Zlib não está configurada. Isso pode ser ativado localmente digitando zlib.output_compression = On no seu arquivo php.ini." @@ -136,7 +133,7 @@ INSTL_LANGUAGES_COLUMN_HEADER_LANGUAGE_SELECT="Selecionar a linguagem" INSTL_LANGUAGES_COLUMN_HEADER_LANGUAGE_TAG="Código do idioma" INSTL_LANGUAGES_COLUMN_HEADER_VERSION="Versão" INSTL_LANGUAGES_DESC="A interface do Joomla está disponível em vários idiomas. Escolha o seu idioma através das caixas de seleção e, em seguida instale-os, selecionando o botão \"Instalar Idiomas Selecionados\".
Nota: Esta operação levará cerca de 10 segundos para baixar e instalar cada idioma. Para evitar timeouts por favor, selecione não mais do que 3 idiomas para instalar." -INSTL_LANGUAGES_MESSAGE_PLEASE_WAIT="Esta operação levará até 10 segundos por idioma para completar
Por favor espere enquanto baixamos e instalamos os idiomas" +INSTL_LANGUAGES_MESSAGE_PLEASE_WAIT="Esta operação levará até 10 segundos por idioma para completar
Por favor espere enquanto baixamos e instalamos os idiomas..." INSTL_LANGUAGES_NO_LANGUAGE_SELECTED="Nenhum idioma foi selecionado para instalação." INSTL_LANGUAGES_SELECTED="Instalar Idiomas Selecionados" INSTL_LANGUAGES_WARNING_BACK_BUTTON="Retornar à última etapa da instalação" @@ -234,9 +231,9 @@ JGLOBAL_SELECT_NO_RESULTS_MATCH="Sem resultados correspondentes" JGLOBAL_SELECT_SOME_OPTIONS="Selecione algumas opções" JHIDEPASSWORD="Ocultar senha" JINVALID_TOKEN="A requisição mais recente foi negada por conter um token de segurança inválido. Recarregue a página e tente novamente." -JINVALID_TOKEN_NOTICE="O token de segurança não corresponde. A solicitação foi cancelada para evitar qualquer violação de segurança. Tente novamente." +JINVALID_TOKEN_NOTICE="O token de segurança não corresponde. A solicitação foi abortada para prevenir qualquer violação de segurança. Tente novamente." JNEXT="Próximo" -JNO="Não" +JNO="Nunca" JNOTICE="Aviso" JOFF="Desativado" JON="Ativado" diff --git a/installation/language/pt-BR/langmetadata.xml b/installation/language/pt-BR/langmetadata.xml index 87bba4dee594e..fd1caf763c028 100644 --- a/installation/language/pt-BR/langmetadata.xml +++ b/installation/language/pt-BR/langmetadata.xml @@ -1,7 +1,7 @@ Português do Brasil (pt-BR) - 5.4.1 + 6.0.1 2025-10 Projeto Joomla! (C) 2005 Open Source Matters, Inc. @@ -10,8 +10,8 @@ joomla.ini - Português do Brasil (pt-BR) - Portuguese (Brazil) + Brazilian Portuguese (pt-BR) + Português do Brasil (pt-BR) pt-BR 0 diff --git a/installation/language/pt-PT/joomla.ini b/installation/language/pt-PT/joomla.ini index ddf8d007d84e1..71dd6f303468e 100644 --- a/installation/language/pt-PT/joomla.ini +++ b/installation/language/pt-PT/joomla.ini @@ -32,6 +32,7 @@ BUILD_MIN_PHP_ERROR_TEXT="O seu alojamento terá de usar PHP na versão {{phpver BUILD_MIN_PHP_ERROR_URL_TEXT="Ajude-me a resolver isto" ; Main Config +INSTL_CHANGE_INSTALL_LANG_SHORT="Alterar posição" INSTL_SELECT_INSTALL_LANG="Selecionar idioma de instalação" INSTL_SELECT_LANGUAGE_TITLE="Selecionar idioma" INSTL_SETUP_LOGIN_DATA="Configuração de dados de autenticação" @@ -42,13 +43,9 @@ INSTL_WARNJSON="É necessário ter o JSON autorizado na sua instalação PHP de INSTL_DATABASE_SUPPORT="Suporte a bases de dados:" INSTL_JSON_SUPPORT_AVAILABLE="Suporte a JSON" INSTL_MB_LANGUAGE_IS_DEFAULT="Idioma predefinido de MB" -; Deprecated, will be removed with 6.0 -INSTL_MB_STRING_OVERLOAD_OFF="Definição OVERLOAD de MB desligada" INSTL_NOTICE_DATABASE_SUPPORT="Não foram encontradas bases de dados suportadas." INSTL_NOTICE_JSON_SUPPORT_AVAILABLE="É necessário ter o JSON autorizado na sua instalação PHP de forma a poder instalar o Joomla. Contacte o gestor do seu alojamento!" INSTL_NOTICE_MBLANG_NOTDEFAULT="A 'mbstring' do PHP não está definida como neutra para idioma. Pode efetuar essa definição localmente colocando php_value mbstring.language neutral no ficheiro .htaccess." -; Deprecated, will be removed with 6.0 -INSTL_NOTICE_MBSTRING_OVERLOAD_OFF="A 'mbstring' do PHP de função 'overload' está ligada. Pode ser desligada localmente inserindo php_value mbstring.func_overload 0 no ficheiro .htaccess." INSTL_NOTICE_PARSE_INI_FILE_AVAILABLE="As funções de Php parse_ini_file e parse_ini_string são obrigatórias, mas estão desativadas no seu servidor." INSTL_NOTICE_XML_SUPPORT="O suporte a XML não está disponível. Isto deve estar autorizado, por predefinição, no PHP, mas os utilizadores do Ubuntu podem precisar de o instalar fazendo sudo apt-get install php-xml seguido de um reinício do servidor web." INSTL_NOTICE_ZLIB_COMPRESSION_SUPPORT="Compressão Zlib não definida. Pode ser ativada adicionando a linha zlib.output_compression = On no seu ficheiro php.ini." @@ -151,7 +148,7 @@ INSTL_AUTOMATED_UPDATES_DISABLE="Desativar atualizações automatizadas" ; Default language view INSTL_DEFAULTLANGUAGE_ADMINISTRATOR="Idioma predefinido da área administrativa" INSTL_DEFAULTLANGUAGE_ADMIN_COULDNT_SET_DEFAULT="Não foi possível definir este idioma como predefinido. Será utilizado o inglês como idioma predefinido para a interface da área administrativa do sítio." -INSTL_DEFAULTLANGUAGE_ADMIN_SET_DEFAULT="O idioma %s foi definido como predefinido para a área administrativa." +INSTL_DEFAULTLANGUAGE_ADMIN_SET_DEFAULT="O idioma %s foi definido como predefinido para a administração." INSTL_DEFAULTLANGUAGE_COLUMN_HEADER_LANGUAGE="Idioma" INSTL_DEFAULTLANGUAGE_COLUMN_HEADER_SELECT="Selecionar" INSTL_DEFAULTLANGUAGE_COLUMN_HEADER_TAG="Etiqueta" diff --git a/installation/language/pt-PT/langmetadata.xml b/installation/language/pt-PT/langmetadata.xml index fe5c7adbc7e81..f30da056e7881 100644 --- a/installation/language/pt-PT/langmetadata.xml +++ b/installation/language/pt-PT/langmetadata.xml @@ -1,7 +1,7 @@ Português (Portugal) - 5.4.1 + 6.0.1 2025-10 Comunidade JoomlaPortugal (C) 2005 Open Source Matters, Inc. diff --git a/installation/language/ro-RO/joomla.ini b/installation/language/ro-RO/joomla.ini index 9ac1a5aa13989..99f686015b987 100644 --- a/installation/language/ro-RO/joomla.ini +++ b/installation/language/ro-RO/joomla.ini @@ -32,6 +32,7 @@ BUILD_MIN_PHP_ERROR_TEXT="Gazda dvs. trebuie să folosească versiunea PHP {{php BUILD_MIN_PHP_ERROR_URL_TEXT="Ajută-mă să rezolv această problemă" ; Main Config +INSTL_CHANGE_INSTALL_LANG_SHORT="Schimbare" INSTL_SELECT_INSTALL_LANG="Selectaţi limba de instalare" INSTL_SELECT_LANGUAGE_TITLE="Selectare limbă" INSTL_SETUP_LOGIN_DATA="Configurare date de autentificare" @@ -42,13 +43,9 @@ INSTL_WARNJSON="Pentru a instala Joomla, instalarea dvs PHP trebuie să aibă JS INSTL_DATABASE_SUPPORT="Suport bază de date:" INSTL_JSON_SUPPORT_AVAILABLE="Suport JSON" INSTL_MB_LANGUAGE_IS_DEFAULT="MB Language este implicit" -; Deprecated, will be removed with 6.0 -INSTL_MB_STRING_OVERLOAD_OFF="MB String Overload Off" INSTL_NOTICE_DATABASE_SUPPORT="Nu au fost găsite baze de date acceptate." INSTL_NOTICE_JSON_SUPPORT_AVAILABLE="Pentru a instala Joomla, instalarea dvs PHP trebuie să aibă JSON activat!" INSTL_NOTICE_MBLANG_NOTDEFAULT="Funcţia PHP mbstring nu este setată cu valoare neutră. Acest parametru poate fi setat local prin introducerea php_value mbstring.language neutral în fişierul .htaccess." -; Deprecated, will be removed with 6.0 -INSTL_NOTICE_MBSTRING_OVERLOAD_OFF="Setarea privind supraîncărcarea funcţiei PHP mbstring a fost activată. Aceasta poate fi dezactivată local prin introducerea php_value mbstring.func_overload 0 în .htaccess." INSTL_NOTICE_PARSE_INI_FILE_AVAILABLE="Funcțiile php necesare parse_ini_file și parse_ini_string sunt dezactivate pe serverul dvs." INSTL_NOTICE_XML_SUPPORT="Suportul XML nu este disponibil. Ar trebui activat în mod implicit în php, dar utilizatorii Ubuntu ar putea avea nevoie să instaleze acest pachet prin sudo apt-get install php-xml urmat de repornirea serverului web." INSTL_NOTICE_ZLIB_COMPRESSION_SUPPORT="Compresia Zlib nu este setată. Aceasta poate fi activată local prin introducerea zlib.output_compression = On în fișierul dvs. php.ini." @@ -234,7 +231,7 @@ JGLOBAL_SELECT_NO_RESULTS_MATCH="Nici un rezultat nu se potriveste" JGLOBAL_SELECT_SOME_OPTIONS="Selectați niște opțiuni" JHIDEPASSWORD="Ascunde parola" JINVALID_TOKEN="Ultima solicitare a fost refuzată pentru că aceasta conținea un token invalid. Vă rugăm să reîmprospătați pagina și să încercați din nou." -JINVALID_TOKEN_NOTICE="Token-ul de securitate nu s-a potrivit. Solicitarea a fost anulată pentru a preveni orice încălcare a securității. Vă rugăm să încercați din nou." +JINVALID_TOKEN_NOTICE="Token-ul de securitate nu se potrivește. Solicitarea a fost anulată pentru a preveni orice problemă de securitate. Vă rugăm să încercați din nou." JNEXT="Următor" JNO="Nu" JNOTICE="Observație" @@ -257,7 +254,7 @@ JLIB_FILESYSTEM_ERROR_PATH_IS_NOT_A_FOLDER="%1$s: Calea nu este un director. Cal JLIB_FORM_FIELD_INVALID="Câmpul:  este invalid" JLIB_FORM_VALIDATE_FIELD_INVALID="Câmp invalid: %s" JLIB_FORM_VALIDATE_FIELD_REQUIRED="Câmp necesar: %s" -JLIB_INSTALLER_ABORT="Oprire instalare limbă: %s" +JLIB_INSTALLER_ABORT="Renunțare la instalarea limbii: %s" JLIB_INSTALLER_ABORT_CREATE_DIRECTORY="Extensia %1$s: Nu s-a putut crea directorul: %2$s" JLIB_INSTALLER_ABORT_NOINSTALLPATH="Calea de instalare nu există." JLIB_INSTALLER_ABORT_PACK_INSTALL_ERROR_EXTENSION="Pachetul %1$s: A apărut o eroare la instalarea unei extensii: %2$s." @@ -298,7 +295,7 @@ NOTICE="Observație" WARNING="Avertizare" ; Javascript ajax error messages -JLIB_JS_AJAX_ERROR_CONNECTION_ABORT="A apărut o eroare de conectare în timpul preluării datelor JSON." +JLIB_JS_AJAX_ERROR_CONNECTION_ABORT="A apărut o eroare de conectare în timpul obținerii datelor JSON." JLIB_JS_AJAX_ERROR_NO_CONTENT="Nici un conținut nu a fost returnat" JLIB_JS_AJAX_ERROR_OTHER="A apărut o eroare în timpul obținerii datelor JSON: cod de status HTTP %d." JLIB_JS_AJAX_ERROR_PARSE="A apărut o eroare la procesarea următoarelor date JSON:
%s" diff --git a/installation/language/ro-RO/langmetadata.xml b/installation/language/ro-RO/langmetadata.xml index 5d43ed2bff461..36195a652edb0 100644 --- a/installation/language/ro-RO/langmetadata.xml +++ b/installation/language/ro-RO/langmetadata.xml @@ -1,7 +1,7 @@ Română (România) - 5.4.1 + 6.0.1 2025-10 Horia Negura - Quanta (C) 2005 Open Source Matters, Inc. diff --git a/installation/language/ru-RU/joomla.cli.ini b/installation/language/ru-RU/joomla.cli.ini deleted file mode 100644 index 22f1e8f8f37f9..0000000000000 --- a/installation/language/ru-RU/joomla.cli.ini +++ /dev/null @@ -1,37 +0,0 @@ -INSTL_ADMIN_EMAIL_DESC="E-mail администратора" -INSTL_ADMIN_EMAIL_DESC_SHORT="E-mail администратора" -INSTL_ADMIN_PASSWORD_DESC="Пароль администратора" -INSTL_ADMIN_PASSWORD_DESC_SHORT="Пароль администратора" -INSTL_ADMIN_USERNAME_DESC="Логин администратора" -INSTL_ADMIN_USERNAME_DESC_SHORT="Логин администратора" -INSTL_ADMIN_USER_DESC="Имя администратора" -INSTL_ADMIN_USER_DESC_SHORT="Имя администратора" -INSTL_DATABASE_COULD_NOT_CONNECT="%s" -INSTL_DATABASE_ENCRYPTION_CA_LABEL="Путь к файлу CA" -INSTL_DATABASE_ENCRYPTION_CA_LABEL_SHORT="Путь к файлу CA" -INSTL_DATABASE_ENCRYPTION_CERT_LABEL="Путь к файлу сертификата. Шифрование соединения должно было установлено на значение 2" -INSTL_DATABASE_ENCRYPTION_CERT_LABEL_SHORT="Путь к файлу сертификата. Шифрование соединения должно было установлено на значение 2" -INSTL_DATABASE_ENCRYPTION_CIPHER_LABEL="Поддерживаемый набор шифров (необязательно)" -INSTL_DATABASE_ENCRYPTION_CIPHER_LABEL_SHORT="Поддерживаемый набор шифров (необязательно)" -INSTL_DATABASE_ENCRYPTION_KEY_LABEL="Путь к файлу приватного ключа. Шифрование соединения должно было установлено на значение 2" -INSTL_DATABASE_ENCRYPTION_KEY_LABEL_SHORT="Путь к файлу приватного ключа. Шифрование соединения должно было установлено на значение 2" -INSTL_DATABASE_ENCRYPTION_MODE_LABEL="Шифрование соединения: 0=Нет, 1=Односторонняя аутентификация, 2=Двусторонняя аутентификация" -INSTL_DATABASE_ENCRYPTION_MODE_LABEL_SHORT="Шифрование соединения: 0=Нет, 1=Односторонняя аутентификация, 2=Двусторонняя аутентификация" -INSTL_DATABASE_ENCRYPTION_VERIFY_SERVER_CERT_LABEL="Проверка сертификата сервера: 0=Нет, 1=Да. Шифрование соединения должно было установлено на значение 1 или 2" -INSTL_DATABASE_ENCRYPTION_VERIFY_SERVER_CERT_LABEL_SHORT="Проверка сертификата сервера: 0=Нет, 1=Да. Шифрование соединения должно было установлено на значение 1 или 2" -INSTL_DATABASE_HOST_DESC="Имя хоста" -INSTL_DATABASE_HOST_DESC_SHORT="Имя хоста" -INSTL_DATABASE_NAME_DESC="Имя базы данных" -INSTL_DATABASE_NAME_DESC_SHORT="Имя базы данных" -INSTL_DATABASE_PASSWORD_DESC="Пароль пользователя базы данных" -INSTL_DATABASE_PASSWORD_DESC_SHORT="Пароль пользователя базы данных" -INSTL_DATABASE_PREFIX_DESC="Префикс таблиц базы данных" -INSTL_DATABASE_PREFIX_DESC_SHORT="Префикс таблиц базы данных" -INSTL_DATABASE_TYPE_DESC="Тип базы данных: mysql=MySQL (PDO), mysqli=MySQLi, pgsql=PostgreSQL (PDO)" -INSTL_DATABASE_TYPE_DESC_SHORT="Тип базы данных: mysql=MySQL (PDO), mysqli=MySQLi, pgsql=PostgreSQL (PDO)" -INSTL_DATABASE_USER_DESC="Имя пользователя базы данных" -INSTL_DATABASE_USER_DESC_SHORT="Имя пользователя базы данных" -INSTL_PUBLIC_FOLDER_DESC_SHORT="Путь к общему каталогу" -INSTL_PUBLIC_FOLDER_LABEL="Путь к общему каталогу" -INSTL_SITE_NAME_DESC="Название сайта" -INSTL_SITE_NAME_DESC_SHORT="Название сайта" diff --git a/installation/language/ru-RU/joomla.ini b/installation/language/ru-RU/joomla.ini deleted file mode 100644 index 8e582973aa41b..0000000000000 --- a/installation/language/ru-RU/joomla.ini +++ /dev/null @@ -1,324 +0,0 @@ -; Joomla! Project -; (C) 2005 Open Source Matters, Inc. -; License GNU General Public License version 2 or later; see LICENSE.txt -; Note : All ini files need to be saved as UTF-8 - -; Fatal error page -; These will be processed by the Javascript Build -BUILD_FATAL_HEADER="Произошла критическая ошибка" -BUILD_FATAL_LANGUAGE="Русский RU" ; IMPORTANT NOTE FOR TRANSLATORS: Do not literally translate this line, instead add the localised name of the language. For example Spanish will be Español -BUILD_FATAL_TEXT="Сервер вернул ответ \"{{statusCode_statusText}}\"." -BUILD_FATAL_URL_TEXT="Подробнее о решении проблемы" - -; Build incomplete error page -; These will be processed by the Javascript Build -BUILD_INCOMPLETE_HEADER="Настройка среды не завершена" -BUILD_INCOMPLETE_LANGUAGE="Русский RU" ; IMPORTANT NOTE FOR TRANSLATORS: Do not literally translate this line, instead add the localised name of the language. For example Spanish will be Español -BUILD_INCOMPLETE_TEXT="Похоже, вы пытаетесь установить Joomla из Git-репозитория. Пожалуйста, выполните несколько дополнительных шагов перед началом установки." -BUILD_INCOMPLETE_URL_TEXT="Подробнее" - -; No XML PHP error page -; These will be processed by the Javascript Build -BUILD_NOXML_HEADER="В используемой версии PHP отключена поддержка XML" -BUILD_NOXML_LANGUAGE="Русский RU" ; IMPORTANT NOTE FOR TRANSLATORS: Do not literally translate this line, instead add the localised name of the language. For example Spanish will be Español -BUILD_NOXML_TEXT="Для установки Joomla необходимо наличие PHP с поддержкой XML." -BUILD_NOXML_URL_TEXT="Подробнее о решении проблемы" - -; Minimum PHP error page -; These will be processed by the Javascript Build -BUILD_MIN_PHP_ERROR_HEADER="Используемая версия PHP не поддерживается" -BUILD_MIN_PHP_ERROR_LANGUAGE="Русский RU" ; IMPORTANT NOTE FOR TRANSLATORS: Do not literally translate this line, instead add the localised name of the language. For example Spanish will be Español -BUILD_MIN_PHP_ERROR_TEXT="Для установки Joomla необходимо наличие PHP {{phpversion}} или более новой версии." -BUILD_MIN_PHP_ERROR_URL_TEXT="Подробнее о решении проблемы" - -; Main Config -INSTL_SELECT_INSTALL_LANG="Параметры языка" -INSTL_SELECT_LANGUAGE_TITLE="Язык установки" -INSTL_SETUP_LOGIN_DATA="Параметры учетной записи" -INSTL_WARNJAVASCRIPT="Для установки Joomla в браузере должен быть включен Javascript." -INSTL_WARNJSON="Для установки Joomla в PHP должен быть включен JSON." - -; Precheck view -INSTL_DATABASE_SUPPORT="Поддержка баз данных" -INSTL_JSON_SUPPORT_AVAILABLE="Поддержка JSON" -INSTL_MB_LANGUAGE_IS_DEFAULT="MB Language по умолчанию" -; Deprecated, will be removed with 6.0 -INSTL_MB_STRING_OVERLOAD_OFF="MB String Overload Выкл" -INSTL_NOTICE_DATABASE_SUPPORT="Поддерживаемые базы данных не найдены." -INSTL_NOTICE_JSON_SUPPORT_AVAILABLE="Для установки Joomla в PHP должен быть включен JSON." -INSTL_NOTICE_MBLANG_NOTDEFAULT="Для директивы mbstring.language установлено значение не neutral. Вы можете изменить значение локально, добавив в файл .htaccess строку php_value mbstring.language neutral." -; Deprecated, will be removed with 6.0 -INSTL_NOTICE_MBSTRING_OVERLOAD_OFF="Для директивы mbstring.func_overload установлено значение 1 (включено). Вы можете изменить значение локально, добавив в файл .htaccess строку php_value mbstring.func_overload 0." -INSTL_NOTICE_PARSE_INI_FILE_AVAILABLE="Функции PHP parse_ini_file и parse_ini_string отключены на сервере." -INSTL_NOTICE_XML_SUPPORT="Поддержка XML недоступна на сервере. Модуль должен быть включен в PHP по умолчанию, но пользователям Ubuntu может потребоваться его установка. Пожалуйста, выполните команду sudo apt-get install php-xml и перезапустите сервер." -INSTL_NOTICE_ZLIB_COMPRESSION_SUPPORT="Поддержка Zlib недоступна на сервере. Вы можете изменить значение локально, добавив строку zlib.output_compression = On в файл php.ini." -INSTL_PARSE_INI_FILE_AVAILABLE="Поддержка INI Parser" -INSTL_PRECHECK_ACTUAL="Текущее" -INSTL_PRECHECK_DESC="Если любой из параметров не поддерживается, то параметры сервера не соответствуют минимально необходимым требованиям и вы не сможете завершить установку Joomla." -INSTL_PRECHECK_DIRECTIVE="Параметр" -INSTL_PRECHECK_RECOMMENDED="Рекомендуется" -INSTL_PRECHECK_RECOMMENDED_SETTINGS_DESC="Параметры ниже рекомендуются для обеспечения полнофункциональной совместимости PHP и Joomla. Тем не менее Joomla может работать даже если текущие значения не совпадают с рекомендуемыми." -INSTL_PRECHECK_RECOMMENDED_SETTINGS_TITLE="Рекомендуемые параметры" -INSTL_PRECHECK_TITLE="Начальная проверка" -INSTL_XML_SUPPORT="Поддержка XML" -INSTL_ZLIB_COMPRESSION_SUPPORT="Поддержка Zlib" - -; Database view -INSTL_DATABASE="Параметры базы данных" -INSTL_DATABASE_ENCRYPTION_CA_LABEL="Путь к файлу CA" -INSTL_DATABASE_ENCRYPTION_CERT_LABEL="Путь к файлу сертификата" -INSTL_DATABASE_ENCRYPTION_CIPHER_LABEL="Поддерживаемый набор шифров (необязательно)" -INSTL_DATABASE_ENCRYPTION_KEY_LABEL="Путь к файлу приватного ключа" -INSTL_DATABASE_ENCRYPTION_MODE_LABEL="Шифрование соединения" -INSTL_DATABASE_ENCRYPTION_MODE_VALUE_NONE="По умолчанию (контролируется сервером)" -INSTL_DATABASE_ENCRYPTION_MODE_VALUE_ONE_WAY="Односторонняя аутентификация" -INSTL_DATABASE_ENCRYPTION_MODE_VALUE_TWO_WAY="Двусторонняя аутентификация" -INSTL_DATABASE_ENCRYPTION_MSG_CONN_NOT_ENCRYPT="Вы выбрали подключение к базе данных с шифрованием соединения, которое может быть установлено, но не будет зашифровано. Причина ошибки может заключаться в том, что сервер настроен на возврат к незашифрованному соединению в случае некорректных параметров шифрования. Пожалуйста, проверьте и исправьте параметры шифрования соединения или измените значение поля \"Шифрование соединения\" на \"По умолчанию (контролируется сервером)\"." -INSTL_DATABASE_ENCRYPTION_MSG_FILE_FIELD_BAD="Файл в поле \"%s\" недоступен или путь к файлу является некорректным." -INSTL_DATABASE_ENCRYPTION_MSG_FILE_FIELD_EMPTY="Поле \"%s\" не заполнено или путь к файлу является некорректным." -INSTL_DATABASE_ENCRYPTION_MSG_LOCALHOST="Вы ввели значение \"localhost\" в качестве имени хоста. Пожалуйста, измените имя хоста на \"127.0.0.1\", \"::1\", другое имя или измените значение поля \"Шифрование соединения\" на \"По умолчанию (контролируется сервером)\"." -INSTL_DATABASE_ENCRYPTION_MSG_SRV_NOT_SUPPORTS="Сервер базы данных не поддерживает шифрование соединения. Пожалуйста, включите поддержку TLS (SSL в документации) на сервере или измените значение поля \"Шифрование соединения\" на \"По умолчанию (контролируется сервером)\"." -INSTL_DATABASE_ENCRYPTION_VERIFY_SERVER_CERT_LABEL="Проверять сертификат сервера" -INSTL_DATABASE_ERROR_POSTGRESQL_QUERY="Ошибка запроса базы данных PostgreSQL." -INSTL_DATABASE_HOST_DESC="Имя хоста (обычно \"localhost\")" -INSTL_DATABASE_HOST_IS_NOT_LOCALHOST_CREATE_FILE="Не удалось создать файл автоматически. Пожалуйста, создайте файл %1$s в каталоге %2$s и нажмите \"%3$s\" для продолжения." -INSTL_DATABASE_HOST_IS_NOT_LOCALHOST_DELETE_FILE="Для подтверждения права собственности на сайт, пожалуйста, удалите файл %1$s в каталоге %2$s и нажмите \"%3$s\" для продолжения." -INSTL_DATABASE_HOST_IS_NOT_LOCALHOST_GENERAL_MESSAGE="Вы пытаетесь использовать хост базы данных, который недоступен на локальном сервере. Вам необходимо подтвердить право собственности на учетную запись на хостинге. Пожалуйста, ознакомьтесь с информацией на странице Защищенная процедура установки Joomla." -INSTL_DATABASE_HOST_LABEL="Имя хоста" -INSTL_DATABASE_NAME_DESC="Имя базы данных" -INSTL_DATABASE_NAME_LABEL="Имя базы данных" -INSTL_DATABASE_NAME_MSG_MYSQL="Имя базы данных не должно содержать символы \ /." -INSTL_DATABASE_NAME_MSG_POSTGRES="Имя базы данных должно начинаться с буквы, за которой могут следовать латинские буквенно-цифровые символы." -INSTL_DATABASE_NO_SCHEMA="Для выбранного типа базы данных не существует схемы базы данных." -INSTL_DATABASE_PASSWORD_DESC="Пароль пользователя базы данных" -INSTL_DATABASE_PREFIX_DESC="Префикс таблиц базы данных" -INSTL_DATABASE_PREFIX_DUPLICATE_DESC="Если используется база данных с таблицами с тем же префиксом, к именам существующих таблиц будет автоматически добавлен префикс \"bak_\"." -INSTL_DATABASE_PREFIX_MSG="Префикс таблиц базы данных должен начинаться с буквы, за которой могут следовать латинские буквенно-цифровые символы и символ подчеркивания." -INSTL_DATABASE_RESPONSE_ERROR="Не удалось завершить процесс установки." -INSTL_DATABASE_TYPE_DESC="Тип базы данных" -INSTL_DATABASE_USER_DESC="Имя пользователя базы данных" -INSTL_DATABASE_VALIDATION_ERROR="Проверьте параметры базы данных. Если на сервере используется MySQL 8, пожалуйста, ознакомьтесь с информацией на странице Joomla и MySQL 8." - -INSTL_CONNECT_DB="Параметры базы данных" -INSTL_INSTALL_JOOMLA="Установить Joomla" - -; Site view -INSTL_ADMIN_EMAIL_DESC="E-mail администратора" -INSTL_ADMIN_PASSWORD_DESC="Пароль администратора" -INSTL_ADMIN_PASSWORD_LENGTH="Длина пароля должна быть не менее 12 символов" -INSTL_ADMIN_USER_DESC="Имя администратора" -INSTL_ADMIN_USERNAME_DESC="Логин администратора" -INSTL_LOGIN_DATA="Параметры учетной записи" -INSTL_SETUP_SITE_NAME="Параметры сайта" -INSTL_SITE="Параметры сайта" -INSTL_SITE_DEVMODE_LABEL="Обнаружен режим разработки" -INSTL_SITE_NAME_DESC="Название сайта" - -; Expert View -INSTL_PUBLIC_FOLDER_DESC_SHORT="Путь к общему каталогу" -INSTL_PUBLIC_FOLDER_LABEL="Путь к общему каталогу" - -; Complete view -INSTL_COMPLETE_ERROR_FOLDER_DELETE="Не удалось удалить каталог %s. Пожалуйста, удалите его вручную." -INSTL_COMPLETE_REMOVE_FOLDER="Удалить каталог %s" -INSTL_COMPLETE_CONGRAT="Завершение установки" -INSTL_COMPLETE_TITLE="Поздравляем! Вы успешно установили Joomla!" -INSTL_COMPLETE_SITE_BTN="Открыть сайт" -INSTL_COMPLETE_ADMIN_BTN="Открыть панель управления" -INSTL_COMPLETE_FINAL="Установка завершена" -INSTL_COMPLETE_FINAL_DESC="Установка Joomla успешно завершена, сайт готов к использованию." -INSTL_COMPLETE_ADD_EXTRA_LANGUAGE="Установить языковые пакеты" -INSTL_REMOVE_INST_FOLDER="Вы уверены, что хотите удалить каталог %s?" - -; Languages view -INSTL_LANGUAGES="Установка языковых пакетов" -INSTL_LANGUAGES_COLUMN_HEADER_LANGUAGE="Язык" -INSTL_LANGUAGES_COLUMN_HEADER_LANGUAGE_SELECT="Выбрать" -INSTL_LANGUAGES_COLUMN_HEADER_LANGUAGE_TAG="Тег языка" -INSTL_LANGUAGES_COLUMN_HEADER_VERSION="Версия" -INSTL_LANGUAGES_DESC="Интерфейс Joomla доступен на множестве языков. На установку каждого языкового пакета необходимо около 10 секунд. Не рекомендуется выбирать более трех языковых пакетов одновременно." -INSTL_LANGUAGES_MESSAGE_PLEASE_WAIT="На установку каждого языкового пакета необходимо около 10 секунд. Пожалуйста, подождите пока не будет завершена загрузка и установка пакетов." -INSTL_LANGUAGES_NO_LANGUAGE_SELECTED="Пожалуйста, выберите языковые пакеты для установки." -INSTL_LANGUAGES_SELECTED="Установить выбранные языки" -INSTL_LANGUAGES_WARNING_NO_INTERNET="Не удалось подключиться к серверу языковых пакетов Joomla. Пожалуйста, завершите процесс установки." -INSTL_LANGUAGES_WARNING_NO_INTERNET2="Вы можете установить языковые пакеты позже в панели управления Joomla." -INSTL_LANGUAGES_WARNING_BACK_BUTTON="Назад" - -; Default language view -INSTL_DEFAULTLANGUAGE_ADMINISTRATOR="Язык панели управления" -INSTL_DEFAULTLANGUAGE_ADMIN_COULDNT_SET_DEFAULT="Не удалось изменить значение языка по умолчанию для панели управления. По умолчанию установлен язык \"English (en-GB)\"." -INSTL_DEFAULTLANGUAGE_ADMIN_SET_DEFAULT="Язык \"%s\" установлен по умолчанию для панели управления." -INSTL_DEFAULTLANGUAGE_COLUMN_HEADER_SELECT="Выбрать" -INSTL_DEFAULTLANGUAGE_COLUMN_HEADER_LANGUAGE="Язык" -INSTL_DEFAULTLANGUAGE_COLUMN_HEADER_TAG="Тег языка" -INSTL_DEFAULTLANGUAGE_COULD_NOT_DOWNLOAD_PACKAGE="Не удалось загрузить или распаковать языковой пакет по ссылке %s." -INSTL_DEFAULTLANGUAGE_COULD_NOT_INSTALL_LANGUAGE="Не удалось установить языковой пакет \"%s\"." -INSTL_DEFAULTLANGUAGE_DESC="Языковые пакеты установлены. Пожалуйста, выберите язык по умолчанию для панели управления и нажмите \"Установить по умолчанию\"." -INSTL_DEFAULTLANGUAGE_DESC_FRONTEND="Языковые пакеты установлены. Пожалуйста, выберите язык по умолчанию для сайта и нажмите \"Установить по умолчанию\"." -INSTL_DEFAULTLANGUAGE_FRONTEND="Язык сайта" -INSTL_DEFAULTLANGUAGE_FRONTEND_COULDNT_SET_DEFAULT="Не удалось изменить значение языка по умолчанию для сайта. По умолчанию установлен язык \"English (en-GB)\"." -INSTL_DEFAULTLANGUAGE_FRONTEND_SET_DEFAULT="Язык \"%s\" установлен по умолчанию для сайта." -INSTL_DEFAULTLANGUAGE_SET_DEFAULT_LANGUAGE="Установить по умолчанию" -INSTL_DEFAULTLANGUAGE_TRY_LATER="Вы можете установить его позже в панели управления Joomla." - -INSTL_DEFAULTLANGUAGE_NATIVE_LANGUAGE_NAME="Русский (RU)" ; IMPORTANT NOTE FOR TRANSLATORS: Do not literally translate this line, instead add the localised name of the language. For example Spanish will be Español - -; Database Model -INSTL_DATABASE_COULD_NOT_CONNECT="Не удалось подключиться к базе данных: %s." -INSTL_DATABASE_COULD_NOT_CREATE_DATABASE="Не удалось подключиться к базе данных. Пожалуйста, проверьте параметры и при необходимости создайте базу данных вручную." -INSTL_DATABASE_COULD_NOT_REFRESH_MANIFEST_CACHE="Не удалось обновить кэш манифеста: %s." -INSTL_DATABASE_ERROR_BACKINGUP="При создании резервной копии базы данных произошла ошибка." -INSTL_DATABASE_ERROR_CREATE="При создании базы данных произошла ошибка: %s.

Пожалуйста, проверьте права пользователя базы данных и при необходимости создайте базу данных вручную." -INSTL_DATABASE_ERROR_DELETE="При удалении базы данных произошла ошибка." -INSTL_DATABASE_ERROR_READING_SQL_FILE="Не удалось прочитать файл SQL." -INSTL_DATABASE_FIELD_VALUE_BACKUP="Удалить" -INSTL_DATABASE_FIELD_VALUE_REMOVE="Переименовать" -INSTL_DATABASE_FILE_DOES_NOT_EXIST="Файла %s не существует." -INSTL_DATABASE_FIX_LOWERCASE="Префикс таблиц PostgreSQL должен содержать символы в нижнем регистре." -INSTL_DATABASE_FIX_TOO_LONG="Префикс таблиц MySQL должен содержать не более 15 символов." -INSTL_DATABASE_INVALID_DB_DETAILS="Параметры базы данных не введены или введены некорректно." -INSTL_DATABASE_INVALID_MARIADB_VERSION="Для установки Joomla необходимо наличие MariaDB %1$s или более новой версии. Используется версия %2$s." -INSTL_DATABASE_INVALID_MYSQL_VERSION="Для установки Joomla необходимо наличие MySQL %1$s или более новой версии. Используется версия %2$s." -INSTL_DATABASE_INVALID_MYSQLI_VERSION="Для установки Joomla необходимо наличие MySQL %1$s или более новой версии. Используется версия %2$s." -INSTL_DATABASE_INVALID_PGSQL_VERSION="Для установки Joomla необходимо наличие PostgreSQL %1$s или более новой версии. Используется версия %2$s." -INSTL_DATABASE_INVALID_POSTGRESQL_VERSION="Для установки Joomla необходимо наличие PostgreSQL %1$s или более новой версии. Используется версия %2$s." -INSTL_DATABASE_INVALID_TYPE="Пожалуйста, выберите тип базы данных." -INSTL_DATABASE_NAME_INVALID_CHAR="Идентификатор MySQL не должен содержать NULL ASCII(0x00)." -INSTL_DATABASE_NAME_INVALID_SPACES="Имя базы данных и таблиц MySQL не должны содержать пробелов в начале или конце строки." -INSTL_DATABASE_NAME_TOO_LONG="Имя базы данных MySQL должно содержать не более 64 символов." - -; Controllers -INSTL_COOKIES_NOT_ENABLED="В браузере отключено использование файлов cookies или на сервере некорректно работает директива session.save_path. Пожалуйста, обратитесь к администрации хостинга, если вы не знаете, как это проверить или исправить самостоятельно." -INSTL_HEADER_ERROR="Ошибка" - -; Helpers -INSTL_PAGE_TITLE="Мастер установки Joomla!" - -; Configuration model -INSTL_ERROR_CONNECT_DB="Не удалось подключиться к базе данных. Текст ошибки: %s" -INSTL_STD_OFFLINE_MSG="Сайт закрыт на техническое обслуживание. Пожалуйста, зайдите позже." - -; Languages model -INSTL_ERROR_INVALID_URL="Некорректный URL-адрес." - -; Others -INSTL_CONFPROBLEM="Файл конфигурации недоступен для записи или при его создании произошла ошибка. Пожалуйста, создайте файл configuration.php, скопируйте и вставьте в него отображаемый код, затем разместите файл конфигурации в корневом каталоге сайта." -INSTL_DISPLAY_ERRORS="Отображение ошибок" -INSTL_ERROR="Ошибка" -INSTL_ERROR_DB="При заполнении базы данных произошла ошибка: %s." -INSTL_ERROR_INITIALISE_SCHEMA="Не удалось инициализировать схему базы данных." -INSTL_EXTENSION_AVAILABLE="%s доступен" -INSTL_FILE_UPLOADS="Загрузка файлов" -INSTL_GNU_GPL_LICENSE="GNU General Public License" -INSTL_HELP_LINK="Помощь в установке Joomla" -INSTL_NOTICE_NEEDSTOBEWRITABLE="Вы по-прежнему можете продолжить установку Joomla, если восстановите права доступа." -INSTL_OUTPUT_BUFFERING="Буферизация вывода" -INSTL_PHP_VERSION="Версия PHP" -INSTL_PHP_VERSION_NEWER="Версия PHP >= %s" -INSTL_PROCESS_BUSY="Подождите, выполняется установка..." -INSTL_SESSION_AUTO_START="Session Auto Start" -INSTL_WRITABLE="Недостаточно прав для создания файла %s." -INSTL_ZIP_SUPPORT_AVAILABLE="Поддержка ZIP" - -; Global strings -JADMINISTRATOR="Панель управления" -JEMAIL="E-mail" -JERROR="Ошибка" -JERROR_LAYOUT_ERROR_HAS_OCCURRED_WHILE_PROCESSING_YOUR_REQUEST="При обработке запроса произошла ошибка." -JGLOBAL_ISFREESOFTWARE="%s - программное обеспечение, распространяемое по лицензии %s." -JGLOBAL_LANGUAGE_VERSION_NOT_PLATFORM="Языковой пакет не соответствует версии Joomla. Некоторые языковые константы могут отображаться на английском языке." -JGLOBAL_SELECT_AN_OPTION="Выберите значение" -JGLOBAL_SELECT_NO_RESULTS_MATCH="Ничего не найдено." -JGLOBAL_SELECT_SOME_OPTIONS="Выберите одно или несколько значений" -JHIDEPASSWORD="Скрыть пароль" -JINVALID_TOKEN="Некорректный токен безопасности! Пожалуйста, обновите страницу и попробуйте еще раз." -JINVALID_TOKEN_NOTICE="Токен безопасности не прошел проверку! Пожалуйста, обновите страницу и попробуйте еще раз." -JNEXT="Далее" -JNO="Нет" -JNOTICE="Внимание" -JOFF="Выкл" -JON="Вкл" -JPREVIOUS="Назад" -JSHOWPASSWORD="Показать пароль" -JSITE="Сайт" -JSKIP="Пропустить" -JUSERNAME="Имя пользователя" -JYES="Да" - -; Framework strings necessary when no lang pack is available -JLIB_DATABASE_ERROR_CONNECT_MYSQL="Не удалось подключиться к MySQL." -JLIB_DATABASE_ERROR_DATABASE="Произошла ошибка базы данных." -JLIB_DATABASE_ERROR_LOAD_DATABASE_DRIVER="Не удалось загрузить драйвер базы данных: %s." -JLIB_DATABASE_ERROR_VALID_MAIL="Пожалуйста, введите корректный адрес электронной почты." -JLIB_ENVIRONMENT_SESSION_EXPIRED="Время сессии истекло. Пожалуйста, обновите страницу." -JLIB_FILESYSTEM_ERROR_PATH_IS_NOT_A_FOLDER="%1$s: Путь ведет не к каталогу: %2$s." -JLIB_FORM_FIELD_INVALID="Некорректно заполнено поле: " -JLIB_FORM_VALIDATE_FIELD_INVALID="Некорректно заполнено поле: %s." -JLIB_FORM_VALIDATE_FIELD_REQUIRED="Необходимо заполнить поле: %s." -JLIB_INSTALLER_ABORT="Установка языкового пакета отменена: %s." -JLIB_INSTALLER_ABORT_CREATE_DIRECTORY="Расширение: %1$s: Не удалось создать каталог: %2$s." -JLIB_INSTALLER_ABORT_NOINSTALLPATH="Пути установки не существует." -JLIB_INSTALLER_ABORT_PACK_INSTALL_ERROR_EXTENSION="Пакет: %1$s: При установке произошла ошибка: %2$s." -JLIB_INSTALLER_ABORT_PACK_INSTALL_NO_FILES="Пакет: %s: Не удалось найти файлы для установки." -JLIB_INSTALLER_ERROR_DOWNLOAD_SERVER_CONNECT="Не удалось подключиться к серверу: %s." -JLIB_INSTALLER_ERROR_FAIL_COPY_FILE="JInstaller: :Install: Не удалось скопировать файл %1$s в %2$s." -JLIB_INSTALLER_INSTALL="Установка" -JLIB_INSTALLER_NOT_ERROR="Если ошибка связана с установкой языковых файлов TinyMCE, она не влияет на установку языковых пакетов. Некоторые пакеты до версии Joomla 3.2 могут пытаться установить отдельные языковые файлы TinyMCE. В настоящее время они включены в ядро, поэтому в их установке нет необходимости." -JLIB_INSTALLER_WARNING_UNABLE_TO_INSTALL_CONTENT_LANGUAGE="Не удалось создать язык контента для языка %s: %s." -JLIB_UPDATER_ERROR_COLLECTION_FOPEN="Для использования функции обновления необходимо в конфигурации PHP включить директиву allow_url_fopen." -JLIB_UPDATER_ERROR_COLLECTION_OPEN_URL="Update: :Collection: Не удалось открыть %s." -JLIB_UPDATER_ERROR_COLLECTION_PARSE_URL="Update: :Collection: Не удалось обработать %s." -JLIB_UPDATER_ERROR_OPEN_UPDATE_SITE="Не удалось открыть сервер обновлений \"%2$s\" (ID %1$s): %3$s." -JLIB_UTIL_ERROR_CONNECT_DATABASE="JDatabase: :getInstance: Не удалось подключиться к базе данных.
joomla.library: %1$s - %2$s" - -; Strings for the language debugger -JDEBUG_LANGUAGE_FILES_IN_ERROR="Ошибки парсинга в языковых файлах" -JDEBUG_LANGUAGE_UNTRANSLATED_STRING="Непереведенные строки" -JNONE="Нет" - -; Necessary for errors -ADMIN_EMAIL="E-mail администратора" -ADMIN_PASSWORD="Пароль администратора" -SITE_NAME="Название сайта" - -; Database types (allows for a more descriptive label than the internal name) -MYSQL="MySQL (PDO)" -MYSQLI="MySQLi" -ORACLE="Oracle" -PGSQL="PostgreSQL (PDO)" -POSTGRESQL="PostgreSQL" -SQLITE="SQLite" - -; Javascript message titles -ERROR="Ошибка" -MESSAGE="Сообщение" -NOTICE="Внимание" -WARNING="Предупреждение" - -; Javascript ajax error messages -JLIB_JS_AJAX_ERROR_CONNECTION_ABORT="При получении данных JSON произошла ошибка соединения." -JLIB_JS_AJAX_ERROR_NO_CONTENT="Содержимое не было возвращено." -JLIB_JS_AJAX_ERROR_OTHER="При получении данных JSON произошла ошибка. Код состояния HTTP %s." -JLIB_JS_AJAX_ERROR_PARSE="При обработке данных JSON произошла ошибка парсинга:
%s" -JLIB_JS_AJAX_ERROR_TIMEOUT="При получении данных JSON превышено время ожидания ответа." - -; Field password messages -JFIELD_PASSWORD_INDICATE_COMPLETE="Пароль соответствует необходимым требованиям" -JFIELD_PASSWORD_INDICATE_INCOMPLETE="Пароль не соответствует необходимым требованиям" -JFIELD_PASSWORD_SPACES_IN_PASSWORD="Пароль не должен содержать пробелов в начале или конце строки." -JFIELD_PASSWORD_TOO_LONG="Пароль слишком длинный. Длина пароля должна быть менее 100 символов." -JFIELD_PASSWORD_TOO_SHORT_N_1="Пароль слишком короткий. Длина пароля должна быть не менее %d символа." -JFIELD_PASSWORD_TOO_SHORT_N_2="Пароль слишком короткий. Длина пароля должна быть не менее %d символов." -JFIELD_PASSWORD_TOO_SHORT_N="Пароль слишком короткий. Длина пароля должна быть не менее %d символов." - -; Javascript Form Validation Messages -JLIB_FORM_CONTAINS_INVALID_FIELDS="Форма не может быть отправлена, так как одно или несколько полей заполнено некорректно." -JLIB_FORM_FIELD_INVALID_VALUE="Пожалуйста, введите корректное значение" -JLIB_FORM_FIELD_REQUIRED_CHECK="Пожалуйста, выберите значение" -JLIB_FORM_FIELD_REQUIRED_VALUE="Пожалуйста, заполните поле" - -; Installation progress screen -INSTL="Установка" -INSTL_FINISHED="Установка Joomla успешно завершена, сайт готов к использованию." -INSTL_IN_PROGRESS="Подождите, выполняется установка..." -INSTL_PROGRESS="Прогресс установки" diff --git a/installation/language/ru-RU/langmetadata.xml b/installation/language/ru-RU/langmetadata.xml deleted file mode 100644 index bc186bbee7836..0000000000000 --- a/installation/language/ru-RU/langmetadata.xml +++ /dev/null @@ -1,19 +0,0 @@ - - - Russian (Russia) - 5.0.0 - 2023-11 - Russian Translation Team - (C) 2005 Open Source Matters, Inc. - GNU General Public License version 2 or later; see LICENSE.txt - - joomla.ini - - - Russian (ru-RU) - Русский (Россия) - ru-RU - 0 - - - diff --git a/installation/language/sk-SK/joomla.ini b/installation/language/sk-SK/joomla.ini index b05c77ed65a45..08e84443de28e 100644 --- a/installation/language/sk-SK/joomla.ini +++ b/installation/language/sk-SK/joomla.ini @@ -32,6 +32,9 @@ BUILD_MIN_PHP_ERROR_TEXT="Aby táto verzia Joomla fungovala, váš hosting musí BUILD_MIN_PHP_ERROR_URL_TEXT="Pomôžte mi vyriešiť to" ; Main Config +INSTL_CHANGE_INSTALL_LANG="Zmeniť jazyk inštalácie" +INSTL_CHANGE_INSTALL_LANG_SHORT="Zmeniť" +INSTL_SELECTED_INSTALL_LANGUAGE="Aktuálny jazyk: %s" INSTL_SELECT_INSTALL_LANG="Vyberte jazyk inštalácie" INSTL_SELECT_LANGUAGE_TITLE="Vyberte jazyk" INSTL_SETUP_LOGIN_DATA="Nastavenie prihlasovacích údajov" @@ -42,13 +45,9 @@ INSTL_WARNJSON="Vaša inštalácia PHP musí mať zapnuté JSON, aby Joomla! moh INSTL_DATABASE_SUPPORT="Podpora databázy:" INSTL_JSON_SUPPORT_AVAILABLE="Podpora JSON" INSTL_MB_LANGUAGE_IS_DEFAULT="Predvolené MB Language" -; Deprecated, will be removed with 6.0 -INSTL_MB_STRING_OVERLOAD_OFF="MB String Overload Off" INSTL_NOTICE_DATABASE_SUPPORT="Neboli nájdené žiadne podporované databázy." INSTL_NOTICE_JSON_SUPPORT_AVAILABLE="Vaša inštalácia PHP musí mať zapnuté JSON, aby Joomla! mohla byť nainštalovaná!" INSTL_NOTICE_MBLANG_NOTDEFAULT="PHP mbstring language nie je nastavený na neutrálny. Môžete tak urobiť lokálne pridaním riadku php_value mbstring.language neutral do vášho súboru .htaccess." -; Deprecated, will be removed with 6.0 -INSTL_NOTICE_MBSTRING_OVERLOAD_OFF="Je nastavené preťaženie funkcie PHP mbstring. Nastavenie môžete vypnúť lokálne pridaním riadku php_value mbstring.func_overload 0 do vášho súboru .htaccess." INSTL_NOTICE_PARSE_INI_FILE_AVAILABLE="Požadované funkcie php parse_ini_file a parse_ini_string sú na serveri vypnuté." INSTL_NOTICE_XML_SUPPORT="Podpora XML nie je k dispozícii. Štandardne sa zapína v php, ale používatelia Ubuntu ju musia nainštalovať pomocou príkazu sudo apt-get install php-xml s následným reštartom webového servera." INSTL_NOTICE_ZLIB_COMPRESSION_SUPPORT="Zlib kompresia nie je nastavená. Lokálne môže byť zapnutá zadaním zlib.output_compression = On do vášho súboru php.ini." diff --git a/installation/language/sk-SK/langmetadata.xml b/installation/language/sk-SK/langmetadata.xml index 5615d547bbb0e..71c831d7c074e 100644 --- a/installation/language/sk-SK/langmetadata.xml +++ b/installation/language/sk-SK/langmetadata.xml @@ -1,7 +1,7 @@ Slovak (Slovakia) - 5.4.1 + 6.0.1 2025-10 Slovak translation team : Peter Michnica (C) 2005 Open Source Matters, Inc. diff --git a/installation/language/sl-SI/joomla.ini b/installation/language/sl-SI/joomla.ini index f882b1c15bb40..3f4da74f3f610 100644 --- a/installation/language/sl-SI/joomla.ini +++ b/installation/language/sl-SI/joomla.ini @@ -32,6 +32,9 @@ BUILD_MIN_PHP_ERROR_TEXT="Vaš gostitelj mora uporabljati PHP različico {{phpv BUILD_MIN_PHP_ERROR_URL_TEXT="Pomagajte mi rešiti to težavo" ; Main Config +INSTL_CHANGE_INSTALL_LANG="Spremenite jezik namestitve" +INSTL_CHANGE_INSTALL_LANG_SHORT="Spremenite pozicijo" +INSTL_SELECTED_INSTALL_LANGUAGE="Trenutni jezik: %s" INSTL_SELECT_INSTALL_LANG="Izberite jezik namestitve" INSTL_SELECT_LANGUAGE_TITLE="Izberite jezik" INSTL_SETUP_LOGIN_DATA="Nastavitev prijavnih podatkov" @@ -42,13 +45,9 @@ INSTL_WARNJSON="Vaša PHP namestitev mora imeti JSON omogočeno, za namestitev INSTL_DATABASE_SUPPORT="Baza podatkov Podpora:" INSTL_JSON_SUPPORT_AVAILABLE="JSON Podpora" INSTL_MB_LANGUAGE_IS_DEFAULT="MB Jezik je privzeti" -; Deprecated, will be removed with 6.0 -INSTL_MB_STRING_OVERLOAD_OFF="MB Niz preobremenitve izklopljen" INSTL_NOTICE_DATABASE_SUPPORT="Nobena podprta zbirka podatkov ni najdena." INSTL_NOTICE_JSON_SUPPORT_AVAILABLE="Vaša PHP namestitev mora imeti JSON omogočeno, za namestitev Joomla!" INSTL_NOTICE_MBLANG_NOTDEFAULT="PHP mbstring jezik ni nastavljen v nevtralni položaj. To je mogoče nastaviti na lokalni ravni z vnosom php_value mbstring.language neutral v vaši .htaccess datoteki." -; Deprecated, will be removed with 6.0 -INSTL_NOTICE_MBSTRING_OVERLOAD_OFF="PHP mbstring preobremenitev funkcija je nastavljena. To je mogoče izklopiti lokalno z vnosom php_value mbstring.func_overload 0 v vaši .htaccess datoteki." INSTL_NOTICE_PARSE_INI_FILE_AVAILABLE="Zahtevane php funkcije parse_ini_file in parse_ini_string so onemogočene na vašem strežniku." INSTL_NOTICE_XML_SUPPORT="Podpora za XML ni na voljo. To bi moralo biti privzeto omogočeno v php, vendar ga bodo uporabniki Ubuntuja morda morali namestiti tako, da izvedejo sudo apt-get install php-xml čemur sledi ponovni zagon spletnega strežnika." INSTL_NOTICE_ZLIB_COMPRESSION_SUPPORT="Zlib stiskanje ni nastavljeno. To je mogoče vklopiti lokalno, tako da v datoteko zlib.output_compression = On v vaši php.ini datoteki." @@ -240,7 +239,7 @@ JGLOBAL_SELECT_NO_RESULTS_MATCH="Noben rezultat se ne ujema" JGLOBAL_SELECT_SOME_OPTIONS="Izberite nekaj možnosti" JHIDEPASSWORD="Skrijte geslo" JINVALID_TOKEN="Najnovejša zahteva zavrnjena, ker je imela neveljaven varnostni žeton. Prosimo, osvežite stran in poskusite znova." -JINVALID_TOKEN_NOTICE="Varnostni žeton se ne ujema. Zahteva je bila preklicana, da se prepreči kakršno koli kršitev varnosti. Prosim poskusite ponovno." +JINVALID_TOKEN_NOTICE="Varnostni žeton se ni ujemal. Zahteva je bila preklicana, da se prepreči morebitna kršitev varnosti. Prosim poskusite ponovno." JNEXT="Naprej" JNO="Ne" JNOTICE="Obvestilo" @@ -304,7 +303,7 @@ NOTICE="Obvestilo" WARNING="Opozorilo" ; Javascript ajax error messages -JLIB_JS_AJAX_ERROR_CONNECTION_ABORT="Pri pridobivanju JSON podatkov je prišlo do napake pri povezavi." +JLIB_JS_AJAX_ERROR_CONNECTION_ABORT="Pri pridobivanju podatkov JSON je prišlo do napake pri povezavi." JLIB_JS_AJAX_ERROR_NO_CONTENT="Vsebina ni vrnjena." JLIB_JS_AJAX_ERROR_OTHER="Prišlo je do napake pri pridobivanju JSON podatkov: HTTP %d status code." JLIB_JS_AJAX_ERROR_PARSE="Prišlo je do napake pri razčlenjevanju med obdelavo naslednjih JSON podatkov:
%s" diff --git a/installation/language/sl-SI/langmetadata.xml b/installation/language/sl-SI/langmetadata.xml index b2ced6270d63d..d3db96e5ac575 100644 --- a/installation/language/sl-SI/langmetadata.xml +++ b/installation/language/sl-SI/langmetadata.xml @@ -1,7 +1,7 @@ Slovenščina (Slovenija) - 5.4.1 + 6.0.1 2025-10 Slovenska prevajalska ekipa (C) 2005 Open Source Matters, Inc. diff --git a/installation/language/sr-YU/joomla.ini b/installation/language/sr-YU/joomla.ini index 6863a2d95131e..950b75cec8b9e 100644 --- a/installation/language/sr-YU/joomla.ini +++ b/installation/language/sr-YU/joomla.ini @@ -32,6 +32,7 @@ BUILD_MIN_PHP_ERROR_TEXT="Vaš host mora da koristi PHP verziju {{phpversion}} i BUILD_MIN_PHP_ERROR_URL_TEXT="Kako da rešim ovo" ; Main Config +INSTL_CHANGE_INSTALL_LANG_SHORT="Promeni poziciju" INSTL_SELECT_INSTALL_LANG="Izaberite jezik instalacije" INSTL_SELECT_LANGUAGE_TITLE="Odaberite jezik" INSTL_SETUP_LOGIN_DATA="Podesite podatke za prijavu" @@ -42,13 +43,9 @@ INSTL_WARNJSON="Za Joomla! instalaciju PHP mora imati omogućenu JSON ekstenziju INSTL_DATABASE_SUPPORT="Podrška baze:" INSTL_JSON_SUPPORT_AVAILABLE="JSON podrška" INSTL_MB_LANGUAGE_IS_DEFAULT="MB jezik je podrazumevan" -; Deprecated, will be removed with 6.0 -INSTL_MB_STRING_OVERLOAD_OFF="MB String Overload isključen" INSTL_NOTICE_DATABASE_SUPPORT="Nepodržana baza je detektovana." INSTL_NOTICE_JSON_SUPPORT_AVAILABLE="Za Joomla! instalaciju PHP mora imati omogućenu JSON ekstenziju" INSTL_NOTICE_MBLANG_NOTDEFAULT="PHP mbstring jezik nije neutralan. Ovo možete namestiti lokalno unošenjem php_value mbstring.language neutral u .htaccess." -; Deprecated, will be removed with 6.0 -INSTL_NOTICE_MBSTRING_OVERLOAD_OFF="PHP mbstring function overload je podešen. Ovo može biti isključeno lokalno unošenjem php_value mbstring.func_overload 0 u .htaccess." INSTL_NOTICE_PARSE_INI_FILE_AVAILABLE="Potrebne php funkcije parse_ini_file i parse_ini_string su isključene na serveru." INSTL_NOTICE_XML_SUPPORT="XML podrška nije dostupna. Treba je omogućiti u php-u, Ubuntu korisnici treba da instaliraju pokretanjem komande sudo apt-get install php-xml prateći restartovanje servera." INSTL_NOTICE_ZLIB_COMPRESSION_SUPPORT="Zlib kompresija nije podešena. Može se uključiti setovanjem zlib.output_compression = On u php.ini datoteci." @@ -298,7 +295,7 @@ NOTICE="Obaveštenje" WARNING="Upozorenje" ; Javascript ajax error messages -JLIB_JS_AJAX_ERROR_CONNECTION_ABORT="Prekid konekcije u toku preuzimanja JSON podataka." +JLIB_JS_AJAX_ERROR_CONNECTION_ABORT="Došlo je do prekida veze tokom dohvaćanja JSON podataka." JLIB_JS_AJAX_ERROR_NO_CONTENT="Sadržaj nije vraćen." JLIB_JS_AJAX_ERROR_OTHER="Greška pri preuzimanju JSON podataka: HTTP %d status kod." JLIB_JS_AJAX_ERROR_PARSE="Greška pri parsiranju JSON podataka:
%s" diff --git a/installation/language/sr-YU/langmetadata.xml b/installation/language/sr-YU/langmetadata.xml index 212c8a6182afd..a0e3b1ae9695b 100644 --- a/installation/language/sr-YU/langmetadata.xml +++ b/installation/language/sr-YU/langmetadata.xml @@ -1,7 +1,7 @@ Srpski (Republika Srbija) - 5.4.1 + 6.0.1 2025-10 Goran Nešić - UIX Web Design & Saša Matić Bardak.RS (C) 2005 Open Source Matters, Inc. diff --git a/installation/language/sv-SE/joomla.cli.ini b/installation/language/sv-SE/joomla.cli.ini index a544e57a119f9..3bb2a0265429d 100644 --- a/installation/language/sv-SE/joomla.cli.ini +++ b/installation/language/sv-SE/joomla.cli.ini @@ -14,7 +14,7 @@ INSTL_DATABASE_ENCRYPTION_CERT_LABEL_SHORT="Sökväg till SSL-certifikatet för INSTL_DATABASE_ENCRYPTION_CIPHER_LABEL="Shiffersviter som stöds (frivillig)" INSTL_DATABASE_ENCRYPTION_CIPHER_LABEL_SHORT="Shiffersviter som stöds (frivillig)" INSTL_DATABASE_ENCRYPTION_KEY_LABEL="Sökväg till SSL-certifikatet för databasanslutningen. Kräver kryptering för att sättas till 2" -INSTL_DATABASE_ENCRYPTION_KEY_LABEL_SHORT="Sökväg till SSL-certifikat för databasanslutning. Kräver kryptering för att sättas till 2" +INSTL_DATABASE_ENCRYPTION_KEY_LABEL_SHORT="Sökväg till SSL-certifikatet för databasanslutningen. Kräver kryptering för att sättas till 2" INSTL_DATABASE_ENCRYPTION_MODE_LABEL="Kryptering för databasanslutningen. Värden: 0=Ingen, 1=Ett sätt, 2=Tvåvägs" INSTL_DATABASE_ENCRYPTION_MODE_LABEL_SHORT="Kryptering för databasanslutningen. Värden: 0=Ingen, 1=Ett sätt, 2=Tvåvägs" INSTL_DATABASE_ENCRYPTION_VERIFY_SERVER_CERT_LABEL="Verifiera SSL-certifikat för databasanslutning. Värden: 0=Nej, 1=Ja. Kräver kryptering för att sättas till 1 eller 2" diff --git a/installation/language/sv-SE/joomla.ini b/installation/language/sv-SE/joomla.ini index 3d4227cf973c7..eccfceab550ac 100644 --- a/installation/language/sv-SE/joomla.ini +++ b/installation/language/sv-SE/joomla.ini @@ -32,6 +32,9 @@ BUILD_MIN_PHP_ERROR_TEXT="Ditt webbhotell måste använda PHP-version {{phpversi BUILD_MIN_PHP_ERROR_URL_TEXT="Hjälp mig att lösa detta" ; Main Config +INSTL_CHANGE_INSTALL_LANG="Ändra installationsspråk" +INSTL_CHANGE_INSTALL_LANG_SHORT="Ändra position" +INSTL_SELECTED_INSTALL_LANGUAGE="Nuvarande språk: %s" INSTL_SELECT_INSTALL_LANG="Välj installationsspråk" INSTL_SELECT_LANGUAGE_TITLE="Välj språk" INSTL_SETUP_LOGIN_DATA="Ställ in inloggningsdata" @@ -42,13 +45,9 @@ INSTL_WARNJSON="Din PHP-installation måste ha JSON aktiverat för att Joomla sk INSTL_DATABASE_SUPPORT="Databas som stöds:" INSTL_JSON_SUPPORT_AVAILABLE="JSON Support" INSTL_MB_LANGUAGE_IS_DEFAULT="MB language är standard" -; Deprecated, will be removed with 6.0 -INSTL_MB_STRING_OVERLOAD_OFF="MB String Overload är avstängd" INSTL_NOTICE_DATABASE_SUPPORT="Hittade databaser som inte stöds." INSTL_NOTICE_JSON_SUPPORT_AVAILABLE="Din PHP-installation måste ha JSON aktiverat för att Joomla ska kunna installeras!" INSTL_NOTICE_MBLANG_NOTDEFAULT="PHP mbstring language är inte satt till neutral. Detta kan ställas in lokalt genom att skriva in php_value mbstring.language neutral i .htaccess." -; Deprecated, will be removed with 6.0 -INSTL_NOTICE_MBSTRING_OVERLOAD_OFF="PHP mbstring function overload är aktiverat. Detta kan stängas av lokalt genom att skriva in php_value mbstring.func_overload 0 i .htaccess." INSTL_NOTICE_PARSE_INI_FILE_AVAILABLE="De php funktioner som krävs parse_ini_file och parse_ini_string är inaktiverade på din server." INSTL_NOTICE_XML_SUPPORT="XML-stöd är inte tillgänglig. Detta bör vara aktiverat som standard i php men Ubuntu-användare, kan behöva installera det genom att göra sudo apt-get install php-xml följt av web server omstart." INSTL_NOTICE_ZLIB_COMPRESSION_SUPPORT="Zlib komprimering är inte inställd. Detta kan slås på lokalt genom att ange zlib.output_compression = On i din php.ini fil." @@ -242,7 +241,7 @@ JHIDEPASSWORD="Dölj lösenord" JINVALID_TOKEN="Det senaste anropet nekades för att det innehåller ett ogiltigt igenkänningstecken för säkerhet. Uppdatera sidan och försök igen. Tips: ta bort 'index.php' i URL:en." JINVALID_TOKEN_NOTICE="Säkerhetstecknen matchar inte. Begäran har avbrutits för att förhindra säkerhetsöverträdelser. Försök igen." JNEXT="Nästa" -JNO="Nej" +JNO="Aldrig" JNOTICE="Observera" JOFF="Av" JON="På" @@ -263,7 +262,7 @@ JLIB_FILESYSTEM_ERROR_PATH_IS_NOT_A_FOLDER="%1$s: Sökvägen är inte en mapp. S JLIB_FORM_FIELD_INVALID="Ogiltigt fält: " JLIB_FORM_VALIDATE_FIELD_INVALID="Ogiltigt fält: %s" JLIB_FORM_VALIDATE_FIELD_REQUIRED="Fältet krävs: %s" -JLIB_INSTALLER_ABORT="Stoppar språkinstallationen: %s" +JLIB_INSTALLER_ABORT="Avbryter språkinstallation: %s" JLIB_INSTALLER_ABORT_CREATE_DIRECTORY="Tillägg %1$s: Kan inte skapa mapp: %2$s" JLIB_INSTALLER_ABORT_NOINSTALLPATH="Installationssökvägen finns inte" JLIB_INSTALLER_ABORT_PACK_INSTALL_ERROR_EXTENSION="Paket %1$s: Det uppstod ett fel när tillägget %2$s installerades." @@ -304,7 +303,7 @@ NOTICE="Observera" WARNING="Varning" ; Javascript ajax error messages -JLIB_JS_AJAX_ERROR_CONNECTION_ABORT="Ett anslutningsfel uppstod vid hämtningen av JSON-data." +JLIB_JS_AJAX_ERROR_CONNECTION_ABORT="En anslutning avbröts när JSON-data hämtades." JLIB_JS_AJAX_ERROR_NO_CONTENT="Inget innehåll har returnerats." JLIB_JS_AJAX_ERROR_OTHER="Ett fel uppstod när JSON-data hämtades: HTTP %d statuskod." JLIB_JS_AJAX_ERROR_PARSE="Ett parsningsfel har uppstått medan följande JSON-data behandlades:
%s" diff --git a/installation/language/sv-SE/langmetadata.xml b/installation/language/sv-SE/langmetadata.xml index 0a93fd8e08021..ed0dccc1e2503 100644 --- a/installation/language/sv-SE/langmetadata.xml +++ b/installation/language/sv-SE/langmetadata.xml @@ -1,7 +1,7 @@ Swedish (Sweden) - 5.4.1 + 6.0.1 2025-10 Swedish Translation Team - SvenskJoomla (C) 2005 Open Source Matters, Inc. diff --git a/installation/language/ta-IN/joomla.ini b/installation/language/ta-IN/joomla.ini index 2f40c76297964..973ea3dc562af 100644 --- a/installation/language/ta-IN/joomla.ini +++ b/installation/language/ta-IN/joomla.ini @@ -32,6 +32,9 @@ BUILD_MIN_PHP_ERROR_TEXT="Joomla-வின் இந்தப் பதிப் BUILD_MIN_PHP_ERROR_URL_TEXT="இதனைத் தீர்க்க எனக்கு உதவுக" ; Main Config +INSTL_CHANGE_INSTALL_LANG="நிறுவல் மொழி மாற்றுக" +INSTL_CHANGE_INSTALL_LANG_SHORT="மாற்றுக" +INSTL_SELECTED_INSTALL_LANGUAGE="தற்போதைய மொழி: %s" INSTL_SELECT_INSTALL_LANG="நிறுவல் மொழித் தேர்வு" INSTL_SELECT_LANGUAGE_TITLE="மொழி தேர்வுசெய்யவும்" INSTL_SETUP_LOGIN_DATA="உள்நுழைவு தரவு அமைத்தல்" @@ -42,13 +45,9 @@ INSTL_WARNJSON="Joomla-வை நிறுவுவதற்கு, தங்க INSTL_DATABASE_SUPPORT="தரவுத்தள ஆதரவு:" INSTL_JSON_SUPPORT_AVAILABLE="JSON Support" INSTL_MB_LANGUAGE_IS_DEFAULT="MB Language is Default" -; Deprecated, will be removed with 6.0 -INSTL_MB_STRING_OVERLOAD_OFF="MB String Overload Off" INSTL_NOTICE_DATABASE_SUPPORT="ஆதரிக்கப்படும் தரவுத்தளங்கள் (databases) எதுவும் காணப்படவில்லை." INSTL_NOTICE_JSON_SUPPORT_AVAILABLE="Joomla-வை நிறுவுவதற்கு, தங்கள் PHP நிறுவலில் JSON ஆனது இயலுமைப்படுத்தப்பட்டிருக்க வேண்டும்!" INSTL_NOTICE_MBLANG_NOTDEFAULT="PHP mbstring language நடு நிலையாக (neutral) அமைக்கப்படவில்லை. இதனைத் தங்கள் தளத்தில் php_value mbstring.language neutral என்ற சொற்றொடரைத் தங்கள் .htaccess கோப்பில் எழுதுவதின் மூலம் உள்ளகத்தில் அமைக்க (locally set) முடியும்." -; Deprecated, will be removed with 6.0 -INSTL_NOTICE_MBSTRING_OVERLOAD_OFF="PHP mbstring function overload அமைக்கப்பட்டுள்ளது. இதனைத் தங்கள் தளத்தில் php_value mbstring.func_overload 0 என்ற சொற்றொடரைத் தங்கள் .htaccess கோப்பில் எழுதுவதின் மூலம் உள்ளகத்தில் நிறுத்த முடியும் (turned off locally)." INSTL_NOTICE_PARSE_INI_FILE_AVAILABLE="தங்கள் சேவையகத்தில், தேவையான php செயற்பாடுகள் parse_ini_file மற்றும் parse_ini_string ஆகியவை முடக்கப்பட்டுள்ளன." INSTL_NOTICE_XML_SUPPORT="XML Support இல்லை. இதனை இயல்புநிலையாக php-இல் இயலுமைப்படுத்தப்பட வேண்டும். ஆனால், Ubuntu பயனாளர்கள் இதனை sudo apt-get install php-xml என்ற குறியீட்டைச் செயற்படுத்தி, அதன் பின் சேவையகத்தை மறுதொடக்கம் செய்து நிறுவ வேண்டியிருக்கலாம்." INSTL_NOTICE_ZLIB_COMPRESSION_SUPPORT="Zlib compression அமைக்கப்படவில்லை. இதனைத் தங்கள் தளத்தில் zlib.output_compression = On என்ற சொற்றொடரைத் தங்கள் php.ini கோப்பில் எழுதுவதின் மூலம் அமைக்க (locally set) முடியும்." diff --git a/installation/language/ta-IN/langmetadata.xml b/installation/language/ta-IN/langmetadata.xml index 267a2ada44506..da8f97b3c9c77 100644 --- a/installation/language/ta-IN/langmetadata.xml +++ b/installation/language/ta-IN/langmetadata.xml @@ -1,7 +1,7 @@ Tamil (India) - 5.4.1 + 6.0.1 2025-10 Ilagnayeru 'MIG' Manickam, Elango Samy Manim (C) 2005 Open Source Matters, Inc. diff --git a/installation/language/th-TH/joomla.cli.ini b/installation/language/th-TH/joomla.cli.ini index d4b57fa0de035..3c12ee352c21e 100644 --- a/installation/language/th-TH/joomla.cli.ini +++ b/installation/language/th-TH/joomla.cli.ini @@ -31,8 +31,8 @@ INSTL_DATABASE_TYPE_DESC="ประเภทฐานข้อมูล รอ INSTL_DATABASE_TYPE_DESC_SHORT="ประเภทฐานข้อมูล รองรับโดย Joomla: mysql (=MySQL (PDO)), mysqli (=MySQLi), pgsql (=PostgreSQL (PDO))" INSTL_DATABASE_USER_DESC="ชื่อผู้ใช้ฐานข้อมูล" INSTL_DATABASE_USER_DESC_SHORT="ชื่อผู้ใช้ฐานข้อมูล" -INSTL_PUBLIC_FOLDER_DESC="พาทสัมพันธ์ หรือพาทสัมบูรณ์ไปยังโฟลเดอร์สาธารณะ" -INSTL_PUBLIC_FOLDER_DESC_SHORT="พาทสัมพันธ์ หรือพาทสัมบูรณ์ไปยังโฟลเดอร์สาธารณะ" +INSTL_PUBLIC_FOLDER_DESC="พาทสัมพัทธ์หรือสัมบูรณ์ไปยังโฟลเดอร์สาธารณะ" +INSTL_PUBLIC_FOLDER_DESC_SHORT="พาทสัมพัทธ์หรือสัมบูรณ์ไปยังโฟลเดอร์สาธารณะ" INSTL_SITE_NAME_DESC="ป้อนชื่อเว็บไซต์ Joomla ของคุณ" INSTL_SITE_NAME_DESC_SHORT="ชื่อของเว็บไซต์" diff --git a/installation/language/th-TH/joomla.ini b/installation/language/th-TH/joomla.ini index 52c55d633a5ca..ce963f7eee8d1 100644 --- a/installation/language/th-TH/joomla.ini +++ b/installation/language/th-TH/joomla.ini @@ -32,6 +32,7 @@ BUILD_MIN_PHP_ERROR_TEXT="โฮสต์ของคุณต้องใช้ BUILD_MIN_PHP_ERROR_URL_TEXT="ช่วยฉันแก้ปัญหานี้" ; Main Config +INSTL_CHANGE_INSTALL_LANG_SHORT="เปลี่ยนตำแหน่ง" INSTL_SELECT_INSTALL_LANG="เลือกภาษาที่ใช้ในการติดตั้ง" INSTL_SELECT_LANGUAGE_TITLE="เลือกภาษา" INSTL_SETUP_LOGIN_DATA="ตั้งค่าข้อมูลเข้าสู่ระบบ" @@ -42,13 +43,9 @@ INSTL_WARNJSON="คุณต้องเปิดการใช้งาน JSO INSTL_DATABASE_SUPPORT="รองรับฐานข้อมูล:" INSTL_JSON_SUPPORT_AVAILABLE="JSON Support" INSTL_MB_LANGUAGE_IS_DEFAULT="MB Language is Default" -; Deprecated, will be removed with 6.0 -INSTL_MB_STRING_OVERLOAD_OFF="MB String Overload Off" INSTL_NOTICE_DATABASE_SUPPORT="ไม่พบฐานข้อมูลที่รองรับ" INSTL_NOTICE_JSON_SUPPORT_AVAILABLE="คุณต้องเปิดการใช้งาน JSON สำหรับการติดตั้งจูมล่า" INSTL_NOTICE_MBLANG_NOTDEFAULT="PHP mbstring ไม่ได้ถูกตั้งให้เป็นกลาง คุณสามารถตั้งในประเทศโดยการใส่ค่า php_value mbstring.language ให้เป็นกลาง ในไฟล์ .htaccess" -; Deprecated, will be removed with 6.0 -INSTL_NOTICE_MBSTRING_OVERLOAD_OFF="PHP mbstring ฟังก์ชัน นี้สามารถปิดได้โดยการใส่ค่า php_value mbstring.func_overload 0 ในไฟล์ .htaccess" INSTL_NOTICE_PARSE_INI_FILE_AVAILABLE="จำเป็นที่จะต้องใช้ php ฟังก์ชัน parse_ini_file และ parse_ini_string แต่ถูกปิดการใช้งานบนเซิร์ฟเวอร์ของคุณ" INSTL_NOTICE_XML_SUPPORT="ไม่มีการสนับสนุน XML ควรเปิดใช้งานโดยค่าเริ่มต้นใน php แต่ผู้ใช้ Ubuntu อาจจำเป็นต้องติดตั้งสิ่งนี้โดยทำด้วยคำสั่ง sudo apt-get install php-xml แล้วรีสตาร์ทเว็บเซิร์ฟเวอร์" INSTL_NOTICE_ZLIB_COMPRESSION_SUPPORT="Zlib compression ไม่ได้ตั้งค่า สามารถเปิดในเครื่องได้โดยกำหนดให้ zlib.output_compression = On ในไฟล์ php.ini ของคุณ" @@ -235,7 +232,7 @@ JGLOBAL_SELECT_NO_RESULTS_MATCH="ไม่มีผลลัพธ์" JGLOBAL_SELECT_SOME_OPTIONS="เลือกตัวเลือกบางตัว" JHIDEPASSWORD="ซ่อนรหัสผ่าน" JINVALID_TOKEN="คำขอล่าสุดถูกปฏิเสธเนื่องจากมีความปลอดภัยของโทเค็นที่ไม่ถูกต้อง โปรดรีเฟรชหน้าเว็บและลองอีกครั้ง" -JINVALID_TOKEN_NOTICE="โทเค็นความปลอดภัยไม่ตรงกัน คำขอถูกยกเลิกเพื่อป้องกันการละเมิดความปลอดภัย กรุณาลองอีกครั้ง" +JINVALID_TOKEN_NOTICE="โทเค็นการรักษาความปลอดภัยไม่ตรงกัน การร้องขอถูกยกเลิกเพื่อป้องกันการละเมิดความปลอดภัย โปรดลองอีกครั้ง" JNEXT="ต่อไป" JNO="ไม่" JNOTICE="แจ้งให้ทราบ" @@ -263,7 +260,7 @@ JLIB_INSTALLER_ABORT_CREATE_DIRECTORY="ส่วนเสริม %1$s: ไม JLIB_INSTALLER_ABORT_NOINSTALLPATH="ไม่มีพาทของการติดตั้ง" JLIB_INSTALLER_ABORT_PACK_INSTALL_ERROR_EXTENSION="แพ็กเกจ %1$s: เกิดข้อผิดพลาดในการติดตั้งส่วนเสริม: %2$s" JLIB_INSTALLER_ABORT_PACK_INSTALL_NO_FILES="แพ็กเกจ %s: ไม่มีไฟล์ให้ติดตั้ง!" -JLIB_INSTALLER_ERROR_DOWNLOAD_SERVER_CONNECT="เกิดข้อผิดพลาดในการเชื่อมต่อกับเซิร์ฟเวอร์: %s" +JLIB_INSTALLER_ERROR_DOWNLOAD_SERVER_CONNECT="Error connecting to the server: %s" JLIB_INSTALLER_ERROR_FAIL_COPY_FILE="JInstaller: :Install: การคัดลอกไฟล์ล้มเหลวจาก %1$s ไปยัง %2$s" JLIB_INSTALLER_INSTALL="ติดตั้ง" JLIB_INSTALLER_NOT_ERROR="หากมีข้อผิดที่เกี่ยวข้องกับการติดตั้งไฟล์ภาษาของ TinyMCE ซึ่งจะไม่มีผลกระทบต่อการติดตั้งของไฟล์ภาษา เพราะบางแพ็คเกจภาษาถูกสร้างขึ้นก่อนที่จะมี Joomla 3.2.0 อาจเป็นเพราะพยายามที่จะติดตั้งไฟล์ภาษาของ TinyMCE แยกต่างหาก ซึ่งตอนนี้ได้ถูกรวมอยู่ในคอร์หลักนี้แล้ว โดยที่ไม่จำเป็นต้องมีการติดตั้งตามลงไป" @@ -300,10 +297,10 @@ WARNING="คำเตือน" ; Javascript ajax error messages JLIB_JS_AJAX_ERROR_CONNECTION_ABORT="เกิดข้อผิดพลาดในการเชื่อมต่อขณะดึงข้อมูล JSON" -JLIB_JS_AJAX_ERROR_NO_CONTENT="ไม่มีการส่งคืนเนื้อหา" +JLIB_JS_AJAX_ERROR_NO_CONTENT="No content was returned." JLIB_JS_AJAX_ERROR_OTHER="เกิดข้อผิดพลาดขณะดึงข้อมูล JSON: รหัสสถานะ HTTP %d" JLIB_JS_AJAX_ERROR_PARSE="เกิดข้อผิดพลาดในการแยกวิเคราะห์ขณะประมวลผลข้อมูล JSON ต่อไปนี้:
%s" -JLIB_JS_AJAX_ERROR_TIMEOUT="เกิดหมดเวลาขึ้นขณะดึงข้อมูล JSON" +JLIB_JS_AJAX_ERROR_TIMEOUT="A timeout has occurred while fetching the JSON data." ; Field password messages JFIELD_PASSWORD_INDICATE_COMPLETE="รหัสผ่านได้รับการยอมรับ" diff --git a/installation/language/th-TH/langmetadata.xml b/installation/language/th-TH/langmetadata.xml index ece7a0a3405d7..26778f9c7ea3b 100644 --- a/installation/language/th-TH/langmetadata.xml +++ b/installation/language/th-TH/langmetadata.xml @@ -1,7 +1,7 @@ Thai (ภาษาไทย) - 5.4.1 + 6.0.1 2025-10 Thai Translation Team (C) 2005 Open Source Matters, Inc. diff --git a/installation/language/tr-TR/joomla.cli.ini b/installation/language/tr-TR/joomla.cli.ini index 8871e03b0a765..1472db9f4828d 100644 --- a/installation/language/tr-TR/joomla.cli.ini +++ b/installation/language/tr-TR/joomla.cli.ini @@ -3,7 +3,7 @@ INSTL_ADMIN_EMAIL_DESC_SHORT="Web sitesinin Süper Kullanıcı hesabının e-pos INSTL_ADMIN_PASSWORD_DESC="Süper Kullanıcı hesabınız için şifre belirleyin" INSTL_ADMIN_PASSWORD_DESC_SHORT="Süper Kullanıcı hesabınızın şifresi" INSTL_ADMIN_USERNAME_DESC="Süper Kullanıcı hesabınız için kullanıcı adını belirleyin" -INSTL_ADMIN_USERNAME_DESC_SHORT="Süper Kullanıcı hesabınızın şifresi" +INSTL_ADMIN_USERNAME_DESC_SHORT="Süper Kullanıcı hesabınızın kullanıcı adı" INSTL_ADMIN_USER_DESC="Süper Kullanıcınızın gerçek adını girin" INSTL_ADMIN_USER_DESC_SHORT="Süper Kullanıcı hesabının gerçek adı" INSTL_DATABASE_COULD_NOT_CONNECT="%s" diff --git a/installation/language/tr-TR/joomla.ini b/installation/language/tr-TR/joomla.ini index 6f275648253df..d95a9134748ec 100644 --- a/installation/language/tr-TR/joomla.ini +++ b/installation/language/tr-TR/joomla.ini @@ -32,6 +32,9 @@ BUILD_MIN_PHP_ERROR_TEXT="Joomla'nın bu sürümünü çalıştırmak için sunu BUILD_MIN_PHP_ERROR_URL_TEXT="Bunu çözmeme yardım et" ; Main Config +INSTL_CHANGE_INSTALL_LANG="Kurulum Dilini Değiştir" +INSTL_CHANGE_INSTALL_LANG_SHORT="Değişiklikler" +INSTL_SELECTED_INSTALL_LANGUAGE="Mevcut dil: %s" INSTL_SELECT_INSTALL_LANG="Kurulum Dilini Seçin" INSTL_SELECT_LANGUAGE_TITLE="Dil Seçin" INSTL_SETUP_LOGIN_DATA="Oturum Açma Verilerini Ayarla" @@ -42,13 +45,9 @@ INSTL_WARNJSON="Joomla kurulabilmesi için PHP kurulumunuzda JSON'un etkinleşti INSTL_DATABASE_SUPPORT="Veritabanı Desteği:" INSTL_JSON_SUPPORT_AVAILABLE="JSON Desteği" INSTL_MB_LANGUAGE_IS_DEFAULT="MB Dili Varsayılandır" -; Deprecated, will be removed with 6.0 -INSTL_MB_STRING_OVERLOAD_OFF="MBString Aşırı Yük Kapalı" INSTL_NOTICE_DATABASE_SUPPORT="Desteklenen veritabanları bulunamadı." INSTL_NOTICE_JSON_SUPPORT_AVAILABLE="Joomla kurulabilmesi için PHP kurulumunuzda JSON'un etkinleştirilmesi gerekir!" INSTL_NOTICE_MBLANG_NOTDEFAULT="PHP mbstring dili nötr olarak ayarlanmadı. Bu, .htaccess dosyanıza php_value mbstring.language nötr girilerek yerel olarak ayarlanabilir." -; Deprecated, will be removed with 6.0 -INSTL_NOTICE_MBSTRING_OVERLOAD_OFF="PHP mbstring işlevi aşırı yüklemesi ayarlandı. Bu, .htaccess dosyanıza php_value mbstring.func_overload 0 girilerek yerel olarak kapatılabilir." INSTL_NOTICE_PARSE_INI_FILE_AVAILABLE="Gerekli php işlevleri parse_ini_file ve parse_ini_string sunucunuzda devre dışı bırakıldı." INSTL_NOTICE_XML_SUPPORT="XML Desteği mevcut değil. Bu, php'de varsayılan olarak etkinleştirilmelidir, ancak Ubuntu kullanıcılarının bunu sudo apt-get install php-xml yaparak ve ardından web sunucusunu yeniden başlatarak yüklemeleri gerekebilir." INSTL_NOTICE_ZLIB_COMPRESSION_SUPPORT="Zlib sıkıştırması ayarlanmadı. Bu, php.ini dosyanıza zlib.output_compression = On yazılarak yerel olarak açılabilir." @@ -229,7 +228,7 @@ INSTL_ZIP_SUPPORT_AVAILABLE="Yerel ZIP desteği" ; Global strings JADMINISTRATOR="Yönetici" -JCLOSE="Kapalı" +JCLOSE="Kapat" JEMAIL="E-posta" JERROR="Hata" JERROR_LAYOUT_ERROR_HAS_OCCURRED_WHILE_PROCESSING_YOUR_REQUEST="İsteğiniz işlenirken bir hata oluştu." diff --git a/installation/language/tr-TR/langmetadata.xml b/installation/language/tr-TR/langmetadata.xml index a92cd27182335..1b2d64a89e9c8 100644 --- a/installation/language/tr-TR/langmetadata.xml +++ b/installation/language/tr-TR/langmetadata.xml @@ -1,7 +1,7 @@ Turkish (Turkey) - 5.4.1 + 6.0.1 2025-10 Joomla! Türkiye (C) 2005 Open Source Matters, Inc. diff --git a/installation/language/uk-UA/joomla.ini b/installation/language/uk-UA/joomla.ini index 926fef283080b..b3d86622c2280 100644 --- a/installation/language/uk-UA/joomla.ini +++ b/installation/language/uk-UA/joomla.ini @@ -32,6 +32,7 @@ BUILD_MIN_PHP_ERROR_TEXT="Ваш хост повинен використову BUILD_MIN_PHP_ERROR_URL_TEXT="Допоможіть мені це вирішити" ; Main Config +INSTL_CHANGE_INSTALL_LANG_SHORT="Змінити" INSTL_SELECT_INSTALL_LANG="Оберіть мову встановлення" INSTL_SELECT_LANGUAGE_TITLE="Обрати мову" INSTL_SETUP_LOGIN_DATA="Налаштування даних для входу" @@ -42,13 +43,9 @@ INSTL_WARNJSON="Налаштування PHP повинні підтримува INSTL_DATABASE_SUPPORT="Підтримка база даних:" INSTL_JSON_SUPPORT_AVAILABLE="Підтримка JSON" INSTL_MB_LANGUAGE_IS_DEFAULT="MB Language за налаштуванням" -; Deprecated, will be removed with 6.0 -INSTL_MB_STRING_OVERLOAD_OFF="MB String Overload вимкнено" INSTL_NOTICE_DATABASE_SUPPORT="Не знайдено підтримуваних баз даних." INSTL_NOTICE_JSON_SUPPORT_AVAILABLE="Налаштування PHP повинні підтримувати бібліотеку JSON для подальшого встановлення Joomla!" INSTL_NOTICE_MBLANG_NOTDEFAULT="Функція мови PHP mbstring (mbstring.language) не встановлено у нейтральне положення. Ви можете задати цей параметр локально, прописавши php_value mbstring.language neutral у вашому файлі .htaccess." -; Deprecated, will be removed with 6.0 -INSTL_NOTICE_MBSTRING_OVERLOAD_OFF="Функція перезавантаження PHP mbstring (mbstring.func_overload) встановлена. Ви можете вимкнути цей параметр локально, прописавши php_value mbstring.func_overload 0 у вашому файлі .htaccess." INSTL_NOTICE_PARSE_INI_FILE_AVAILABLE="Необхідні PHP-функції parse_ini_file та parse_ini_string вимкнені на вашому сервері." INSTL_NOTICE_XML_SUPPORT="Підтримка XML недоступна. Вона повинна бути ввімкненою за налаштуванням, але користувачам Ubuntu необхідно встановити її через термінал на сервері за допомогою команди sudo apt-get install php-xml. Це призведе до повторного старту сервера." INSTL_NOTICE_ZLIB_COMPRESSION_SUPPORT="Компресія Zlib не встановлена. Для ввімкнення цього параметри необхідно у файлі php.ini розкоментувати або додати значення zlib.output_compression = On." diff --git a/installation/language/uk-UA/langmetadata.xml b/installation/language/uk-UA/langmetadata.xml index 59a5a435f12bb..27c8d4d9b7ab5 100644 --- a/installation/language/uk-UA/langmetadata.xml +++ b/installation/language/uk-UA/langmetadata.xml @@ -1,7 +1,7 @@ Ukrainian (uk-UA) - 5.4.1 + 6.0.1 2025-10 Denys Nosov (C) 2005 Open Source Matters, Inc. diff --git a/installation/language/ur-PK/joomla.ini b/installation/language/ur-PK/joomla.ini index 42dd036406102..b2458d4356788 100644 --- a/installation/language/ur-PK/joomla.ini +++ b/installation/language/ur-PK/joomla.ini @@ -5,10 +5,10 @@ ; Fatal error page ; These will be processed by the JavaScript Build -BUILD_FATAL_HEADER="معاف کیجیے گا، ایک مسئلہ تھا جس سے ہم بازیاب نہ ہو سکے." +BUILD_FATAL_HEADER="معاف کیجیے گا، ایک مسئلہ تھا جس سے ہم بازیاب نہ ہو سکے۔" BUILD_FATAL_LANGUAGE="انگریزی جی-بی" ; IMPORTANT NOTE FOR TRANSLATORS: Do not literally translate this line, instead add the localised name of the language. For example French will be Français FR BUILD_FATAL_TEXT="سرور نے \"{{statusCode_statusText}}\" لوٹایا" -BUILD_FATAL_URL_TEXT="اس کو حل کرنے میں میری مدد کریں." +BUILD_FATAL_URL_TEXT="اس کو حل کرنے میں میری مدد کریں۔" ; Build incomplete error page ; These will be processed by the JavaScript Build @@ -32,6 +32,7 @@ BUILD_MIN_PHP_ERROR_TEXT="جملہ کے اس ورژن کو چلانے کے لی BUILD_MIN_PHP_ERROR_URL_TEXT="اس کو حل کرنے میں میری مدد کریں۔" ; Main Config +INSTL_CHANGE_INSTALL_LANG_SHORT="تبدیلیاں" INSTL_SELECT_INSTALL_LANG="انسٹالیشن کی زبان منتخب کریں۔" INSTL_SELECT_LANGUAGE_TITLE="زبان منتخب کریں۔" INSTL_SETUP_LOGIN_DATA="لاگ ان ڈیٹا سیٹ کریں۔" @@ -42,13 +43,9 @@ INSTL_WARNJSON="جملہ کو انسٹال کرنے کے لیے آپ کی پی INSTL_DATABASE_SUPPORT="ڈیٹا بیس سپورٹ:" INSTL_JSON_SUPPORT_AVAILABLE="JSON سپورٹ" INSTL_MB_LANGUAGE_IS_DEFAULT="MB زبان پہلے سے طے شدہ ہے۔" -; Deprecated, will be removed with 6.0 -INSTL_MB_STRING_OVERLOAD_OFF="ایم بی سٹرنگ اوورلوڈ آف" INSTL_NOTICE_DATABASE_SUPPORT="کوئی معاون ڈیٹا بیس نہیں ملا۔" INSTL_NOTICE_JSON_SUPPORT_AVAILABLE="جملہ کو انسٹال کرنے کے لیے آپ کی پی ایچ پی کی انسٹالیشن میں JSON کا فعال ہونا ضروری ہے!" INSTL_NOTICE_MBLANG_NOTDEFAULT="PHP mbstring زبان غیر جانبدار پر سیٹ نہیں ہے۔ اسے اپنی .htaccess فائل میں php_value mbstring.language neutral درج کرکے مقامی طور پر سیٹ کیا جاسکتا ہے۔." -; Deprecated, will be removed with 6.0 -INSTL_NOTICE_MBSTRING_OVERLOAD_OFF="PHP mbstring فنکشن اوورلوڈ سیٹ ہے۔ اسے اپنی .htaccess فائل میں php_value mbstring.func_overload 0 درج کرکے مقامی طور پر بند کیا جاسکتا ہے۔." INSTL_NOTICE_PARSE_INI_FILE_AVAILABLE="مطلوبہ php فنکشنز parse_ini_file اور parse_ini_string آپ کے سرور پر غیر فعال ہیں۔" INSTL_NOTICE_XML_SUPPORT="XML سپورٹ دستیاب نہیں ہے۔ اسے php میں بطور ڈیفالٹ فعال ہونا چاہیے لیکن Ubuntu کے صارفین کو اسے sudo apt-get install php-xml کرکے انسٹال کرنے کی ضرورت پڑسکتی ہے جس کے بعد ویب سرور دوبارہ شروع ہوتا ہے۔" INSTL_NOTICE_ZLIB_COMPRESSION_SUPPORT="Zlib کمپریشن سیٹ نہیں ہے۔ اسے اپنی php.ini فائل میں zlib.output_compression = On درج کرکے مقامی طور پر آن کیا جاسکتا ہے۔" diff --git a/installation/language/ur-PK/langmetadata.xml b/installation/language/ur-PK/langmetadata.xml index 005f08e258ca3..ff609839ac9df 100644 --- a/installation/language/ur-PK/langmetadata.xml +++ b/installation/language/ur-PK/langmetadata.xml @@ -1,7 +1,7 @@ Urdu (ur-PK) - 5.4.1 + 6.0.1 2025-10 Urdu Translation Team (C) 2005 Open Source Matters, Inc. @@ -10,7 +10,7 @@ joomla.ini - Urdu (ur-PK) + انگریزی (برطانیہ) ur-PK 1 diff --git a/installation/language/vi-VN/joomla.ini b/installation/language/vi-VN/joomla.ini index 6cb4ea95eaa1f..de15e58c49295 100644 --- a/installation/language/vi-VN/joomla.ini +++ b/installation/language/vi-VN/joomla.ini @@ -32,6 +32,7 @@ BUILD_MIN_PHP_ERROR_TEXT="Máy chủ của bạn cần sử dụng PHP phiên b BUILD_MIN_PHP_ERROR_URL_TEXT="Giúp tôi giải quyết vấn đề này" ; Main Config +INSTL_CHANGE_INSTALL_LANG_SHORT="Thay đổi vị trí" INSTL_SELECT_INSTALL_LANG="Chọn ngôn ngữ cài đặt" INSTL_SELECT_LANGUAGE_TITLE="Chọn ngôn ngữ" INSTL_SETUP_LOGIN_DATA="Thiết lập dữ liệu đăng nhập" @@ -42,13 +43,9 @@ INSTL_WARNJSON="Hệ thống PHP của bạn cần có JSON được kích hoạ INSTL_DATABASE_SUPPORT="Hỗ trợ cơ sở dữ liệu:" INSTL_JSON_SUPPORT_AVAILABLE="Hỗ trợ JSON" INSTL_MB_LANGUAGE_IS_DEFAULT="MB language là mặc định" -; Deprecated, will be removed with 6.0 -INSTL_MB_STRING_OVERLOAD_OFF="MB String overload tắt" INSTL_NOTICE_DATABASE_SUPPORT="Không có cơ sở dữ liệu được hỗ trợ nào được tìm thấy." INSTL_NOTICE_JSON_SUPPORT_AVAILABLE="Hệ thống PHP của bạn cần có JSON được kích hoạt để cài đặt Joomla!" INSTL_NOTICE_MBLANG_NOTDEFAULT="Ngôn ngữ PHP mbstring không được để thành neutral. Có thể thiết lập cục bộ bằng cách điềnphp_value mbstring.language neutral vào tập tin .htaccess của bạn." -; Deprecated, will be removed with 6.0 -INSTL_NOTICE_MBSTRING_OVERLOAD_OFF="Chức năng PHP mbstring overload đang được thiết lập. Có thể tắt cục bộ bằng cách điền php_value mbstring.func_overload 0 vào tập tin .htaccess của bạn." INSTL_NOTICE_PARSE_INI_FILE_AVAILABLE="Các hàm php bắt buộc parse_ini_file parse_ini_string đã bị tắt trên máy chủ của bạn." INSTL_NOTICE_XML_SUPPORT="Hỗ trợ XML không khả dụng. Điều này sẽ được bật theo mặc định trong php nhưng người dùng Ubuntu có thể cần phải cài đặt điều này bằng cách thực hiện sudo apt-get install php-xml sau đó khởi động lại máy chủ web." INSTL_NOTICE_ZLIB_COMPRESSION_SUPPORT="Zlib compression không được thiết lập. Điều này có thể được bật cục bộ bằng cách nhập zlib.output_compression = On trong tệp php.ini của bạn." diff --git a/installation/language/vi-VN/langmetadata.xml b/installation/language/vi-VN/langmetadata.xml index 43eeb49cdc93e..1004cd89d4735 100644 --- a/installation/language/vi-VN/langmetadata.xml +++ b/installation/language/vi-VN/langmetadata.xml @@ -1,7 +1,7 @@ Vietnamese (Vietnam) - 5.4.1 + 6.0.1 2025-10 Joomla! Project (C) 2005 Open Source Matters, Inc. diff --git a/installation/language/zh-CN/joomla.ini b/installation/language/zh-CN/joomla.ini index a5df6dd0a2e34..8728115ec6b7c 100644 --- a/installation/language/zh-CN/joomla.ini +++ b/installation/language/zh-CN/joomla.ini @@ -32,6 +32,7 @@ BUILD_MIN_PHP_ERROR_TEXT="需要 PHP {{phpversion}} 或更新的版本运行" BUILD_MIN_PHP_ERROR_URL_TEXT="帮助我解决这个问题" ; Main Config +INSTL_CHANGE_INSTALL_LANG_SHORT="更换" INSTL_SELECT_INSTALL_LANG="选择安装语言" INSTL_SELECT_LANGUAGE_TITLE="选择安装语言" INSTL_SETUP_LOGIN_DATA="设置登录信息" @@ -42,13 +43,9 @@ INSTL_WARNJSON="PHP 需要启用 JSON 才能安装!" INSTL_DATABASE_SUPPORT="数据库支持:" INSTL_JSON_SUPPORT_AVAILABLE="JSON 支持并启用" INSTL_MB_LANGUAGE_IS_DEFAULT="MB Language 设置为默认" -; Deprecated, will be removed with 6.0 -INSTL_MB_STRING_OVERLOAD_OFF="MB String Overload 关闭" INSTL_NOTICE_DATABASE_SUPPORT="没有找到支持的数据库" INSTL_NOTICE_JSON_SUPPORT_AVAILABLE="PHP 需要启用 JSON 才能安装!" INSTL_NOTICE_MBLANG_NOTDEFAULT="PHP mbstring 的当前设置不是 neutral 可以通过在网站根目录下的 .htaccess 文件中加入 php_value mbstring.language neutral 修改此设置" -; Deprecated, will be removed with 6.0 -INSTL_NOTICE_MBSTRING_OVERLOAD_OFF="PHP mbstring Overload 设置为启用。可以童哥在网站根目录下的 .htaccess 文件中加入 php_value mbstring.func_overload 0 修改此设置" INSTL_NOTICE_PARSE_INI_FILE_AVAILABLE="所需的 PHP 函数parse_ini_fileparse_ini_string 在服务器上已关闭。" INSTL_NOTICE_XML_SUPPORT="XML 支持不可用。这个功能在 PHP 中应该是默认启用,但 Ubuntu 用户可能需要通过sudo apt-get install php-xml安装这个功能,然后重新启动 WEB 服务器。" INSTL_NOTICE_ZLIB_COMPRESSION_SUPPORT="没有设置 Zlib 压缩。可以在你的 php.ini 文件中输入 zlib.output_compression = On 打开。" @@ -92,7 +89,7 @@ INSTL_DATABASE_NAME_MSG_POSTGRES="数据库名无效。它必须以字母开头 INSTL_DATABASE_NO_SCHEMA="该数据库类型不存在数据库模式" INSTL_DATABASE_PASSWORD_DESC="请输入数据库密码" INSTL_DATABASE_PREFIX_DESC="输入表前缀或使用随机生成的表前缀" -INSTL_DATABASE_PREFIX_DUPLICATE_DESC="如果您正在使用一个带有相同前缀的表格的现有数据库,Joomla将通过添加前缀\"bak_\"重命名这些现有表格。" +INSTL_DATABASE_PREFIX_DUPLICATE_DESC="如果您正在使用的数据库中已经存在带有相同前缀的数据表,Joomla将通过添加前缀\"bak_\"重命名这些重名的数据表。" INSTL_DATABASE_RESPONSE_ERROR="安装过程失败" INSTL_DATABASE_TYPE_DESC="选择数据库类型" INSTL_DATABASE_USER_DESC="请输入数据库用户名" @@ -118,7 +115,7 @@ INSTL_PUBLIC_FOLDER_DESC="公共文件夹的相对路径或绝对路径" INSTL_PUBLIC_FOLDER_DESC_SHORT="公共文件夹的相对路径或绝对路径" ; Complete view -INSTL_COMPLETE_ADD_EXTRA_LANGUAGE="安装本地化语言包(zh-CN为简体中文)" +INSTL_COMPLETE_ADD_EXTRA_LANGUAGE="安装其它语言" INSTL_COMPLETE_ADMIN_BTN="完成并打开后台" INSTL_COMPLETE_CONGRAT="恭喜!" INSTL_COMPLETE_ERROR_FOLDER_DELETE="无法删除 \"%s\" 目录。请手动删除该文件夹。" @@ -130,7 +127,7 @@ INSTL_COMPLETE_TITLE="网站安装成功。" INSTL_REMOVE_INST_FOLDER="你确定要删除吗? 确认 将永久删除 \"%s\"文件夹。" ; Languages view -INSTL_LANGUAGES="安装本地化语言包" +INSTL_LANGUAGES="安装其它语言" INSTL_LANGUAGES_COLUMN_HEADER_LANGUAGE="语言" INSTL_LANGUAGES_COLUMN_HEADER_LANGUAGE_SELECT="选择安装语言" INSTL_LANGUAGES_COLUMN_HEADER_LANGUAGE_TAG="语言标签" @@ -216,13 +213,13 @@ INSTL_NOTICE_NEEDSTOBEWRITABLE="如果你修复了权限或者提供了 FTP 连 INSTL_OUTPUT_BUFFERING="输出缓冲(Output Buffering)" INSTL_PHP_VERSION="PHP 版本" INSTL_PHP_VERSION_NEWER="PHP 版本 >= %s" -INSTL_PROCESS_BUSY="安装正在进行,请稍候……" +INSTL_PROCESS_BUSY="进程中。请等待 ..." INSTL_SESSION_AUTO_START="会话自启动(Session Auto Start)" INSTL_WRITABLE="没有足够的权限创建 %s" INSTL_ZIP_SUPPORT_AVAILABLE="Native ZIP 支持并启用" ; Global strings -JADMINISTRATOR="管理员" +JADMINISTRATOR="管理员激活" JCLOSE="关闭" JEMAIL="邮件" JERROR="错误" diff --git a/installation/language/zh-CN/langmetadata.xml b/installation/language/zh-CN/langmetadata.xml index b482afbf4ba43..5368dbbcabe03 100644 --- a/installation/language/zh-CN/langmetadata.xml +++ b/installation/language/zh-CN/langmetadata.xml @@ -1,17 +1,17 @@ Chinese Simplified (China) - 5.4.1 + 6.0.1 2025-10 - Joomla中文网 + Joomla中文网 (C) 2005 Open Source Matters, Inc. GNU General Public License version 2 or later; see LICENSE.txt joomla.ini - 简体中文(zh-CN) - 简体中文 (中国) + Chinese Simplified (zh-CN) + Chinese Simplified (China) zh-CN 0 diff --git a/installation/language/zh-TW/joomla.ini b/installation/language/zh-TW/joomla.ini index 3641d850aa16c..8726314c123b0 100644 --- a/installation/language/zh-TW/joomla.ini +++ b/installation/language/zh-TW/joomla.ini @@ -32,6 +32,7 @@ BUILD_MIN_PHP_ERROR_TEXT="您的主機需要PHP版本{{phpversion}}或以上來 BUILD_MIN_PHP_ERROR_URL_TEXT="協助我解決這個問題" ; Main Config +INSTL_CHANGE_INSTALL_LANG_SHORT="變更" INSTL_SELECT_INSTALL_LANG="選擇安裝語言" INSTL_SELECT_LANGUAGE_TITLE="選擇語言" INSTL_SETUP_LOGIN_DATA="設定登入資訊" @@ -42,13 +43,9 @@ INSTL_WARNJSON="你的PHP環境需要啟用JSON支援才能進行Joomla!安裝" INSTL_DATABASE_SUPPORT="支援的資料庫:" INSTL_JSON_SUPPORT_AVAILABLE="JSON 支援" INSTL_MB_LANGUAGE_IS_DEFAULT="MB Language is Default" -; Deprecated, will be removed with 6.0 -INSTL_MB_STRING_OVERLOAD_OFF="MB String Overload Off" INSTL_NOTICE_DATABASE_SUPPORT="找不到被支援的資料庫" INSTL_NOTICE_JSON_SUPPORT_AVAILABLE="你的PHP環境需要啟用JSON支援才能進行Joomla!安裝" INSTL_NOTICE_MBLANG_NOTDEFAULT="PHP mbstring language is not set to neutral. This can be set locally by entering php_value mbstring.language neutral in your .htaccess file." -; Deprecated, will be removed with 6.0 -INSTL_NOTICE_MBSTRING_OVERLOAD_OFF="PHP mbstring function overload is set. This can be turned off locally by entering php_value mbstring.func_overload 0 in your .htaccess file." INSTL_NOTICE_PARSE_INI_FILE_AVAILABLE="所需的 php 函式 parse_ini_fileparse_ini_string 在你的伺服器是停用的。" INSTL_NOTICE_XML_SUPPORT="XML 支援不可用,PHP 的預設應為啟動但 Ubuntu 系統使用者也許需透過 sudo apt-get install php-xml 並重新啟動 Web 伺服器。" INSTL_NOTICE_ZLIB_COMPRESSION_SUPPORT="Zlib 壓縮功能未設置,在你的 php.ini 檔案中透過輸入 zlib.output_compression = On 啟動。" @@ -74,7 +71,7 @@ INSTL_DATABASE_ENCRYPTION_MODE_VALUE_NONE="預設(伺服器控制)" INSTL_DATABASE_ENCRYPTION_MODE_VALUE_ONE_WAY="One-way authentication" INSTL_DATABASE_ENCRYPTION_MODE_VALUE_TWO_WAY="Two-way authentication" INSTL_DATABASE_ENCRYPTION_MSG_CONN_NOT_ENCRYPT="你已選擇使用資料庫連線加密,連線已確立但未加密。這可能是因為資料庫因錯誤加密參數而倒回未加密連線配置,逐個檢查並修正資料庫加密參數,或變更欄位 \"連線加密\" 退回 \"預設 (伺服器控制)\"." -INSTL_DATABASE_ENCRYPTION_MSG_FILE_FIELD_BAD="欄位 \"%s\" 中輸入的檔案不存在或無法存取" +INSTL_DATABASE_ENCRYPTION_MSG_FILE_FIELD_BAD="The file entered in field \"%s\" does not exist or is not accessible." INSTL_DATABASE_ENCRYPTION_MSG_FILE_FIELD_EMPTY="欄位 \"%s\" is empty or doesn't contain a valid path." INSTL_DATABASE_ENCRYPTION_MSG_LOCALHOST="You have entered \"localhost\" as host name. Connecting to the database with connection encryption might fail with this. Either change \"localhost\" to \"127.0.0.1\" or \"::1\" or a different host name, or change field \"Connection Encryption\" back to \"預設(server controlled)\"." INSTL_DATABASE_ENCRYPTION_MSG_SRV_NOT_SUPPORTS="The database server doesn't support connection encryption. Either enable TLS (often called SSL in docs) support on your database server, or change field \"Connection Encryption\" back to \"預設(server controlled)\"." diff --git a/installation/language/zh-TW/langmetadata.xml b/installation/language/zh-TW/langmetadata.xml index 18c6fe0d37be0..b70c214419c08 100644 --- a/installation/language/zh-TW/langmetadata.xml +++ b/installation/language/zh-TW/langmetadata.xml @@ -1,7 +1,7 @@ 正體中文 - 5.4.1 + 6.0.1 2025-10 正體中文 Translation Team (C) 2005 Open Source Matters, Inc. diff --git a/installation/sql/mysql/base.sql b/installation/sql/mysql/base.sql index 5a3b514606ed1..99bf988897243 100644 --- a/installation/sql/mysql/base.sql +++ b/installation/sql/mysql/base.sql @@ -262,10 +262,9 @@ INSERT INTO `#__extensions` (`package_id`, `name`, `type`, `element`, `folder`, (0, 'plg_authentication_cookie', 'plugin', 'cookie', 'authentication', 0, 1, 1, 0, 1, '', '', '', 1, 0), (0, 'plg_authentication_joomla', 'plugin', 'joomla', 'authentication', 0, 1, 1, 1, 1, '', '', '', 2, 0), (0, 'plg_authentication_ldap', 'plugin', 'ldap', 'authentication', 0, 0, 1, 0, 1, '', '{"host":"","port":"389","use_ldapV3":"0","negotiate_tls":"0","no_referrals":"0","auth_method":"bind","base_dn":"","search_string":"","users_dn":"","username":"admin","password":"bobby7","ldap_fullname":"fullName","ldap_email":"mail","ldap_uid":"uid"}', '', 3, 0), -(0, 'plg_behaviour_compat', 'plugin', 'compat', 'behaviour', 0, 1, 1, 0, 1, '', '{"classes_aliases":"1","es5_assets":"1"}', '', 1, 0), -(0, 'plg_behaviour_compat6', 'plugin', 'compat6', 'behaviour', 0, 1, 1, 0, 1, '', '{"classes_aliases":"1","legacy_classes":"1"}', '', 2, 0), -(0, 'plg_behaviour_taggable', 'plugin', 'taggable', 'behaviour', 0, 1, 1, 0, 1, '', '{}', '', 3, 0), -(0, 'plg_behaviour_versionable', 'plugin', 'versionable', 'behaviour', 0, 1, 1, 0, 1, '', '{}', '', 4, 0), +(0, 'plg_behaviour_compat6', 'plugin', 'compat6', 'behaviour', 0, 0, 1, 0, 1, '', '{"classes_aliases":"0","legacy_classes":"1"}', '', 1, 0), +(0, 'plg_behaviour_taggable', 'plugin', 'taggable', 'behaviour', 0, 1, 1, 0, 1, '', '{}', '', 2, 0), +(0, 'plg_behaviour_versionable', 'plugin', 'versionable', 'behaviour', 0, 1, 1, 0, 1, '', '{}', '', 3, 0), (0, 'plg_content_confirmconsent', 'plugin', 'confirmconsent', 'content', 0, 0, 1, 0, 1, '', '{}', '', 1, 0), (0, 'plg_content_contact', 'plugin', 'contact', 'content', 0, 1, 1, 0, 1, '', '', '', 2, 0), (0, 'plg_content_emailcloak', 'plugin', 'emailcloak', 'content', 0, 1, 1, 0, 1, '', '{"mode":"1"}', '', 3, 0), @@ -299,14 +298,16 @@ INSERT INTO `#__extensions` (`package_id`, `name`, `type`, `element`, `folder`, (0, 'plg_fields_integer', 'plugin', 'integer', 'fields', 0, 1, 1, 0, 1, '', '{"multiple":"0","first":"1","last":"100","step":"1"}', '', 6, 0), (0, 'plg_fields_list', 'plugin', 'list', 'fields', 0, 1, 1, 0, 1, '', '', '', 7, 0), (0, 'plg_fields_media', 'plugin', 'media', 'fields', 0, 1, 1, 0, 1, '', '', '', 8, 0), -(0, 'plg_fields_radio', 'plugin', 'radio', 'fields', 0, 1, 1, 0, 1, '', '', '', 9, 0), -(0, 'plg_fields_sql', 'plugin', 'sql', 'fields', 0, 1, 1, 0, 1, '', '', '', 10, 0), -(0, 'plg_fields_subform', 'plugin', 'subform', 'fields', 0, 1, 1, 0, 1, '', '', '', 11, 0), -(0, 'plg_fields_text', 'plugin', 'text', 'fields', 0, 1, 1, 0, 1, '', '', '', 12, 0), -(0, 'plg_fields_textarea', 'plugin', 'textarea', 'fields', 0, 1, 1, 0, 1, '', '{"rows":10,"cols":10,"maxlength":"","filter":"\\\\Joomla\\\\CMS\\\\Component\\\\ComponentHelper::filterText"}', '', 13, 0), -(0, 'plg_fields_url', 'plugin', 'url', 'fields', 0, 1, 1, 0, 1, '', '', '', 14, 0), -(0, 'plg_fields_user', 'plugin', 'user', 'fields', 0, 1, 1, 0, 1, '', '', '', 15, 0), -(0, 'plg_fields_usergrouplist', 'plugin', 'usergrouplist', 'fields', 0, 1, 1, 0, 1, '', '', '', 16, 0), +(0, 'plg_fields_note', 'plugin', 'note', 'fields', 0, 1, 1, 0, 1, '', '{"class":"alert alert-info","heading":"h4"}', '', 9, 0), +(0, 'plg_fields_number', 'plugin', 'number', 'fields', 0, 1, 1, 0, 1, '', '{"min":"1.0","max":"100.0","step":"0.1","currency":"0","position":"0","decimals":"2"}', '', 10, 0), +(0, 'plg_fields_radio', 'plugin', 'radio', 'fields', 0, 1, 1, 0, 1, '', '', '', 11, 0), +(0, 'plg_fields_sql', 'plugin', 'sql', 'fields', 0, 1, 1, 0, 1, '', '', '', 12, 0), +(0, 'plg_fields_subform', 'plugin', 'subform', 'fields', 0, 1, 1, 0, 1, '', '', '', 13, 0), +(0, 'plg_fields_text', 'plugin', 'text', 'fields', 0, 1, 1, 0, 1, '', '', '', 14, 0), +(0, 'plg_fields_textarea', 'plugin', 'textarea', 'fields', 0, 1, 1, 0, 1, '', '{"rows":10,"cols":10,"maxlength":"","filter":"\\\\Joomla\\\\CMS\\\\Component\\\\ComponentHelper::filterText"}', '', 15, 0), +(0, 'plg_fields_url', 'plugin', 'url', 'fields', 0, 1, 1, 0, 1, '', '', '', 16, 0), +(0, 'plg_fields_user', 'plugin', 'user', 'fields', 0, 1, 1, 0, 1, '', '', '', 17, 0), +(0, 'plg_fields_usergrouplist', 'plugin', 'usergrouplist', 'fields', 0, 1, 1, 0, 1, '', '', '', 18, 0), (0, 'plg_filesystem_local', 'plugin', 'local', 'filesystem', 0, 1, 1, 0, 1, '', '{}', '', 1, 0), (0, 'plg_finder_categories', 'plugin', 'categories', 'finder', 0, 1, 1, 0, 1, '', '', '', 1, 0), (0, 'plg_finder_contacts', 'plugin', 'contacts', 'finder', 0, 1, 1, 0, 1, '', '', '', 2, 0), @@ -414,7 +415,8 @@ INSERT INTO `#__extensions` (`package_id`, `name`, `type`, `element`, `folder`, -- Templates INSERT INTO `#__extensions` (`package_id`, `name`, `type`, `element`, `folder`, `client_id`, `enabled`, `access`, `protected`, `locked`, `manifest_cache`, `params`, `custom_data`, `ordering`, `state`) VALUES (0, 'atum', 'template', 'atum', '', 1, 1, 1, 0, 1, '', '', '', 0, 0), -(0, 'cassiopeia', 'template', 'cassiopeia', '', 0, 1, 1, 0, 1, '', '{"brand":"1","logoFile":"","siteTitle":"","siteDescription":"","useFontScheme":"0","colorName":"colors_standard","fluidContainer":"0","stickyHeader":0,"backTop":0}', '', 0, 0); +(0, 'cassiopeia', 'template', 'cassiopeia', '', 0, 1, 1, 0, 1, '', '{"brand":"1","logoFile":"","siteTitle":"","siteDescription":"","useFontScheme":"0","colorName":"colors_standard","fluidContainer":"0","stickyHeader":0,"backTop":0}', '', 0, 0), +(0, 'cassiopeia_extended', 'template', 'cassiopeia_extended', '', 0, 1, 1, 0, 1, '', '{"brand":"1","logoFile":"","siteTitle":"","siteDescription":"","useFontScheme":"0","systemFontBody":"","systemFontHeading":"","colorName":"colors_standard","fluidContainer":"0","stickyHeader":"0","backTop":"0","colorSettings":"0","headerbg":"rgb(193, 205, 207)","headercolor":"rgb(23, 23, 23)","bodybg":"rgb(254, 254, 254)","bodycolor":"rgb(23, 23, 23)","linkcolor":"rgb(29, 121, 137)","linkcolorh":"rgb(14, 59, 67)","btnbg":"rgb(206, 60, 55)","btnbgh":"rgb(131, 35, 32)","btncolor":"rgb(254, 254, 254)","btncolorh":"rgb(254, 254, 254)","footerbg":"rgb(29, 121, 137)","footercolor":"rgb(254, 254, 254)","fontSettings":"0","bodysize":"1","h1size":"2","h2size":"1.7","h3size":"1.5"}', '', 0, 0); -- Files Extensions INSERT INTO `#__extensions` (`package_id`, `name`, `type`, `element`, `folder`, `client_id`, `enabled`, `access`, `protected`, `locked`, `manifest_cache`, `params`, `custom_data`, `ordering`, `state`) VALUES @@ -847,7 +849,8 @@ CREATE TABLE IF NOT EXISTS `#__template_styles` ( INSERT INTO `#__template_styles` (`id`, `template`, `client_id`, `home`, `title`, `inheritable`, `parent`, `params`) VALUES (10, 'atum', 1, '1', 'Atum - Default', 1, '', '{"hue":"hsl(214, 63%, 20%)","bg-light":"#f0f4fb","text-dark":"#495057","text-light":"#ffffff","link-color":"#2a69b8","special-color":"#001b4c","colorScheme":"os","monochrome":"0","loginLogo":"","loginLogoAlt":"","logoBrandLarge":"","logoBrandLargeAlt":"","logoBrandSmall":"","logoBrandSmallAlt":""}'), -(11, 'cassiopeia', 0, '1', 'Cassiopeia - Default', 1, '', '{"brand":"1","logoFile":"","siteTitle":"","siteDescription":"","useFontScheme":"0","colorName":"colors_standard","fluidContainer":"0","stickyHeader":0,"backTop":0}'); +(11, 'cassiopeia', 0, '1', 'Cassiopeia - Default', 1, '', '{"brand":"1","logoFile":"","siteTitle":"","siteDescription":"","useFontScheme":"0","colorName":"colors_standard","fluidContainer":"0","stickyHeader":0,"backTop":0}'), +(12, 'cassiopeia_extended', 0, '0', 'Cassiopeia Extended - Default', 0, 'cassiopeia', '{"brand":"1","logoFile":"","siteTitle":"","siteDescription":"","useFontScheme":"0","systemFontBody":"","systemFontHeading":"","colorName":"colors_standard","fluidContainer":"0","stickyHeader":"0","backTop":"0","colorSettings":"0","headerbg":"rgb(193, 205, 207)","headercolor":"rgb(23, 23, 23)","bodybg":"rgb(254, 254, 254)","bodycolor":"rgb(23, 23, 23)","linkcolor":"rgb(29, 121, 137)","linkcolorh":"rgb(14, 59, 67)","btnbg":"rgb(206, 60, 55)","btnbgh":"rgb(131, 35, 32)","btncolor":"rgb(254, 254, 254)","btncolorh":"rgb(254, 254, 254)","footerbg":"rgb(29, 121, 137)","footercolor":"rgb(254, 254, 254)","fontSettings":"0","bodysize":"1","h1size":"2","h2size":"1.7","h3size":"1.5"}'); -- -------------------------------------------------------- @@ -922,7 +925,7 @@ CREATE TABLE IF NOT EXISTS `#__update_sites` ( INSERT INTO `#__update_sites` (`update_site_id`, `name`, `type`, `location`, `enabled`, `last_check_timestamp`) VALUES (1, 'Joomla! Core', 'tuf', 'https://update.joomla.org/cms/', 1, 0), -(2, 'Accredited Joomla! Translations', 'collection', 'https://update.joomla.org/language/translationlist_5.xml', 1, 0), +(2, 'Accredited Joomla! Translations', 'collection', 'https://update.joomla.org/language/translationlist_6.xml', 1, 0), (3, 'Joomla! Update Component', 'extension', 'https://update.joomla.org/core/extensions/com_joomlaupdate.xml', 1, 0); -- -------------------------------------------------------- diff --git a/installation/sql/mysql/supports.sql b/installation/sql/mysql/supports.sql index f54ff9edea74f..29164e22eabb4 100644 --- a/installation/sql/mysql/supports.sql +++ b/installation/sql/mysql/supports.sql @@ -95,19 +95,19 @@ CREATE TABLE IF NOT EXISTS `#__content_types` ( -- INSERT INTO `#__content_types` (`type_id`, `type_title`, `type_alias`, `table`, `rules`, `field_mappings`, `router`, `content_history_options`) VALUES -(1, 'Article', 'com_content.article', '{"special":{"dbtable":"#__content","key":"id","type":"ArticleTable","prefix":"Joomla\\\\Component\\\\Content\\\\Administrator\\\\Table\\\\","config":"array()"},"common":{"dbtable":"#__ucm_content","key":"ucm_id","type":"Corecontent","prefix":"Joomla\\\\CMS\\\\Table\\\\","config":"array()"}}', '', '{"common":{"core_content_item_id":"id","core_title":"title","core_state":"state","core_alias":"alias","core_created_user_id":"created_by","core_created_by_alias":"created_by_alias","core_created_time":"created","core_modified_time":"modified","core_body":"introtext", "core_hits":"hits","core_publish_up":"publish_up","core_publish_down":"publish_down","core_access":"access", "core_params":"attribs", "core_featured":"featured", "core_metadata":"metadata", "core_language":"language", "core_images":"images", "core_urls":"urls", "core_version":"version", "core_ordering":"ordering", "core_metakey":"metakey", "core_metadesc":"metadesc", "core_catid":"catid", "asset_id":"asset_id", "note":"note"}, "special":{"fulltext":"fulltext"}}', 'ContentHelperRoute::getArticleRoute', '{"formFile":"administrator\\/components\\/com_content\\/forms\\/article.xml", "hideFields":["asset_id","checked_out","checked_out_time","version"],"ignoreChanges":["modified_by", "modified", "checked_out", "checked_out_time", "version", "hits", "ordering"],"convertToInt":["publish_up", "publish_down", "featured", "ordering"],"displayLookup":[{"sourceColumn":"catid","targetTable":"#__categories","targetColumn":"id","displayColumn":"title"},{"sourceColumn":"created_by","targetTable":"#__users","targetColumn":"id","displayColumn":"name"},{"sourceColumn":"access","targetTable":"#__viewlevels","targetColumn":"id","displayColumn":"title"},{"sourceColumn":"modified_by","targetTable":"#__users","targetColumn":"id","displayColumn":"name"} ]}'), -(2, 'Contact', 'com_contact.contact', '{"special":{"dbtable":"#__contact_details","key":"id","type":"ContactTable","prefix":"Joomla\\\\Component\\\\Contact\\\\Administrator\\\\Table\\\\","config":"array()"},"common":{"dbtable":"#__ucm_content","key":"ucm_id","type":"Corecontent","prefix":"Joomla\\\\CMS\\\\Table\\\\","config":"array()"}}', '', '{"common":{"core_content_item_id":"id","core_title":"name","core_state":"published","core_alias":"alias","core_created_time":"created","core_modified_time":"modified","core_body":"address", "core_hits":"hits","core_publish_up":"publish_up","core_publish_down":"publish_down","core_access":"access", "core_params":"params", "core_featured":"featured", "core_metadata":"metadata", "core_language":"language", "core_images":"image", "core_urls":"webpage", "core_version":"version", "core_ordering":"ordering", "core_metakey":"metakey", "core_metadesc":"metadesc", "core_catid":"catid", "asset_id":"null"}, "special":{"con_position":"con_position","suburb":"suburb","state":"state","country":"country","postcode":"postcode","telephone":"telephone","fax":"fax","misc":"misc","email_to":"email_to","default_con":"default_con","user_id":"user_id","mobile":"mobile","sortname1":"sortname1","sortname2":"sortname2","sortname3":"sortname3"}}', 'ContactHelperRoute::getContactRoute', '{"formFile":"administrator\\/components\\/com_contact\\/forms\\/contact.xml","hideFields":["default_con","checked_out","checked_out_time","version"],"ignoreChanges":["modified_by", "modified", "checked_out", "checked_out_time", "version", "hits"],"convertToInt":["publish_up", "publish_down", "featured", "ordering"], "displayLookup":[ {"sourceColumn":"created_by","targetTable":"#__users","targetColumn":"id","displayColumn":"name"},{"sourceColumn":"catid","targetTable":"#__categories","targetColumn":"id","displayColumn":"title"},{"sourceColumn":"modified_by","targetTable":"#__users","targetColumn":"id","displayColumn":"name"},{"sourceColumn":"access","targetTable":"#__viewlevels","targetColumn":"id","displayColumn":"title"},{"sourceColumn":"user_id","targetTable":"#__users","targetColumn":"id","displayColumn":"name"} ] }'), -(3, 'Newsfeed', 'com_newsfeeds.newsfeed', '{"special":{"dbtable":"#__newsfeeds","key":"id","type":"NewsfeedTable","prefix":"Joomla\\\\Component\\\\Newsfeeds\\\\Administrator\\\\Table\\\\","config":"array()"},"common":{"dbtable":"#__ucm_content","key":"ucm_id","type":"Corecontent","prefix":"Joomla\\\\CMS\\\\Table\\\\","config":"array()"}}', '', '{"common":{"core_content_item_id":"id","core_title":"name","core_state":"published","core_alias":"alias","core_created_time":"created","core_modified_time":"modified","core_body":"description", "core_hits":"hits","core_publish_up":"publish_up","core_publish_down":"publish_down","core_access":"access", "core_params":"params", "core_featured":"featured", "core_metadata":"metadata", "core_language":"language", "core_images":"images", "core_urls":"link", "core_version":"version", "core_ordering":"ordering", "core_metakey":"metakey", "core_metadesc":"metadesc", "core_catid":"catid", "asset_id":"null"}, "special":{"numarticles":"numarticles","cache_time":"cache_time","rtl":"rtl"}}', 'NewsfeedsHelperRoute::getNewsfeedRoute', '{"formFile":"administrator\\/components\\/com_newsfeeds\\/forms\\/newsfeed.xml","hideFields":["asset_id","checked_out","checked_out_time","version"],"ignoreChanges":["modified_by", "modified", "checked_out", "checked_out_time", "version", "hits"],"convertToInt":["publish_up", "publish_down", "featured", "ordering"],"displayLookup":[{"sourceColumn":"catid","targetTable":"#__categories","targetColumn":"id","displayColumn":"title"},{"sourceColumn":"created_by","targetTable":"#__users","targetColumn":"id","displayColumn":"name"},{"sourceColumn":"access","targetTable":"#__viewlevels","targetColumn":"id","displayColumn":"title"},{"sourceColumn":"modified_by","targetTable":"#__users","targetColumn":"id","displayColumn":"name"} ]}'), +(1, 'Article', 'com_content.article', '{"special":{"dbtable":"#__content","key":"id","type":"ArticleTable","prefix":"Joomla\\\\Component\\\\Content\\\\Administrator\\\\Table\\\\","config":"array()"},"common":{"dbtable":"#__ucm_content","key":"ucm_id","type":"Corecontent","prefix":"Joomla\\\\CMS\\\\Table\\\\","config":"array()"}}', '', '{"common":{"core_content_item_id":"id","core_title":"title","core_state":"state","core_alias":"alias","core_created_user_id":"created_by","core_created_by_alias":"created_by_alias","core_created_time":"created","core_modified_time":"modified","core_body":"introtext", "core_hits":"hits","core_publish_up":"publish_up","core_publish_down":"publish_down","core_access":"access", "core_params":"attribs", "core_featured":"featured", "core_metadata":"metadata", "core_language":"language", "core_images":"images", "core_urls":"urls", "core_version":"version", "core_ordering":"ordering", "core_metakey":"metakey", "core_metadesc":"metadesc", "core_catid":"catid", "asset_id":"asset_id", "note":"note"}, "special":{"fulltext":"fulltext"}}', 'ContentHelperRoute::getArticleRoute', '{"formFile":"administrator\\/components\\/com_content\\/forms\\/article.xml", "hideFields":["asset_id","checked_out","checked_out_time","version"],"ignoreChanges":["modified_by", "modified", "checked_out", "checked_out_time", "version", "hits", "ordering"],"convertToInt":["publish_up", "publish_down", "featured", "ordering"],"displayLookup":[{"sourceColumn":"catid","targetTable":"#__categories","targetColumn":"id","displayColumn":"title"},{"sourceColumn":"created_by","targetTable":"#__users","targetColumn":"id","displayColumn":"name"},{"sourceColumn":"access","targetTable":"#__viewlevels","targetColumn":"id","displayColumn":"title"},{"sourceColumn":"modified_by","targetTable":"#__users","targetColumn":"id","displayColumn":"name"},{"sourceColumn":"tags","targetTable":"#__tags","targetColumn":"id","displayColumn":"title"} ]}'), +(2, 'Contact', 'com_contact.contact', '{"special":{"dbtable":"#__contact_details","key":"id","type":"ContactTable","prefix":"Joomla\\\\Component\\\\Contact\\\\Administrator\\\\Table\\\\","config":"array()"},"common":{"dbtable":"#__ucm_content","key":"ucm_id","type":"Corecontent","prefix":"Joomla\\\\CMS\\\\Table\\\\","config":"array()"}}', '', '{"common":{"core_content_item_id":"id","core_title":"name","core_state":"published","core_alias":"alias","core_created_time":"created","core_modified_time":"modified","core_body":"address", "core_hits":"hits","core_publish_up":"publish_up","core_publish_down":"publish_down","core_access":"access", "core_params":"params", "core_featured":"featured", "core_metadata":"metadata", "core_language":"language", "core_images":"image", "core_urls":"webpage", "core_version":"version", "core_ordering":"ordering", "core_metakey":"metakey", "core_metadesc":"metadesc", "core_catid":"catid", "asset_id":"null"}, "special":{"con_position":"con_position","suburb":"suburb","state":"state","country":"country","postcode":"postcode","telephone":"telephone","fax":"fax","misc":"misc","email_to":"email_to","default_con":"default_con","user_id":"user_id","mobile":"mobile","sortname1":"sortname1","sortname2":"sortname2","sortname3":"sortname3"}}', 'ContactHelperRoute::getContactRoute', '{"formFile":"administrator\\/components\\/com_contact\\/forms\\/contact.xml","hideFields":["default_con","checked_out","checked_out_time","version"],"ignoreChanges":["modified_by", "modified", "checked_out", "checked_out_time", "version", "hits"],"convertToInt":["publish_up", "publish_down", "featured", "ordering"], "displayLookup":[ {"sourceColumn":"created_by","targetTable":"#__users","targetColumn":"id","displayColumn":"name"},{"sourceColumn":"catid","targetTable":"#__categories","targetColumn":"id","displayColumn":"title"},{"sourceColumn":"modified_by","targetTable":"#__users","targetColumn":"id","displayColumn":"name"},{"sourceColumn":"access","targetTable":"#__viewlevels","targetColumn":"id","displayColumn":"title"},{"sourceColumn":"user_id","targetTable":"#__users","targetColumn":"id","displayColumn":"name"},{"sourceColumn":"tags","targetTable":"#__tags","targetColumn":"id","displayColumn":"title"} ] }'), +(3, 'Newsfeed', 'com_newsfeeds.newsfeed', '{"special":{"dbtable":"#__newsfeeds","key":"id","type":"NewsfeedTable","prefix":"Joomla\\\\Component\\\\Newsfeeds\\\\Administrator\\\\Table\\\\","config":"array()"},"common":{"dbtable":"#__ucm_content","key":"ucm_id","type":"Corecontent","prefix":"Joomla\\\\CMS\\\\Table\\\\","config":"array()"}}', '', '{"common":{"core_content_item_id":"id","core_title":"name","core_state":"published","core_alias":"alias","core_created_time":"created","core_modified_time":"modified","core_body":"description", "core_hits":"hits","core_publish_up":"publish_up","core_publish_down":"publish_down","core_access":"access", "core_params":"params", "core_featured":"featured", "core_metadata":"metadata", "core_language":"language", "core_images":"images", "core_urls":"link", "core_version":"version", "core_ordering":"ordering", "core_metakey":"metakey", "core_metadesc":"metadesc", "core_catid":"catid", "asset_id":"null"}, "special":{"numarticles":"numarticles","cache_time":"cache_time","rtl":"rtl"}}', 'NewsfeedsHelperRoute::getNewsfeedRoute', '{"formFile":"administrator\\/components\\/com_newsfeeds\\/forms\\/newsfeed.xml","hideFields":["asset_id","checked_out","checked_out_time","version"],"ignoreChanges":["modified_by", "modified", "checked_out", "checked_out_time", "version", "hits"],"convertToInt":["publish_up", "publish_down", "featured", "ordering"],"displayLookup":[{"sourceColumn":"catid","targetTable":"#__categories","targetColumn":"id","displayColumn":"title"},{"sourceColumn":"created_by","targetTable":"#__users","targetColumn":"id","displayColumn":"name"},{"sourceColumn":"access","targetTable":"#__viewlevels","targetColumn":"id","displayColumn":"title"},{"sourceColumn":"modified_by","targetTable":"#__users","targetColumn":"id","displayColumn":"name"},{"sourceColumn":"tags","targetTable":"#__tags","targetColumn":"id","displayColumn":"title"} ]}'), (4, 'User', 'com_users.user', '{"special":{"dbtable":"#__users","key":"id","type":"User","prefix":"Joomla\\\\CMS\\\\Table\\\\","config":"array()"},"common":{"dbtable":"#__ucm_content","key":"ucm_id","type":"Corecontent","prefix":"Joomla\\\\CMS\\\\Table\\\\","config":"array()"}}', '', '{"common":{"core_content_item_id":"id","core_title":"name","core_state":"null","core_alias":"username","core_created_time":"registerDate","core_modified_time":"lastvisitDate","core_body":"null", "core_hits":"null","core_publish_up":"null","core_publish_down":"null","access":"null", "core_params":"params", "core_featured":"null", "core_metadata":"null", "core_language":"null", "core_images":"null", "core_urls":"null", "core_version":"null", "core_ordering":"null", "core_metakey":"null", "core_metadesc":"null", "core_catid":"null", "asset_id":"null"}, "special":{}}', '', ''), -(5, 'Article Category', 'com_content.category', '{"special":{"dbtable":"#__categories","key":"id","type":"CategoryTable","prefix":"Joomla\\\\Component\\\\Categories\\\\Administrator\\\\Table\\\\","config":"array()"},"common":{"dbtable":"#__ucm_content","key":"ucm_id","type":"Corecontent","prefix":"Joomla\\\\CMS\\\\Table\\\\","config":"array()"}}', '', '{"common":{"core_content_item_id":"id","core_title":"title","core_state":"published","core_alias":"alias","core_created_time":"created_time","core_modified_time":"modified_time","core_body":"description", "core_hits":"hits","core_publish_up":"null","core_publish_down":"null","core_access":"access", "core_params":"params", "core_featured":"null", "core_metadata":"metadata", "core_language":"language", "core_images":"null", "core_urls":"null", "core_version":"version", "core_ordering":"null", "core_metakey":"metakey", "core_metadesc":"metadesc", "core_catid":"parent_id", "asset_id":"asset_id"}, "special":{"parent_id":"parent_id","lft":"lft","rgt":"rgt","level":"level","path":"path","extension":"extension","note":"note"}}', 'ContentHelperRoute::getCategoryRoute', '{"formFile":"administrator\\/components\\/com_categories\\/forms\\/category.xml", "hideFields":["asset_id","checked_out","checked_out_time","version","lft","rgt","level","path","extension"], "ignoreChanges":["modified_user_id", "modified_time", "checked_out", "checked_out_time", "version", "hits", "path"],"convertToInt":["publish_up", "publish_down"], "displayLookup":[{"sourceColumn":"created_user_id","targetTable":"#__users","targetColumn":"id","displayColumn":"name"},{"sourceColumn":"access","targetTable":"#__viewlevels","targetColumn":"id","displayColumn":"title"},{"sourceColumn":"modified_user_id","targetTable":"#__users","targetColumn":"id","displayColumn":"name"},{"sourceColumn":"parent_id","targetTable":"#__categories","targetColumn":"id","displayColumn":"title"}]}'), -(6, 'Contact Category', 'com_contact.category', '{"special":{"dbtable":"#__categories","key":"id","type":"CategoryTable","prefix":"Joomla\\\\Component\\\\Categories\\\\Administrator\\\\Table\\\\","config":"array()"},"common":{"dbtable":"#__ucm_content","key":"ucm_id","type":"Corecontent","prefix":"Joomla\\\\CMS\\\\Table\\\\","config":"array()"}}', '', '{"common":{"core_content_item_id":"id","core_title":"title","core_state":"published","core_alias":"alias","core_created_time":"created_time","core_modified_time":"modified_time","core_body":"description", "core_hits":"hits","core_publish_up":"null","core_publish_down":"null","core_access":"access", "core_params":"params", "core_featured":"null", "core_metadata":"metadata", "core_language":"language", "core_images":"null", "core_urls":"null", "core_version":"version", "core_ordering":"null", "core_metakey":"metakey", "core_metadesc":"metadesc", "core_catid":"parent_id", "asset_id":"asset_id"}, "special":{"parent_id":"parent_id","lft":"lft","rgt":"rgt","level":"level","path":"path","extension":"extension","note":"note"}}', 'ContactHelperRoute::getCategoryRoute', '{"formFile":"administrator\\/components\\/com_categories\\/forms\\/category.xml", "hideFields":["asset_id","checked_out","checked_out_time","version","lft","rgt","level","path","extension"], "ignoreChanges":["modified_user_id", "modified_time", "checked_out", "checked_out_time", "version", "hits", "path"],"convertToInt":["publish_up", "publish_down"], "displayLookup":[{"sourceColumn":"created_user_id","targetTable":"#__users","targetColumn":"id","displayColumn":"name"},{"sourceColumn":"access","targetTable":"#__viewlevels","targetColumn":"id","displayColumn":"title"},{"sourceColumn":"modified_user_id","targetTable":"#__users","targetColumn":"id","displayColumn":"name"},{"sourceColumn":"parent_id","targetTable":"#__categories","targetColumn":"id","displayColumn":"title"}]}'), -(7, 'Newsfeeds Category', 'com_newsfeeds.category', '{"special":{"dbtable":"#__categories","key":"id","type":"CategoryTable","prefix":"Joomla\\\\Component\\\\Categories\\\\Administrator\\\\Table\\\\","config":"array()"},"common":{"dbtable":"#__ucm_content","key":"ucm_id","type":"Corecontent","prefix":"Joomla\\\\CMS\\\\Table\\\\","config":"array()"}}', '', '{"common":{"core_content_item_id":"id","core_title":"title","core_state":"published","core_alias":"alias","core_created_time":"created_time","core_modified_time":"modified_time","core_body":"description", "core_hits":"hits","core_publish_up":"null","core_publish_down":"null","core_access":"access", "core_params":"params", "core_featured":"null", "core_metadata":"metadata", "core_language":"language", "core_images":"null", "core_urls":"null", "core_version":"version", "core_ordering":"null", "core_metakey":"metakey", "core_metadesc":"metadesc", "core_catid":"parent_id", "asset_id":"asset_id"}, "special":{"parent_id":"parent_id","lft":"lft","rgt":"rgt","level":"level","path":"path","extension":"extension","note":"note"}}', 'NewsfeedsHelperRoute::getCategoryRoute', '{"formFile":"administrator\\/components\\/com_categories\\/forms\\/category.xml", "hideFields":["asset_id","checked_out","checked_out_time","version","lft","rgt","level","path","extension"], "ignoreChanges":["modified_user_id", "modified_time", "checked_out", "checked_out_time", "version", "hits", "path"],"convertToInt":["publish_up", "publish_down"], "displayLookup":[{"sourceColumn":"created_user_id","targetTable":"#__users","targetColumn":"id","displayColumn":"name"},{"sourceColumn":"access","targetTable":"#__viewlevels","targetColumn":"id","displayColumn":"title"},{"sourceColumn":"modified_user_id","targetTable":"#__users","targetColumn":"id","displayColumn":"name"},{"sourceColumn":"parent_id","targetTable":"#__categories","targetColumn":"id","displayColumn":"title"}]}'), +(5, 'Article Category', 'com_content.category', '{"special":{"dbtable":"#__categories","key":"id","type":"CategoryTable","prefix":"Joomla\\\\Component\\\\Categories\\\\Administrator\\\\Table\\\\","config":"array()"},"common":{"dbtable":"#__ucm_content","key":"ucm_id","type":"Corecontent","prefix":"Joomla\\\\CMS\\\\Table\\\\","config":"array()"}}', '', '{"common":{"core_content_item_id":"id","core_title":"title","core_state":"published","core_alias":"alias","core_created_time":"created_time","core_modified_time":"modified_time","core_body":"description", "core_hits":"hits","core_publish_up":"null","core_publish_down":"null","core_access":"access", "core_params":"params", "core_featured":"null", "core_metadata":"metadata", "core_language":"language", "core_images":"null", "core_urls":"null", "core_version":"version", "core_ordering":"null", "core_metakey":"metakey", "core_metadesc":"metadesc", "core_catid":"parent_id", "asset_id":"asset_id"}, "special":{"parent_id":"parent_id","lft":"lft","rgt":"rgt","level":"level","path":"path","extension":"extension","note":"note"}}', 'ContentHelperRoute::getCategoryRoute', '{"formFile":"administrator\\/components\\/com_categories\\/forms\\/category.xml", "hideFields":["asset_id","checked_out","checked_out_time","version","lft","rgt","level","path","extension"], "ignoreChanges":["modified_user_id", "modified_time", "checked_out", "checked_out_time", "version", "hits", "path"],"convertToInt":["publish_up", "publish_down"], "displayLookup":[{"sourceColumn":"created_user_id","targetTable":"#__users","targetColumn":"id","displayColumn":"name"},{"sourceColumn":"access","targetTable":"#__viewlevels","targetColumn":"id","displayColumn":"title"},{"sourceColumn":"modified_user_id","targetTable":"#__users","targetColumn":"id","displayColumn":"name"},{"sourceColumn":"parent_id","targetTable":"#__categories","targetColumn":"id","displayColumn":"title"},{"sourceColumn":"tags","targetTable":"#__tags","targetColumn":"id","displayColumn":"title"}]}'), +(6, 'Contact Category', 'com_contact.category', '{"special":{"dbtable":"#__categories","key":"id","type":"CategoryTable","prefix":"Joomla\\\\Component\\\\Categories\\\\Administrator\\\\Table\\\\","config":"array()"},"common":{"dbtable":"#__ucm_content","key":"ucm_id","type":"Corecontent","prefix":"Joomla\\\\CMS\\\\Table\\\\","config":"array()"}}', '', '{"common":{"core_content_item_id":"id","core_title":"title","core_state":"published","core_alias":"alias","core_created_time":"created_time","core_modified_time":"modified_time","core_body":"description", "core_hits":"hits","core_publish_up":"null","core_publish_down":"null","core_access":"access", "core_params":"params", "core_featured":"null", "core_metadata":"metadata", "core_language":"language", "core_images":"null", "core_urls":"null", "core_version":"version", "core_ordering":"null", "core_metakey":"metakey", "core_metadesc":"metadesc", "core_catid":"parent_id", "asset_id":"asset_id"}, "special":{"parent_id":"parent_id","lft":"lft","rgt":"rgt","level":"level","path":"path","extension":"extension","note":"note"}}', 'ContactHelperRoute::getCategoryRoute', '{"formFile":"administrator\\/components\\/com_categories\\/forms\\/category.xml", "hideFields":["asset_id","checked_out","checked_out_time","version","lft","rgt","level","path","extension"], "ignoreChanges":["modified_user_id", "modified_time", "checked_out", "checked_out_time", "version", "hits", "path"],"convertToInt":["publish_up", "publish_down"], "displayLookup":[{"sourceColumn":"created_user_id","targetTable":"#__users","targetColumn":"id","displayColumn":"name"},{"sourceColumn":"access","targetTable":"#__viewlevels","targetColumn":"id","displayColumn":"title"},{"sourceColumn":"modified_user_id","targetTable":"#__users","targetColumn":"id","displayColumn":"name"},{"sourceColumn":"parent_id","targetTable":"#__categories","targetColumn":"id","displayColumn":"title"},{"sourceColumn":"tags","targetTable":"#__tags","targetColumn":"id","displayColumn":"title"}]}'), +(7, 'Newsfeeds Category', 'com_newsfeeds.category', '{"special":{"dbtable":"#__categories","key":"id","type":"CategoryTable","prefix":"Joomla\\\\Component\\\\Categories\\\\Administrator\\\\Table\\\\","config":"array()"},"common":{"dbtable":"#__ucm_content","key":"ucm_id","type":"Corecontent","prefix":"Joomla\\\\CMS\\\\Table\\\\","config":"array()"}}', '', '{"common":{"core_content_item_id":"id","core_title":"title","core_state":"published","core_alias":"alias","core_created_time":"created_time","core_modified_time":"modified_time","core_body":"description", "core_hits":"hits","core_publish_up":"null","core_publish_down":"null","core_access":"access", "core_params":"params", "core_featured":"null", "core_metadata":"metadata", "core_language":"language", "core_images":"null", "core_urls":"null", "core_version":"version", "core_ordering":"null", "core_metakey":"metakey", "core_metadesc":"metadesc", "core_catid":"parent_id", "asset_id":"asset_id"}, "special":{"parent_id":"parent_id","lft":"lft","rgt":"rgt","level":"level","path":"path","extension":"extension","note":"note"}}', 'NewsfeedsHelperRoute::getCategoryRoute', '{"formFile":"administrator\\/components\\/com_categories\\/forms\\/category.xml", "hideFields":["asset_id","checked_out","checked_out_time","version","lft","rgt","level","path","extension"], "ignoreChanges":["modified_user_id", "modified_time", "checked_out", "checked_out_time", "version", "hits", "path"],"convertToInt":["publish_up", "publish_down"], "displayLookup":[{"sourceColumn":"created_user_id","targetTable":"#__users","targetColumn":"id","displayColumn":"name"},{"sourceColumn":"access","targetTable":"#__viewlevels","targetColumn":"id","displayColumn":"title"},{"sourceColumn":"modified_user_id","targetTable":"#__users","targetColumn":"id","displayColumn":"name"},{"sourceColumn":"parent_id","targetTable":"#__categories","targetColumn":"id","displayColumn":"title"},{"sourceColumn":"tags","targetTable":"#__tags","targetColumn":"id","displayColumn":"title"}]}'), (8, 'Tag', 'com_tags.tag', '{"special":{"dbtable":"#__tags","key":"tag_id","type":"TagTable","prefix":"Joomla\\\\Component\\\\Tags\\\\Administrator\\\\Table\\\\","config":"array()"},"common":{"dbtable":"#__ucm_content","key":"ucm_id","type":"Corecontent","prefix":"Joomla\\\\CMS\\\\Table\\\\","config":"array()"}}', '', '{"common":{"core_content_item_id":"id","core_title":"title","core_state":"published","core_alias":"alias","core_created_time":"created_time","core_modified_time":"modified_time","core_body":"description", "core_hits":"hits","core_publish_up":"null","core_publish_down":"null","core_access":"access", "core_params":"params", "core_featured":"featured", "core_metadata":"metadata", "core_language":"language", "core_images":"images", "core_urls":"urls", "core_version":"version", "core_ordering":"null", "core_metakey":"metakey", "core_metadesc":"metadesc", "core_catid":"null", "asset_id":"null"}, "special":{"parent_id":"parent_id","lft":"lft","rgt":"rgt","level":"level","path":"path"}}', 'TagsHelperRoute::getTagRoute', '{"formFile":"administrator\\/components\\/com_tags\\/forms\\/tag.xml", "hideFields":["checked_out","checked_out_time","version", "lft", "rgt", "level", "path", "urls", "publish_up", "publish_down"],"ignoreChanges":["modified_user_id", "modified_time", "checked_out", "checked_out_time", "version", "hits", "path"],"convertToInt":["publish_up", "publish_down"], "displayLookup":[{"sourceColumn":"created_user_id","targetTable":"#__users","targetColumn":"id","displayColumn":"name"}, {"sourceColumn":"access","targetTable":"#__viewlevels","targetColumn":"id","displayColumn":"title"}, {"sourceColumn":"modified_user_id","targetTable":"#__users","targetColumn":"id","displayColumn":"name"}]}'), (9, 'Banner', 'com_banners.banner', '{"special":{"dbtable":"#__banners","key":"id","type":"BannerTable","prefix":"Joomla\\\\Component\\\\Banners\\\\Administrator\\\\Table\\\\","config":"array()"},"common":{"dbtable":"#__ucm_content","key":"ucm_id","type":"Corecontent","prefix":"Joomla\\\\CMS\\\\Table\\\\","config":"array()"}}', '', '{"common":{"core_content_item_id":"id","core_title":"name","core_state":"published","core_alias":"alias","core_created_time":"created","core_modified_time":"modified","core_body":"description", "core_hits":"null","core_publish_up":"publish_up","core_publish_down":"publish_down","core_access":"access", "core_params":"params", "core_featured":"null", "core_metadata":"metadata", "core_language":"language", "core_images":"images", "core_urls":"link", "core_version":"version", "core_ordering":"ordering", "core_metakey":"metakey", "core_metadesc":"metadesc", "core_catid":"catid", "asset_id":"null"}, "special":{"imptotal":"imptotal", "impmade":"impmade", "clicks":"clicks", "clickurl":"clickurl", "custombannercode":"custombannercode", "cid":"cid", "purchase_type":"purchase_type", "track_impressions":"track_impressions", "track_clicks":"track_clicks"}}', '','{"formFile":"administrator\\/components\\/com_banners\\/forms\\/banner.xml", "hideFields":["checked_out","checked_out_time","version", "reset"],"ignoreChanges":["modified_by", "modified", "checked_out", "checked_out_time", "version", "imptotal", "impmade", "reset"], "convertToInt":["publish_up", "publish_down", "ordering"], "displayLookup":[{"sourceColumn":"catid","targetTable":"#__categories","targetColumn":"id","displayColumn":"title"}, {"sourceColumn":"cid","targetTable":"#__banner_clients","targetColumn":"id","displayColumn":"name"}, {"sourceColumn":"created_by","targetTable":"#__users","targetColumn":"id","displayColumn":"name"},{"sourceColumn":"modified_by","targetTable":"#__users","targetColumn":"id","displayColumn":"name"} ]}'), -(10, 'Banners Category', 'com_banners.category', '{"special":{"dbtable":"#__categories","key":"id","type":"CategoryTable","prefix":"Joomla\\\\Component\\\\Categories\\\\Administrator\\\\Table\\\\","config":"array()"},"common":{"dbtable":"#__ucm_content","key":"ucm_id","type":"Corecontent","prefix":"Joomla\\\\CMS\\\\Table\\\\","config":"array()"}}', '', '{"common":{"core_content_item_id":"id","core_title":"title","core_state":"published","core_alias":"alias","core_created_time":"created_time","core_modified_time":"modified_time","core_body":"description", "core_hits":"hits","core_publish_up":"null","core_publish_down":"null","core_access":"access", "core_params":"params", "core_featured":"null", "core_metadata":"metadata", "core_language":"language", "core_images":"null", "core_urls":"null", "core_version":"version", "core_ordering":"null", "core_metakey":"metakey", "core_metadesc":"metadesc", "core_catid":"parent_id", "asset_id":"asset_id"}, "special": {"parent_id":"parent_id","lft":"lft","rgt":"rgt","level":"level","path":"path","extension":"extension","note":"note"}}','','{"formFile":"administrator\\/components\\/com_categories\\/forms\\/category.xml", "hideFields":["asset_id","checked_out","checked_out_time","version","lft","rgt","level","path","extension"], "ignoreChanges":["modified_user_id", "modified_time", "checked_out", "checked_out_time", "version", "hits", "path"], "convertToInt":["publish_up", "publish_down"], "displayLookup":[{"sourceColumn":"created_user_id","targetTable":"#__users","targetColumn":"id","displayColumn":"name"},{"sourceColumn":"access","targetTable":"#__viewlevels","targetColumn":"id","displayColumn":"title"},{"sourceColumn":"modified_user_id","targetTable":"#__users","targetColumn":"id","displayColumn":"name"},{"sourceColumn":"parent_id","targetTable":"#__categories","targetColumn":"id","displayColumn":"title"}]}'), +(10, 'Banners Category', 'com_banners.category', '{"special":{"dbtable":"#__categories","key":"id","type":"CategoryTable","prefix":"Joomla\\\\Component\\\\Categories\\\\Administrator\\\\Table\\\\","config":"array()"},"common":{"dbtable":"#__ucm_content","key":"ucm_id","type":"Corecontent","prefix":"Joomla\\\\CMS\\\\Table\\\\","config":"array()"}}', '', '{"common":{"core_content_item_id":"id","core_title":"title","core_state":"published","core_alias":"alias","core_created_time":"created_time","core_modified_time":"modified_time","core_body":"description", "core_hits":"hits","core_publish_up":"null","core_publish_down":"null","core_access":"access", "core_params":"params", "core_featured":"null", "core_metadata":"metadata", "core_language":"language", "core_images":"null", "core_urls":"null", "core_version":"version", "core_ordering":"null", "core_metakey":"metakey", "core_metadesc":"metadesc", "core_catid":"parent_id", "asset_id":"asset_id"}, "special": {"parent_id":"parent_id","lft":"lft","rgt":"rgt","level":"level","path":"path","extension":"extension","note":"note"}}','','{"formFile":"administrator\\/components\\/com_categories\\/forms\\/category.xml", "hideFields":["asset_id","checked_out","checked_out_time","version","lft","rgt","level","path","extension"], "ignoreChanges":["modified_user_id", "modified_time", "checked_out", "checked_out_time", "version", "hits", "path"], "convertToInt":["publish_up", "publish_down"], "displayLookup":[{"sourceColumn":"created_user_id","targetTable":"#__users","targetColumn":"id","displayColumn":"name"},{"sourceColumn":"access","targetTable":"#__viewlevels","targetColumn":"id","displayColumn":"title"},{"sourceColumn":"modified_user_id","targetTable":"#__users","targetColumn":"id","displayColumn":"name"},{"sourceColumn":"parent_id","targetTable":"#__categories","targetColumn":"id","displayColumn":"title"},{"sourceColumn":"tags","targetTable":"#__tags","targetColumn":"id","displayColumn":"title"}]}'), (11, 'Banner Client', 'com_banners.client', '{"special":{"dbtable":"#__banner_clients","key":"id","type":"ClientTable","prefix":"Joomla\\\\Component\\\\Banners\\\\Administrator\\\\Table\\\\"}}', '', '', '', '{"formFile":"administrator\\/components\\/com_banners\\/forms\\/client.xml", "hideFields":["checked_out","checked_out_time"], "ignoreChanges":["checked_out", "checked_out_time"], "convertToInt":[], "displayLookup":[]}'), (12, 'User Notes', 'com_users.note', '{"special":{"dbtable":"#__user_notes","key":"id","type":"NoteTable","prefix":"Joomla\\\\Component\\\\Users\\\\Administrator\\\\Table\\\\"}}', '', '', '', '{"formFile":"administrator\\/components\\/com_users\\/forms\\/note.xml", "hideFields":["checked_out","checked_out_time", "publish_up", "publish_down"],"ignoreChanges":["modified_user_id", "modified_time", "checked_out", "checked_out_time"], "convertToInt":["publish_up", "publish_down"],"displayLookup":[{"sourceColumn":"catid","targetTable":"#__categories","targetColumn":"id","displayColumn":"title"}, {"sourceColumn":"created_user_id","targetTable":"#__users","targetColumn":"id","displayColumn":"name"}, {"sourceColumn":"user_id","targetTable":"#__users","targetColumn":"id","displayColumn":"name"}, {"sourceColumn":"modified_user_id","targetTable":"#__users","targetColumn":"id","displayColumn":"name"}]}'), -(13, 'User Notes Category', 'com_users.category', '{"special":{"dbtable":"#__categories","key":"id","type":"CategoryTable","prefix":"Joomla\\\\Component\\\\Categories\\\\Administrator\\\\Table\\\\","config":"array()"},"common":{"dbtable":"#__ucm_content","key":"ucm_id","type":"Corecontent","prefix":"Joomla\\\\CMS\\\\Table\\\\","config":"array()"}}', '', '{"common":{"core_content_item_id":"id","core_title":"title","core_state":"published","core_alias":"alias","core_created_time":"created_time","core_modified_time":"modified_time","core_body":"description", "core_hits":"hits","core_publish_up":"null","core_publish_down":"null","core_access":"access", "core_params":"params", "core_featured":"null", "core_metadata":"metadata", "core_language":"language", "core_images":"null", "core_urls":"null", "core_version":"version", "core_ordering":"null", "core_metakey":"metakey", "core_metadesc":"metadesc", "core_catid":"parent_id", "asset_id":"asset_id"}, "special":{"parent_id":"parent_id","lft":"lft","rgt":"rgt","level":"level","path":"path","extension":"extension","note":"note"}}', '', '{"formFile":"administrator\\/components\\/com_categories\\/forms\\/category.xml", "hideFields":["checked_out","checked_out_time","version","lft","rgt","level","path","extension"], "ignoreChanges":["modified_user_id", "modified_time", "checked_out", "checked_out_time", "version", "hits", "path"], "convertToInt":["publish_up", "publish_down"], "displayLookup":[{"sourceColumn":"created_user_id","targetTable":"#__users","targetColumn":"id","displayColumn":"name"}, {"sourceColumn":"access","targetTable":"#__viewlevels","targetColumn":"id","displayColumn":"title"},{"sourceColumn":"modified_user_id","targetTable":"#__users","targetColumn":"id","displayColumn":"name"},{"sourceColumn":"parent_id","targetTable":"#__categories","targetColumn":"id","displayColumn":"title"}]}'); +(13, 'User Notes Category', 'com_users.category', '{"special":{"dbtable":"#__categories","key":"id","type":"CategoryTable","prefix":"Joomla\\\\Component\\\\Categories\\\\Administrator\\\\Table\\\\","config":"array()"},"common":{"dbtable":"#__ucm_content","key":"ucm_id","type":"Corecontent","prefix":"Joomla\\\\CMS\\\\Table\\\\","config":"array()"}}', '', '{"common":{"core_content_item_id":"id","core_title":"title","core_state":"published","core_alias":"alias","core_created_time":"created_time","core_modified_time":"modified_time","core_body":"description", "core_hits":"hits","core_publish_up":"null","core_publish_down":"null","core_access":"access", "core_params":"params", "core_featured":"null", "core_metadata":"metadata", "core_language":"language", "core_images":"null", "core_urls":"null", "core_version":"version", "core_ordering":"null", "core_metakey":"metakey", "core_metadesc":"metadesc", "core_catid":"parent_id", "asset_id":"asset_id"}, "special":{"parent_id":"parent_id","lft":"lft","rgt":"rgt","level":"level","path":"path","extension":"extension","note":"note"}}', '', '{"formFile":"administrator\\/components\\/com_categories\\/forms\\/category.xml", "hideFields":["checked_out","checked_out_time","version","lft","rgt","level","path","extension"], "ignoreChanges":["modified_user_id", "modified_time", "checked_out", "checked_out_time", "version", "hits", "path"], "convertToInt":["publish_up", "publish_down"], "displayLookup":[{"sourceColumn":"created_user_id","targetTable":"#__users","targetColumn":"id","displayColumn":"name"}, {"sourceColumn":"access","targetTable":"#__viewlevels","targetColumn":"id","displayColumn":"title"},{"sourceColumn":"modified_user_id","targetTable":"#__users","targetColumn":"id","displayColumn":"name"},{"sourceColumn":"parent_id","targetTable":"#__categories","targetColumn":"id","displayColumn":"title"},{"sourceColumn":"tags","targetTable":"#__tags","targetColumn":"id","displayColumn":"title"}]}'); -- -------------------------------------------------------- @@ -367,6 +367,8 @@ CREATE TABLE IF NOT EXISTS `#__history` ( `sha1_hash` varchar(50) NOT NULL DEFAULT '' COMMENT 'SHA1 hash of the version_data column.', `version_data` mediumtext NOT NULL COMMENT 'json-encoded string of version data', `keep_forever` tinyint NOT NULL DEFAULT 0 COMMENT '0=auto delete; 1=keep', + `is_current` tinyint NOT NULL DEFAULT 0, + `is_legacy` tinyint NOT NULL DEFAULT 0, PRIMARY KEY (`version_id`), KEY `idx_ucm_item_id` (`item_id`), KEY `idx_save_date` (`save_date`) @@ -441,4 +443,5 @@ INSERT INTO `#__mail_templates` (`template_id`, `extension`, `language`, `subjec ('plg_system_tasknotification.fatal_recovery_mail', 'plg_system_tasknotification', '', 'PLG_SYSTEM_TASK_NOTIFICATION_FATAL_MAIL_SUBJECT', 'PLG_SYSTEM_TASK_NOTIFICATION_FATAL_MAIL_BODY', '', '', '{"tags": ["task_id", "task_title"]}'), ('plg_system_tasknotification.orphan_mail', 'plg_system_tasknotification', '', 'PLG_SYSTEM_TASK_NOTIFICATION_ORPHAN_MAIL_SUBJECT', 'PLG_SYSTEM_TASK_NOTIFICATION_ORPHAN_MAIL_BODY', '', '', '{"tags": ["task_id", "task_title"]}'), ('plg_system_tasknotification.success_mail', 'plg_system_tasknotification', '', 'PLG_SYSTEM_TASK_NOTIFICATION_SUCCESS_MAIL_SUBJECT', 'PLG_SYSTEM_TASK_NOTIFICATION_SUCCESS_MAIL_BODY', '', '', '{"tags":["task_id", "task_title", "exec_data_time", "task_output"]}'), -('plg_multifactorauth_email.mail', 'plg_multifactorauth_email', '', 'PLG_MULTIFACTORAUTH_EMAIL_EMAIL_SUBJECT', 'PLG_MULTIFACTORAUTH_EMAIL_EMAIL_BODY', '', '', '{"tags":["code","sitename","siteurl","username","email","fullname"]}'); +('plg_multifactorauth_email.mail', 'plg_multifactorauth_email', '', 'PLG_MULTIFACTORAUTH_EMAIL_EMAIL_SUBJECT', 'PLG_MULTIFACTORAUTH_EMAIL_EMAIL_BODY', '', '', '{"tags":["code","sitename","siteurl","username","email","fullname"]}'), +('plg_content_joomla.newarticle', 'plg_content_joomla', '', 'PLG_CONTENT_JOOMLA_NEW_ARTICLE_SUBJECT', 'PLG_CONTENT_JOOMLA_NEW_ARTICLE_BODY', '', '', '{"tags":["sitename","name","email","title","url"]}'); diff --git a/installation/sql/postgresql/base.sql b/installation/sql/postgresql/base.sql index bbff277f4c5b3..8694854991876 100644 --- a/installation/sql/postgresql/base.sql +++ b/installation/sql/postgresql/base.sql @@ -268,10 +268,9 @@ INSERT INTO "#__extensions" ("package_id", "name", "type", "element", "folder", (0, 'plg_authentication_cookie', 'plugin', 'cookie', 'authentication', 0, 1, 1, 0, 1, '', '', '', 1, 0), (0, 'plg_authentication_joomla', 'plugin', 'joomla', 'authentication', 0, 1, 1, 1, 1, '', '', '', 2, 0), (0, 'plg_authentication_ldap', 'plugin', 'ldap', 'authentication', 0, 0, 1, 0, 1, '', '{"host":"","port":"389","use_ldapV3":"0","negotiate_tls":"0","no_referrals":"0","auth_method":"bind","base_dn":"","search_string":"","users_dn":"","username":"admin","password":"bobby7","ldap_fullname":"fullName","ldap_email":"mail","ldap_uid":"uid"}', '', 3, 0), -(0, 'plg_behaviour_compat', 'plugin', 'compat', 'behaviour', 0, 1, 1, 0, 1, '', '{"classes_aliases":"1","es5_assets":"1"}', '', 1, 0), -(0, 'plg_behaviour_compat6', 'plugin', 'compat6', 'behaviour', 0, 1, 1, 0, 1, '', '{"classes_aliases":"1","legacy_classes":"1"}', '', 2, 0), -(0, 'plg_behaviour_taggable', 'plugin', 'taggable', 'behaviour', 0, 1, 1, 0, 1, '', '{}', '', 3, 0), -(0, 'plg_behaviour_versionable', 'plugin', 'versionable', 'behaviour', 0, 1, 1, 0, 1, '', '{}', '', 4, 0), +(0, 'plg_behaviour_compat6', 'plugin', 'compat6', 'behaviour', 0, 0, 1, 0, 1, '', '{"classes_aliases":"0","legacy_classes":"1"}', '', 1, 0), +(0, 'plg_behaviour_taggable', 'plugin', 'taggable', 'behaviour', 0, 1, 1, 0, 1, '', '{}', '', 2, 0), +(0, 'plg_behaviour_versionable', 'plugin', 'versionable', 'behaviour', 0, 1, 1, 0, 1, '', '{}', '', 3, 0), (0, 'plg_content_confirmconsent', 'plugin', 'confirmconsent', 'content', 0, 0, 1, 0, 1, '', '{}', '', 1, 0), (0, 'plg_content_contact', 'plugin', 'contact', 'content', 0, 1, 1, 0, 1, '', '', '', 2, 0), (0, 'plg_content_emailcloak', 'plugin', 'emailcloak', 'content', 0, 1, 1, 0, 1, '', '{"mode":"1"}', '', 3, 0), @@ -305,14 +304,16 @@ INSERT INTO "#__extensions" ("package_id", "name", "type", "element", "folder", (0, 'plg_fields_integer', 'plugin', 'integer', 'fields', 0, 1, 1, 0, 1, '', '{"multiple":"0","first":"1","last":"100","step":"1"}', '', 6, 0), (0, 'plg_fields_list', 'plugin', 'list', 'fields', 0, 1, 1, 0, 1, '', '', '', 7, 0), (0, 'plg_fields_media', 'plugin', 'media', 'fields', 0, 1, 1, 0, 1, '', '', '', 8, 0), -(0, 'plg_fields_radio', 'plugin', 'radio', 'fields', 0, 1, 1, 0, 1, '', '', '', 9, 0), -(0, 'plg_fields_sql', 'plugin', 'sql', 'fields', 0, 1, 1, 0, 1, '', '', '', 10, 0), -(0, 'plg_fields_subform', 'plugin', 'subform', 'fields', 0, 1, 1, 0, 1, '', '', '', 11, 0), -(0, 'plg_fields_text', 'plugin', 'text', 'fields', 0, 1, 1, 0, 1, '', '', '', 12, 0), -(0, 'plg_fields_textarea', 'plugin', 'textarea', 'fields', 0, 1, 1, 0, 1, '', '{"rows":10,"cols":10,"maxlength":"","filter":"\\\\Joomla\\\\CMS\\\\Component\\\\ComponentHelper::filterText"}', '', 13, 0), -(0, 'plg_fields_url', 'plugin', 'url', 'fields', 0, 1, 1, 0, 1, '', '', '', 14, 0), -(0, 'plg_fields_user', 'plugin', 'user', 'fields', 0, 1, 1, 0, 1, '', '', '', 15, 0), -(0, 'plg_fields_usergrouplist', 'plugin', 'usergrouplist', 'fields', 0, 1, 1, 0, 1, '', '', '', 16, 0), +(0, 'plg_fields_note', 'plugin', 'note', 'fields', 0, 1, 1, 0, 1, '', '{"class":"alert alert-info","heading":"h4"}', '', 9, 0), +(0, 'plg_fields_number', 'plugin', 'number', 'fields', 0, 1, 1, 0, 1, '', '{"min":"1.0","max":"100.0","step":"0.1","currency":"0","position":"0","decimals":"2"}', '', 10, 0), +(0, 'plg_fields_radio', 'plugin', 'radio', 'fields', 0, 1, 1, 0, 1, '', '', '', 11, 0), +(0, 'plg_fields_sql', 'plugin', 'sql', 'fields', 0, 1, 1, 0, 1, '', '', '', 12, 0), +(0, 'plg_fields_subform', 'plugin', 'subform', 'fields', 0, 1, 1, 0, 1, '', '', '', 13, 0), +(0, 'plg_fields_text', 'plugin', 'text', 'fields', 0, 1, 1, 0, 1, '', '', '', 14, 0), +(0, 'plg_fields_textarea', 'plugin', 'textarea', 'fields', 0, 1, 1, 0, 1, '', '{"rows":10,"cols":10,"maxlength":"","filter":"\\\\Joomla\\\\CMS\\\\Component\\\\ComponentHelper::filterText"}', '', 15, 0), +(0, 'plg_fields_url', 'plugin', 'url', 'fields', 0, 1, 1, 0, 1, '', '', '', 16, 0), +(0, 'plg_fields_user', 'plugin', 'user', 'fields', 0, 1, 1, 0, 1, '', '', '', 17, 0), +(0, 'plg_fields_usergrouplist', 'plugin', 'usergrouplist', 'fields', 0, 1, 1, 0, 1, '', '', '', 18, 0), (0, 'plg_filesystem_local', 'plugin', 'local', 'filesystem', 0, 1, 1, 0, 1, '', '{}', '', 1, 0), (0, 'plg_finder_categories', 'plugin', 'categories', 'finder', 0, 1, 1, 0, 1, '', '', '', 1, 0), (0, 'plg_finder_contacts', 'plugin', 'contacts', 'finder', 0, 1, 1, 0, 1, '', '', '', 2, 0), @@ -420,7 +421,8 @@ INSERT INTO "#__extensions" ("package_id", "name", "type", "element", "folder", -- Templates INSERT INTO "#__extensions" ("package_id", "name", "type", "element", "folder", "client_id", "enabled", "access", "protected", "locked", "manifest_cache", "params", "custom_data", "ordering", "state") VALUES (0, 'atum', 'template', 'atum', '', 1, 1, 1, 0, 1, '', '', '', 0, 0), -(0, 'cassiopeia', 'template', 'cassiopeia', '', 0, 1, 1, 0, 1, '', '{"brand":"1","logoFile":"","siteTitle":"","siteDescription":"","useFontScheme":"0","colorName":"colors_standard","fluidContainer":"0","stickyHeader":0,"backTop":0}', '', 0, 0); +(0, 'cassiopeia', 'template', 'cassiopeia', '', 0, 1, 1, 0, 1, '', '{"brand":"1","logoFile":"","siteTitle":"","siteDescription":"","useFontScheme":"0","colorName":"colors_standard","fluidContainer":"0","stickyHeader":0,"backTop":0,"colorSettings":0,"fontSettings":0}', '', 0, 0), +(0, 'cassiopeia_extended', 'template', 'cassiopeia_extended', '', 0, 1, 1, 0, 1, '', '{"brand":"1","logoFile":"","siteTitle":"","siteDescription":"","useFontScheme":"0","systemFontBody":"","systemFontHeading":"","colorName":"colors_standard","fluidContainer":"0","stickyHeader":"0","backTop":"0","colorSettings":"0","headerbg":"rgb(193, 205, 207)","headercolor":"rgb(23, 23, 23)","bodybg":"rgb(254, 254, 254)","bodycolor":"rgb(23, 23, 23)","linkcolor":"rgb(29, 121, 137)","linkcolorh":"rgb(14, 59, 67)","btnbg":"rgb(206, 60, 55)","btnbgh":"rgb(131, 35, 32)","btncolor":"rgb(254, 254, 254)","btncolorh":"rgb(254, 254, 254)","footerbg":"rgb(29, 121, 137)","footercolor":"rgb(254, 254, 254)","fontSettings":"0","bodysize":"1","h1size":"2","h2size":"1.7","h3size":"1.5"}', '', 0, 0); -- Files Extensions INSERT INTO "#__extensions" ("package_id", "name", "type", "element", "folder", "client_id", "enabled", "access", "protected", "locked", "manifest_cache", "params", "custom_data", "ordering", "state") VALUES @@ -862,9 +864,10 @@ CREATE INDEX "#__template_styles_idx_client_id_home" ON "#__template_styles" ("c -- INSERT INTO "#__template_styles" ("id", "template", "client_id", "home", "title", "inheritable", "parent", "params") VALUES (10, 'atum', 1, '1', 'Atum - Default', 1, '', '{"hue":"hsl(214, 63%, 20%)","bg-light":"#f0f4fb","text-dark":"#495057","text-light":"#ffffff","link-color":"#2a69b8","special-color":"#001b4c","colorScheme":"os","monochrome":"0","loginLogo":"","loginLogoAlt":"","logoBrandLarge":"","logoBrandLargeAlt":"","logoBrandSmall":"","logoBrandSmallAlt":""}'), -(11, 'cassiopeia', 0, '1', 'Cassiopeia - Default', 1, '', '{"brand":"1","logoFile":"","siteTitle":"","siteDescription":"","useFontScheme":"0","colorName":"colors_standard","fluidContainer":"0","stickyHeader":0,"backTop":0}'); +(11, 'cassiopeia', 0, '1', 'Cassiopeia - Default', 1, '', '{"brand":"1","logoFile":"","siteTitle":"","siteDescription":"","useFontScheme":"0","colorName":"colors_standard","fluidContainer":"0","stickyHeader":0,"backTop":0}'), +(12, 'cassiopeia_extended', 0, '0', 'Cassiopeia Extended - Default', 0, 'cassiopeia', '{"brand":"1","logoFile":"","siteTitle":"","siteDescription":"","useFontScheme":"0","systemFontBody":"","systemFontHeading":"","colorName":"colors_standard","fluidContainer":"0","stickyHeader":"0","backTop":"0","colorSettings":"0","headerbg":"rgb(193, 205, 207)","headercolor":"rgb(23, 23, 23)","bodybg":"rgb(254, 254, 254)","bodycolor":"rgb(23, 23, 23)","linkcolor":"rgb(29, 121, 137)","linkcolorh":"rgb(14, 59, 67)","btnbg":"rgb(206, 60, 55)","btnbgh":"rgb(131, 35, 32)","btncolor":"rgb(254, 254, 254)","btncolorh":"rgb(254, 254, 254)","footerbg":"rgb(29, 121, 137)","footercolor":"rgb(254, 254, 254)","fontSettings":"0","bodysize":"1","h1size":"2","h2size":"1.7","h3size":"1.5"}'); -SELECT setval('#__template_styles_id_seq', 12, false); +SELECT setval('#__template_styles_id_seq', 13, false); -- -- Table structure for table `#__updates` @@ -940,7 +943,7 @@ COMMENT ON TABLE "#__update_sites" IS 'Update Sites'; INSERT INTO "#__update_sites" ("update_site_id", "name", "type", "location", "enabled", "last_check_timestamp") VALUES (1, 'Joomla! Core', 'tuf', 'https://update.joomla.org/cms/', 1, 0), -(2, 'Accredited Joomla! Translations', 'collection', 'https://update.joomla.org/language/translationlist_5.xml', 1, 0), +(2, 'Accredited Joomla! Translations', 'collection', 'https://update.joomla.org/language/translationlist_6.xml', 1, 0), (3, 'Joomla! Update Component', 'extension', 'https://update.joomla.org/core/extensions/com_joomlaupdate.xml', 1, 0); SELECT setval('#__update_sites_update_site_id_seq', 4, false); diff --git a/installation/sql/postgresql/supports.sql b/installation/sql/postgresql/supports.sql index 0a35f22d80db7..5a57faa1d1245 100644 --- a/installation/sql/postgresql/supports.sql +++ b/installation/sql/postgresql/supports.sql @@ -99,19 +99,19 @@ COMMENT ON COLUMN "#__content_types"."content_history_options" IS 'JSON string f -- INSERT INTO "#__content_types" ("type_id", "type_title", "type_alias", "table", "rules", "field_mappings", "router", "content_history_options") VALUES -(1, 'Article', 'com_content.article', '{"special":{"dbtable":"#__content","key":"id","type":"ArticleTable","prefix":"Joomla\\\\Component\\\\Content\\\\Administrator\\\\Table\\\\","config":"array()"},"common":{"dbtable":"#__ucm_content","key":"ucm_id","type":"Corecontent","prefix":"Joomla\\\\CMS\\\\Table\\\\","config":"array()"}}', '', '{"common":{"core_content_item_id":"id","core_title":"title","core_state":"state","core_alias":"alias","core_created_user_id":"created_by","core_created_by_alias":"created_by_alias","core_created_time":"created","core_modified_time":"modified","core_body":"introtext", "core_hits":"hits","core_publish_up":"publish_up","core_publish_down":"publish_down","core_access":"access", "core_params":"attribs", "core_featured":"featured", "core_metadata":"metadata", "core_language":"language", "core_images":"images", "core_urls":"urls", "core_version":"version", "core_ordering":"ordering", "core_metakey":"metakey", "core_metadesc":"metadesc", "core_catid":"catid", "asset_id":"asset_id", "note":"note"}, "special":{"fulltext":"fulltext"}}', 'ContentHelperRoute::getArticleRoute', '{"formFile":"administrator\\/components\\/com_content\\/forms\\/article.xml", "hideFields":["asset_id","checked_out","checked_out_time","version"],"ignoreChanges":["modified_by", "modified", "checked_out", "checked_out_time", "version", "hits", "ordering"],"convertToInt":["publish_up", "publish_down", "featured", "ordering"],"displayLookup":[{"sourceColumn":"catid","targetTable":"#__categories","targetColumn":"id","displayColumn":"title"},{"sourceColumn":"created_by","targetTable":"#__users","targetColumn":"id","displayColumn":"name"},{"sourceColumn":"access","targetTable":"#__viewlevels","targetColumn":"id","displayColumn":"title"},{"sourceColumn":"modified_by","targetTable":"#__users","targetColumn":"id","displayColumn":"name"} ]}'), -(2, 'Contact', 'com_contact.contact', '{"special":{"dbtable":"#__contact_details","key":"id","type":"ContactTable","prefix":"Joomla\\\\Component\\\\Contact\\\\Administrator\\\\Table\\\\","config":"array()"},"common":{"dbtable":"#__ucm_content","key":"ucm_id","type":"Corecontent","prefix":"Joomla\\\\CMS\\\\Table\\\\","config":"array()"}}', '', '{"common":{"core_content_item_id":"id","core_title":"name","core_state":"published","core_alias":"alias","core_created_time":"created","core_modified_time":"modified","core_body":"address", "core_hits":"hits","core_publish_up":"publish_up","core_publish_down":"publish_down","core_access":"access", "core_params":"params", "core_featured":"featured", "core_metadata":"metadata", "core_language":"language", "core_images":"image", "core_urls":"webpage", "core_version":"version", "core_ordering":"ordering", "core_metakey":"metakey", "core_metadesc":"metadesc", "core_catid":"catid", "asset_id":"null"}, "special":{"con_position":"con_position","suburb":"suburb","state":"state","country":"country","postcode":"postcode","telephone":"telephone","fax":"fax","misc":"misc","email_to":"email_to","default_con":"default_con","user_id":"user_id","mobile":"mobile","sortname1":"sortname1","sortname2":"sortname2","sortname3":"sortname3"}}', 'ContactHelperRoute::getContactRoute', '{"formFile":"administrator\\/components\\/com_contact\\/forms\\/contact.xml","hideFields":["default_con","checked_out","checked_out_time","version"],"ignoreChanges":["modified_by", "modified", "checked_out", "checked_out_time", "version", "hits"],"convertToInt":["publish_up", "publish_down", "featured", "ordering"], "displayLookup":[ {"sourceColumn":"created_by","targetTable":"#__users","targetColumn":"id","displayColumn":"name"},{"sourceColumn":"catid","targetTable":"#__categories","targetColumn":"id","displayColumn":"title"},{"sourceColumn":"modified_by","targetTable":"#__users","targetColumn":"id","displayColumn":"name"},{"sourceColumn":"access","targetTable":"#__viewlevels","targetColumn":"id","displayColumn":"title"},{"sourceColumn":"user_id","targetTable":"#__users","targetColumn":"id","displayColumn":"name"} ] }'), -(3, 'Newsfeed', 'com_newsfeeds.newsfeed', '{"special":{"dbtable":"#__newsfeeds","key":"id","type":"NewsfeedTable","prefix":"Joomla\\\\Component\\\\Newsfeeds\\\\Administrator\\\\Table\\\\","config":"array()"},"common":{"dbtable":"#__ucm_content","key":"ucm_id","type":"Corecontent","prefix":"Joomla\\\\CMS\\\\Table\\\\","config":"array()"}}', '', '{"common":{"core_content_item_id":"id","core_title":"name","core_state":"published","core_alias":"alias","core_created_time":"created","core_modified_time":"modified","core_body":"description", "core_hits":"hits","core_publish_up":"publish_up","core_publish_down":"publish_down","core_access":"access", "core_params":"params", "core_featured":"featured", "core_metadata":"metadata", "core_language":"language", "core_images":"images", "core_urls":"link", "core_version":"version", "core_ordering":"ordering", "core_metakey":"metakey", "core_metadesc":"metadesc", "core_catid":"catid", "asset_id":"null"}, "special":{"numarticles":"numarticles","cache_time":"cache_time","rtl":"rtl"}}', 'NewsfeedsHelperRoute::getNewsfeedRoute', '{"formFile":"administrator\\/components\\/com_newsfeeds\\/forms\\/newsfeed.xml","hideFields":["asset_id","checked_out","checked_out_time","version"],"ignoreChanges":["modified_by", "modified", "checked_out", "checked_out_time", "version", "hits"],"convertToInt":["publish_up", "publish_down", "featured", "ordering"],"displayLookup":[{"sourceColumn":"catid","targetTable":"#__categories","targetColumn":"id","displayColumn":"title"},{"sourceColumn":"created_by","targetTable":"#__users","targetColumn":"id","displayColumn":"name"},{"sourceColumn":"access","targetTable":"#__viewlevels","targetColumn":"id","displayColumn":"title"},{"sourceColumn":"modified_by","targetTable":"#__users","targetColumn":"id","displayColumn":"name"} ]}'), +(1, 'Article', 'com_content.article', '{"special":{"dbtable":"#__content","key":"id","type":"ArticleTable","prefix":"Joomla\\\\Component\\\\Content\\\\Administrator\\\\Table\\\\","config":"array()"},"common":{"dbtable":"#__ucm_content","key":"ucm_id","type":"Corecontent","prefix":"Joomla\\\\CMS\\\\Table\\\\","config":"array()"}}', '', '{"common":{"core_content_item_id":"id","core_title":"title","core_state":"state","core_alias":"alias","core_created_user_id":"created_by","core_created_by_alias":"created_by_alias","core_created_time":"created","core_modified_time":"modified","core_body":"introtext", "core_hits":"hits","core_publish_up":"publish_up","core_publish_down":"publish_down","core_access":"access", "core_params":"attribs", "core_featured":"featured", "core_metadata":"metadata", "core_language":"language", "core_images":"images", "core_urls":"urls", "core_version":"version", "core_ordering":"ordering", "core_metakey":"metakey", "core_metadesc":"metadesc", "core_catid":"catid", "asset_id":"asset_id", "note":"note"}, "special":{"fulltext":"fulltext"}}', 'ContentHelperRoute::getArticleRoute', '{"formFile":"administrator\\/components\\/com_content\\/forms\\/article.xml", "hideFields":["asset_id","checked_out","checked_out_time","version"],"ignoreChanges":["modified_by", "modified", "checked_out", "checked_out_time", "version", "hits", "ordering"],"convertToInt":["publish_up", "publish_down", "featured", "ordering"],"displayLookup":[{"sourceColumn":"catid","targetTable":"#__categories","targetColumn":"id","displayColumn":"title"},{"sourceColumn":"created_by","targetTable":"#__users","targetColumn":"id","displayColumn":"name"},{"sourceColumn":"access","targetTable":"#__viewlevels","targetColumn":"id","displayColumn":"title"},{"sourceColumn":"modified_by","targetTable":"#__users","targetColumn":"id","displayColumn":"name"},{"sourceColumn":"tags","targetTable":"#__tags","targetColumn":"id","displayColumn":"title"} ]}'), +(2, 'Contact', 'com_contact.contact', '{"special":{"dbtable":"#__contact_details","key":"id","type":"ContactTable","prefix":"Joomla\\\\Component\\\\Contact\\\\Administrator\\\\Table\\\\","config":"array()"},"common":{"dbtable":"#__ucm_content","key":"ucm_id","type":"Corecontent","prefix":"Joomla\\\\CMS\\\\Table\\\\","config":"array()"}}', '', '{"common":{"core_content_item_id":"id","core_title":"name","core_state":"published","core_alias":"alias","core_created_time":"created","core_modified_time":"modified","core_body":"address", "core_hits":"hits","core_publish_up":"publish_up","core_publish_down":"publish_down","core_access":"access", "core_params":"params", "core_featured":"featured", "core_metadata":"metadata", "core_language":"language", "core_images":"image", "core_urls":"webpage", "core_version":"version", "core_ordering":"ordering", "core_metakey":"metakey", "core_metadesc":"metadesc", "core_catid":"catid", "asset_id":"null"}, "special":{"con_position":"con_position","suburb":"suburb","state":"state","country":"country","postcode":"postcode","telephone":"telephone","fax":"fax","misc":"misc","email_to":"email_to","default_con":"default_con","user_id":"user_id","mobile":"mobile","sortname1":"sortname1","sortname2":"sortname2","sortname3":"sortname3"}}', 'ContactHelperRoute::getContactRoute', '{"formFile":"administrator\\/components\\/com_contact\\/forms\\/contact.xml","hideFields":["default_con","checked_out","checked_out_time","version"],"ignoreChanges":["modified_by", "modified", "checked_out", "checked_out_time", "version", "hits"],"convertToInt":["publish_up", "publish_down", "featured", "ordering"], "displayLookup":[ {"sourceColumn":"created_by","targetTable":"#__users","targetColumn":"id","displayColumn":"name"},{"sourceColumn":"catid","targetTable":"#__categories","targetColumn":"id","displayColumn":"title"},{"sourceColumn":"modified_by","targetTable":"#__users","targetColumn":"id","displayColumn":"name"},{"sourceColumn":"access","targetTable":"#__viewlevels","targetColumn":"id","displayColumn":"title"},{"sourceColumn":"user_id","targetTable":"#__users","targetColumn":"id","displayColumn":"name"},{"sourceColumn":"tags","targetTable":"#__tags","targetColumn":"id","displayColumn":"title"} ] }'), +(3, 'Newsfeed', 'com_newsfeeds.newsfeed', '{"special":{"dbtable":"#__newsfeeds","key":"id","type":"NewsfeedTable","prefix":"Joomla\\\\Component\\\\Newsfeeds\\\\Administrator\\\\Table\\\\","config":"array()"},"common":{"dbtable":"#__ucm_content","key":"ucm_id","type":"Corecontent","prefix":"Joomla\\\\CMS\\\\Table\\\\","config":"array()"}}', '', '{"common":{"core_content_item_id":"id","core_title":"name","core_state":"published","core_alias":"alias","core_created_time":"created","core_modified_time":"modified","core_body":"description", "core_hits":"hits","core_publish_up":"publish_up","core_publish_down":"publish_down","core_access":"access", "core_params":"params", "core_featured":"featured", "core_metadata":"metadata", "core_language":"language", "core_images":"images", "core_urls":"link", "core_version":"version", "core_ordering":"ordering", "core_metakey":"metakey", "core_metadesc":"metadesc", "core_catid":"catid", "asset_id":"null"}, "special":{"numarticles":"numarticles","cache_time":"cache_time","rtl":"rtl"}}', 'NewsfeedsHelperRoute::getNewsfeedRoute', '{"formFile":"administrator\\/components\\/com_newsfeeds\\/forms\\/newsfeed.xml","hideFields":["asset_id","checked_out","checked_out_time","version"],"ignoreChanges":["modified_by", "modified", "checked_out", "checked_out_time", "version", "hits"],"convertToInt":["publish_up", "publish_down", "featured", "ordering"],"displayLookup":[{"sourceColumn":"catid","targetTable":"#__categories","targetColumn":"id","displayColumn":"title"},{"sourceColumn":"created_by","targetTable":"#__users","targetColumn":"id","displayColumn":"name"},{"sourceColumn":"access","targetTable":"#__viewlevels","targetColumn":"id","displayColumn":"title"},{"sourceColumn":"modified_by","targetTable":"#__users","targetColumn":"id","displayColumn":"name"},{"sourceColumn":"tags","targetTable":"#__tags","targetColumn":"id","displayColumn":"title"} ]}'), (4, 'User', 'com_users.user', '{"special":{"dbtable":"#__users","key":"id","type":"User","prefix":"Joomla\\\\CMS\\\\Table\\\\","config":"array()"},"common":{"dbtable":"#__ucm_content","key":"ucm_id","type":"Corecontent","prefix":"Joomla\\\\CMS\\\\Table\\\\","config":"array()"}}', '', '{"common":{"core_content_item_id":"id","core_title":"name","core_state":"null","core_alias":"username","core_created_time":"registerDate","core_modified_time":"lastvisitDate","core_body":"null", "core_hits":"null","core_publish_up":"null","core_publish_down":"null","access":"null", "core_params":"params", "core_featured":"null", "core_metadata":"null", "core_language":"null", "core_images":"null", "core_urls":"null", "core_version":"null", "core_ordering":"null", "core_metakey":"null", "core_metadesc":"null", "core_catid":"null", "asset_id":"null"}, "special":{}}', '', ''), -(5, 'Article Category', 'com_content.category', '{"special":{"dbtable":"#__categories","key":"id","type":"CategoryTable","prefix":"Joomla\\\\Component\\\\Categories\\\\Administrator\\\\Table\\\\","config":"array()"},"common":{"dbtable":"#__ucm_content","key":"ucm_id","type":"Corecontent","prefix":"Joomla\\\\CMS\\\\Table\\\\","config":"array()"}}', '', '{"common":{"core_content_item_id":"id","core_title":"title","core_state":"published","core_alias":"alias","core_created_time":"created_time","core_modified_time":"modified_time","core_body":"description", "core_hits":"hits","core_publish_up":"null","core_publish_down":"null","core_access":"access", "core_params":"params", "core_featured":"null", "core_metadata":"metadata", "core_language":"language", "core_images":"null", "core_urls":"null", "core_version":"version", "core_ordering":"null", "core_metakey":"metakey", "core_metadesc":"metadesc", "core_catid":"parent_id", "asset_id":"asset_id"}, "special":{"parent_id":"parent_id","lft":"lft","rgt":"rgt","level":"level","path":"path","extension":"extension","note":"note"}}', 'ContentHelperRoute::getCategoryRoute', '{"formFile":"administrator\\/components\\/com_categories\\/forms\\/category.xml", "hideFields":["asset_id","checked_out","checked_out_time","version","lft","rgt","level","path","extension"], "ignoreChanges":["modified_user_id", "modified_time", "checked_out", "checked_out_time", "version", "hits", "path"],"convertToInt":["publish_up", "publish_down"], "displayLookup":[{"sourceColumn":"created_user_id","targetTable":"#__users","targetColumn":"id","displayColumn":"name"},{"sourceColumn":"access","targetTable":"#__viewlevels","targetColumn":"id","displayColumn":"title"},{"sourceColumn":"modified_user_id","targetTable":"#__users","targetColumn":"id","displayColumn":"name"},{"sourceColumn":"parent_id","targetTable":"#__categories","targetColumn":"id","displayColumn":"title"}]}'), -(6, 'Contact Category', 'com_contact.category', '{"special":{"dbtable":"#__categories","key":"id","type":"CategoryTable","prefix":"Joomla\\\\Component\\\\Categories\\\\Administrator\\\\Table\\\\","config":"array()"},"common":{"dbtable":"#__ucm_content","key":"ucm_id","type":"Corecontent","prefix":"Joomla\\\\CMS\\\\Table\\\\","config":"array()"}}', '', '{"common":{"core_content_item_id":"id","core_title":"title","core_state":"published","core_alias":"alias","core_created_time":"created_time","core_modified_time":"modified_time","core_body":"description", "core_hits":"hits","core_publish_up":"null","core_publish_down":"null","core_access":"access", "core_params":"params", "core_featured":"null", "core_metadata":"metadata", "core_language":"language", "core_images":"null", "core_urls":"null", "core_version":"version", "core_ordering":"null", "core_metakey":"metakey", "core_metadesc":"metadesc", "core_catid":"parent_id", "asset_id":"asset_id"}, "special":{"parent_id":"parent_id","lft":"lft","rgt":"rgt","level":"level","path":"path","extension":"extension","note":"note"}}', 'ContactHelperRoute::getCategoryRoute', '{"formFile":"administrator\\/components\\/com_categories\\/forms\\/category.xml", "hideFields":["asset_id","checked_out","checked_out_time","version","lft","rgt","level","path","extension"], "ignoreChanges":["modified_user_id", "modified_time", "checked_out", "checked_out_time", "version", "hits", "path"],"convertToInt":["publish_up", "publish_down"], "displayLookup":[{"sourceColumn":"created_user_id","targetTable":"#__users","targetColumn":"id","displayColumn":"name"},{"sourceColumn":"access","targetTable":"#__viewlevels","targetColumn":"id","displayColumn":"title"},{"sourceColumn":"modified_user_id","targetTable":"#__users","targetColumn":"id","displayColumn":"name"},{"sourceColumn":"parent_id","targetTable":"#__categories","targetColumn":"id","displayColumn":"title"}]}'), -(7, 'Newsfeeds Category', 'com_newsfeeds.category', '{"special":{"dbtable":"#__categories","key":"id","type":"CategoryTable","prefix":"Joomla\\\\Component\\\\Categories\\\\Administrator\\\\Table\\\\","config":"array()"},"common":{"dbtable":"#__ucm_content","key":"ucm_id","type":"Corecontent","prefix":"Joomla\\\\CMS\\\\Table\\\\","config":"array()"}}', '', '{"common":{"core_content_item_id":"id","core_title":"title","core_state":"published","core_alias":"alias","core_created_time":"created_time","core_modified_time":"modified_time","core_body":"description", "core_hits":"hits","core_publish_up":"null","core_publish_down":"null","core_access":"access", "core_params":"params", "core_featured":"null", "core_metadata":"metadata", "core_language":"language", "core_images":"null", "core_urls":"null", "core_version":"version", "core_ordering":"null", "core_metakey":"metakey", "core_metadesc":"metadesc", "core_catid":"parent_id", "asset_id":"asset_id"}, "special":{"parent_id":"parent_id","lft":"lft","rgt":"rgt","level":"level","path":"path","extension":"extension","note":"note"}}', 'NewsfeedsHelperRoute::getCategoryRoute', '{"formFile":"administrator\\/components\\/com_categories\\/forms\\/category.xml", "hideFields":["asset_id","checked_out","checked_out_time","version","lft","rgt","level","path","extension"], "ignoreChanges":["modified_user_id", "modified_time", "checked_out", "checked_out_time", "version", "hits", "path"],"convertToInt":["publish_up", "publish_down"], "displayLookup":[{"sourceColumn":"created_user_id","targetTable":"#__users","targetColumn":"id","displayColumn":"name"},{"sourceColumn":"access","targetTable":"#__viewlevels","targetColumn":"id","displayColumn":"title"},{"sourceColumn":"modified_user_id","targetTable":"#__users","targetColumn":"id","displayColumn":"name"},{"sourceColumn":"parent_id","targetTable":"#__categories","targetColumn":"id","displayColumn":"title"}]}'), +(5, 'Article Category', 'com_content.category', '{"special":{"dbtable":"#__categories","key":"id","type":"CategoryTable","prefix":"Joomla\\\\Component\\\\Categories\\\\Administrator\\\\Table\\\\","config":"array()"},"common":{"dbtable":"#__ucm_content","key":"ucm_id","type":"Corecontent","prefix":"Joomla\\\\CMS\\\\Table\\\\","config":"array()"}}', '', '{"common":{"core_content_item_id":"id","core_title":"title","core_state":"published","core_alias":"alias","core_created_time":"created_time","core_modified_time":"modified_time","core_body":"description", "core_hits":"hits","core_publish_up":"null","core_publish_down":"null","core_access":"access", "core_params":"params", "core_featured":"null", "core_metadata":"metadata", "core_language":"language", "core_images":"null", "core_urls":"null", "core_version":"version", "core_ordering":"null", "core_metakey":"metakey", "core_metadesc":"metadesc", "core_catid":"parent_id", "asset_id":"asset_id"}, "special":{"parent_id":"parent_id","lft":"lft","rgt":"rgt","level":"level","path":"path","extension":"extension","note":"note"}}', 'ContentHelperRoute::getCategoryRoute', '{"formFile":"administrator\\/components\\/com_categories\\/forms\\/category.xml", "hideFields":["asset_id","checked_out","checked_out_time","version","lft","rgt","level","path","extension"], "ignoreChanges":["modified_user_id", "modified_time", "checked_out", "checked_out_time", "version", "hits", "path"],"convertToInt":["publish_up", "publish_down"], "displayLookup":[{"sourceColumn":"created_user_id","targetTable":"#__users","targetColumn":"id","displayColumn":"name"},{"sourceColumn":"access","targetTable":"#__viewlevels","targetColumn":"id","displayColumn":"title"},{"sourceColumn":"modified_user_id","targetTable":"#__users","targetColumn":"id","displayColumn":"name"},{"sourceColumn":"parent_id","targetTable":"#__categories","targetColumn":"id","displayColumn":"title"},{"sourceColumn":"tags","targetTable":"#__tags","targetColumn":"id","displayColumn":"title"}]}'), +(6, 'Contact Category', 'com_contact.category', '{"special":{"dbtable":"#__categories","key":"id","type":"CategoryTable","prefix":"Joomla\\\\Component\\\\Categories\\\\Administrator\\\\Table\\\\","config":"array()"},"common":{"dbtable":"#__ucm_content","key":"ucm_id","type":"Corecontent","prefix":"Joomla\\\\CMS\\\\Table\\\\","config":"array()"}}', '', '{"common":{"core_content_item_id":"id","core_title":"title","core_state":"published","core_alias":"alias","core_created_time":"created_time","core_modified_time":"modified_time","core_body":"description", "core_hits":"hits","core_publish_up":"null","core_publish_down":"null","core_access":"access", "core_params":"params", "core_featured":"null", "core_metadata":"metadata", "core_language":"language", "core_images":"null", "core_urls":"null", "core_version":"version", "core_ordering":"null", "core_metakey":"metakey", "core_metadesc":"metadesc", "core_catid":"parent_id", "asset_id":"asset_id"}, "special":{"parent_id":"parent_id","lft":"lft","rgt":"rgt","level":"level","path":"path","extension":"extension","note":"note"}}', 'ContactHelperRoute::getCategoryRoute', '{"formFile":"administrator\\/components\\/com_categories\\/forms\\/category.xml", "hideFields":["asset_id","checked_out","checked_out_time","version","lft","rgt","level","path","extension"], "ignoreChanges":["modified_user_id", "modified_time", "checked_out", "checked_out_time", "version", "hits", "path"],"convertToInt":["publish_up", "publish_down"], "displayLookup":[{"sourceColumn":"created_user_id","targetTable":"#__users","targetColumn":"id","displayColumn":"name"},{"sourceColumn":"access","targetTable":"#__viewlevels","targetColumn":"id","displayColumn":"title"},{"sourceColumn":"modified_user_id","targetTable":"#__users","targetColumn":"id","displayColumn":"name"},{"sourceColumn":"parent_id","targetTable":"#__categories","targetColumn":"id","displayColumn":"title"},{"sourceColumn":"tags","targetTable":"#__tags","targetColumn":"id","displayColumn":"title"}]}'), +(7, 'Newsfeeds Category', 'com_newsfeeds.category', '{"special":{"dbtable":"#__categories","key":"id","type":"CategoryTable","prefix":"Joomla\\\\Component\\\\Categories\\\\Administrator\\\\Table\\\\","config":"array()"},"common":{"dbtable":"#__ucm_content","key":"ucm_id","type":"Corecontent","prefix":"Joomla\\\\CMS\\\\Table\\\\","config":"array()"}}', '', '{"common":{"core_content_item_id":"id","core_title":"title","core_state":"published","core_alias":"alias","core_created_time":"created_time","core_modified_time":"modified_time","core_body":"description", "core_hits":"hits","core_publish_up":"null","core_publish_down":"null","core_access":"access", "core_params":"params", "core_featured":"null", "core_metadata":"metadata", "core_language":"language", "core_images":"null", "core_urls":"null", "core_version":"version", "core_ordering":"null", "core_metakey":"metakey", "core_metadesc":"metadesc", "core_catid":"parent_id", "asset_id":"asset_id"}, "special":{"parent_id":"parent_id","lft":"lft","rgt":"rgt","level":"level","path":"path","extension":"extension","note":"note"}}', 'NewsfeedsHelperRoute::getCategoryRoute', '{"formFile":"administrator\\/components\\/com_categories\\/forms\\/category.xml", "hideFields":["asset_id","checked_out","checked_out_time","version","lft","rgt","level","path","extension"], "ignoreChanges":["modified_user_id", "modified_time", "checked_out", "checked_out_time", "version", "hits", "path"],"convertToInt":["publish_up", "publish_down"], "displayLookup":[{"sourceColumn":"created_user_id","targetTable":"#__users","targetColumn":"id","displayColumn":"name"},{"sourceColumn":"access","targetTable":"#__viewlevels","targetColumn":"id","displayColumn":"title"},{"sourceColumn":"modified_user_id","targetTable":"#__users","targetColumn":"id","displayColumn":"name"},{"sourceColumn":"parent_id","targetTable":"#__categories","targetColumn":"id","displayColumn":"title"},{"sourceColumn":"tags","targetTable":"#__tags","targetColumn":"id","displayColumn":"title"}]}'), (8, 'Tag', 'com_tags.tag', '{"special":{"dbtable":"#__tags","key":"tag_id","type":"TagTable","prefix":"Joomla\\\\Component\\\\Tags\\\\Administrator\\\\Table\\\\","config":"array()"},"common":{"dbtable":"#__ucm_content","key":"ucm_id","type":"Corecontent","prefix":"Joomla\\\\CMS\\\\Table\\\\","config":"array()"}}', '', '{"common":{"core_content_item_id":"id","core_title":"title","core_state":"published","core_alias":"alias","core_created_time":"created_time","core_modified_time":"modified_time","core_body":"description", "core_hits":"hits","core_publish_up":"null","core_publish_down":"null","core_access":"access", "core_params":"params", "core_featured":"featured", "core_metadata":"metadata", "core_language":"language", "core_images":"images", "core_urls":"urls", "core_version":"version", "core_ordering":"null", "core_metakey":"metakey", "core_metadesc":"metadesc", "core_catid":"null", "asset_id":"null"}, "special":{"parent_id":"parent_id","lft":"lft","rgt":"rgt","level":"level","path":"path"}}', 'TagsHelperRoute::getTagRoute', '{"formFile":"administrator\\/components\\/com_tags\\/forms\\/tag.xml", "hideFields":["checked_out","checked_out_time","version", "lft", "rgt", "level", "path", "urls", "publish_up", "publish_down"],"ignoreChanges":["modified_user_id", "modified_time", "checked_out", "checked_out_time", "version", "hits", "path"],"convertToInt":["publish_up", "publish_down"], "displayLookup":[{"sourceColumn":"created_user_id","targetTable":"#__users","targetColumn":"id","displayColumn":"name"}, {"sourceColumn":"access","targetTable":"#__viewlevels","targetColumn":"id","displayColumn":"title"}, {"sourceColumn":"modified_user_id","targetTable":"#__users","targetColumn":"id","displayColumn":"name"}]}'), (9, 'Banner', 'com_banners.banner', '{"special":{"dbtable":"#__banners","key":"id","type":"BannerTable","prefix":"Joomla\\\\Component\\\\Banners\\\\Administrator\\\\Table\\\\","config":"array()"},"common":{"dbtable":"#__ucm_content","key":"ucm_id","type":"Corecontent","prefix":"Joomla\\\\CMS\\\\Table\\\\","config":"array()"}}', '', '{"common":{"core_content_item_id":"id","core_title":"name","core_state":"published","core_alias":"alias","core_created_time":"created","core_modified_time":"modified","core_body":"description", "core_hits":"null","core_publish_up":"publish_up","core_publish_down":"publish_down","core_access":"access", "core_params":"params", "core_featured":"null", "core_metadata":"metadata", "core_language":"language", "core_images":"images", "core_urls":"link", "core_version":"version", "core_ordering":"ordering", "core_metakey":"metakey", "core_metadesc":"metadesc", "core_catid":"catid", "asset_id":"null"}, "special":{"imptotal":"imptotal", "impmade":"impmade", "clicks":"clicks", "clickurl":"clickurl", "custombannercode":"custombannercode", "cid":"cid", "purchase_type":"purchase_type", "track_impressions":"track_impressions", "track_clicks":"track_clicks"}}', '','{"formFile":"administrator\\/components\\/com_banners\\/forms\\/banner.xml", "hideFields":["checked_out","checked_out_time","version", "reset"],"ignoreChanges":["modified_by", "modified", "checked_out", "checked_out_time", "version", "imptotal", "impmade", "reset"], "convertToInt":["publish_up", "publish_down", "ordering"], "displayLookup":[{"sourceColumn":"catid","targetTable":"#__categories","targetColumn":"id","displayColumn":"title"}, {"sourceColumn":"cid","targetTable":"#__banner_clients","targetColumn":"id","displayColumn":"name"}, {"sourceColumn":"created_by","targetTable":"#__users","targetColumn":"id","displayColumn":"name"},{"sourceColumn":"modified_by","targetTable":"#__users","targetColumn":"id","displayColumn":"name"} ]}'), -(10, 'Banners Category', 'com_banners.category', '{"special":{"dbtable":"#__categories","key":"id","type":"CategoryTable","prefix":"Joomla\\\\Component\\\\Categories\\\\Administrator\\\\Table\\\\","config":"array()"},"common":{"dbtable":"#__ucm_content","key":"ucm_id","type":"Corecontent","prefix":"Joomla\\\\CMS\\\\Table\\\\","config":"array()"}}', '', '{"common":{"core_content_item_id":"id","core_title":"title","core_state":"published","core_alias":"alias","core_created_time":"created_time","core_modified_time":"modified_time","core_body":"description", "core_hits":"hits","core_publish_up":"null","core_publish_down":"null","core_access":"access", "core_params":"params", "core_featured":"null", "core_metadata":"metadata", "core_language":"language", "core_images":"null", "core_urls":"null", "core_version":"version", "core_ordering":"null", "core_metakey":"metakey", "core_metadesc":"metadesc", "core_catid":"parent_id", "asset_id":"asset_id"}, "special": {"parent_id":"parent_id","lft":"lft","rgt":"rgt","level":"level","path":"path","extension":"extension","note":"note"}}','','{"formFile":"administrator\\/components\\/com_categories\\/forms\\/category.xml", "hideFields":["asset_id","checked_out","checked_out_time","version","lft","rgt","level","path","extension"], "ignoreChanges":["modified_user_id", "modified_time", "checked_out", "checked_out_time", "version", "hits", "path"], "convertToInt":["publish_up", "publish_down"], "displayLookup":[{"sourceColumn":"created_user_id","targetTable":"#__users","targetColumn":"id","displayColumn":"name"},{"sourceColumn":"access","targetTable":"#__viewlevels","targetColumn":"id","displayColumn":"title"},{"sourceColumn":"modified_user_id","targetTable":"#__users","targetColumn":"id","displayColumn":"name"},{"sourceColumn":"parent_id","targetTable":"#__categories","targetColumn":"id","displayColumn":"title"}]}'), +(10, 'Banners Category', 'com_banners.category', '{"special":{"dbtable":"#__categories","key":"id","type":"CategoryTable","prefix":"Joomla\\\\Component\\\\Categories\\\\Administrator\\\\Table\\\\","config":"array()"},"common":{"dbtable":"#__ucm_content","key":"ucm_id","type":"Corecontent","prefix":"Joomla\\\\CMS\\\\Table\\\\","config":"array()"}}', '', '{"common":{"core_content_item_id":"id","core_title":"title","core_state":"published","core_alias":"alias","core_created_time":"created_time","core_modified_time":"modified_time","core_body":"description", "core_hits":"hits","core_publish_up":"null","core_publish_down":"null","core_access":"access", "core_params":"params", "core_featured":"null", "core_metadata":"metadata", "core_language":"language", "core_images":"null", "core_urls":"null", "core_version":"version", "core_ordering":"null", "core_metakey":"metakey", "core_metadesc":"metadesc", "core_catid":"parent_id", "asset_id":"asset_id"}, "special": {"parent_id":"parent_id","lft":"lft","rgt":"rgt","level":"level","path":"path","extension":"extension","note":"note"}}','','{"formFile":"administrator\\/components\\/com_categories\\/forms\\/category.xml", "hideFields":["asset_id","checked_out","checked_out_time","version","lft","rgt","level","path","extension"], "ignoreChanges":["modified_user_id", "modified_time", "checked_out", "checked_out_time", "version", "hits", "path"], "convertToInt":["publish_up", "publish_down"], "displayLookup":[{"sourceColumn":"created_user_id","targetTable":"#__users","targetColumn":"id","displayColumn":"name"},{"sourceColumn":"access","targetTable":"#__viewlevels","targetColumn":"id","displayColumn":"title"},{"sourceColumn":"modified_user_id","targetTable":"#__users","targetColumn":"id","displayColumn":"name"},{"sourceColumn":"parent_id","targetTable":"#__categories","targetColumn":"id","displayColumn":"title"},{"sourceColumn":"tags","targetTable":"#__tags","targetColumn":"id","displayColumn":"title"}]}'), (11, 'Banner Client', 'com_banners.client', '{"special":{"dbtable":"#__banner_clients","key":"id","type":"ClientTable","prefix":"Joomla\\\\Component\\\\Banners\\\\Administrator\\\\Table\\\\"}}', '', '', '', '{"formFile":"administrator\\/components\\/com_banners\\/forms\\/client.xml", "hideFields":["checked_out","checked_out_time"], "ignoreChanges":["checked_out", "checked_out_time"], "convertToInt":[], "displayLookup":[]}'), (12, 'User Notes', 'com_users.note', '{"special":{"dbtable":"#__user_notes","key":"id","type":"NoteTable","prefix":"Joomla\\\\Component\\\\Users\\\\Administrator\\\\Table\\\\"}}', '', '', '', '{"formFile":"administrator\\/components\\/com_users\\/forms\\/note.xml", "hideFields":["checked_out","checked_out_time", "publish_up", "publish_down"],"ignoreChanges":["modified_user_id", "modified_time", "checked_out", "checked_out_time"], "convertToInt":["publish_up", "publish_down"],"displayLookup":[{"sourceColumn":"catid","targetTable":"#__categories","targetColumn":"id","displayColumn":"title"}, {"sourceColumn":"created_user_id","targetTable":"#__users","targetColumn":"id","displayColumn":"name"}, {"sourceColumn":"user_id","targetTable":"#__users","targetColumn":"id","displayColumn":"name"}, {"sourceColumn":"modified_user_id","targetTable":"#__users","targetColumn":"id","displayColumn":"name"}]}'), -(13, 'User Notes Category', 'com_users.category', '{"special":{"dbtable":"#__categories","key":"id","type":"CategoryTable","prefix":"Joomla\\\\Component\\\\Categories\\\\Administrator\\\\Table\\\\","config":"array()"},"common":{"dbtable":"#__ucm_content","key":"ucm_id","type":"Corecontent","prefix":"Joomla\\\\CMS\\\\Table\\\\","config":"array()"}}', '', '{"common":{"core_content_item_id":"id","core_title":"title","core_state":"published","core_alias":"alias","core_created_time":"created_time","core_modified_time":"modified_time","core_body":"description", "core_hits":"hits","core_publish_up":"null","core_publish_down":"null","core_access":"access", "core_params":"params", "core_featured":"null", "core_metadata":"metadata", "core_language":"language", "core_images":"null", "core_urls":"null", "core_version":"version", "core_ordering":"null", "core_metakey":"metakey", "core_metadesc":"metadesc", "core_catid":"parent_id", "asset_id":"asset_id"}, "special":{"parent_id":"parent_id","lft":"lft","rgt":"rgt","level":"level","path":"path","extension":"extension","note":"note"}}', '', '{"formFile":"administrator\\/components\\/com_categories\\/forms\\/category.xml", "hideFields":["checked_out","checked_out_time","version","lft","rgt","level","path","extension"], "ignoreChanges":["modified_user_id", "modified_time", "checked_out", "checked_out_time", "version", "hits", "path"], "convertToInt":["publish_up", "publish_down"], "displayLookup":[{"sourceColumn":"created_user_id","targetTable":"#__users","targetColumn":"id","displayColumn":"name"}, {"sourceColumn":"access","targetTable":"#__viewlevels","targetColumn":"id","displayColumn":"title"},{"sourceColumn":"modified_user_id","targetTable":"#__users","targetColumn":"id","displayColumn":"name"},{"sourceColumn":"parent_id","targetTable":"#__categories","targetColumn":"id","displayColumn":"title"}]}'); +(13, 'User Notes Category', 'com_users.category', '{"special":{"dbtable":"#__categories","key":"id","type":"CategoryTable","prefix":"Joomla\\\\Component\\\\Categories\\\\Administrator\\\\Table\\\\","config":"array()"},"common":{"dbtable":"#__ucm_content","key":"ucm_id","type":"Corecontent","prefix":"Joomla\\\\CMS\\\\Table\\\\","config":"array()"}}', '', '{"common":{"core_content_item_id":"id","core_title":"title","core_state":"published","core_alias":"alias","core_created_time":"created_time","core_modified_time":"modified_time","core_body":"description", "core_hits":"hits","core_publish_up":"null","core_publish_down":"null","core_access":"access", "core_params":"params", "core_featured":"null", "core_metadata":"metadata", "core_language":"language", "core_images":"null", "core_urls":"null", "core_version":"version", "core_ordering":"null", "core_metakey":"metakey", "core_metadesc":"metadesc", "core_catid":"parent_id", "asset_id":"asset_id"}, "special":{"parent_id":"parent_id","lft":"lft","rgt":"rgt","level":"level","path":"path","extension":"extension","note":"note"}}', '', '{"formFile":"administrator\\/components\\/com_categories\\/forms\\/category.xml", "hideFields":["checked_out","checked_out_time","version","lft","rgt","level","path","extension"], "ignoreChanges":["modified_user_id", "modified_time", "checked_out", "checked_out_time", "version", "hits", "path"], "convertToInt":["publish_up", "publish_down"], "displayLookup":[{"sourceColumn":"created_user_id","targetTable":"#__users","targetColumn":"id","displayColumn":"name"}, {"sourceColumn":"access","targetTable":"#__viewlevels","targetColumn":"id","displayColumn":"title"},{"sourceColumn":"modified_user_id","targetTable":"#__users","targetColumn":"id","displayColumn":"name"},{"sourceColumn":"parent_id","targetTable":"#__categories","targetColumn":"id","displayColumn":"title"},{"sourceColumn":"tags","targetTable":"#__tags","targetColumn":"id","displayColumn":"title"}]}'); SELECT setval('#__content_types_type_id_seq', 10000, false); @@ -372,6 +372,8 @@ CREATE TABLE IF NOT EXISTS "#__history" ( "sha1_hash" varchar(50) NOT NULL DEFAULT '', "version_data" text NOT NULL, "keep_forever" smallint NOT NULL DEFAULT 0, + "is_current" smallint NOT NULL DEFAULT 0, + "is_legacy" smallint NOT NULL DEFAULT 0, PRIMARY KEY ("version_id") ); CREATE INDEX "#__history_idx_ucm_item_id" ON "#__history" ("item_id"); @@ -451,4 +453,5 @@ INSERT INTO "#__mail_templates" ("template_id", "extension", "language", "subjec ('plg_system_tasknotification.fatal_recovery_mail', 'plg_system_tasknotification', '', 'PLG_SYSTEM_TASK_NOTIFICATION_FATAL_MAIL_SUBJECT', 'PLG_SYSTEM_TASK_NOTIFICATION_FATAL_MAIL_BODY', '', '', '{"tags": ["task_id", "task_title"]}'), ('plg_system_tasknotification.orphan_mail', 'plg_system_tasknotification', '', 'PLG_SYSTEM_TASK_NOTIFICATION_ORPHAN_MAIL_SUBJECT', 'PLG_SYSTEM_TASK_NOTIFICATION_ORPHAN_MAIL_BODY', '', '', '{"tags": ["task_id", "task_title"]}'), ('plg_system_tasknotification.success_mail', 'plg_system_tasknotification', '', 'PLG_SYSTEM_TASK_NOTIFICATION_SUCCESS_MAIL_SUBJECT', 'PLG_SYSTEM_TASK_NOTIFICATION_SUCCESS_MAIL_BODY', '', '', '{"tags":["task_id", "task_title", "exec_data_time", "task_output"]}'), -('plg_multifactorauth_email.mail', 'plg_multifactorauth_email', '', 'PLG_MULTIFACTORAUTH_EMAIL_EMAIL_SUBJECT', 'PLG_MULTIFACTORAUTH_EMAIL_EMAIL_BODY', '', '', '{"tags":["code","sitename","siteurl","username","email","fullname"]}'); +('plg_multifactorauth_email.mail', 'plg_multifactorauth_email', '', 'PLG_MULTIFACTORAUTH_EMAIL_EMAIL_SUBJECT', 'PLG_MULTIFACTORAUTH_EMAIL_EMAIL_BODY', '', '', '{"tags":["code","sitename","siteurl","username","email","fullname"]}'), +('plg_content_joomla.newarticle', 'plg_content_joomla', '', 'PLG_CONTENT_JOOMLA_NEW_ARTICLE_SUBJECT', 'PLG_CONTENT_JOOMLA_NEW_ARTICLE_BODY', '', '', '{"tags":["sitename","name","email","title","url"]}'); diff --git a/installation/src/Application/CliInstallationApplication.php b/installation/src/Application/CliInstallationApplication.php index 56f704874f473..627c688f2339d 100644 --- a/installation/src/Application/CliInstallationApplication.php +++ b/installation/src/Application/CliInstallationApplication.php @@ -121,10 +121,6 @@ public function __construct( // Store the debug value to config based on the JDEBUG flag. $this->config->set('debug', JDEBUG); - \define('JPATH_COMPONENT', JPATH_BASE); - \define('JPATH_COMPONENT_SITE', JPATH_SITE); - \define('JPATH_COMPONENT_ADMINISTRATOR', JPATH_ADMINISTRATOR); - // Register the config to Factory. Factory::$config = $this->config; Factory::$language = $language; @@ -311,21 +307,4 @@ public function isClient($identifier) { return 'cli_installation' === $identifier; } - - /** - * Flag if the application instance is a CLI or web based application. - * - * Helper function, you should use the native PHP functions to detect if it is a CLI application. - * - * @return boolean - * - * @since 4.3.0 - * - * @deprecated 4.3 will be removed in 5.0 - * Use $app->isClient('cli_installation') instead - */ - public function isCli() - { - return $this->isClient('cli_installation'); - } } diff --git a/installation/src/Application/InstallationApplication.php b/installation/src/Application/InstallationApplication.php index 8f65c113e9bec..f90d3dc411b54 100644 --- a/installation/src/Application/InstallationApplication.php +++ b/installation/src/Application/InstallationApplication.php @@ -18,7 +18,6 @@ use Joomla\CMS\Document\HtmlDocument; use Joomla\CMS\Exception\ExceptionHandler; use Joomla\CMS\Factory; -use Joomla\CMS\Input\Input; use Joomla\CMS\Language\LanguageFactoryInterface; use Joomla\CMS\Language\LanguageHelper; use Joomla\CMS\Language\Text; @@ -27,6 +26,7 @@ use Joomla\Database\DatabaseInterface; use Joomla\DI\Container; use Joomla\Filesystem\Folder; +use Joomla\Input\Input; use Joomla\Registry\Registry; use Joomla\Session\SessionEvent; @@ -47,7 +47,7 @@ final class InstallationApplication extends CMSApplication * Class constructor. * * @param ?Input $input An optional argument to provide dependency injection for the application's input - * object. If the argument is a JInput object that object will become the + * object. If the argument is a Input object that object will become the * application's input object, otherwise a default input object is created. * @param ?Registry $config An optional argument to provide dependency injection for the application's * config object. If the argument is a Registry object that object will become @@ -187,11 +187,6 @@ public function dispatch() // Register the document object with Factory. Factory::$document = $document; - // Define component path. - \define('JPATH_COMPONENT', JPATH_BASE); - \define('JPATH_COMPONENT_SITE', JPATH_SITE); - \define('JPATH_COMPONENT_ADMINISTRATOR', JPATH_ADMINISTRATOR); - // Execute the task. ob_start(); $this->executeController(); @@ -301,7 +296,7 @@ private function executeController() $factory->setDatabase($this->getContainer()->get(DatabaseInterface::class)); // Create the instance - $controller = $factory->createController($controllerName, 'Installation', [], $this, $this->input); + $controller = $factory->createController($controllerName, 'Installation', ['base_path' => JPATH_INSTALLATION], $this, $this->input); // Execute the task $controller->execute($task); diff --git a/installation/src/Controller/InstallationController.php b/installation/src/Controller/InstallationController.php index 5b93cdf619bd3..bd1a044d84733 100644 --- a/installation/src/Controller/InstallationController.php +++ b/installation/src/Controller/InstallationController.php @@ -14,6 +14,7 @@ use Joomla\CMS\Language\Text; use Joomla\CMS\MVC\Factory\MVCFactoryInterface; use Joomla\CMS\Session\Session; +use Joomla\Input\Input; // phpcs:disable PSR1.Files.SideEffects \defined('_JEXEC') or die; @@ -27,12 +28,12 @@ class InstallationController extends JSONController { /** - * @param array $config An optional associative array of configuration settings. - * Recognized key values include 'name', 'default_task', 'model_path', and - * 'view_path' (this list is not meant to be comprehensive). - * @param ?MVCFactoryInterface $factory The factory. - * @param ?CMSApplication $app The Application for the dispatcher - * @param ?\Joomla\CMS\Input\Input $input The Input object. + * @param array $config An optional associative array of configuration settings. + * Recognized key values include 'name', 'default_task', 'model_path', and + * 'view_path' (this list is not meant to be comprehensive). + * @param ?MVCFactoryInterface $factory The factory. + * @param ?CMSApplication $app The Application for the dispatcher + * @param ?Input $input The Input object. * * @since 3.0 */ diff --git a/installation/src/Model/AutomatedUpdatesModel.php b/installation/src/Model/AutomatedUpdatesModel.php index bfbe4d9ba716b..29548d4ce2c53 100644 --- a/installation/src/Model/AutomatedUpdatesModel.php +++ b/installation/src/Model/AutomatedUpdatesModel.php @@ -51,7 +51,7 @@ public function disable() { // Get the params of com_joomlaupdate $db = $this->getDatabase(); - $query = $db->getQuery(true); + $query = $db->createQuery(); $query->select('params') ->from($db->quoteName('#__extensions')) diff --git a/installation/src/Model/ConfigurationModel.php b/installation/src/Model/ConfigurationModel.php index 915d7b469b42f..c6b7a5f12a165 100644 --- a/installation/src/Model/ConfigurationModel.php +++ b/installation/src/Model/ConfigurationModel.php @@ -99,7 +99,7 @@ public function setup($options) } } - $query = $db->getQuery(true) + $query = $db->createQuery() ->select('extension_id') ->from($db->quoteName('#__extensions')) ->where($db->quoteName('name') . ' = ' . $db->quote('files_joomla')); @@ -287,7 +287,7 @@ protected function updateUserIds($db) foreach ($updatesArray as $table => $fields) { foreach ($fields as $field) { - $query = $db->getQuery(true) + $query = $db->createQuery() ->update($db->quoteName($table)) ->set($db->quoteName($field) . ' = ' . $db->quote($userId)) ->where($db->quoteName($field) . ' != 0') @@ -509,7 +509,7 @@ private function createRootUser($options, $db) date_default_timezone_set('UTC'); $installdate = date('Y-m-d H:i:s'); - $query = $db->getQuery(true) + $query = $db->createQuery() ->select($db->quoteName('id')) ->from($db->quoteName('#__users')) ->where($db->quoteName('id') . ' = ' . $db->quote($userId)); @@ -570,7 +570,7 @@ private function createRootUser($options, $db) // Synch the sequence if pgsql if (($db->getServerType() === 'postgresql') && (!$result)) { - $query = $db->getQuery(true) + $query = $db->createQuery() ->select('MAX(' . $db->quoteName('id') . ') + 1 AS ' . $db->quoteName('id')) ->from($db->quoteName('#__users')); $db->setQuery($query); diff --git a/installation/src/Model/LanguagesModel.php b/installation/src/Model/LanguagesModel.php index 62a4b25e0fe76..e52069ca40954 100644 --- a/installation/src/Model/LanguagesModel.php +++ b/installation/src/Model/LanguagesModel.php @@ -18,7 +18,8 @@ use Joomla\CMS\Installer\InstallerHelper; use Joomla\CMS\Language\LanguageHelper; use Joomla\CMS\Language\Text; -use Joomla\CMS\Table\Table; +use Joomla\CMS\Table\Extension; +use Joomla\CMS\Table\Update as UpdateTable; use Joomla\CMS\Updater\Update; use Joomla\CMS\Updater\Updater; use Joomla\Database\DatabaseAwareInterface; @@ -94,7 +95,7 @@ public function getItems() { // Get the extension_id of the en-GB package. $db = $this->getDatabase(); - $extQuery = $db->getQuery(true); + $extQuery = $db->createQuery(); $extQuery->select($db->quoteName('extension_id')) ->from($db->quoteName('#__extensions')) @@ -116,7 +117,7 @@ public function getItems() */ $updater->findUpdates([$extId], 0); - $query = $db->getQuery(true); + $query = $db->createQuery(); // Select the required fields from the updates table. $query->select($db->quoteName(['update_id', 'name', 'element', 'version'])) @@ -154,7 +155,7 @@ public function install($lids) $installer = clone $installerBase; // Loads the update database object that represents the language. - $language = Table::getInstance('update'); + $language = new UpdateTable($this->getDatabase()); $language->load($id); // Get the URL to the XML manifest file of the selected language. @@ -228,7 +229,7 @@ public function install($lids) */ protected function getLanguageManifest($uid) { - $instance = Table::getInstance('update'); + $instance = new UpdateTable($this->getDatabase()); $instance->load($uid); return trim($instance->detailsurl); @@ -379,7 +380,7 @@ protected function getLanguageList($clientId = 1) { // Create a new db object. $db = $this->getDatabase(); - $query = $db->getQuery(true); + $query = $db->createQuery(); // Select field element from the extensions table. $query->select($db->quoteName(['element', 'name'])) @@ -461,7 +462,7 @@ public function setDefault($language, $clientName = 'administrator') $params = ComponentHelper::getParams('com_languages'); $params->set($client->name, $language); - $table = Table::getInstance('extension'); + $table = new Extension($this->getDatabase()); $id = $table->find(['element' => 'com_languages']); // Load diff --git a/installation/src/Service/Provider/Application.php b/installation/src/Service/Provider/Application.php index b8da47fb3b480..dab5283f079c8 100644 --- a/installation/src/Service/Provider/Application.php +++ b/installation/src/Service/Provider/Application.php @@ -11,13 +11,13 @@ namespace Joomla\CMS\Installation\Service\Provider; use Joomla\CMS\Error\Renderer\JsonRenderer; -use Joomla\CMS\Input\Input as CMSInput; use Joomla\CMS\Installation\Application\CliInstallationApplication; use Joomla\CMS\Installation\Application\InstallationApplication; use Joomla\CMS\Language\LanguageFactoryInterface; use Joomla\DI\Container; use Joomla\DI\ServiceProviderInterface; use Joomla\Event\Priority; +use Joomla\Input\Input as CMSInput; use Joomla\Session\SessionEvents; use Joomla\Session\SessionInterface; use Psr\Log\LoggerInterface; diff --git a/installation/template/js/setup.js b/installation/template/js/setup.js index e52141385bdd4..baa9b07ddb0ea 100644 --- a/installation/template/js/setup.js +++ b/installation/template/js/setup.js @@ -164,14 +164,35 @@ Joomla.checkDbCredentials = function() { document.getElementById('jform_site_name').focus(); } - // Select language - var languageEl = document.getElementById('jform_language'); + // Handle language chooser + const languageForm = document.getElementById('languageForm'); - if (languageEl) { - languageEl.addEventListener('change', function(e) { - var form = document.getElementById('languageForm'); - Joomla.setlanguage(form) - }) + // It's a template(!!!) + const languageTemplate = document.getElementById('languageSelect'); + + if (languageForm && languageTemplate) { + // Check if we have the language field + const languageEl = languageTemplate.content.getElementById('jform_language'); + + if (languageEl) { + // We use event bubbling to handle the change event + languageForm.addEventListener('change', function (e) { + + if (e.target.id === 'jform_language') { + e.target.closest('dialog').close(); + + // Set the language + Joomla.setlanguage(languageForm); + } + }) + + // Show language name + const currentLanguageName = document.getElementById('languageForm-current'); + + if (currentLanguageName) { + currentLanguageName.innerText = languageEl.options[languageEl.selectedIndex].text; + } + } } if (document.getElementById('step1')) { diff --git a/installation/template/scss/template.scss b/installation/template/scss/template.scss index 2dd846aa06903..78a53eca8c743 100644 --- a/installation/template/scss/template.scss +++ b/installation/template/scss/template.scss @@ -308,8 +308,25 @@ body { } } -.languageForm { - padding: 0 0 30px; +#languageForm { + joomla-dialog { + dialog { + &::backdrop { + background-color: rgba(0, 0, 0, .5); + } + } + .joomla-dialog-header { + display: flex; + align-items: center; + margin-bottom: .5rem; + h3 { + margin: 0 .5rem; + } + .buttons-holder { + margin-inline-start: auto; + }; + } + } .form-select { width: 100%; diff --git a/installation/tmpl/preinstall/default.php b/installation/tmpl/preinstall/default.php index 6a19e70924fd6..d38a98f4f71b3 100644 --- a/installation/tmpl/preinstall/default.php +++ b/installation/tmpl/preinstall/default.php @@ -9,11 +9,8 @@ defined('_JEXEC') or die; -use Joomla\CMS\HTML\HTMLHelper; use Joomla\CMS\Language\Text; -HTMLHelper::_('behavior.formvalidator'); - /** @var \Joomla\CMS\Installation\View\Preinstall\HtmlView $this */ ?>
diff --git a/installation/tmpl/remove/default.php b/installation/tmpl/remove/default.php index cb7ddd493efa4..942d59af88e10 100644 --- a/installation/tmpl/remove/default.php +++ b/installation/tmpl/remove/default.php @@ -14,8 +14,6 @@ use Joomla\CMS\Language\Text; use Joomla\CMS\Uri\Uri; -HTMLHelper::_('behavior.formvalidator'); - $direction = Factory::getLanguage()->isRtl() ? 'left' : 'right'; /** @var \Joomla\CMS\Installation\View\Remove\HtmlView $this */ diff --git a/installation/tmpl/setup/default.php b/installation/tmpl/setup/default.php index 85d1e94eef988..df441fc3ace2f 100644 --- a/installation/tmpl/setup/default.php +++ b/installation/tmpl/setup/default.php @@ -14,29 +14,16 @@ use Joomla\CMS\HTML\HTMLHelper; use Joomla\CMS\Language\Text; -HTMLHelper::_('behavior.formvalidator'); - $direction = Factory::getLanguage()->isRtl() ? 'left' : 'right'; /** @var \Joomla\CMS\Installation\View\Setup\HtmlView $this */ + +$wa = $this->getDocument()->getWebAssetManager(); + +$wa->useScript('joomla.dialog-autocreate'); ?>
-
-
- - - -
-
- form->renderField('language'); ?> -
- - - -
-
-
@@ -137,5 +124,31 @@ +
+
+ + Text::_('INSTL_SELECT_INSTALL_LANG'), + 'iconHeader' => 'icon-language', + 'src' => '#languageSelect', + ]; + + $text = ''; + + $text .= ''; + + echo Text::sprintf('INSTL_SELECTED_INSTALL_LANGUAGE', $text); + ?> +
+ + + + +
diff --git a/language/en-GB/com_content.ini b/language/en-GB/com_content.ini index 7ffe305b55ffc..f13e91022af8c 100644 --- a/language/en-GB/com_content.ini +++ b/language/en-GB/com_content.ini @@ -68,6 +68,7 @@ COM_CONTENT_MORE_ARTICLES="More Articles …" COM_CONTENT_NEW_ARTICLE="New Article" COM_CONTENT_NO_ARTICLES="There are no articles in this category. If subcategories display on this page, they may have articles." COM_CONTENT_NUM_ITEMS="Article Count:" +;Deprecated, will be removed in 7.0 COM_CONTENT_ON_NEW_CONTENT="A new Article has been submitted by '%1$s' entitled '%2$s'." COM_CONTENT_ORDERING="Ordering:
New articles default to the first position in the Category. The ordering can be changed in Backend." COM_CONTENT_PAGEBREAK_DOC_TITLE="Page Break" diff --git a/language/en-GB/com_users.ini b/language/en-GB/com_users.ini index c49d8509f26e8..a98953c005df3 100644 --- a/language/en-GB/com_users.ini +++ b/language/en-GB/com_users.ini @@ -108,6 +108,7 @@ COM_USERS_REGISTRATION_ACL_ADMIN_ACTIVATION="Please log in to confirm that you a COM_USERS_REGISTRATION_ACL_ADMIN_ACTIVATION_PERMISSIONS="You are not authorised to activate new accounts, please log in with a privileged account." COM_USERS_REGISTRATION_ACTIVATE_SUCCESS="Your Account has been activated. You can now log in using the username and password you chose during the registration." COM_USERS_REGISTRATION_ACTIVATION_NOTIFY_SEND_MAIL_FAILED="An error was encountered while sending activation notification email" +COM_USERS_REGISTRATION_ACTIVATION_NOTIFY_SEND_MAIL_SUCCESS="The user has been notified that their account has been activated." COM_USERS_REGISTRATION_ACTIVATION_SAVE_FAILED="Failed to save activation data: %s" COM_USERS_REGISTRATION_ADMINACTIVATE_SUCCESS="The user's account has been activated and the user has been notified about it." COM_USERS_REGISTRATION_COMPLETE_ACTIVATE="Your account has been created and an activation link has been sent to the email address you entered. Note that you must activate the account by selecting the activation link when you get the email before you can login." diff --git a/language/en-GB/files_joomla.sys.ini b/language/en-GB/files_joomla.sys.ini index 62031e108ca39..a569b4686c3ab 100644 --- a/language/en-GB/files_joomla.sys.ini +++ b/language/en-GB/files_joomla.sys.ini @@ -4,8 +4,4 @@ ; Note : All ini files need to be saved as UTF-8 FILES_JOOMLA="Joomla CMS" -FILES_JOOMLA_XML_DESCRIPTION="Joomla! 5 Content Management System." - -; All the following strings are deprecated and will be removed with 6.0 -FILES_JOOMLA_ERROR_FILE_FOLDER="Error on deleting file or folder %s" -FILES_JOOMLA_ERROR_MANIFEST="Error on updating manifest cache: (type, element, folder, client) = (%s, %s, %s, %s)" +FILES_JOOMLA_XML_DESCRIPTION="Joomla! 6 Content Management System." diff --git a/language/en-GB/install.xml b/language/en-GB/install.xml index bab4667cbaa92..38db6724bf21a 100644 --- a/language/en-GB/install.xml +++ b/language/en-GB/install.xml @@ -2,7 +2,7 @@ English (en-GB) en-GB - 5.4.1 + 6.0.1 2025-10 Joomla! Project admin@joomla.org diff --git a/language/en-GB/joomla.ini b/language/en-GB/joomla.ini index 0e9b9b19d841d..85d8332a4a0fe 100644 --- a/language/en-GB/joomla.ini +++ b/language/en-GB/joomla.ini @@ -155,8 +155,6 @@ JERROR_LAYOUT_AN_OUT_OF_DATE_BOOKMARK_FAVOURITE="an out-of-date bookmark JERROR_LAYOUT_ERROR_HAS_OCCURRED_WHILE_PROCESSING_YOUR_REQUEST="An error has occurred while processing your request." JERROR_LAYOUT_GO_TO_THE_HOME_PAGE="Go to the Home Page" JERROR_LAYOUT_HOME_PAGE="Home Page" -; deprecated will be removed in 6.0 -JERROR_LAYOUT_MIS_TYPED_ADDRESS="a mistyped address" JERROR_LAYOUT_MISTYPED_ADDRESS="a mistyped address" JERROR_LAYOUT_NOT_ABLE_TO_VISIT="You may not be able to visit this page because of:" JERROR_LAYOUT_PAGE_NOT_FOUND="The requested page can't be found." @@ -184,8 +182,11 @@ JFIELD_ALIAS_LABEL="Alias" JFIELD_ALIAS_PLACEHOLDER="Auto-generate from title" JFIELD_ALT_PAGE_TITLE_LABEL="Alternative Page Title" JFIELD_CATEGORY_DESC="Category" +; The following string is deprecated and will be removed with 7.0 JFIELD_COLOR_SELECT="Select a colour" +; The following string is deprecated and will be removed with 7.0 JFIELD_COLOR_TRANSPARENT="No colour, transparent" +; The following string is deprecated and will be removed with 7.0 JFIELD_COLOR_VALUE="Colour with hexadecimal value of" JFIELD_FIELDS_CATEGORY_DESC="Select the category that this field is assigned to." JFIELD_LANGUAGE_DESC="Assign a language to this article." diff --git a/language/en-GB/langmetadata.xml b/language/en-GB/langmetadata.xml index 5f88d976b7cf2..273a93826cc30 100644 --- a/language/en-GB/langmetadata.xml +++ b/language/en-GB/langmetadata.xml @@ -1,7 +1,7 @@ English (en-GB) - 5.4.1 + 6.0.1 2025-10 Joomla! Project admin@joomla.org diff --git a/language/en-GB/lib_joomla.ini b/language/en-GB/lib_joomla.ini index 9d68f025455cf..0c982bbe4c167 100644 --- a/language/en-GB/lib_joomla.ini +++ b/language/en-GB/lib_joomla.ini @@ -375,8 +375,11 @@ JLIB_HTML_BATCH_MOVE="Move" JLIB_HTML_BATCH_MOVE_QUESTION="Action to Perform" JLIB_HTML_BATCH_NO_CATEGORY="- Don't copy or move -" JLIB_HTML_BATCH_NOCHANGE="- Keep original Access Levels -" -JLIB_HTML_BATCH_TAG_LABEL="Add Tag" +JLIB_HTML_BATCH_TAG_ADD="Add" +JLIB_HTML_BATCH_TAG_ADDREMOVE_QUESTION="Action to Perform" +JLIB_HTML_BATCH_TAG_LABEL="Add or Remove Tag" JLIB_HTML_BATCH_TAG_NOCHANGE="- Keep original Tags -" +JLIB_HTML_BATCH_TAG_REMOVE="Remove" JLIB_HTML_BATCH_USER_LABEL="Set User." JLIB_HTML_BATCH_USER_NOCHANGE="- Keep original User -" JLIB_HTML_BATCH_USER_NOUSER="No User." @@ -619,8 +622,6 @@ JLIB_INSTALLER_ERROR_PACK_UNINSTALL_MANIFEST_NOT_REMOVED="Package Uninstall: Err JLIB_INSTALLER_ERROR_PACK_UNINSTALL_MISSING_EXTENSION="Package Uninstall: This extension is missing or has already been uninstalled: %s" JLIB_INSTALLER_ERROR_PACK_UNINSTALL_MISSINGMANIFEST="Package Uninstall: Missing manifest file." JLIB_INSTALLER_ERROR_PACK_UNINSTALL_NOT_PROPER="Package Uninstall: This extension may have already been uninstalled or might not have been uninstalled properly: %s" -; The following string is deprecated and will be removed with 6.0 -JLIB_INSTALLER_ERROR_PACK_UNINSTALL_UNKNOWN_EXTENSION="Trying to uninstall unknown extension from package. This extension may have already been removed earlier." JLIB_INSTALLER_ERROR_PACK_UNINSTALL_WARNCOREPACK="Package Uninstall: Trying to uninstall core package." JLIB_INSTALLER_ERROR_PLG_DISCOVER_STORE_DETAILS="Plugin Discover install: Failed to store plugin details." JLIB_INSTALLER_ERROR_PLG_REFRESH_MANIFEST_CACHE="Plugin Refresh manifest cache: Failed to store plugin details." diff --git a/language/en-GB/mod_menu.ini b/language/en-GB/mod_menu.ini index 01c0ddb9d2ef3..a3e5902b6f126 100644 --- a/language/en-GB/mod_menu.ini +++ b/language/en-GB/mod_menu.ini @@ -14,4 +14,6 @@ MOD_MENU_FIELD_TAG_ID_LABEL="Menu Tag ID" MOD_MENU_FIELD_TARGET_DESC="JavaScript values to position a popup window, eg top=50, left=50, width=200, height=300." MOD_MENU_FIELD_TARGET_LABEL="Target Position" MOD_MENU_TOGGLE="Toggle Navigation" +MOD_MENU_TOGGLE_SUBMENU_LABEL="More about: %s" MOD_MENU_XML_DESCRIPTION="This module displays a menu on the Frontend." + diff --git a/language/en-GB/tpl_cassiopeia.ini b/language/en-GB/tpl_cassiopeia.ini index ea9946904cb93..f8b0cd3cd8106 100644 --- a/language/en-GB/tpl_cassiopeia.ini +++ b/language/en-GB/tpl_cassiopeia.ini @@ -6,12 +6,23 @@ CASSIOPEIA="Cassiopeia Site template" TPL_CASSIOPEIA_BACKTOTOP="Back to Top" TPL_CASSIOPEIA_BACKTOTOP_LABEL="Back-to-top Link" +TPL_CASSIOPEIA_BODY_BACKGROUND_COLOR_LABEL="Body Background Colour" +TPL_CASSIOPEIA_BODY_SIZE="Body Font Size (rem)" +TPL_CASSIOPEIA_BODY_TEXT_COLOR_LABEL="Body Text Colour" TPL_CASSIOPEIA_BRAND_LABEL="Brand" +TPL_CASSIOPEIA_BUTTON_BACKGROUND_COLOR_LABEL="Button Primary Background Colour" +TPL_CASSIOPEIA_BUTTON_BACKGROUND_HOVER_COLOR_LABEL="Button Primary Hover Background Colour" +TPL_CASSIOPEIA_BUTTON_COLOR_LABEL="Button Primary Text Colour" +TPL_CASSIOPEIA_BUTTON_HOVER_COLOR_LABEL="Button Primary Hover Text Colour" +TPL_CASSIOPEIA_COLORS_FIELDSET_LABEL="Colour Settings" TPL_CASSIOPEIA_COLOR_NAME_ALTERNATIVE="Alternative" +TPL_CASSIOPEIA_COLOR_NAME_CUSTOM="Custom" TPL_CASSIOPEIA_COLOR_NAME_LABEL="Colour Theme" TPL_CASSIOPEIA_COLOR_NAME_STANDARD="Standard" +TPL_CASSIOPEIA_EXTENDED_XML_DESCRIPTION="Continuing the space theme (Solarflare from 1.0, Milkyway from 1.5 and Protostar from 3.0), Cassiopeia is the Joomla site template based on Bootstrap 5. This is an extended child version with a new colour set for the base Cassiopeia template." TPL_CASSIOPEIA_FLUID="Fluid" TPL_CASSIOPEIA_FLUID_LABEL="Layout" +TPL_CASSIOPEIA_FONTS_FIELDSET_LABEL="Font Settings" TPL_CASSIOPEIA_FONT_GROUP_LOCAL="Fonts from Folder" TPL_CASSIOPEIA_FONT_GROUP_WEB="Fonts from Web" TPL_CASSIOPEIA_FONT_LABEL="Fonts Scheme" @@ -34,10 +45,19 @@ TPL_CASSIOPEIA_FONT_SYSTEM_STACK_SYSTEM_OLDSTYLE="Old Style" TPL_CASSIOPEIA_FONT_SYSTEM_STACK_SYSTEM_ROUNDED="Rounded Sans" TPL_CASSIOPEIA_FONT_SYSTEM_STACK_SYSTEM_SLAB="Slab Serif" TPL_CASSIOPEIA_FONT_SYSTEM_STACK_SYSTEM_TRANSITIONAL="Transitional" +TPL_CASSIOPEIA_FOOTER_BACKGROUND_COLOR_LABEL="Footer Background Colour" +TPL_CASSIOPEIA_FOOTER_TEXT_COLOR_LABEL="Footer Text Colour" +TPL_CASSIOPEIA_H1_SIZE="H1 Font Size (rem)" +TPL_CASSIOPEIA_H2_SIZE="H2 Font Size (rem)" +TPL_CASSIOPEIA_H3_SIZE="H3 Font Size (rem)" +TPL_CASSIOPEIA_HEADER_BACKGROUND_COLOR_LABEL="Header Background Colour" +TPL_CASSIOPEIA_HEADER_TEXT_COLOR_LABEL="Header Text Colour" +TPL_CASSIOPEIA_LINK_COLOR_LABEL="Links Colour" +TPL_CASSIOPEIA_LINK_HOVER_COLOR_LABEL="Links Hover Colour" TPL_CASSIOPEIA_LOGO_LABEL="Logo" TPL_CASSIOPEIA_STATIC="Static" TPL_CASSIOPEIA_STICKY_LABEL="Sticky Header" TPL_CASSIOPEIA_TAGLINE_DESC="Optional text to show as a subheading" TPL_CASSIOPEIA_TAGLINE_LABEL="Tagline" TPL_CASSIOPEIA_TITLE="Title (alternative to logo)" -TPL_CASSIOPEIA_XML_DESCRIPTION="Continuing the space theme (Solarflare from 1.0, Milkyway from 1.5 and Protostar from 3.0), Cassiopeia is the Joomla 4 and Joomla 5 site template based on Bootstrap 5." +TPL_CASSIOPEIA_XML_DESCRIPTION="Continuing the space theme (Solarflare from 1.0, Milkyway from 1.5 and Protostar from 3.0), Cassiopeia is the Joomla site template based on Bootstrap 5." diff --git a/language/en-GB/tpl_cassiopeia.sys.ini b/language/en-GB/tpl_cassiopeia.sys.ini index 42e58e4a3bd90..88d27dac3095b 100644 --- a/language/en-GB/tpl_cassiopeia.sys.ini +++ b/language/en-GB/tpl_cassiopeia.sys.ini @@ -1,28 +1,31 @@ -; Joomla! Project -; (C) 2017 Open Source Matters, Inc. -; License GNU General Public License version 2 or later; see LICENSE.txt -; Note : All ini files need to be saved as UTF-8 - -CASSIOPEIA="Cassiopeia Site template" -TPL_CASSIOPEIA_MOD_CUSTOM_LAYOUT_BANNER="Banner" -TPL_CASSIOPEIA_MOD_MENU_LAYOUT_COLLAPSE-METISMENU="Collapsible Dropdown" -TPL_CASSIOPEIA_MOD_MENU_LAYOUT_DROPDOWN-METISMENU="Dropdown" -TPL_CASSIOPEIA_POSITION_BANNER="Banner" -TPL_CASSIOPEIA_POSITION_BELOW-TOP="Below Top" -TPL_CASSIOPEIA_POSITION_BOTTOM-A="Bottom-a" -TPL_CASSIOPEIA_POSITION_BOTTOM-B="Bottom-b" -TPL_CASSIOPEIA_POSITION_BREADCRUMBS="Breadcrumbs" -TPL_CASSIOPEIA_POSITION_DEBUG="Debug" -TPL_CASSIOPEIA_POSITION_ERROR-403="Error 403" -TPL_CASSIOPEIA_POSITION_ERROR-404="Error 404" -TPL_CASSIOPEIA_POSITION_FOOTER="Footer" -TPL_CASSIOPEIA_POSITION_MAIN-BOTTOM="Main-bottom" -TPL_CASSIOPEIA_POSITION_MAIN-TOP="Main-top" -TPL_CASSIOPEIA_POSITION_MENU="Menu" -TPL_CASSIOPEIA_POSITION_SEARCH="Search" -TPL_CASSIOPEIA_POSITION_SIDEBAR-LEFT="Sidebar-left" -TPL_CASSIOPEIA_POSITION_SIDEBAR-RIGHT="Sidebar-right" -TPL_CASSIOPEIA_POSITION_TOP-A="Top-a" -TPL_CASSIOPEIA_POSITION_TOP-B="Top-b" -TPL_CASSIOPEIA_POSITION_TOPBAR="Top Bar" -TPL_CASSIOPEIA_XML_DESCRIPTION="Continuing the space theme (Solarflare from 1.0, Milkyway from 1.5 and Protostar from 3.0), Cassiopeia is the Joomla 4 and Joomla 5 site template based on Bootstrap 5." +; Joomla! Project +; (C) 2017 Open Source Matters, Inc. +; License GNU General Public License version 2 or later; see LICENSE.txt +; Note : All ini files need to be saved as UTF-8 + +CASSIOPEIA="Cassiopeia Site template" +TPL_CASSIOPEIA_COLORS_FIELDSET_LABEL="Colour Settings" +TPL_CASSIOPEIA_EXTENDED_XML_DESCRIPTION="Continuing the space theme (Solarflare from 1.0, Milkyway from 1.5 and Protostar from 3.0), Cassiopeia is the Joomla site template based on Bootstrap 5. This is an extended child version with a new colour set for the base Cassiopeia template." +TPL_CASSIOPEIA_FONTS_FIELDSET_LABEL="Font Settings" +TPL_CASSIOPEIA_MOD_CUSTOM_LAYOUT_BANNER="Banner" +TPL_CASSIOPEIA_MOD_MENU_LAYOUT_COLLAPSE-METISMENU="Collapsible Dropdown" +TPL_CASSIOPEIA_MOD_MENU_LAYOUT_DROPDOWN-METISMENU="Dropdown" +TPL_CASSIOPEIA_POSITION_BANNER="Banner" +TPL_CASSIOPEIA_POSITION_BELOW-TOP="Below Top" +TPL_CASSIOPEIA_POSITION_BOTTOM-A="Bottom-a" +TPL_CASSIOPEIA_POSITION_BOTTOM-B="Bottom-b" +TPL_CASSIOPEIA_POSITION_BREADCRUMBS="Breadcrumbs" +TPL_CASSIOPEIA_POSITION_DEBUG="Debug" +TPL_CASSIOPEIA_POSITION_ERROR-403="Error 403" +TPL_CASSIOPEIA_POSITION_ERROR-404="Error 404" +TPL_CASSIOPEIA_POSITION_FOOTER="Footer" +TPL_CASSIOPEIA_POSITION_MAIN-BOTTOM="Main-bottom" +TPL_CASSIOPEIA_POSITION_MAIN-TOP="Main-top" +TPL_CASSIOPEIA_POSITION_MENU="Menu" +TPL_CASSIOPEIA_POSITION_SEARCH="Search" +TPL_CASSIOPEIA_POSITION_SIDEBAR-LEFT="Sidebar-left" +TPL_CASSIOPEIA_POSITION_SIDEBAR-RIGHT="Sidebar-right" +TPL_CASSIOPEIA_POSITION_TOP-A="Top-a" +TPL_CASSIOPEIA_POSITION_TOP-B="Top-b" +TPL_CASSIOPEIA_POSITION_TOPBAR="Top Bar" +TPL_CASSIOPEIA_XML_DESCRIPTION="Continuing the space theme (Solarflare from 1.0, Milkyway from 1.5 and Protostar from 3.0), Cassiopeia is the Joomla site template based on Bootstrap 5." diff --git a/layouts/joomla/content/emptystate.php b/layouts/joomla/content/emptystate.php index 2abe33d2ab641..dfe7a9f8bba62 100644 --- a/layouts/joomla/content/emptystate.php +++ b/layouts/joomla/content/emptystate.php @@ -29,6 +29,8 @@ $icon = $displayData['icon'] ?? 'icon-copy article'; $append = $displayData['formAppend'] ?? ''; $btnadd = $displayData['btnadd'] ?? Text::_($textPrefix . '_EMPTYSTATE_BUTTON_ADD'); + +$controlFields = $displayData['controlFields'] ?? ''; ?>
@@ -58,7 +60,11 @@ class="btn btn-outline-secondary btn-lg px-4"> - - - + + + + + + +
diff --git a/layouts/joomla/form/field/color/simple.php b/layouts/joomla/form/field/color/simple.php index 2ed3e632ead10..73e443135eb3e 100644 --- a/layouts/joomla/form/field/color/simple.php +++ b/layouts/joomla/form/field/color/simple.php @@ -12,6 +12,7 @@ use Joomla\CMS\Factory; use Joomla\CMS\Language\Text; +use Joomla\Utilities\ArrayHelper; extract($displayData); @@ -51,22 +52,34 @@ * @var string $dataAttribute Miscellaneous data attributes preprocessed for HTML output * @var array $dataAttributes Miscellaneous data attribute for eg, data-*. */ - -$class = ' class="form-select ' . trim($class) . '"'; -$disabled = $disabled ? ' disabled' : ''; -$readonly = $readonly ? ' readonly' : ''; - Factory::getDocument()->getWebAssetManager() ->useStyle('webcomponent.field-simple-color') ->useScript('webcomponent.field-simple-color'); +Text::script('JCLOSE'); +Text::script('JNONE'); + +$slots = []; +$attr = [ + 'name' => $name, + 'id' => $id, + 'class' => trim($class), + 'value' => trim($color), +]; + +if ($disabled) { + $attr['disabled'] = ''; +} + +if ($readonly) { + $attr['readonly'] = ''; +} + +foreach ($colors as $val) { + $slots[] = ''; +} ?> - - +> + + diff --git a/layouts/joomla/form/field/combo.php b/layouts/joomla/form/field/combo.php index 86f52cee67e07..b710201c388fb 100644 --- a/layouts/joomla/form/field/combo.php +++ b/layouts/joomla/form/field/combo.php @@ -12,7 +12,7 @@ extract($displayData); -use Joomla\CMS\HTML\HTMLHelper; +use Joomla\CMS\Factory; /** * Layout variables @@ -45,7 +45,7 @@ * @var array $dataAttributes Miscellaneous data attribute for eg, data-*. */ -HTMLHelper::_('behavior.combobox'); +Factory::getApplication()->getDocument()->getWebAssetManager()->usePreset('awesomplete'); $attr = ''; diff --git a/layouts/joomla/form/field/date.php b/layouts/joomla/form/field/date.php new file mode 100644 index 0000000000000..5771653dc9e58 --- /dev/null +++ b/layouts/joomla/form/field/date.php @@ -0,0 +1,56 @@ + + * @license GNU General Public License version 2 or later; see LICENSE.txt + */ + +defined('_JEXEC') or die; + +/** + * Layout variables + * ----------------- + * @var string $autocomplete Autocomplete attribute for the field. + * @var boolean $autofocus Is autofocus enabled? + * @var string $class Classes for the input. + * @var string $description Description of the field. + * @var boolean $disabled Is this field disabled? + * @var string $group Group the field belongs to. section in form XML. + * @var boolean $hidden Is this field hidden in the form? + * @var string $hint Placeholder for the field. + * @var string $id DOM id of the field. + * @var string $label Label of the field. + * @var string $labelclass Classes to apply to the label. + * @var boolean $multiple Does this field support multiple values? + * @var string $name Name of the input field. + * @var string $onchange Onchange attribute for the field. + * @var string $onclick Onclick attribute for the field. + * @var string $pattern Pattern (Reg Ex) of value of the form field. + * @var boolean $readonly Is this field read only? + * @var boolean $required Is this field required? + * @var integer $size Size attribute of the input. + * @var string $value Value attribute of the field. + * @var string $min + * @var string $max + */ +extract($displayData); + +$class = !empty($class) ? 'class="form-control ' . $class . '"' : 'class="form-control"'; +$readonly = $readonly ? ' readonly' : ''; +$disabled = $disabled ? ' disabled' : ''; +$required = $required ? ' required' : ''; +$hint = strlen($hint) ? ' placeholder="' . $hint . '"' : ''; +$autocomplete = !$autocomplete ? ' autocomplete="off"' : ' autocomplete="' . $autocomplete . '"'; +$autocomplete = $autocomplete == ' autocomplete="on"' ? '' : $autocomplete; +$autofocus = $autofocus ? ' autofocus' : ''; +$pattern = !empty($pattern) ? ' pattern="' . $pattern . '"' : ''; +$onchange = !empty($onchange) ? ' onchange="' . $onchange . '"' : ''; +$minAttr = !empty($min) ? ' min="' . $this->escape($min) . '"' : ''; +$maxAttr = !empty($max) ? ' max="' . $this->escape($max) . '"' : ''; + +echo ''; diff --git a/layouts/joomla/form/field/datetime.php b/layouts/joomla/form/field/datetime.php new file mode 100644 index 0000000000000..cfe5e6ae9cab3 --- /dev/null +++ b/layouts/joomla/form/field/datetime.php @@ -0,0 +1,56 @@ + + * @license GNU General Public License version 2 or later; see LICENSE.txt + */ + +defined('_JEXEC') or die; + +/** + * Layout variables + * ----------------- + * @var string $autocomplete Autocomplete attribute for the field. + * @var boolean $autofocus Is autofocus enabled? + * @var string $class Classes for the input. + * @var string $description Description of the field. + * @var boolean $disabled Is this field disabled? + * @var string $group Group the field belongs to. section in form XML. + * @var boolean $hidden Is this field hidden in the form? + * @var string $hint Placeholder for the field. + * @var string $id DOM id of the field. + * @var string $label Label of the field. + * @var string $labelclass Classes to apply to the label. + * @var boolean $multiple Does this field support multiple values? + * @var string $name Name of the input field. + * @var string $onchange Onchange attribute for the field. + * @var string $onclick Onclick attribute for the field. + * @var string $pattern Pattern (Reg Ex) of value of the form field. + * @var boolean $readonly Is this field read only? + * @var boolean $required Is this field required? + * @var integer $size Size attribute of the input. + * @var string $value Value attribute of the field. + * @var string $min + * @var string $max + */ +extract($displayData); + +$class = !empty($class) ? 'class="form-control ' . $class . '"' : 'class="form-control"'; +$readonly = $readonly ? ' readonly' : ''; +$disabled = $disabled ? ' disabled' : ''; +$required = $required ? ' required' : ''; +$hint = strlen($hint) ? ' placeholder="' . $hint . '"' : ''; +$autocomplete = !$autocomplete ? ' autocomplete="off"' : ' autocomplete="' . $autocomplete . '"'; +$autocomplete = $autocomplete == ' autocomplete="on"' ? '' : $autocomplete; +$autofocus = $autofocus ? ' autofocus' : ''; +$pattern = !empty($pattern) ? ' pattern="' . $pattern . '"' : ''; +$onchange = !empty($onchange) ? ' onchange="' . $onchange . '"' : ''; +$minAttr = !empty($min) ? ' min="' . $this->escape($min) . '"' : ''; +$maxAttr = !empty($max) ? ' max="' . $this->escape($max) . '"' : ''; + +echo ''; diff --git a/layouts/joomla/html/batch/tag.php b/layouts/joomla/html/batch/tag.php index 4112bb222b7fd..ea122fdf50e00 100644 --- a/layouts/joomla/html/batch/tag.php +++ b/layouts/joomla/html/batch/tag.php @@ -10,14 +10,35 @@ defined('_JEXEC') or die; +use Joomla\CMS\Factory; use Joomla\CMS\HTML\HTMLHelper; use Joomla\CMS\Language\Text; +// Create the add/remove tag options. +$options = [ + HTMLHelper::_('select.option', 'a', Text::_('JLIB_HTML_BATCH_TAG_ADD')), + HTMLHelper::_('select.option', 'r', Text::_('JLIB_HTML_BATCH_TAG_REMOVE')) +]; + +/** @var Joomla\CMS\WebAsset\WebAssetManager $wa */ +$wa = Factory::getApplication()->getDocument()->getWebAssetManager(); +$wa->useScript('joomla.batch-tag-addremove'); + ?> -
diff --git a/plugins/editors/tinymce/src/PluginTraits/ActiveSiteTemplate.php b/plugins/editors/tinymce/src/PluginTraits/ActiveSiteTemplate.php index 64f19c61a275c..340fd2a444f6d 100644 --- a/plugins/editors/tinymce/src/PluginTraits/ActiveSiteTemplate.php +++ b/plugins/editors/tinymce/src/PluginTraits/ActiveSiteTemplate.php @@ -33,7 +33,7 @@ trait ActiveSiteTemplate protected function getActiveSiteTemplate() { $db = $this->getDatabase(); - $query = $db->getQuery(true) + $query = $db->createQuery() ->select('*') ->from($db->quoteName('#__template_styles')) ->where( diff --git a/plugins/editors/tinymce/src/PluginTraits/DisplayTrait.php b/plugins/editors/tinymce/src/PluginTraits/DisplayTrait.php index 851f43b5865af..a56a76d93ffb6 100644 --- a/plugins/editors/tinymce/src/PluginTraits/DisplayTrait.php +++ b/plugins/editors/tinymce/src/PluginTraits/DisplayTrait.php @@ -386,7 +386,7 @@ public function prepareTinyMCEUploadPath(string $path): string } } - // Should load the template plugin? + // Load the template plugin? if (!empty($allButtons['jtemplate'])) { $wa->useScript('plg_editors_tinymce.jtemplate'); $plugins[] = 'jtemplate'; @@ -427,6 +427,42 @@ public function prepareTinyMCEUploadPath(string $path): string } } + // Set the default classes for the image class dropdown + $imgClasses = [ + ['title' => TEXT::_('PLG_TINY_FIELD_IMG_CLASS_NO_CLASS'), 'value' => ''], + ['title' => 'None', 'value' => 'float-none'], + ['title' => 'Left', 'value' => 'float-start'], + ['title' => 'Right', 'value' => 'float-end'], + ['title' => 'Center', 'value' => 'mx-auto d-block'], + ]; + + // Load the image classes list + if (isset($extraOptions->img_classes_list) && $extraOptions->img_classes_list) { + $imgClassesList = $extraOptions->img_classes_list; + + if ($imgClassesList) { + // Create an array for the image classes + foreach ($imgClassesList as $imgClassList) { + array_push($imgClasses, ['title' => $imgClassList->img_class_name, 'value' => $imgClassList->img_class_list]); + } + } + } + + // Add the current domain to the sandbox_iframes_exclusions list + $sandboxIframesExclusions = Uri::getInstance()->getHost(); + + // Build the list of additional domains to add to the sandbox_iframes_exclusions list + if (isset($extraOptions->sandbox_iframes_exclusions) && $extraOptions->sandbox_iframes_exclusions) { + $exclusionsArray = []; + foreach ($extraOptions->sandbox_iframes_exclusions as $value) { + if (isset($value->exclusion_domain)) { + $exclusionsArray[] = $value->exclusion_domain; + } + } + // Join the URLs into a comma-separated string and add to the sandbox_iframes_exclusions list + $sandboxIframesExclusions .= ', ' . implode(', ', $exclusionsArray); + } + // Build the final options set $scriptOptions = array_merge( $scriptOptions, @@ -493,12 +529,7 @@ public function prepareTinyMCEUploadPath(string $path): string 'a11y_advanced_options' => true, 'image_advtab' => (bool) $levelParams->get('image_advtab', false), 'image_title' => true, - 'image_class_list' => [ - ['title' => 'None', 'value' => 'float-none'], - ['title' => 'Left', 'value' => 'float-start'], - ['title' => 'Right', 'value' => 'float-end'], - ['title' => 'Center', 'value' => 'mx-auto d-block'], - ], + 'image_class_list' => $imgClasses, // Drag and drop specific 'dndEnabled' => $dragdrop, @@ -507,10 +538,13 @@ public function prepareTinyMCEUploadPath(string $path): string 'branding' => false, 'promotion' => false, + // Set License + 'license_key' => 'gpl', + // Hardened security - // @todo enable with TinyMCE 7 using https://www.tiny.cloud/docs/tinymce/latest/content-filtering/#sandbox-iframes-exclusions otherwise all embed PDFs are broken - 'sandbox_iframes' => (bool) $levelParams->get('sandbox_iframes', true), - 'convert_unsafe_embeds' => true, + 'sandbox_iframes' => (bool) $levelParams->get('sandbox_iframes', true), + 'sandbox_iframes_exclusions' => $sandboxIframesExclusions, + 'convert_unsafe_embeds' => true, // Specify the attributes to be used when previewing a style. This prevents white text on a white background making the preview invisible. 'preview_styles' => 'font-family font-size font-weight font-style text-decoration text-transform background-color border border-radius outline text-shadow', diff --git a/plugins/editors/tinymce/tinymce.xml b/plugins/editors/tinymce/tinymce.xml index 6bca2090fb643..1139580997e8a 100644 --- a/plugins/editors/tinymce/tinymce.xml +++ b/plugins/editors/tinymce/tinymce.xml @@ -1,7 +1,7 @@ plg_editors_tinymce - 6.8.6 + 8.1.2 2005-08 Tiny Technologies, Inc N/A diff --git a/plugins/extension/finder/src/Extension/Finder.php b/plugins/extension/finder/src/Extension/Finder.php index 2b5332f6ffd86..969e49252e2eb 100644 --- a/plugins/extension/finder/src/Extension/Finder.php +++ b/plugins/extension/finder/src/Extension/Finder.php @@ -68,7 +68,7 @@ public function onExtensionAfterInstall(AbstractExtensionEvent $event): void } $db = $this->getDatabase(); - $query = $db->getQuery(true) + $query = $db->createQuery() ->select($db->quoteName(['element', 'client_id'])) ->from($db->quoteName('#__extensions')) ->where( @@ -161,7 +161,7 @@ function ($word) { $words = array_filter(array_map('trim', $words)); $words = array_unique($words); $db = $this->getDatabase(); - $query = $db->getQuery(true); + $query = $db->createQuery(); $lang = Helper::getPrimaryLanguage($extension->element); @@ -196,7 +196,7 @@ protected function removeCommonWords($extension) $db = $this->getDatabase(); $lang = Helper::getPrimaryLanguage($extension->element); - $query = $db->getQuery(true); + $query = $db->createQuery(); $query->delete($db->quoteName('#__finder_terms_common')) ->where( [ diff --git a/plugins/extension/joomla/src/Extension/Joomla.php b/plugins/extension/joomla/src/Extension/Joomla.php index 88e5fed196346..8f68d3c9dc5a8 100644 --- a/plugins/extension/joomla/src/Extension/Joomla.php +++ b/plugins/extension/joomla/src/Extension/Joomla.php @@ -90,7 +90,7 @@ private function addUpdateSite($name, $type, $location, $enabled, $extraQuery = { // Look if the location is used already; doesn't matter what type you can't have two types at the same address, doesn't make sense $db = $this->getDatabase(); - $query = $db->getQuery(true); + $query = $db->createQuery(); $query->select($db->quoteName('update_site_id')) ->from($db->quoteName('#__update_sites')) @@ -221,7 +221,7 @@ public function onExtensionAfterUninstall(AfterUninstallEvent $event): void // update sites for it if ($eid && $removed) { $db = $this->getDatabase(); - $query = $db->getQuery(true); + $query = $db->createQuery(); $eid = (int) $eid; $query->delete($db->quoteName('#__update_sites_extensions')) @@ -241,10 +241,10 @@ public function onExtensionAfterUninstall(AfterUninstallEvent $event): void if (\is_array($results)) { // So we need to delete the update sites and their associated updates - $updatesite_delete = $db->getQuery(true); + $updatesite_delete = $db->createQuery(); $updatesite_delete->delete($db->quoteName('#__update_sites')); - $updatesite_query = $db->getQuery(true); + $updatesite_query = $db->createQuery(); $updatesite_query->select($db->quoteName('update_site_id')) ->from($db->quoteName('#__update_sites')); diff --git a/plugins/fields/checkboxes/tmpl/checkboxes.php b/plugins/fields/checkboxes/tmpl/checkboxes.php index 8527b66a8d451..9b995b718f25e 100644 --- a/plugins/fields/checkboxes/tmpl/checkboxes.php +++ b/plugins/fields/checkboxes/tmpl/checkboxes.php @@ -12,7 +12,7 @@ use Joomla\CMS\Language\Text; -/** @var \Joomla\CMS\Layout\FileLayout $this */ +/** @var \Joomla\Plugin\Fields\Checkboxes\Extension\Checkboxes $this */ $fieldValue = $field->value; if ($fieldValue === '' || $fieldValue === null) { diff --git a/plugins/fields/list/tmpl/list.php b/plugins/fields/list/tmpl/list.php index e253ebc7cc0da..ce4b6d33228b0 100644 --- a/plugins/fields/list/tmpl/list.php +++ b/plugins/fields/list/tmpl/list.php @@ -12,7 +12,7 @@ use Joomla\CMS\Language\Text; -/** @var \Joomla\CMS\Layout\FileLayout $this */ +/** @var \Joomla\Plugin\Fields\ListField\Extension\ListPlugin $this */ $fieldValue = $field->value; if ($fieldValue == '') { diff --git a/plugins/fields/note/note.xml b/plugins/fields/note/note.xml new file mode 100644 index 0000000000000..f5ea656192978 --- /dev/null +++ b/plugins/fields/note/note.xml @@ -0,0 +1,71 @@ + + + plg_fields_note + Joomla! Project + 2025-03 + (C) 2025 Open Source Matters, Inc. + GNU General Public License version 2 or later; see LICENSE.txt + admin@joomla.org + www.joomla.org + 6.0.0 + PLG_FIELDS_NOTE_XML_DESCRIPTION + Joomla\Plugin\Fields\Note + + params + services + src + tmpl + + + language/en-GB/plg_fields_note.ini + language/en-GB/plg_fields_note.sys.ini + + + +
+ + + + + + + + + + + + + + + + +
+
+
+
diff --git a/plugins/fields/note/params/note.xml b/plugins/fields/note/params/note.xml new file mode 100644 index 0000000000000..012257e81da68 --- /dev/null +++ b/plugins/fields/note/params/note.xml @@ -0,0 +1,65 @@ + +
+ +
+ + + + +
+
+ +
+ + + + + + + + + + + + + + + + +
+
+
diff --git a/plugins/fields/note/services/provider.php b/plugins/fields/note/services/provider.php new file mode 100644 index 0000000000000..f615cb0ffd8a2 --- /dev/null +++ b/plugins/fields/note/services/provider.php @@ -0,0 +1,46 @@ + + * @license GNU General Public License version 2 or later; see LICENSE.txt + */ + +\defined('_JEXEC') or die; + +use Joomla\CMS\Extension\PluginInterface; +use Joomla\CMS\Factory; +use Joomla\CMS\Plugin\PluginHelper; +use Joomla\DI\Container; +use Joomla\DI\ServiceProviderInterface; +use Joomla\Event\DispatcherInterface; +use Joomla\Plugin\Fields\Note\Extension\Note; + +return new class () implements ServiceProviderInterface { + /** + * Registers the service provider with a DI container. + * + * @param Container $container The DI container. + * + * @return void + * + * @since 6.0.0 + */ + public function register(Container $container) + { + $container->set( + PluginInterface::class, + function (Container $container) { + $plugin = new Note( + $container->get(DispatcherInterface::class), + (array) PluginHelper::getPlugin('fields', 'note') + ); + $plugin->setApplication(Factory::getApplication()); + + return $plugin; + } + ); + } +}; diff --git a/plugins/fields/note/src/Extension/Note.php b/plugins/fields/note/src/Extension/Note.php new file mode 100644 index 0000000000000..9abefedaa1d80 --- /dev/null +++ b/plugins/fields/note/src/Extension/Note.php @@ -0,0 +1,71 @@ + + * @license GNU General Public License version 2 or later; see LICENSE.txt + */ + +namespace Joomla\Plugin\Fields\Note\Extension; + +use Joomla\CMS\Event\Model\PrepareFormEvent; +use Joomla\Component\Fields\Administrator\Plugin\FieldsPlugin; +use Joomla\Event\SubscriberInterface; +use Joomla\Utilities\ArrayHelper; + +// phpcs:disable PSR1.Files.SideEffects +\defined('_JEXEC') or die; +// phpcs:enable PSR1.Files.SideEffects + +/** + * Fields Note Plugin + * + * @since 6.0.0 + */ +final class Note extends FieldsPlugin implements SubscriberInterface +{ + /** + * The form event. Load additional parameters when available into the field form. + * Only when the type of the form is of interest. + * + * @return void + * + * @since 6.0.0 + */ + public function prepareForm(PrepareFormEvent $event) + { + parent::prepareForm($event); + + $form = $event->getForm(); + $data = $event->getData(); + + $type = ArrayHelper::getValue((array) $data, 'type'); + + if (!$this->getApplication()->isClient('administrator') || $form->getName() !== 'com_fields.field.com_content.article' || $type !== 'note') { + return; + } + + $form->removeField('default_value'); + $form->removeField('required'); + $form->removeField('hint', 'params'); + $form->removeField('class', 'params'); + $form->removeField('label_class', 'params'); + $form->removeField('showlabel', 'params'); + $form->removeField('label_render_class', 'params'); + $form->removeField('render_class', 'params'); + $form->removeField('value_render_class', 'params'); + $form->removeField('show_on', 'params'); + $form->removeField('prefix', 'params'); + $form->removeField('suffix', 'params'); + $form->removeField('display_readonly', 'params'); + + $xml = $form->getXml(); + + foreach ($xml->xpath('//fieldset[@name="smartsearchoptions"]') as $fieldset) { + $dom = dom_import_simplexml($fieldset); + $dom->parentNode->removeChild($dom); + } + } +} diff --git a/plugins/fields/note/tmpl/note.php b/plugins/fields/note/tmpl/note.php new file mode 100644 index 0000000000000..7418958fdcc9a --- /dev/null +++ b/plugins/fields/note/tmpl/note.php @@ -0,0 +1,41 @@ + + * @license GNU General Public License version 2 or later; see LICENSE.txt + */ + +use Joomla\CMS\HTML\HTMLHelper; +use Joomla\CMS\Language\Text; + +defined('_JEXEC') or die; + +if (empty($field->params->get('display_frontend', 0))) { + return; +} + +$html = []; +$class = []; + +if (!empty($field->fieldparams->get('class', ''))) { + $class[] = $field->fieldparams->get('class', ''); +} + +if ($close = (string) $field->fieldparams->get('close', '')) { + HTMLHelper::_('bootstrap.alert'); + $close = $close === 'true' ? 'alert' : $close; + $html[] = ''; + $class[] = 'alert-dismissible show'; +} + +$class = $class ? ' class="' . implode(' ', $class) . '"' : ''; +$title = (string) $field->fieldparams->get('label', ($field->label ? : '')); +$heading = (string) $field->fieldparams->get('heading', 'h4'); +$description = (string) $field->fieldparams->get('description', ''); +$html[] = !empty($title) ? '<' . $heading . '>' . Text::_($title) . '' : ''; +$html[] = !empty($description) ? Text::_($description) : ''; + +echo '
' . implode('', $html) . '
'; diff --git a/plugins/fields/number/number.xml b/plugins/fields/number/number.xml new file mode 100644 index 0000000000000..bc4cb8b92679e --- /dev/null +++ b/plugins/fields/number/number.xml @@ -0,0 +1,97 @@ + + + plg_fields_number + Joomla! Project + 2025-03 + (C) 2025 Open Source Matters, Inc. + GNU General Public License version 2 or later; see LICENSE.txt + admin@joomla.org + www.joomla.org + 6.0.0 + PLG_FIELDS_NUMBER_XML_DESCRIPTION + Joomla\Plugin\Fields\Number + + params + services + src + tmpl + + + language/en-GB/plg_fields_number.ini + language/en-GB/plg_fields_number.sys.ini + + + +
+ + + + + + + + + + + + + + + + + + + +
+
+
+
diff --git a/plugins/fields/number/params/number.xml b/plugins/fields/number/params/number.xml new file mode 100644 index 0000000000000..4ef945085f5eb --- /dev/null +++ b/plugins/fields/number/params/number.xml @@ -0,0 +1,73 @@ + +
+ +
+ + + + + + + + + + + + + + + + + + + +
+
+
diff --git a/plugins/behaviour/compat/services/provider.php b/plugins/fields/number/services/provider.php similarity index 73% rename from plugins/behaviour/compat/services/provider.php rename to plugins/fields/number/services/provider.php index 50eee2a0739da..ab1482cf03529 100644 --- a/plugins/behaviour/compat/services/provider.php +++ b/plugins/fields/number/services/provider.php @@ -2,9 +2,9 @@ /** * @package Joomla.Plugin - * @subpackage Behaviour.compat + * @subpackage Fields.number * - * @copyright (C) 2023 Open Source Matters, Inc. + * @copyright (C) 2025 Open Source Matters, Inc. * @license GNU General Public License version 2 or later; see LICENSE.txt */ @@ -15,7 +15,7 @@ use Joomla\CMS\Plugin\PluginHelper; use Joomla\DI\Container; use Joomla\DI\ServiceProviderInterface; -use Joomla\Plugin\Behaviour\Compat\Extension\Compat; +use Joomla\Plugin\Fields\Number\Extension\Number; return new class () implements ServiceProviderInterface { /** @@ -24,14 +24,17 @@ * @param Container $container The DI container. * * @return void - * @since 4.4.0 + * + * @since 6.0.0 */ public function register(Container $container) { $container->set( PluginInterface::class, function (Container $container) { - $plugin = new Compat((array) PluginHelper::getPlugin('behaviour', 'compat')); + $plugin = new Number( + (array) PluginHelper::getPlugin('fields', 'number') + ); $plugin->setApplication(Factory::getApplication()); return $plugin; diff --git a/plugins/fields/number/src/Extension/Number.php b/plugins/fields/number/src/Extension/Number.php new file mode 100644 index 0000000000000..53cc338aaceab --- /dev/null +++ b/plugins/fields/number/src/Extension/Number.php @@ -0,0 +1,27 @@ + + * @license GNU General Public License version 2 or later; see LICENSE.txt + */ + +namespace Joomla\Plugin\Fields\Number\Extension; + +use Joomla\Component\Fields\Administrator\Plugin\FieldsPlugin; +use Joomla\Event\SubscriberInterface; + +// phpcs:disable PSR1.Files.SideEffects +\defined('_JEXEC') or die; +// phpcs:enable PSR1.Files.SideEffects + +/** + * Fields Number Plugin + * + * @since 6.0.0 + */ +final class Number extends FieldsPlugin implements SubscriberInterface +{ +} diff --git a/plugins/fields/number/tmpl/number.php b/plugins/fields/number/tmpl/number.php new file mode 100644 index 0000000000000..257cd1bfd91e5 --- /dev/null +++ b/plugins/fields/number/tmpl/number.php @@ -0,0 +1,32 @@ + + * @license GNU General Public License version 2 or later; see LICENSE.txt + */ + +defined('_JEXEC') or die; + +use Joomla\CMS\Language\Text; + +$value = $field->value; +$min = $field->fieldparams->get('min', null); +$currency = $field->fieldparams->get('currency', 0); +$decimals = $field->fieldparams->get('decimals', 2); +$symbol = $field->fieldparams->get('symbol', 2); +$position = $field->fieldparams->get('position', 2); + +if (is_numeric($value)) { + $value = (float)$value; + if ($currency) { + $formattedCurrency = number_format($value, $decimals, Text::_('DECIMALS_SEPARATOR'), Text::_('THOUSANDS_SEPARATOR')); + $value = $position ? ($formattedCurrency . $symbol) : ($symbol . $formattedCurrency) ; + } +} else { + $value = $min ?? ''; +} + +echo $value; diff --git a/plugins/fields/radio/tmpl/radio.php b/plugins/fields/radio/tmpl/radio.php index 0a85f45968de5..3a3588f118c4b 100644 --- a/plugins/fields/radio/tmpl/radio.php +++ b/plugins/fields/radio/tmpl/radio.php @@ -12,7 +12,7 @@ use Joomla\CMS\Language\Text; -/** @var \Joomla\CMS\Layout\FileLayout $this */ +/** @var \Joomla\Plugin\Fields\Radio\Extension\Radio $this */ $value = $field->value; if ($value == '') { diff --git a/plugins/fields/sql/tmpl/sql.php b/plugins/fields/sql/tmpl/sql.php index 4206412672262..5d9f9f0a44c0c 100644 --- a/plugins/fields/sql/tmpl/sql.php +++ b/plugins/fields/sql/tmpl/sql.php @@ -21,7 +21,7 @@ $db = Factory::getDbo(); $value = (array) $value; -$query = $db->getQuery(true); +$query = $db->createQuery(); $sql = $fieldParams->get('query', ''); $bindNames = $query->bindArray($value, ParameterType::STRING); diff --git a/plugins/fields/user/tmpl/user.php b/plugins/fields/user/tmpl/user.php index 5a71062c8267a..aca079054beb1 100644 --- a/plugins/fields/user/tmpl/user.php +++ b/plugins/fields/user/tmpl/user.php @@ -10,7 +10,7 @@ defined('_JEXEC') or die; -/** @var \Joomla\CMS\Layout\FileLayout $this */ +/** @var \Joomla\Plugin\Fields\User\Extension\User $this */ $value = $field->value; if ($value == '') { diff --git a/plugins/filesystem/local/src/Adapter/LocalAdapter.php b/plugins/filesystem/local/src/Adapter/LocalAdapter.php index a8a074759ca96..9f8ecd9a2d9eb 100644 --- a/plugins/filesystem/local/src/Adapter/LocalAdapter.php +++ b/plugins/filesystem/local/src/Adapter/LocalAdapter.php @@ -17,7 +17,6 @@ use Joomla\CMS\Image\Exception\UnparsableImageException; use Joomla\CMS\Image\Image; use Joomla\CMS\Language\Text; -use Joomla\CMS\String\PunycodeHelper; use Joomla\CMS\Uri\Uri; use Joomla\CMS\User\CurrentUserTrait; use Joomla\Component\Media\Administrator\Adapter\AdapterInterface; @@ -817,9 +816,6 @@ private function getSafeName(string $name): string throw new \Exception(Text::_('COM_MEDIA_ERROR_MAKESAFE')); } - // Transform filename to punycode - $name = PunycodeHelper::toPunycode($name); - // Get the extension $extension = File::getExt($name); diff --git a/plugins/finder/categories/src/Extension/Categories.php b/plugins/finder/categories/src/Extension/Categories.php index bb1af2ef2500c..390eaff481c01 100644 --- a/plugins/finder/categories/src/Extension/Categories.php +++ b/plugins/finder/categories/src/Extension/Categories.php @@ -393,7 +393,7 @@ protected function getListQuery($query = null) $db = $this->getDatabase(); // Check if we can use the supplied SQL query. - $query = $query instanceof QueryInterface ? $query : $db->getQuery(true); + $query = $query instanceof QueryInterface ? $query : $db->createQuery(); $query->select( $db->quoteName( @@ -461,7 +461,7 @@ protected function getListQuery($query = null) */ protected function getStateQuery() { - $query = $this->getDatabase()->getQuery(true); + $query = $this->getDatabase()->createQuery(); $query->select( $this->getDatabase()->quoteName( diff --git a/plugins/finder/contacts/src/Extension/Contacts.php b/plugins/finder/contacts/src/Extension/Contacts.php index 767b0bf24c4d2..24c2d73412281 100644 --- a/plugins/finder/contacts/src/Extension/Contacts.php +++ b/plugins/finder/contacts/src/Extension/Contacts.php @@ -432,7 +432,7 @@ protected function getListQuery($query = null) $db = $this->getDatabase(); // Check if we can use the supplied SQL query. - $query = $query instanceof QueryInterface ? $query : $db->getQuery(true) + $query = $query instanceof QueryInterface ? $query : $db->createQuery() ->select('a.id, a.name AS title, a.alias, a.con_position AS position, a.address, a.created AS start_date') ->select('a.created_by_alias, a.modified, a.modified_by') ->select('a.metakey, a.metadesc, a.metadata, a.language') diff --git a/plugins/finder/content/src/Extension/Content.php b/plugins/finder/content/src/Extension/Content.php index 9c2af50fa94a6..703a5f73e82e2 100644 --- a/plugins/finder/content/src/Extension/Content.php +++ b/plugins/finder/content/src/Extension/Content.php @@ -381,7 +381,7 @@ protected function getListQuery($query = null) $db = $this->getDatabase(); // Check if we can use the supplied SQL query. - $query = $query instanceof QueryInterface ? $query : $db->getQuery(true) + $query = $query instanceof QueryInterface ? $query : $db->createQuery() ->select('a.id, a.title, a.alias, a.introtext AS summary, a.fulltext AS body') ->select('a.images') ->select('a.state, a.catid, a.created AS start_date, a.created_by') diff --git a/plugins/finder/newsfeeds/src/Extension/Newsfeeds.php b/plugins/finder/newsfeeds/src/Extension/Newsfeeds.php index cf4a4125aea3a..e6d66b4afe008 100644 --- a/plugins/finder/newsfeeds/src/Extension/Newsfeeds.php +++ b/plugins/finder/newsfeeds/src/Extension/Newsfeeds.php @@ -363,7 +363,7 @@ protected function getListQuery($query = null) $db = $this->getDatabase(); // Check if we can use the supplied SQL query. - $query = $query instanceof QueryInterface ? $query : $db->getQuery(true) + $query = $query instanceof QueryInterface ? $query : $db->createQuery() ->select('a.id, a.catid, a.name AS title, a.alias, a.link AS link') ->select('a.published AS state, a.ordering, a.created AS start_date, a.params, a.access') ->select('a.publish_up AS publish_start_date, a.publish_down AS publish_end_date') diff --git a/plugins/finder/tags/src/Extension/Tags.php b/plugins/finder/tags/src/Extension/Tags.php index 7083e273b389e..d0df94269f3e0 100644 --- a/plugins/finder/tags/src/Extension/Tags.php +++ b/plugins/finder/tags/src/Extension/Tags.php @@ -321,7 +321,7 @@ protected function getListQuery($query = null) $db = $this->getDatabase(); // Check if we can use the supplied SQL query. - $query = $query instanceof QueryInterface ? $query : $db->getQuery(true) + $query = $query instanceof QueryInterface ? $query : $db->createQuery() ->select('a.id, a.title, a.alias, a.description AS summary') ->select('a.created_time AS start_date, a.created_user_id AS created_by') ->select('a.metakey, a.metadesc, a.metadata, a.language, a.access') @@ -358,7 +358,7 @@ protected function getListQuery($query = null) */ protected function getStateQuery() { - $query = $this->getDatabase()->getQuery(true); + $query = $this->getDatabase()->createQuery(); $query->select($this->getDatabase()->quoteName('a.id')) ->select($this->getDatabase()->quoteName('a.' . $this->state_field, 'state') . ', ' . $this->getDatabase()->quoteName('a.access')) ->select('NULL AS cat_state, NULL AS cat_access') @@ -379,7 +379,7 @@ protected function getStateQuery() protected function getUpdateQueryByTime($time) { // Build an SQL query based on the modified time. - $query = $this->getDatabase()->getQuery(true) + $query = $this->getDatabase()->createQuery() ->where('a.date >= ' . $this->getDatabase()->quote($time)); return $query; diff --git a/plugins/installer/folderinstaller/src/Extension/FolderInstaller.php b/plugins/installer/folderinstaller/src/Extension/FolderInstaller.php index 0d86513730e0b..158fba326667a 100644 --- a/plugins/installer/folderinstaller/src/Extension/FolderInstaller.php +++ b/plugins/installer/folderinstaller/src/Extension/FolderInstaller.php @@ -26,15 +26,6 @@ */ final class FolderInstaller extends CMSPlugin implements SubscriberInterface { - /** - * Application object. - * - * @var \Joomla\CMS\Application\CMSApplication - * @since 4.0.0 - * @deprecated 6.0 Is needed for template overrides, use getApplication instead - */ - protected $app; - /** * Returns an array of events this subscriber will listen to. * diff --git a/plugins/installer/override/src/Extension/Override.php b/plugins/installer/override/src/Extension/Override.php index a1ea7e6782d32..4b5afacbb7562 100644 --- a/plugins/installer/override/src/Extension/Override.php +++ b/plugins/installer/override/src/Extension/Override.php @@ -298,7 +298,7 @@ public function load($id, $exid) $db = $this->getDatabase(); // Create a new query object. - $query = $db->getQuery(true); + $query = $db->createQuery(); $query ->select($db->quoteName('hash_id')) @@ -345,7 +345,7 @@ private function saveOverrides($pks) $db = $this->getDatabase(); // Create an insert query. - $insertQuery = $db->getQuery(true) + $insertQuery = $db->createQuery() ->insert($db->quoteName('#__template_overrides')) ->columns($db->quoteName($columns)); @@ -360,7 +360,7 @@ private function saveOverrides($pks) } if ($this->load($pk->id, $pk->extension_id)) { - $updateQuery = $db->getQuery(true) + $updateQuery = $db->createQuery() ->update($db->quoteName('#__template_overrides')) ->set( [ diff --git a/plugins/installer/packageinstaller/src/Extension/PackageInstaller.php b/plugins/installer/packageinstaller/src/Extension/PackageInstaller.php index 26256eeef278a..fb02f49bd375d 100644 --- a/plugins/installer/packageinstaller/src/Extension/PackageInstaller.php +++ b/plugins/installer/packageinstaller/src/Extension/PackageInstaller.php @@ -26,15 +26,6 @@ */ final class PackageInstaller extends CMSPlugin implements SubscriberInterface { - /** - * Application object - * - * @var \Joomla\CMS\Application\CMSApplication - * @since 4.0.0 - * @deprecated 6.0 Is needed for template overrides, use getApplication instead - */ - protected $app; - /** * Returns an array of events this subscriber will listen to. * diff --git a/plugins/installer/urlinstaller/src/Extension/UrlInstaller.php b/plugins/installer/urlinstaller/src/Extension/UrlInstaller.php index c503b0af186bd..6c83a21a01cb6 100644 --- a/plugins/installer/urlinstaller/src/Extension/UrlInstaller.php +++ b/plugins/installer/urlinstaller/src/Extension/UrlInstaller.php @@ -26,15 +26,6 @@ */ final class UrlInstaller extends CMSPlugin implements SubscriberInterface { - /** - * Application object. - * - * @var \Joomla\CMS\Application\CMSApplication - * @since 4.0.0 - * @deprecated 6.0 Is needed for template overrides, use getApplication instead - */ - protected $app; - /** * Returns an array of events this subscriber will listen to. * diff --git a/plugins/installer/webinstaller/src/Extension/WebInstaller.php b/plugins/installer/webinstaller/src/Extension/WebInstaller.php index 1923c89fe2a29..8e084eb11ea76 100644 --- a/plugins/installer/webinstaller/src/Extension/WebInstaller.php +++ b/plugins/installer/webinstaller/src/Extension/WebInstaller.php @@ -10,7 +10,6 @@ namespace Joomla\Plugin\Installer\Web\Extension; -use Joomla\CMS\Application\CMSApplication; use Joomla\CMS\Event\Installer\AddInstallationTabEvent; use Joomla\CMS\Form\Rule\UrlRule; use Joomla\CMS\Language\Text; @@ -40,15 +39,6 @@ final class WebInstaller extends CMSPlugin implements SubscriberInterface */ public const REMOTE_URL = 'https://appscdn.joomla.org/webapps/'; - /** - * The application object. - * - * @var CMSApplication - * @since 4.0.0 - * @deprecated 6.0 Is needed for template overrides, use getApplication instead - */ - protected $app; - /** * The URL to install from * diff --git a/plugins/multifactorauth/email/src/Extension/Email.php b/plugins/multifactorauth/email/src/Extension/Email.php index 2bd4d1edc0aa4..1d4a6a6e9f637 100644 --- a/plugins/multifactorauth/email/src/Extension/Email.php +++ b/plugins/multifactorauth/email/src/Extension/Email.php @@ -18,7 +18,6 @@ use Joomla\CMS\Event\MultiFactor\SaveSetup; use Joomla\CMS\Event\MultiFactor\Validate; use Joomla\CMS\Factory; -use Joomla\CMS\Input\Input; use Joomla\CMS\Language\Text; use Joomla\CMS\Log\Log; use Joomla\CMS\Mail\Exception\MailDisabledException; @@ -34,6 +33,7 @@ use Joomla\Component\Users\Administrator\Helper\Mfa as MfaHelper; use Joomla\Component\Users\Administrator\Table\MfaTable; use Joomla\Event\SubscriberInterface; +use Joomla\Input\Input; use PHPMailer\PHPMailer\Exception as phpMailerException; // phpcs:disable PSR1.Files.SideEffects diff --git a/plugins/multifactorauth/yubikey/src/Extension/Yubikey.php b/plugins/multifactorauth/yubikey/src/Extension/Yubikey.php index 91d67fab62f62..c47ee43b76044 100644 --- a/plugins/multifactorauth/yubikey/src/Extension/Yubikey.php +++ b/plugins/multifactorauth/yubikey/src/Extension/Yubikey.php @@ -15,7 +15,6 @@ use Joomla\CMS\Event\MultiFactor\GetSetup; use Joomla\CMS\Event\MultiFactor\SaveSetup; use Joomla\CMS\Event\MultiFactor\Validate; -use Joomla\CMS\Http\HttpFactory; use Joomla\CMS\Language\Text; use Joomla\CMS\Plugin\CMSPlugin; use Joomla\CMS\Uri\Uri; @@ -26,6 +25,7 @@ use Joomla\Component\Users\Administrator\Helper\Mfa as MfaHelper; use Joomla\Component\Users\Administrator\Table\MfaTable; use Joomla\Event\SubscriberInterface; +use Joomla\Http\HttpFactory; use Joomla\Input\Input; // phpcs:disable PSR1.Files.SideEffects @@ -369,7 +369,7 @@ private function validateYubikeyOtp(string $otp): bool $gotResponse = false; - $http = HttpFactory::getHttp(); + $http = (new HttpFactory())->getHttp(); $token = $this->getApplication()->getFormToken(); $nonce = md5($token . uniqid(random_int(0, mt_getrandmax()))); $response = null; diff --git a/plugins/privacy/actionlogs/src/Extension/Actionlogs.php b/plugins/privacy/actionlogs/src/Extension/Actionlogs.php index 75cee753047f8..0a98366612783 100644 --- a/plugins/privacy/actionlogs/src/Extension/Actionlogs.php +++ b/plugins/privacy/actionlogs/src/Extension/Actionlogs.php @@ -63,7 +63,7 @@ public function onPrivacyExportRequest(ExportRequestEvent $event): void $db = $this->getDatabase(); $userId = (int) $user->id; - $query = $db->getQuery(true) + $query = $db->createQuery() ->select(['a.*', $db->quoteName('u.name')]) ->from($db->quoteName('#__action_logs', 'a')) ->join('INNER', $db->quoteName('#__users', 'u'), $db->quoteName('a.user_id') . ' = ' . $db->quoteName('u.id')) diff --git a/plugins/privacy/consents/src/Extension/Consents.php b/plugins/privacy/consents/src/Extension/Consents.php index 24ed5d43d7ee6..ff6f9ac79b1db 100644 --- a/plugins/privacy/consents/src/Extension/Consents.php +++ b/plugins/privacy/consents/src/Extension/Consents.php @@ -62,7 +62,7 @@ public function onPrivacyExportRequest(ExportRequestEvent $event): void $domain = $this->createDomain('consents', 'joomla_consent_data'); $db = $this->getDatabase(); - $query = $db->getQuery(true) + $query = $db->createQuery() ->select('*') ->from($db->quoteName('#__privacy_consents')) ->where($db->quoteName('user_id') . ' = :id') diff --git a/plugins/privacy/contact/src/Extension/Contact.php b/plugins/privacy/contact/src/Extension/Contact.php index 512f9b777cbe4..98de76a4e95d9 100644 --- a/plugins/privacy/contact/src/Extension/Contact.php +++ b/plugins/privacy/contact/src/Extension/Contact.php @@ -67,7 +67,7 @@ public function onPrivacyExportRequest(ExportRequestEvent $event): void $domains[] = $domain; $db = $this->getDatabase(); - $query = $db->getQuery(true) + $query = $db->createQuery() ->select('*') ->from($db->quoteName('#__contact_details')) ->order($db->quoteName('ordering') . ' ASC'); diff --git a/plugins/privacy/content/src/Extension/Content.php b/plugins/privacy/content/src/Extension/Content.php index bfe0f2c47ad1f..31fa18cc182d3 100644 --- a/plugins/privacy/content/src/Extension/Content.php +++ b/plugins/privacy/content/src/Extension/Content.php @@ -65,7 +65,7 @@ public function onPrivacyExportRequest(ExportRequestEvent $event): void $domains[] = $domain; $db = $this->getDatabase(); - $query = $db->getQuery(true) + $query = $db->createQuery() ->select('*') ->from($db->quoteName('#__content')) ->where($db->quoteName('created_by') . ' = ' . (int) $user->id) diff --git a/plugins/privacy/message/src/Extension/Message.php b/plugins/privacy/message/src/Extension/Message.php index e1ba1339331b1..1ed17ad981f6c 100644 --- a/plugins/privacy/message/src/Extension/Message.php +++ b/plugins/privacy/message/src/Extension/Message.php @@ -62,7 +62,7 @@ public function onPrivacyExportRequest(ExportRequestEvent $event): void $domain = $this->createDomain('user_messages', 'joomla_user_messages_data'); $db = $this->getDatabase(); - $query = $db->getQuery(true) + $query = $db->createQuery() ->select('*') ->from($db->quoteName('#__messages')) ->where($db->quoteName('user_id_from') . ' = :useridfrom') diff --git a/plugins/privacy/user/src/Extension/UserPlugin.php b/plugins/privacy/user/src/Extension/UserPlugin.php index cf627d563ff73..c50d46eccaffe 100644 --- a/plugins/privacy/user/src/Extension/UserPlugin.php +++ b/plugins/privacy/user/src/Extension/UserPlugin.php @@ -165,7 +165,7 @@ private function createNotesDomain(TableUser $user) $domain = $this->createDomain('user_notes', 'joomla_user_notes_data'); $db = $this->getDatabase(); - $query = $db->getQuery(true) + $query = $db->createQuery() ->select('*') ->from($db->quoteName('#__user_notes')) ->where($db->quoteName('user_id') . ' = :userid') @@ -199,7 +199,7 @@ private function createProfileDomain(TableUser $user) $domain = $this->createDomain('user_profile', 'joomla_user_profile_data'); $db = $this->getDatabase(); - $query = $db->getQuery(true) + $query = $db->createQuery() ->select('*') ->from($db->quoteName('#__user_profiles')) ->where($db->quoteName('user_id') . ' = :userid') diff --git a/plugins/quickicon/eos/src/Extension/Eos.php b/plugins/quickicon/eos/src/Extension/Eos.php index 3e3505318b45a..ac1be95da8ac6 100644 --- a/plugins/quickicon/eos/src/Extension/Eos.php +++ b/plugins/quickicon/eos/src/Extension/Eos.php @@ -38,7 +38,7 @@ final class Eos extends CMSPlugin implements SubscriberInterface * @var string * @since 4.4.0 */ - private const EOS_DATE = '2027-10-12'; + private const EOS_DATE = '2029-10-16'; /** * Load the language file on instantiation. @@ -139,7 +139,7 @@ private function saveParams(): bool { $params = $this->params->toString('JSON'); $db = $this->getDatabase(); - $query = $db->getQuery(true) + $query = $db->createQuery() ->update($db->quoteName('#__extensions')) ->set($db->quoteName('params') . ' = :params') ->where($db->quoteName('type') . ' = ' . $db->quote('plugin')) @@ -189,7 +189,7 @@ private function getMessageInfo(int $monthsUntilEOS, int $inverted): array 'id' => 5, 'messageText' => 'PLG_QUICKICON_EOS_MESSAGE_ERROR_SUPPORT_ENDED', 'messageType' => 'error', - 'messageLink' => 'https://docs.joomla.org/Special:MyLanguage/Joomla_5.4.x_to_6.x_Planning_and_Upgrade_Step_by_Step', + 'messageLink' => 'https://docs.joomla.org/Special:MyLanguage/Joomla_6.4.x_to_7.x_Planning_and_Upgrade_Step_by_Step', 'snoozable' => false, ]; } @@ -200,7 +200,7 @@ private function getMessageInfo(int $monthsUntilEOS, int $inverted): array 'id' => 4, 'messageText' => 'PLG_QUICKICON_EOS_MESSAGE_WARNING_SUPPORT_ENDING', 'messageType' => 'warning', - 'messageLink' => 'https://docs.joomla.org/Special:MyLanguage/Joomla_5.4.x_to_6.x_Planning_and_Upgrade_Step_by_Step', + 'messageLink' => 'https://docs.joomla.org/Special:MyLanguage/Joomla_6.4.x_to_7.x_Planning_and_Upgrade_Step_by_Step', 'snoozable' => true, ]; } @@ -211,7 +211,7 @@ private function getMessageInfo(int $monthsUntilEOS, int $inverted): array 'id' => 3, 'messageText' => 'PLG_QUICKICON_EOS_MESSAGE_WARNING_SECURITY_ONLY', 'messageType' => 'warning', - 'messageLink' => 'https://docs.joomla.org/Special:MyLanguage/Joomla_5.4.x_to_6.x_Planning_and_Upgrade_Step_by_Step', + 'messageLink' => 'https://docs.joomla.org/Special:MyLanguage/Joomla_6.4.x_to_7.x_Planning_and_Upgrade_Step_by_Step', 'snoozable' => true, ]; } @@ -233,7 +233,7 @@ private function getMessageInfo(int $monthsUntilEOS, int $inverted): array 'id' => 1, 'messageText' => 'PLG_QUICKICON_EOS_MESSAGE_INFO_01', 'messageType' => 'info', - 'messageLink' => 'https://joomla.org/6', + 'messageLink' => 'https://joomla.org/7', 'snoozable' => true, ]; } diff --git a/plugins/quickicon/overridecheck/src/Extension/OverrideCheck.php b/plugins/quickicon/overridecheck/src/Extension/OverrideCheck.php index bd38f3795a174..216a84252345a 100644 --- a/plugins/quickicon/overridecheck/src/Extension/OverrideCheck.php +++ b/plugins/quickicon/overridecheck/src/Extension/OverrideCheck.php @@ -119,7 +119,7 @@ public function onGetIcons(QuickIconsEvent $event): void private function getOverridePluginId() { $db = $this->getDatabase(); - $query = $db->getQuery(true) + $query = $db->createQuery() ->select($db->quoteName('extension_id')) ->from($db->quoteName('#__extensions')) ->where($db->quoteName('folder') . ' = ' . $db->quote('installer')) diff --git a/plugins/quickicon/phpversioncheck/src/Extension/PhpVersionCheck.php b/plugins/quickicon/phpversioncheck/src/Extension/PhpVersionCheck.php index d3fddac3dd1e4..cd48769d563a6 100644 --- a/plugins/quickicon/phpversioncheck/src/Extension/PhpVersionCheck.php +++ b/plugins/quickicon/phpversioncheck/src/Extension/PhpVersionCheck.php @@ -119,30 +119,6 @@ public function onGetIcons(QuickIconsEvent $event): void private function getPhpSupport() { $phpSupportData = [ - '7.2' => [ - 'security' => '2019-11-30', - 'eos' => '2020-11-30', - ], - '7.3' => [ - 'security' => '2020-12-06', - 'eos' => '2021-12-06', - ], - '7.4' => [ - 'security' => '2021-11-28', - 'eos' => '2022-11-28', - ], - '8.0' => [ - 'security' => '2022-11-26', - 'eos' => '2023-11-26', - ], - '8.1' => [ - 'security' => '2023-11-25', - 'eos' => '2025-12-31', - ], - '8.2' => [ - 'security' => '2024-12-31', - 'eos' => '2026-12-31', - ], '8.3' => [ 'security' => '2025-12-31', 'eos' => '2027-12-31', diff --git a/plugins/sampledata/blog/src/Extension/Blog.php b/plugins/sampledata/blog/src/Extension/Blog.php index a16aa23af186f..e38daa8588a5f 100644 --- a/plugins/sampledata/blog/src/Extension/Blog.php +++ b/plugins/sampledata/blog/src/Extension/Blog.php @@ -339,7 +339,7 @@ public function onAjaxSampledataApplyStep1(AjaxEvent $event): void } // Get the stage Ids of the new stages - $query = $this->getDatabase()->getQuery(true); + $query = $this->getDatabase()->createQuery(); $query->select([$this->getDatabase()->quoteName('title'), $this->getDatabase()->quoteName('id')]) ->from($this->getDatabase()->quoteName('#__workflow_stages')) @@ -769,7 +769,7 @@ public function onAjaxSampledataApplyStep1(AjaxEvent $event): void && ComponentHelper::getParams('com_content')->get('workflow_enabled') ) { // Set the article featured in #__content_frontpage - $this->getDatabase()->getQuery(true); + $this->getDatabase()->createQuery(); $featuredItem = (object) [ 'content_id' => $articleModel->getItem()->id, diff --git a/plugins/sampledata/multilang/src/Extension/MultiLanguage.php b/plugins/sampledata/multilang/src/Extension/MultiLanguage.php index 1974b8ed34e58..24ae01b8316df 100644 --- a/plugins/sampledata/multilang/src/Extension/MultiLanguage.php +++ b/plugins/sampledata/multilang/src/Extension/MultiLanguage.php @@ -22,8 +22,11 @@ use Joomla\CMS\Language\Text; use Joomla\CMS\Plugin\CMSPlugin; use Joomla\CMS\Session\Session; -use Joomla\CMS\Table\Table; +use Joomla\CMS\Table\Module; use Joomla\CMS\Workflow\Workflow; +use Joomla\Component\Categories\Administrator\Table\CategoryTable; +use Joomla\Component\Content\Administrator\Table\ArticleTable; +use Joomla\Component\Menus\Administrator\Table\MenuTable; use Joomla\Database\DatabaseAwareTrait; use Joomla\Database\Exception\ExecutionFailureException; use Joomla\Database\ParameterType; @@ -514,7 +517,7 @@ private function enablePlugin($pluginName) { // Create a new db object. $db = $this->getDatabase(); - $query = $db->getQuery(true); + $query = $db->createQuery(); $query ->update($db->quoteName('#__extensions')) @@ -572,7 +575,7 @@ private function disableModuleMainMenu() { // Create a new db object. $db = $this->getDatabase(); - $query = $db->getQuery(true); + $query = $db->createQuery(); // Disable main menu module with Home set to ALL languages. $query @@ -606,7 +609,7 @@ private function disableModuleMainMenu() */ private function addModuleLanguageSwitcher() { - $tableModule = Table::getInstance('Module', 'Joomla\\CMS\\Table\\'); + $tableModule = new Module($this->getDatabase()); $moduleData = [ 'id' => 0, @@ -655,7 +658,7 @@ private function addModuleLanguageSwitcher() */ private function addModuleMenu($itemLanguage) { - $tableModule = Table::getInstance('Module', 'Joomla\\CMS\\Table\\'); + $tableModule = new Module($this->getDatabase()); $title = 'Main menu ' . $itemLanguage->language; $moduleData = [ @@ -738,7 +741,7 @@ private function addMenuGroup($itemLanguage) * * @param \stdClass $itemLanguage Language Object. * - * @return Table|boolean Menu Item Object. False otherwise. + * @return MenuTable|boolean Menu Item Object. False otherwise. * * @since 4.0.0 */ @@ -813,7 +816,7 @@ private function addAllCategoriesMenuItem($itemLanguage) * @param \stdClass $itemLanguage Language Object. * @param integer $categoryId The id of the category displayed by the blog. * - * @return Table|boolean Menu Item Object. False otherwise. + * @return MenuTable|boolean Menu Item Object. False otherwise. * * @since 4.0.0 */ @@ -895,7 +898,7 @@ private function addAssociations($groupedAssociations) foreach ($groupedAssociations as $context => $associations) { $key = md5(json_encode($associations)); - $query = $db->getQuery(true) + $query = $db->createQuery() ->insert($db->quoteName('#__associations')); foreach ($associations as $language => $id) { @@ -943,7 +946,7 @@ private function addModuleInModuleMenu($moduleId) { // Create a new db object. $db = $this->getDatabase(); - $query = $db->getQuery(true); + $query = $db->createQuery(); $moduleId = (int) $moduleId; // Add Module in Module menus. @@ -968,7 +971,7 @@ private function addModuleInModuleMenu($moduleId) * * @param \stdClass $itemLanguage Language Object. * - * @return Table|boolean Category Object. False otherwise. + * @return CategoryTable|boolean Category Object. False otherwise. * * @since 4.0.0 */ @@ -1039,7 +1042,7 @@ public function addCategory($itemLanguage) * @param \stdClass $itemLanguage Language Object. * @param integer $categoryId The id of the category where we want to add the article. * - * @return Table|boolean Article Object. False otherwise. + * @return ArticleTable|boolean Article Object. False otherwise. * * @since 4.0.0 */ @@ -1112,7 +1115,7 @@ private function addArticle($itemLanguage, $categoryId) // Get the new item ID. $newId = $article->get('id'); - $query = $db->getQuery(true) + $query = $db->createQuery() ->insert($db->quoteName('#__content_frontpage')) ->values($newId . ', 0, NULL, NULL'); @@ -1149,7 +1152,7 @@ private function addArticle($itemLanguage, $categoryId) private function publishContentLanguages() { // Publish the Content Languages. - $tableLanguage = Table::getInstance('Language'); + $tableLanguage = new \Joomla\CMS\Table\Language($this->getDatabase()); $siteLanguages = $this->getInstalledlangs('site'); @@ -1256,7 +1259,7 @@ protected function getLanguageList($clientId = 1) { // Create a new db object. $db = $this->getDatabase(); - $query = $db->getQuery(true); + $query = $db->createQuery(); // Select field element from the extensions table. $query->select($db->quoteName(['element', 'name'])) @@ -1337,7 +1340,7 @@ private function getAdminId() } $db = $this->getDatabase(); - $query = $db->getQuery(true); + $query = $db->createQuery(); // Select the admin user ID $query diff --git a/plugins/system/actionlogs/src/Extension/ActionLogs.php b/plugins/system/actionlogs/src/Extension/ActionLogs.php index 0ed4effdde34d..2eced72b0d5f3 100644 --- a/plugins/system/actionlogs/src/Extension/ActionLogs.php +++ b/plugins/system/actionlogs/src/Extension/ActionLogs.php @@ -174,7 +174,7 @@ public function onContentPrepareData(Model\PrepareDataEvent $event): void $db = $this->getDatabase(); $id = (int) $data->id; - $query = $db->getQuery(true) + $query = $db->createQuery() ->select($db->quoteName(['notify', 'extensions'])) ->from($db->quoteName('#__action_logs_users')) ->where($db->quoteName('user_id') . ' = :userid') @@ -231,7 +231,7 @@ public function onUserAfterSave(User\AfterSaveEvent $event): void $userid = (int) $user['id']; $db = $this->getDatabase(); - $query = $db->getQuery(true) + $query = $db->createQuery() ->select('COUNT(*)') ->from($db->quoteName('#__action_logs_users')) ->where($db->quoteName('user_id') . ' = :userid') @@ -318,7 +318,7 @@ public function onUserAfterDelete(User\AfterDeleteEvent $event): void $db = $this->getDatabase(); $userid = (int) $user['id']; - $query = $db->getQuery(true) + $query = $db->createQuery() ->delete($db->quoteName('#__action_logs_users')) ->where($db->quoteName('user_id') . ' = :userid') ->bind(':userid', $userid, ParameterType::INTEGER); @@ -393,7 +393,7 @@ public function onExtensionAfterSave(Model\AfterSaveEvent $event): void $db = $this->getDatabase(); - $query = $db->getQuery(true) + $query = $db->createQuery() ->select($db->quoteName(['user_id', 'notify', 'extensions'])) ->from($db->quoteName('#__action_logs_users')); diff --git a/plugins/system/debug/src/Extension/Debug.php b/plugins/system/debug/src/Extension/Debug.php index b15918d112ded..df589e67c5f6a 100644 --- a/plugins/system/debug/src/Extension/Debug.php +++ b/plugins/system/debug/src/Extension/Debug.php @@ -500,7 +500,7 @@ public function onAfterDisconnect(ConnectionEvent $event): void if ((stripos($query, 'select') === 0) || ($dbVersion56 && ((stripos($query, 'delete') === 0) || (stripos($query, 'update') === 0)))) { try { - $queryInstance = $db->getQuery(true); + $queryInstance = $db->createQuery(); $queryInstance->setQuery('EXPLAIN ' . ($dbVersion56 ? 'EXTENDED ' : '') . $query); if ($boundParams[$k]) { diff --git a/plugins/system/debug/src/Storage/FileStorage.php b/plugins/system/debug/src/Storage/FileStorage.php index 25544244d140b..1532ecdcd243e 100644 --- a/plugins/system/debug/src/Storage/FileStorage.php +++ b/plugins/system/debug/src/Storage/FileStorage.php @@ -165,7 +165,7 @@ private function isSecureToReturnData($data): bool return false; } - $currentUser = Factory::getUser(); + $currentUser = Factory::getApplication()->getIdentity(); $currentUserId = $currentUser->id; $currentUserSuperAdmin = $currentUser->authorise('core.admin'); diff --git a/plugins/system/guidedtours/src/Extension/GuidedTours.php b/plugins/system/guidedtours/src/Extension/GuidedTours.php index 8f014fa71a5f5..3d2bee1837748 100644 --- a/plugins/system/guidedtours/src/Extension/GuidedTours.php +++ b/plugins/system/guidedtours/src/Extension/GuidedTours.php @@ -14,7 +14,6 @@ use Joomla\CMS\Date\Date; use Joomla\CMS\Language\Multilanguage; use Joomla\CMS\Language\Text; -use Joomla\CMS\Object\CMSObject; use Joomla\CMS\Plugin\CMSPlugin; use Joomla\CMS\Session\Session; use Joomla\Component\Guidedtours\Administrator\Extension\GuidedtoursComponent; @@ -202,7 +201,7 @@ public function onBeforeCompileHead() $profileKey = 'guidedtour.id.' . $tour->id; // Check if the tour state has already been saved some time before. - $query = $db->getQuery(true) + $query = $db->createQuery() ->select($db->quoteName('profile_value')) ->from($db->quoteName('#__user_profiles')) ->where($db->quoteName('user_id') . ' = :user_id') @@ -281,7 +280,7 @@ private function getTour($tourId) /** * Return a tour and its steps or null if not found * - * @param CMSObject $item The tour to load + * @param \stdClass $item The tour to load * * @return null|object * diff --git a/plugins/system/httpheaders/postinstall/introduction.php b/plugins/system/httpheaders/postinstall/introduction.php index e077ce1d83eff..50fb2740ec869 100644 --- a/plugins/system/httpheaders/postinstall/introduction.php +++ b/plugins/system/httpheaders/postinstall/introduction.php @@ -39,7 +39,7 @@ function httpheaders_postinstall_action() // Enable the plugin $db = Factory::getDbo(); - $query = $db->getQuery(true) + $query = $db->createQuery() ->update($db->quoteName('#__extensions')) ->set($db->quoteName('enabled') . ' = 1') ->where($db->quoteName('type') . ' = ' . $db->quote('plugin')) @@ -48,7 +48,7 @@ function httpheaders_postinstall_action() $db->setQuery($query); $db->execute(); - $query = $db->getQuery(true) + $query = $db->createQuery() ->select('extension_id') ->from($db->quoteName('#__extensions')) ->where($db->quoteName('type') . ' = ' . $db->quote('plugin')) diff --git a/plugins/system/languagefilter/src/Extension/LanguageFilter.php b/plugins/system/languagefilter/src/Extension/LanguageFilter.php index a12216362705c..e051a7453332e 100644 --- a/plugins/system/languagefilter/src/Extension/LanguageFilter.php +++ b/plugins/system/languagefilter/src/Extension/LanguageFilter.php @@ -17,6 +17,7 @@ use Joomla\CMS\Event\Application\AfterDispatchEvent; use Joomla\CMS\Event\Application\AfterInitialiseEvent; use Joomla\CMS\Event\Application\AfterRouteEvent; +use Joomla\CMS\Event\Application\BeforeExecuteEvent; use Joomla\CMS\Event\Privacy\CollectCapabilitiesEvent; use Joomla\CMS\Event\User\AfterSaveEvent; use Joomla\CMS\Event\User\BeforeSaveEvent; @@ -183,6 +184,7 @@ public static function getSubscribedEvents(): array * might be needed by other plugins */ return [ + 'onBeforeExecute' => 'onBeforeExecute', 'onAfterInitialise' => 'onAfterInitialise', 'onAfterDispatch' => 'onAfterDispatch', 'onAfterRoute' => 'onAfterRoute', @@ -193,6 +195,28 @@ public static function getSubscribedEvents(): array ]; } + /** + * Listener for the onBeforeExecute event + * + * @param BeforeExecuteEvent $event The Event object + * + * @return void + * + * @since 6.0.0 + */ + public function onBeforeExecute(BeforeExecuteEvent $event): void + { + $app = $event->getApplication(); + + if (!$app->isClient('site')) { + return; + } + + // If a language was specified it has priority, otherwise use user or default language settings + $app->setLanguageFilter(true); + $app->setDetectBrowser($this->params->get('detect_browser', '1') == '1'); + } + /** * After initialise. * @@ -216,6 +240,7 @@ public function onAfterInitialise(AfterInitialiseEvent $event): void // Attach parse rule. $router->attachParseRule([$this, 'parseRule'], Router::PROCESS_BEFORE); + $router->attachParseRule([$this, 'setLanguageApplicationState'], Router::PROCESS_BEFORE); } /** @@ -277,7 +302,6 @@ public function buildRule(&$router, &$uri) if ( !$this->params->get('remove_default_prefix', 0) || $lang !== $this->default_lang - || $lang !== $this->current_lang ) { $uri->setPath($uri->getPath() . '/' . $sef . '/'); } @@ -329,179 +353,145 @@ public function postprocessNonSEFBuildRule(&$router, &$uri) */ public function parseRule(&$router, &$uri) { - $app = $this->getApplication(); - - // Did we find the current and existing language yet? - $found = false; - // Are we in SEF mode or not? if ($this->mode_sef) { $path = $uri->getPath(); $parts = explode('/', $path); - - $sef = StringHelper::strtolower($parts[0]); - - // Do we have a URL Language Code ? - if (!isset($this->sefs[$sef])) { - // Check if remove default URL language code is set - if ($this->params->get('remove_default_prefix', 0)) { - if ($parts[0]) { - // We load a default site language page - $lang_code = $this->default_lang; - } else { - // We check for an existing language cookie - $lang_code = $this->getLanguageCookie(); - } - } else { - $lang_code = $this->getLanguageCookie(); - } - - // No language code. Try using browser settings or default site language - if (!$lang_code && $this->params->get('detect_browser', 0) == 1) { - $lang_code = LanguageHelper::detectLanguage(); - } - - if (!$lang_code) { - $lang_code = $this->default_lang; - } - - if ($lang_code === $this->default_lang && $this->params->get('remove_default_prefix', 0)) { - $found = true; - } - } else { - // We found our language - $found = true; - $lang_code = $this->sefs[$sef]->lang_code; - - // If we found our language, but it's the default language and we don't want a prefix for that, we are on a wrong URL. - // Or we try to change the language back to the default language. We need a redirect to the proper URL for the default language. - if ($lang_code === $this->default_lang && $this->params->get('remove_default_prefix', 0)) { - // Create a cookie. - $this->setLanguageCookie($lang_code); - - $found = false; - array_shift($parts); - $path = implode('/', $parts); - } - - // We have found our language and the first part of our URL is the language prefix - if ($found) { - array_shift($parts); - - // Empty parts array when "index.php" is the only part left. - if (\count($parts) === 1 && $parts[0] === 'index.php') { - $parts = []; - } - - $uri->setPath(implode('/', $parts)); + $sef = StringHelper::strtolower($parts[0]); + $lang = $uri->getVar('lang'); + + if (isset($this->sefs[$sef])) { + // We found a matching language to the lang code + $uri->setVar('lang', $this->sefs[$sef]->lang_code); + array_shift($parts); + $uri->setPath(implode('/', $parts)); + + // We were called with the default language code and want to redirect + if ($this->params->get('remove_default_prefix', 0) && $uri->getVar('lang') == $this->default_lang) { + $router->setTainted(); } + } elseif ($this->params->get('remove_default_prefix', 0)) { + // We don't have a prefix for the default language + $uri->setVar('lang', $this->default_lang); + } elseif (!isset($this->sefs[$lang])) { + // No language is set, so we want to redirect to the right language + $router->setTainted(); } - } else { - // We are not in SEF mode - $lang_code = $this->getLanguageCookie(); - if (!$lang_code && $this->params->get('detect_browser', 1)) { - $lang_code = LanguageHelper::detectLanguage(); + // The language was set both per SEF path and per query parameter. Query parameter takes precedence + if ($lang && isset($this->sefs[$sef])) { + $uri->setVar('lang', $lang); + $router->setTainted(); } + } elseif ($uri->hasVar('lang')) { + // We are not in SEF mode. Do we have a language set? + $lang_code = $uri->getVar('lang'); - if (!isset($this->lang_codes[$lang_code])) { - $lang_code = $this->default_lang; + if (isset($this->sefs[$lang_code])) { + // We found a matching language to the lang code + $uri->setVar('lang', $this->sefs[$lang_code]->lang_code); + } else { + // The language is not installed on our site + $uri->delVar('lang'); } } + } - $lang = $uri->getVar('lang', $lang_code); + /** + * Parse rule to set the applications language state. + * This rule is removed after being executed the first time, since + * it does redirects and thus disallows parsing more than one URL per page call + * + * @param Router &$router Router object. + * @param Uri &$uri Uri object. + * + * @return void + * + * @since 6.0.0 + */ + public function setLanguageApplicationState(&$router, &$uri) + { + // We check if the parseRule is still attached to keep this b/c + if (!\in_array([$this, 'parseRule'], $router->getRules()['parsepreprocess'])) { + $router->detachRule('parse', [$this, 'setLanguageApplicationState'], $router::PROCESS_BEFORE); - if (isset($this->sefs[$lang])) { - // We found our language - $found = true; - $lang_code = $this->sefs[$lang]->lang_code; + return; } - // We are called via POST or the nolangfilter url parameter was set. We don't care about the language - // and simply set the default language as our current language. - if ( - $app->getInput()->getMethod() === 'POST' - || $app->getInput()->get('nolangfilter', 0) == 1 - || \count($app->getInput()->post) > 0 - || \count($app->getInput()->files) > 0 - ) { - $found = true; + $lang_code = false; - if (!isset($lang_code)) { - $lang_code = $this->getLanguageCookie(); - } + // Our parse rule discovered a language + if ($uri->hasVar('lang')) { + $uri_lang_code = $uri->getVar('lang'); - if (!$lang_code && $this->params->get('detect_browser', 1)) { - $lang_code = LanguageHelper::detectLanguage(); - } - - if (!isset($this->lang_codes[$lang_code])) { - $lang_code = $this->default_lang; + // Check whether the tag exists, first check for full language tag, then for short tag + if (isset($this->lang_codes[$uri_lang_code])) { + $lang_code = $uri_lang_code; + } elseif (isset($this->sefs[$uri_lang_code])) { + // Check for short language tag + $lang_code = $this->sefs[$uri_lang_code]->lang_code; } } - // We have not found the language and thus need to redirect - if (!$found) { - // Lets find the default language for this user - if (!isset($lang_code) || !isset($this->lang_codes[$lang_code])) { - $lang_code = false; + if (!$lang_code) { + /** + * We don't know the language yet and want to discover it. + * If we remove the default prefix, call by POST or have nolangfilter set, + * we simply take the default language. + */ + if ( + $this->params->get('remove_default_prefix', 0) + || $this->getApplication()->getInput()->getMethod() === 'POST' + || $this->getApplication()->getInput()->get('nolangfilter', 0) == 1 + || \count($this->getApplication()->getInput()->post) > 0 + || \count($this->getApplication()->getInput()->files) > 0 + ) { + $lang_code = $this->default_lang; + } else { + $lang_code = $this->getLanguageCookie(); - if ($this->params->get('detect_browser', 1)) { + // No language code. Try using browser settings or default site language + if (!$lang_code && $this->params->get('detect_browser', 0) == 1) { $lang_code = LanguageHelper::detectLanguage(); - - if (!isset($this->lang_codes[$lang_code])) { - $lang_code = false; - } } if (!$lang_code) { $lang_code = $this->default_lang; } - } - if ($this->mode_sef) { - // Use the current language sef or the default one. - if ( - $lang_code !== $this->default_lang - || !$this->params->get('remove_default_prefix', 0) - ) { - $path = $this->lang_codes[$lang_code]->sef . '/' . $path; - } - - $uri->setPath($path); - - if (!$app->get('sef_rewrite')) { - $uri->setPath('index.php/' . $uri->getPath()); - } + if (!$this->params->get('remove_default_prefix', 0) && $uri->getPath() == '') { + if ($this->mode_sef) { + $path = $this->lang_codes[$lang_code]->sef . '/' . $uri->getPath(); - $redirectUri = $uri->base() . $uri->toString(['path', 'query', 'fragment']); - } else { - $uri->setVar('lang', $this->lang_codes[$lang_code]->sef); - $redirectUri = $uri->base() . 'index.php?' . $uri->getQuery(); - } + if (!$this->getApplication()->get('sef_rewrite')) { + $path = 'index.php/' . $path; + } - // Set redirect HTTP code to "302 Found". - $redirectHttpCode = 302; + $uri->setPath($path); + } else { + $uri->setPath('index.php'); + $uri->setVar('lang', $this->lang_codes[$lang_code]->sef); + } + $redirectHttpCode = 301; + $redirectUri = $uri->base() . $uri->toString(['path', 'query', 'fragment']); - // If selected language is the default language redirect code is "301 Moved Permanently". - if ($lang_code === $this->default_lang) { - $redirectHttpCode = 301; + // We cannot cache this redirect in browser. 301 is cacheable by default so we need to force to not cache it in browsers. + $this->getApplication()->setHeader('Expires', 'Wed, 17 Aug 2005 00:00:00 GMT', true); + $this->getApplication()->setHeader('Last-Modified', gmdate('D, d M Y H:i:s') . ' GMT', true); + $this->getApplication()->setHeader('Cache-Control', 'no-store, no-cache, must-revalidate', false); + $this->getApplication()->sendHeaders(); - // We cannot cache this redirect in browser. 301 is cacheable by default so we need to force to not cache it in browsers. - $app->setHeader('Expires', 'Wed, 17 Aug 2005 00:00:00 GMT', true); - $app->setHeader('Last-Modified', gmdate('D, d M Y H:i:s') . ' GMT', true); - $app->setHeader('Cache-Control', 'no-store, no-cache, must-revalidate', false); - $app->sendHeaders(); + // Redirect to language. + $this->getApplication()->redirect($redirectUri, $redirectHttpCode); + } } - - // Redirect to language. - $app->redirect($redirectUri, $redirectHttpCode); } // We have found our language and now need to set the cookie and the language value in our system $this->current_lang = $lang_code; // Set the request var. + $app = $this->getApplication(); $app->getInput()->set('language', $lang_code); $app->set('language', $lang_code); $language = $app->getLanguage(); @@ -527,9 +517,9 @@ public function parseRule(&$router, &$uri) } // Create a cookie. - if ($this->getLanguageCookie() !== $lang_code) { - $this->setLanguageCookie($lang_code); - } + $this->setLanguageCookie($lang_code); + + $router->detachRule('parse', [$this, 'setLanguageApplicationState'], $router::PROCESS_BEFORE); } /** diff --git a/plugins/system/privacyconsent/src/Extension/PrivacyConsent.php b/plugins/system/privacyconsent/src/Extension/PrivacyConsent.php index be7a3a344562a..b9f2a537fef76 100644 --- a/plugins/system/privacyconsent/src/Extension/PrivacyConsent.php +++ b/plugins/system/privacyconsent/src/Extension/PrivacyConsent.php @@ -244,7 +244,7 @@ public function onUserAfterDelete(User\AfterDeleteEvent $event): void if ($userId) { // Remove user's consent - $query = $this->getDatabase()->getQuery(true) + $query = $this->getDatabase()->createQuery() ->delete($this->getDatabase()->quoteName('#__privacy_consents')) ->where($this->getDatabase()->quoteName('user_id') . ' = :userid') ->bind(':userid', $userId, ParameterType::INTEGER); @@ -348,7 +348,7 @@ public function onPrivacyCheckPrivacyPolicyPublished(CheckPrivacyPolicyPublished } // Check if the article exists in database and is published - $query = $this->getDatabase()->getQuery(true) + $query = $this->getDatabase()->createQuery() ->select($this->getDatabase()->quoteName(['id', 'state'])) ->from($this->getDatabase()->quoteName('#__content')) ->where($this->getDatabase()->quoteName('id') . ' = :id') @@ -404,7 +404,7 @@ private function isUserConsented($userId) { $userId = (int) $userId; $db = $this->getDatabase(); - $query = $db->getQuery(true); + $query = $db->createQuery(); $query->select('COUNT(*)') ->from($db->quoteName('#__privacy_consents')) diff --git a/plugins/system/privacyconsent/src/Field/PrivacyField.php b/plugins/system/privacyconsent/src/Field/PrivacyField.php index 980fa37b5ced1..27eb513c84437 100644 --- a/plugins/system/privacyconsent/src/Field/PrivacyField.php +++ b/plugins/system/privacyconsent/src/Field/PrivacyField.php @@ -84,7 +84,7 @@ protected function getLayoutData() if ($privacyArticle && Factory::getApplication()->isClient('site')) { $db = $this->getDatabase(); - $query = $db->getQuery(true) + $query = $db->createQuery() ->select($db->quoteName(['id', 'alias', 'catid', 'language'])) ->from($db->quoteName('#__content')) ->where($db->quoteName('id') . ' = :id') @@ -104,7 +104,7 @@ protected function getLayoutData() if (Multilanguage::isEnabled()) { $db = $this->getDatabase(); - $query = $db->getQuery(true) + $query = $db->createQuery() ->select($db->quoteName(['id', 'language'])) ->from($db->quoteName('#__menu')) ->where($db->quoteName('id') . ' = :id') diff --git a/plugins/system/redirect/src/Extension/Redirect.php b/plugins/system/redirect/src/Extension/Redirect.php index 8bdb1b71c102d..7b211362e1884 100644 --- a/plugins/system/redirect/src/Extension/Redirect.php +++ b/plugins/system/redirect/src/Extension/Redirect.php @@ -124,7 +124,7 @@ public function handleError(ErrorEvent $event) return; } - $query = $this->getDatabase()->getQuery(true); + $query = $this->getDatabase()->createQuery(); $query->select('*') ->from($this->getDatabase()->quoteName('#__redirect_links')) diff --git a/plugins/system/remember/src/Extension/Remember.php b/plugins/system/remember/src/Extension/Remember.php index 1691654a3b3a6..16267d0e50f7c 100644 --- a/plugins/system/remember/src/Extension/Remember.php +++ b/plugins/system/remember/src/Extension/Remember.php @@ -132,7 +132,7 @@ public function onUserBeforeSave(BeforeSaveEvent $event): void // But now, we need to do something - Delete all tokens for this user! $db = $this->getDatabase(); - $query = $db->getQuery(true) + $query = $db->createQuery() ->delete($db->quoteName('#__user_keys')) ->where($db->quoteName('user_id') . ' = :userid') ->bind(':userid', $user['username']); diff --git a/plugins/system/schemaorg/src/Extension/Schemaorg.php b/plugins/system/schemaorg/src/Extension/Schemaorg.php index 1652c79d47025..ecc6ce1cd1a51 100644 --- a/plugins/system/schemaorg/src/Extension/Schemaorg.php +++ b/plugins/system/schemaorg/src/Extension/Schemaorg.php @@ -97,7 +97,7 @@ public function onContentPrepareData(Model\PrepareDataEvent $event) if ($itemId > 0) { $db = $this->getDatabase(); - $query = $db->getQuery(true) + $query = $db->createQuery() ->select('*') ->from($db->quoteName('#__schemaorg')) ->where($db->quoteName('itemId') . '= :itemId') @@ -214,7 +214,7 @@ public function onContentAfterSave(Model\AfterSaveEvent $event) return; } - $query = $db->getQuery(true); + $query = $db->createQuery(); $query->select('*') ->from($db->quoteName('#__schemaorg')) @@ -418,7 +418,7 @@ public function onBeforeCompileHead(BeforeCompileHeadApplicationEvent $event): v if ($itemId > 0) { // Load the table data from the database $db = $this->getDatabase(); - $query = $db->getQuery(true) + $query = $db->createQuery() ->select('*') ->from($db->quoteName('#__schemaorg')) ->where($db->quoteName('itemId') . ' = :itemId') @@ -589,7 +589,7 @@ public function onContentAfterDelete(Model\AfterDeleteEvent $event) public function deleteSchemaOrg($itemId, $context) { $db = $this->getDatabase(); - $query = $db->getQuery(true); + $query = $db->createQuery(); $query->delete($db->quoteName('#__schemaorg')) ->where($db->quoteName('itemId') . '= :itemId') diff --git a/plugins/system/sef/src/Extension/Sef.php b/plugins/system/sef/src/Extension/Sef.php index 0480cd978a647..65d990a507298 100644 --- a/plugins/system/sef/src/Extension/Sef.php +++ b/plugins/system/sef/src/Extension/Sef.php @@ -14,6 +14,7 @@ use Joomla\CMS\Event\Application\AfterInitialiseEvent; use Joomla\CMS\Event\Application\AfterRenderEvent; use Joomla\CMS\Event\Application\AfterRouteEvent; +use Joomla\CMS\Language\LanguageHelper; use Joomla\CMS\Plugin\CMSPlugin; use Joomla\CMS\Router\Route; use Joomla\CMS\Router\Router; @@ -118,7 +119,7 @@ public function onAfterRoute(AfterRouteEvent $event) if ($router->isTainted()) { $parsedVars = $router->getVars(); - if ($app->getLanguageFilter()) { + if ($app->getLanguageFilter() && isset($parsedVars['language'])) { $parsedVars['lang'] = $parsedVars['language']; unset($parsedVars['language']); } @@ -339,6 +340,15 @@ public function enforceSuffix() return; } + // We don't force a suffix for the language homepage + $segments = explode('/', $route); + $last = array_pop($segments); + $sefs = LanguageHelper::getLanguages('sef'); + + if ($this->getApplication()->getLanguageFilter() && isset($sefs[$last])) { + return; + } + $suffix = pathinfo($route, PATHINFO_EXTENSION); $nonSEFSuffix = $origUri->getVar('format'); diff --git a/plugins/system/stats/src/Extension/Stats.php b/plugins/system/stats/src/Extension/Stats.php index 7a74db4354742..61e36161a8474 100644 --- a/plugins/system/stats/src/Extension/Stats.php +++ b/plugins/system/stats/src/Extension/Stats.php @@ -15,13 +15,13 @@ use Joomla\CMS\Event\Application\AfterInitialiseEvent; use Joomla\CMS\Event\Plugin\AjaxEvent; use Joomla\CMS\Event\Plugin\System\Stats\GetStatsDataEvent; -use Joomla\CMS\Http\HttpFactory; use Joomla\CMS\Layout\FileLayout; use Joomla\CMS\Log\Log; use Joomla\CMS\Plugin\CMSPlugin; use Joomla\CMS\User\UserHelper; use Joomla\Database\DatabaseAwareTrait; use Joomla\Event\SubscriberInterface; +use Joomla\Http\HttpFactory; // phpcs:disable PSR1.Files.SideEffects \defined('_JEXEC') or die; @@ -477,7 +477,7 @@ private function saveParams() $paramsJson = $this->params->toString('JSON'); $db = $this->getDatabase(); - $query = $db->getQuery(true) + $query = $db->createQuery() ->update($db->quoteName('#__extensions')) ->set($db->quoteName('params') . ' = :params') ->where($db->quoteName('type') . ' = ' . $db->quote('plugin')) @@ -530,7 +530,7 @@ private function sendStats() try { // Don't let the request take longer than 2 seconds to avoid page timeout issues - $response = HttpFactory::getHttp()->post($this->serverUrl, $this->getStatsData(), [], 2); + $response = (new HttpFactory())->getHttp()->post($this->serverUrl, $this->getStatsData(), [], 2); if (!$response) { $error = 'Could not send site statistics to remote server: No response'; @@ -603,7 +603,7 @@ private function disablePlugin() { $db = $this->getDatabase(); - $query = $db->getQuery(true) + $query = $db->createQuery() ->update($db->quoteName('#__extensions')) ->set($db->quoteName('enabled') . ' = 0') ->where($db->quoteName('type') . ' = ' . $db->quote('plugin')) diff --git a/plugins/system/tasknotification/src/Extension/TaskNotification.php b/plugins/system/tasknotification/src/Extension/TaskNotification.php index 2fd2861e94549..adb8e3dcc34f0 100644 --- a/plugins/system/tasknotification/src/Extension/TaskNotification.php +++ b/plugins/system/tasknotification/src/Extension/TaskNotification.php @@ -287,7 +287,7 @@ private function sendMail(string $template, array $data, string $attachment = '' $db = $this->getDatabase(); // Get all users who are not blocked and have opted in for system mails. - $query = $db->getQuery(true); + $query = $db->createQuery(); $query->select('DISTINCT ' . $db->quoteName('u.id') . ', ' . $db->quoteName('u.email')) ->from($db->quoteName('#__users', 'u')) diff --git a/plugins/system/webauthn/src/CredentialRepository.php b/plugins/system/webauthn/src/CredentialRepository.php index cfb5a03fc466a..2ef64fb6b4b9c 100644 --- a/plugins/system/webauthn/src/CredentialRepository.php +++ b/plugins/system/webauthn/src/CredentialRepository.php @@ -63,7 +63,7 @@ public function findOneByCredentialId(string $publicKeyCredentialId): ?PublicKey /** @var DatabaseInterface $db */ $db = $this->getDatabase(); $credentialId = base64_encode($publicKeyCredentialId); - $query = $db->getQuery(true) + $query = $db->createQuery() ->select($db->quoteName('credential')) ->from($db->quoteName('#__webauthn_credentials')) ->where($db->quoteName('id') . ' = :credentialId') @@ -99,7 +99,7 @@ public function findAllForUserEntity(PublicKeyCredentialUserEntity $publicKeyCre /** @var DatabaseInterface $db */ $db = $this->getDatabase(); $userHandle = $publicKeyCredentialUserEntity->getId(); - $query = $db->getQuery(true) + $query = $db->createQuery() ->select('*') ->from($db->quoteName('#__webauthn_credentials')) ->where($db->quoteName('user_id') . ' = :user_id') @@ -200,7 +200,7 @@ public function saveCredentialSource(PublicKeyCredentialSource $publicKeyCredent // Try to find an existing record try { - $query = $db->getQuery(true) + $query = $db->createQuery() ->select('*') ->from($db->quoteName('#__webauthn_credentials')) ->where($db->quoteName('id') . ' = :credentialId') @@ -260,7 +260,7 @@ public function getAll(int $userId): array /** @var DatabaseInterface $db */ $db = $this->getDatabase(); $userHandle = $this->getHandleFromUserId($userId); - $query = $db->getQuery(true) + $query = $db->createQuery() ->select('*') ->from($db->quoteName('#__webauthn_credentials')) ->where($db->quoteName('user_id') . ' = :user_id') @@ -328,7 +328,7 @@ public function has(string $credentialId): bool /** @var DatabaseInterface $db */ $db = $this->getDatabase(); $credentialId = base64_encode($credentialId); - $query = $db->getQuery(true) + $query = $db->createQuery() ->select('COUNT(*)') ->from($db->quoteName('#__webauthn_credentials')) ->where($db->quoteName('id') . ' = :credentialId') @@ -384,7 +384,7 @@ public function remove(string $credentialId): void /** @var DatabaseInterface $db */ $db = $this->getDatabase(); $credentialId = base64_encode($credentialId); - $query = $db->getQuery(true) + $query = $db->createQuery() ->delete($db->quoteName('#__webauthn_credentials')) ->where($db->quoteName('id') . ' = :credentialId') ->bind(':credentialId', $credentialId); @@ -466,7 +466,7 @@ public function getUserIdFromHandle(?string $userHandle): ?int $db = $this->getDatabase(); // Check that the userHandle does exist in the database - $query = $db->getQuery(true) + $query = $db->createQuery() ->select('COUNT(*)') ->from($db->quoteName('#__webauthn_credentials')) ->where($db->quoteName('user_id') . ' = ' . $db->q($userHandle)); @@ -482,7 +482,7 @@ public function getUserIdFromHandle(?string $userHandle): ?int } // Prepare the query - $query = $db->getQuery(true) + $query = $db->createQuery() ->select([$db->quoteName('id')]) ->from($db->quoteName('#__users')) ->where($db->quoteName('block') . ' = 0') @@ -621,8 +621,8 @@ private function formatDate($date, ?string $format = null, bool $tzAware = true) try { $tzDefault = Factory::getApplication()->get('offset'); - } catch (\Exception) { - $tzDefault = 'GMT'; + } catch (\Exception $e) { + $tzDefault = 'UTC'; } $user = Factory::getContainer()->get(UserFactoryInterface::class)->loadUserById($userId ?? 0); diff --git a/plugins/system/webauthn/src/PluginTraits/UserDeletion.php b/plugins/system/webauthn/src/PluginTraits/UserDeletion.php index 9a883f5157a80..6e0afa7007905 100644 --- a/plugins/system/webauthn/src/PluginTraits/UserDeletion.php +++ b/plugins/system/webauthn/src/PluginTraits/UserDeletion.php @@ -59,7 +59,7 @@ public function onUserAfterDelete(Event $event): void /** @var DatabaseInterface $db */ $db = Factory::getContainer()->get(DatabaseInterface::class); - $query = $db->getQuery(true) + $query = $db->createQuery() ->delete($db->quoteName('#__webauthn_credentials')) ->where($db->quoteName('user_id') . ' = :userId') ->bind(':userId', $userId); diff --git a/plugins/task/deleteactionlogs/src/Extension/DeleteActionLogs.php b/plugins/task/deleteactionlogs/src/Extension/DeleteActionLogs.php index 0015106b2dfe6..17b3c385f771c 100644 --- a/plugins/task/deleteactionlogs/src/Extension/DeleteActionLogs.php +++ b/plugins/task/deleteactionlogs/src/Extension/DeleteActionLogs.php @@ -81,7 +81,7 @@ private function deleteLogs(ExecuteTaskEvent $event): int $this->logTask(\sprintf('Delete Logs after %d days', $daysToDeleteAfter)); $now = Factory::getDate()->toSql(); $db = $this->getDatabase(); - $query = $db->getQuery(true); + $query = $db->createQuery(); if ($daysToDeleteAfter > 0) { $days = -1 * $daysToDeleteAfter; diff --git a/plugins/task/globalcheckin/src/Extension/Globalcheckin.php b/plugins/task/globalcheckin/src/Extension/Globalcheckin.php index 213c274f9ee18..361da5a427ce6 100644 --- a/plugins/task/globalcheckin/src/Extension/Globalcheckin.php +++ b/plugins/task/globalcheckin/src/Extension/Globalcheckin.php @@ -92,7 +92,7 @@ protected function makeCheckin(ExecuteTaskEvent $event): int continue; } - $query = $db->getQuery(true) + $query = $db->createQuery() ->update($db->quoteName($tn)) ->set($db->quoteName('checked_out') . ' = NULL') ->set($db->quoteName('checked_out_time') . ' = NULL'); diff --git a/plugins/task/privacyconsent/src/Extension/PrivacyConsent.php b/plugins/task/privacyconsent/src/Extension/PrivacyConsent.php index 4ff194dd5d8e5..3c3ac79159dca 100644 --- a/plugins/task/privacyconsent/src/Extension/PrivacyConsent.php +++ b/plugins/task/privacyconsent/src/Extension/PrivacyConsent.php @@ -122,7 +122,7 @@ private function remindExpiringConsents($expire, $remind): int $now = Factory::getDate()->toSql(); $period = '-' . ($expire - $remind); $db = $this->getDatabase(); - $query = $db->getQuery(true); + $query = $db->createQuery(); $query->select($db->quoteName(['r.id', 'r.user_id', 'u.email'])) ->from($db->quoteName('#__privacy_consents', 'r')) @@ -210,7 +210,7 @@ private function invalidateExpiredConsents($expire): int $now = Factory::getDate()->toSql(); $period = '-' . $expire; $db = $this->getDatabase(); - $query = $db->getQuery(true); + $query = $db->createQuery(); $query->select($db->quoteName(['id', 'user_id'])) ->from($db->quoteName('#__privacy_consents')) @@ -237,7 +237,7 @@ private function invalidateExpiredConsents($expire): int foreach ($users as $user) { $userId = (int) $user->id; - $query = $db->getQuery(true) + $query = $db->createQuery() ->update($db->quoteName('#__privacy_consents')) ->set($db->quoteName('state') . ' = 0') ->where($db->quoteName('id') . ' = :userid') diff --git a/plugins/task/updatenotification/src/Extension/UpdateNotification.php b/plugins/task/updatenotification/src/Extension/UpdateNotification.php index c4fcb08f95af1..b8731db244663 100644 --- a/plugins/task/updatenotification/src/Extension/UpdateNotification.php +++ b/plugins/task/updatenotification/src/Extension/UpdateNotification.php @@ -16,7 +16,7 @@ use Joomla\CMS\Mail\Exception\MailDisabledException; use Joomla\CMS\Mail\MailTemplate; use Joomla\CMS\Plugin\CMSPlugin; -use Joomla\CMS\Table\Table; +use Joomla\CMS\Table\Asset; use Joomla\CMS\Updater\Updater; use Joomla\CMS\Uri\Uri; use Joomla\CMS\Version; @@ -257,7 +257,8 @@ private function getSuperUsers($email = null) $ret = []; try { - $rootId = Table::getInstance('Asset')->getRootId(); + $table = new Asset($db); + $rootId = $table->getRootId(); $rules = Access::getAssetRules($rootId)->getData(); $rawGroups = $rules['core.admin']->getData(); $groups = []; @@ -281,7 +282,7 @@ private function getSuperUsers($email = null) // Get the user IDs of users belonging to the SA groups try { - $query = $db->getQuery(true) + $query = $db->createQuery() ->select($db->quoteName('user_id')) ->from($db->quoteName('#__user_usergroup_map')) ->whereIn($db->quoteName('group_id'), $groups); @@ -298,7 +299,7 @@ private function getSuperUsers($email = null) // Get the user information for the Super Administrator users try { - $query = $db->getQuery(true) + $query = $db->createQuery() ->select($db->quoteName(['id', 'username', 'email'])) ->from($db->quoteName('#__users')) ->whereIn($db->quoteName('id'), $userIDs) diff --git a/plugins/user/joomla/src/Extension/Joomla.php b/plugins/user/joomla/src/Extension/Joomla.php index 0bd4d3358bb0e..d959d8bfedc2f 100644 --- a/plugins/user/joomla/src/Extension/Joomla.php +++ b/plugins/user/joomla/src/Extension/Joomla.php @@ -132,7 +132,7 @@ public function onUserAfterDelete(AfterDeleteEvent $event): void try { $db->setQuery( - $db->getQuery(true) + $db->createQuery() ->delete($db->quoteName('#__messages')) ->where($db->quoteName('user_id_from') . ' = :userId') ->bind(':userId', $userId, ParameterType::INTEGER) @@ -143,7 +143,7 @@ public function onUserAfterDelete(AfterDeleteEvent $event): void // Delete Multi-factor Authentication user profile records $profileKey = 'mfa.%'; - $query = $db->getQuery(true) + $query = $db->createQuery() ->delete($db->quoteName('#__user_profiles')) ->where($db->quoteName('user_id') . ' = :userId') ->where($db->quoteName('profile_key') . ' LIKE :profileKey') @@ -157,7 +157,7 @@ public function onUserAfterDelete(AfterDeleteEvent $event): void } // Delete Multi-factor Authentication records - $query = $db->getQuery(true) + $query = $db->createQuery() ->delete($db->quoteName('#__user_mfa')) ->where($db->quoteName('user_id') . ' = :userId') ->bind(':userId', $userId, ParameterType::INTEGER); @@ -342,7 +342,7 @@ public function onUserLogin(LoginEvent $event) $db = $this->getDatabase(); // Purge the old session - $query = $db->getQuery(true) + $query = $db->createQuery() ->delete($db->quoteName('#__session')) ->where($db->quoteName('session_id') . ' = :sessionid') ->bind(':sessionid', $oldSessionId); diff --git a/plugins/user/profile/src/Extension/Profile.php b/plugins/user/profile/src/Extension/Profile.php index 0f42e8c13a186..ab930e0cc49c3 100644 --- a/plugins/user/profile/src/Extension/Profile.php +++ b/plugins/user/profile/src/Extension/Profile.php @@ -94,7 +94,7 @@ public function onContentPrepareData(PrepareDataEvent $event) if (!isset($data->profile) && $userId > 0) { // Load the profile data from the database. $db = $this->getDatabase(); - $query = $db->getQuery(true) + $query = $db->createQuery() ->select( [ $db->quoteName('profile_key'), @@ -377,7 +377,7 @@ public function onUserAfterSave(AfterSaveEvent $event): void $key = 'profile.' . $key; } - $query = $db->getQuery(true) + $query = $db->createQuery() ->delete($db->quoteName('#__user_profiles')) ->where($db->quoteName('user_id') . ' = :userid') ->whereIn($db->quoteName('profile_key'), $keys, ParameterType::STRING) @@ -450,7 +450,7 @@ public function onUserAfterDelete(AfterDeleteEvent $event): void if ($userId) { $db = $this->getDatabase(); - $query = $db->getQuery(true) + $query = $db->createQuery() ->delete($db->quoteName('#__user_profiles')) ->where($db->quoteName('user_id') . ' = :userid') ->where($db->quoteName('profile_key') . ' LIKE ' . $db->quote('profile.%')) diff --git a/plugins/user/profile/src/Field/TosField.php b/plugins/user/profile/src/Field/TosField.php index b1d2a7bcf9fc9..56b458f81db52 100644 --- a/plugins/user/profile/src/Field/TosField.php +++ b/plugins/user/profile/src/Field/TosField.php @@ -90,7 +90,7 @@ protected function getLabel() $attribs['data-bs-target'] = '#tosModal'; $db = $this->getDatabase(); - $query = $db->getQuery(true); + $query = $db->createQuery(); $query->select($db->quoteName(['id', 'alias', 'catid', 'language'])) ->from($db->quoteName('#__content')) diff --git a/plugins/user/terms/src/Field/TermsField.php b/plugins/user/terms/src/Field/TermsField.php index 113f3ac8c4a0d..4cf7698fb2f11 100644 --- a/plugins/user/terms/src/Field/TermsField.php +++ b/plugins/user/terms/src/Field/TermsField.php @@ -83,7 +83,7 @@ protected function getLayoutData() if ($termsArticle && Factory::getApplication()->isClient('site')) { $db = $this->getDatabase(); - $query = $db->getQuery(true) + $query = $db->createQuery() ->select($db->quoteName(['id', 'alias', 'catid', 'language'])) ->from($db->quoteName('#__content')) ->where($db->quoteName('id') . ' = :id') diff --git a/plugins/user/token/src/Extension/Token.php b/plugins/user/token/src/Extension/Token.php index 96591be720708..204a4a5ae2085 100644 --- a/plugins/user/token/src/Extension/Token.php +++ b/plugins/user/token/src/Extension/Token.php @@ -137,7 +137,7 @@ public function onContentPrepareData(PrepareDataEvent $event): void // Load the profile data from the database. try { $db = $this->getDatabase(); - $query = $db->getQuery(true) + $query = $db->createQuery() ->select([ $db->quoteName('profile_key'), $db->quoteName('profile_value'), @@ -352,7 +352,7 @@ public function onUserAfterSave(AfterSaveEvent $event): void // Remove existing Joomla Token user profile values $db = $this->getDatabase(); - $query = $db->getQuery(true) + $query = $db->createQuery() ->delete($db->quoteName('#__user_profiles')) ->where($db->quoteName('user_id') . ' = :userId') ->where($db->quoteName('profile_key') . ' LIKE :profileKey'); @@ -370,7 +370,7 @@ public function onUserAfterSave(AfterSaveEvent $event): void // Save the new Joomla Token user profile values $order = 1; - $query = $db->getQuery(true) + $query = $db->createQuery() ->insert($db->quoteName('#__user_profiles')) ->columns([ $db->quoteName('user_id'), @@ -418,7 +418,7 @@ public function onUserAfterDelete(AfterDeleteEvent $event): void try { $db = $this->getDatabase(); - $query = $db->getQuery(true) + $query = $db->createQuery() ->delete($db->quoteName('#__user_profiles')) ->where($db->quoteName('user_id') . ' = :userId') ->where($db->quoteName('profile_key') . ' LIKE :profileKey'); @@ -462,7 +462,7 @@ private function getTokenSeedForUser(int $userId): ?string { try { $db = $this->getDatabase(); - $query = $db->getQuery(true) + $query = $db->createQuery() ->select($db->quoteName('profile_value')) ->from($db->quoteName('#__user_profiles')) ->where($db->quoteName('profile_key') . ' = :profileKey') @@ -612,7 +612,7 @@ private function hasTokenProfileFields(?int $userId): bool } $db = $this->getDatabase(); - $q = $db->getQuery(true) + $q = $db->createQuery() ->select('COUNT(*)') ->from($db->quoteName('#__user_profiles')) ->where($db->quoteName('user_id') . ' = ' . $userId) diff --git a/plugins/workflow/featuring/src/Extension/Featuring.php b/plugins/workflow/featuring/src/Extension/Featuring.php index ed53418123401..cfa31d7b9eda0 100644 --- a/plugins/workflow/featuring/src/Extension/Featuring.php +++ b/plugins/workflow/featuring/src/Extension/Featuring.php @@ -10,6 +10,7 @@ namespace Joomla\Plugin\Workflow\Featuring\Extension; +use Doctrine\Inflector\InflectorFactory; use Joomla\CMS\Event\AbstractEvent; use Joomla\CMS\Event\Model; use Joomla\CMS\Event\Table\BeforeStoreEvent; @@ -28,7 +29,6 @@ use Joomla\Event\EventInterface; use Joomla\Event\SubscriberInterface; use Joomla\Registry\Registry; -use Joomla\String\Inflector; // phpcs:disable PSR1.Files.SideEffects \defined('_JEXEC') or die; @@ -194,7 +194,7 @@ public function onAfterDisplay(DisplayEvent $event) $section = $event->getArgument('section'); // We need the single model context for checking for workflow - $singularsection = Inflector::singularize($section); + $singularsection = InflectorFactory::create()->build()->singularize($section); if (!$this->isSupported($component . '.' . $singularsection)) { return; diff --git a/plugins/workflow/notification/src/Extension/Notification.php b/plugins/workflow/notification/src/Extension/Notification.php index ca9c1facc8225..952e33422cb54 100644 --- a/plugins/workflow/notification/src/Extension/Notification.php +++ b/plugins/workflow/notification/src/Extension/Notification.php @@ -330,7 +330,7 @@ private function removeLocked(array $userIds): array $db = $this->getDatabase(); // Check for locked inboxes would be better to have _cdf settings in the user_object or a filter in users model - $query = $db->getQuery(true); + $query = $db->createQuery(); $query->select($db->quoteName('user_id')) ->from($db->quoteName('#__messages_cfg')) diff --git a/plugins/workflow/publishing/src/Extension/Publishing.php b/plugins/workflow/publishing/src/Extension/Publishing.php index 1fdf788b37a3b..dbb96b4585bd1 100644 --- a/plugins/workflow/publishing/src/Extension/Publishing.php +++ b/plugins/workflow/publishing/src/Extension/Publishing.php @@ -10,6 +10,7 @@ namespace Joomla\Plugin\Workflow\Publishing\Extension; +use Doctrine\Inflector\InflectorFactory; use Joomla\CMS\Event\Model; use Joomla\CMS\Event\Table\BeforeStoreEvent; use Joomla\CMS\Event\View\DisplayEvent; @@ -26,7 +27,6 @@ use Joomla\Event\EventInterface; use Joomla\Event\SubscriberInterface; use Joomla\Registry\Registry; -use Joomla\String\Inflector; // phpcs:disable PSR1.Files.SideEffects \defined('_JEXEC') or die; @@ -210,7 +210,7 @@ public function onAfterDisplay(DisplayEvent $event) $section = $event->getArgument('section'); // We need the single model context for checking for workflow - $singularsection = Inflector::singularize($section); + $singularsection = InflectorFactory::create()->build()->singularize($section); if (!$this->isSupported($component . '.' . $singularsection)) { return; diff --git a/renovate.json b/renovate.json index 4af50ee723422..0117105124924 100644 --- a/renovate.json +++ b/renovate.json @@ -14,7 +14,7 @@ "packageRules": [ { "enabled": false, - "matchBaseBranches": "5.2-dev", + "matchBaseBranches": "6.0-dev", "matchPackagePatterns": ["*"] } ], diff --git a/ruleset.xml b/ruleset.xml index dbe75cebc35d8..2067140bd8900 100644 --- a/ruleset.xml +++ b/ruleset.xml @@ -9,6 +9,7 @@ ^cache/* ^media/* ^node_modules/* + ^plugins/behaviour/compat6/classes/* ^tmp/* @@ -96,7 +97,6 @@ libraries/src/Form/Field/CaptchaField\.php libraries/src/Input/Json\.php libraries/src/Installer/Manifest\.php - libraries/src/MVC/Model/DatabaseAwareTrait\.php libraries/src/MVC/Model/FormBehaviorTrait\.php libraries/src/MVC/Model/ItemModel\.php libraries/src/MVC/Model/StateBehaviorTrait\.php @@ -131,8 +131,6 @@ administrator/components/com_users/src/Service/HTML/Users\.php components/com_content/helpers/icon\.php components/com_content/helpers/icon\.php - libraries/src/Filesystem/Stream\.php - libraries/src/Filesystem/Streams/StreamString\.php libraries/src/Installer/Adapter/ComponentAdapter\.php libraries/src/Installer/Adapter/LanguageAdapter\.php libraries/src/Installer/Adapter/ModuleAdapter\.php @@ -204,9 +202,6 @@ libraries/src/Encrypt/Base32\.php libraries/src/Environment/Browser\.php libraries/src/Feed/FeedFactory\.php - libraries/src/Filesystem/Folder\.php - libraries/src/Filesystem/Stream\.php - libraries/src/Filesystem/Support/StringController\.php libraries/src/HTML/Helpers/Grid\.php libraries/src/Installer/Adapter/ComponentAdapter\.php libraries/src/Installer/Adapter/LanguageAdapter\.php @@ -246,8 +241,6 @@ administrator/components/com_installer/src/Model/DatabaseModel\.php libraries/src/Client/FtpClient\.php - libraries/src/Filesystem/Path\.php - libraries/src/Filesystem/Streams/StreamString\.php index\.php diff --git a/templates/cassiopeia/error.php b/templates/cassiopeia/error.php index 8a4000afda9cc..31e2fae8b5c21 100644 --- a/templates/cassiopeia/error.php +++ b/templates/cassiopeia/error.php @@ -77,6 +77,39 @@ // Override 'template.active' asset to set correct ltr/rtl dependency $wa->registerStyle('template.active', '', [], [], ['template.cassiopeia.' . ($this->direction === 'rtl' ? 'rtl' : 'ltr')]); +// Advanced Color Settings +$paramsColorSettings = $this->params->get('colorSettings', false); + +if ($paramsColorSettings) { + $wa->registerAndUseStyle('colors_custom', 'global/' . 'colors_custom.css') + ->addInlineStyle(':root { + --body-bg: ' . $this->params->get('bodybg') . '; + --body-color: ' . $this->params->get('bodycolor') . '; + --btnbg: ' . $this->params->get('btnbg') . '; + --btnbgh: ' . $this->params->get('btnbgh') . '; + --btncolor: ' . $this->params->get('btncolor') . '; + --btncolorh: ' . $this->params->get('btncolorh') . '; + --footerbg: ' . $this->params->get('footerbg') . '; + --footercolor: ' . $this->params->get('footercolor') . '; + --headerbg: ' . $this->params->get('headerbg') . '; + --headercolor: ' . $this->params->get('headercolor') . '; + --link-color: ' . $this->params->get('linkcolor') . '; + --link-hover-color: ' . $this->params->get('linkcolorh') . '; + }'); +} + +// Advanced Font Settings +$paramsFontSettings = $this->params->get('fontSettings', false); + +if ($paramsFontSettings) { + $wa->addInlineStyle(':root { + --body-font-size: ' . $this->params->get('bodysize') . 'rem; + --h1size: ' . $this->params->get('h1size') . 'rem; + --h2size: ' . $this->params->get('h2size') . 'rem; + --h3size: ' . $this->params->get('h3size') . 'rem; + }'); +} + // Browsers support SVG favicons $this->addHeadLink(HTMLHelper::_('image', 'joomla-favicon.svg', '', [], true, 1), 'icon', 'rel', ['type' => 'image/svg+xml']); $this->addHeadLink(HTMLHelper::_('image', 'favicon.ico', '', [], true, 1), 'alternate icon', 'rel', ['type' => 'image/vnd.microsoft.icon']); diff --git a/templates/cassiopeia/joomla.asset.json b/templates/cassiopeia/joomla.asset.json index 67b53cd7103da..4570677e11604 100644 --- a/templates/cassiopeia/joomla.asset.json +++ b/templates/cassiopeia/joomla.asset.json @@ -2,7 +2,7 @@ "$schema": "https://developer.joomla.org/schemas/json-schema/web_assets.json", "name": "cassiopeia", "version": "4.0.0", - "description": "This file contains details of the assets used by Cassiopeia, the default Joomla 4 site template.", + "description": "This file contains details of the assets used by Cassiopeia, the default Joomla site template.", "license": "GPL-2.0-or-later", "assets": [ { diff --git a/templates/cassiopeia_extended/component.php b/templates/cassiopeia_extended/component.php new file mode 100644 index 0000000000000..afa3e7e2e0e2d --- /dev/null +++ b/templates/cassiopeia_extended/component.php @@ -0,0 +1,43 @@ + + * @license GNU General Public License version 2 or later; see LICENSE.txt + */ + +defined('_JEXEC') or die; + +/** @var Joomla\CMS\Document\HtmlDocument $this */ + +require JPATH_THEMES . '/cassiopeia/component.php'; + +$wa = $this->getWebAssetManager(); + +// Advanced Color Settings +$wa->registerAndUseStyle('colors_custom', 'global/colors.css') + ->addInlineStyle(':root { + --body-bg: ' . $this->params->get('bodybg') . '; + --body-color: ' . $this->params->get('bodycolor') . '; + --btnbg: ' . $this->params->get('btnbg') . '; + --btnbgh: ' . $this->params->get('btnbgh') . '; + --btncolor: ' . $this->params->get('btncolor') . '; + --btncolorh: ' . $this->params->get('btncolorh') . '; + --footerbg: ' . $this->params->get('footerbg') . '; + --footercolor: ' . $this->params->get('footercolor') . '; + --headerbg: ' . $this->params->get('headerbg') . '; + --headercolor: ' . $this->params->get('headercolor') . '; + --link-color: ' . $this->params->get('linkcolor') . '; + --link-hover-color: ' . $this->params->get('linkcolorh') . '; + }') + + // Advanced Font Settings + ->registerAndUseStyle('font_advanced', 'global/fonts.css') + ->addInlineStyle(':root { + --body-font-size: ' . $this->params->get('bodysize') . 'rem; + --h1size: ' . $this->params->get('h1size') . 'rem; + --h2size: ' . $this->params->get('h2size') . 'rem; + --h3size: ' . $this->params->get('h3size') . 'rem; + }'); diff --git a/templates/cassiopeia_extended/error.php b/templates/cassiopeia_extended/error.php new file mode 100644 index 0000000000000..d0e28a014d185 --- /dev/null +++ b/templates/cassiopeia_extended/error.php @@ -0,0 +1,43 @@ + + * @license GNU General Public License version 2 or later; see LICENSE.txt + */ + +defined('_JEXEC') or die; + +/** @var Joomla\CMS\Document\HtmlDocument $this */ + +require JPATH_THEMES . '/cassiopeia/error.php'; + +$wa = $this->getWebAssetManager(); + +// Advanced Color Settings +$wa->registerAndUseStyle('colors_custom', 'global/colors.css') + ->addInlineStyle(':root { + --body-bg: ' . $this->params->get('bodybg') . '; + --body-color: ' . $this->params->get('bodycolor') . '; + --btnbg: ' . $this->params->get('btnbg') . '; + --btnbgh: ' . $this->params->get('btnbgh') . '; + --btncolor: ' . $this->params->get('btncolor') . '; + --btncolorh: ' . $this->params->get('btncolorh') . '; + --footerbg: ' . $this->params->get('footerbg') . '; + --footercolor: ' . $this->params->get('footercolor') . '; + --headerbg: ' . $this->params->get('headerbg') . '; + --headercolor: ' . $this->params->get('headercolor') . '; + --link-color: ' . $this->params->get('linkcolor') . '; + --link-hover-color: ' . $this->params->get('linkcolorh') . '; + }') + + // Advanced Font Settings + ->registerAndUseStyle('font_advanced', 'global/fonts.css') + ->addInlineStyle(':root { + --body-font-size: ' . $this->params->get('bodysize') . 'rem; + --h1size: ' . $this->params->get('h1size') . 'rem; + --h2size: ' . $this->params->get('h2size') . 'rem; + --h3size: ' . $this->params->get('h3size') . 'rem; + }'); diff --git a/templates/cassiopeia_extended/html/index.html b/templates/cassiopeia_extended/html/index.html new file mode 100644 index 0000000000000..2efb97f319a35 --- /dev/null +++ b/templates/cassiopeia_extended/html/index.html @@ -0,0 +1 @@ + diff --git a/templates/cassiopeia_extended/index.php b/templates/cassiopeia_extended/index.php new file mode 100644 index 0000000000000..daff44f19b495 --- /dev/null +++ b/templates/cassiopeia_extended/index.php @@ -0,0 +1,43 @@ + + * @license GNU General Public License version 2 or later; see LICENSE.txt + */ + +defined('_JEXEC') or die; + +/** @var Joomla\CMS\Document\HtmlDocument $this */ + +require JPATH_THEMES . '/cassiopeia/index.php'; + +$wa = $this->getWebAssetManager(); + +// Advanced Color Settings +$wa->registerAndUseStyle('colors_custom', 'global/colors.css') + ->addInlineStyle(':root { + --body-bg: ' . $this->params->get('bodybg') . '; + --body-color: ' . $this->params->get('bodycolor') . '; + --btnbg: ' . $this->params->get('btnbg') . '; + --btnbgh: ' . $this->params->get('btnbgh') . '; + --btncolor: ' . $this->params->get('btncolor') . '; + --btncolorh: ' . $this->params->get('btncolorh') . '; + --footerbg: ' . $this->params->get('footerbg') . '; + --footercolor: ' . $this->params->get('footercolor') . '; + --headerbg: ' . $this->params->get('headerbg') . '; + --headercolor: ' . $this->params->get('headercolor') . '; + --link-color: ' . $this->params->get('linkcolor') . '; + --link-hover-color: ' . $this->params->get('linkcolorh') . '; + }') + + // Advanced Font Settings + ->registerAndUseStyle('font_advanced', 'global/fonts.css') + ->addInlineStyle(':root { + --body-font-size: ' . $this->params->get('bodysize') . 'rem; + --h1size: ' . $this->params->get('h1size') . 'rem; + --h2size: ' . $this->params->get('h2size') . 'rem; + --h3size: ' . $this->params->get('h3size') . 'rem; + }'); diff --git a/templates/cassiopeia_extended/offline.php b/templates/cassiopeia_extended/offline.php new file mode 100644 index 0000000000000..ab4822fbbc57e --- /dev/null +++ b/templates/cassiopeia_extended/offline.php @@ -0,0 +1,43 @@ + + * @license GNU General Public License version 2 or later; see LICENSE.txt + */ + +defined('_JEXEC') or die; + +/** @var Joomla\CMS\Document\HtmlDocument $this */ + +require JPATH_THEMES . '/cassiopeia/offline.php'; + +$wa = $this->getWebAssetManager(); + +// Advanced Color Settings +$wa->registerAndUseStyle('colors_custom', 'global/colors.css') + ->addInlineStyle(':root { + --body-bg: ' . $this->params->get('bodybg') . '; + --body-color: ' . $this->params->get('bodycolor') . '; + --btnbg: ' . $this->params->get('btnbg') . '; + --btnbgh: ' . $this->params->get('btnbgh') . '; + --btncolor: ' . $this->params->get('btncolor') . '; + --btncolorh: ' . $this->params->get('btncolorh') . '; + --footerbg: ' . $this->params->get('footerbg') . '; + --footercolor: ' . $this->params->get('footercolor') . '; + --headerbg: ' . $this->params->get('headerbg') . '; + --headercolor: ' . $this->params->get('headercolor') . '; + --link-color: ' . $this->params->get('linkcolor') . '; + --link-hover-color: ' . $this->params->get('linkcolorh') . '; + }') + + // Advanced Font Settings + ->registerAndUseStyle('font_advanced', 'global/fonts.css') + ->addInlineStyle(':root { + --body-font-size: ' . $this->params->get('bodysize') . 'rem; + --h1size: ' . $this->params->get('h1size') . 'rem; + --h2size: ' . $this->params->get('h2size') . 'rem; + --h3size: ' . $this->params->get('h3size') . 'rem; + }'); diff --git a/templates/cassiopeia_extended/templateDetails.xml b/templates/cassiopeia_extended/templateDetails.xml new file mode 100644 index 0000000000000..6e309ed846135 --- /dev/null +++ b/templates/cassiopeia_extended/templateDetails.xml @@ -0,0 +1,351 @@ + + + cassiopeia_extended + 1.0 + 2017-02 + Joomla! Project + admin@joomla.org + (C) 2017 Open Source Matters, Inc. + TPL_CASSIOPEIA_EXTENDED_XML_DESCRIPTION + 0 + cassiopeia + + component.php + error.php + index.php + offline.php + templateDetails.xml + html + + + css + scss + + + topbar + below-top + menu + search + banner + top-a + top-b + main-top + main-bottom + breadcrumbs + sidebar-left + sidebar-right + bottom-a + bottom-b + footer + debug + + error-403 + error-404 + + + en-GB/tpl_cassiopeia.ini + en-GB/tpl_cassiopeia.sys.ini + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
diff --git a/templates/system/build_incomplete.html b/templates/system/build_incomplete.html index 9eb53c2561d52..2714637ccba3d 100644 --- a/templates/system/build_incomplete.html +++ b/templates/system/build_incomplete.html @@ -6,7 +6,7 @@ Joomla: Environment Setup Incomplete - +
diff --git a/templates/system/fatal-error.html b/templates/system/fatal-error.html index 68247714020c9..dce88c7451bcb 100644 --- a/templates/system/fatal-error.html +++ b/templates/system/fatal-error.html @@ -6,7 +6,7 @@ An Error Occurred: {{statusText}} - +
diff --git a/templates/system/incompatible.html b/templates/system/incompatible.html index 513d0941d61e5..f99eede0ce8db 100644 --- a/templates/system/incompatible.html +++ b/templates/system/incompatible.html @@ -6,7 +6,7 @@ Joomla: unsupported PHP version - +
diff --git a/tests/System/exclude.txt b/tests/System/exclude.txt index 20d9ef17039a7..b74f0b38758dc 100644 --- a/tests/System/exclude.txt +++ b/tests/System/exclude.txt @@ -7,7 +7,6 @@ node_modules .editorconfig .gitignore .php-cs-fixer.dist.php -build.xml composer.json composer.lock crowdin.yml diff --git a/tests/System/integration/administrator/components/com_installer/Languages.cy.js b/tests/System/integration/administrator/components/com_installer/Languages.cy.js index 930db7d4a156a..871119e28bbcf 100644 --- a/tests/System/integration/administrator/components/com_installer/Languages.cy.js +++ b/tests/System/integration/administrator/components/com_installer/Languages.cy.js @@ -8,9 +8,17 @@ describe('Test in backend that the Installer', () => { cy.get('h1.page-title').should('contain.text', 'Extensions: Languages'); }); - it('has Afrikaans Language installable', () => { - cy.get('tr.row0').should('contain.text', 'Afrikaans').then(() => { - cy.get('input.btn.btn-primary.btn-sm').should('exist'); + it('has any Language installable', () => { + cy.get('body').then((body) => { + if (body.find('#installer-languages table').length === 0) { + cy.get('#installer-languages .alert.alert-info').should('contain.text', 'No Matching Results'); + cy.checkForSystemMessage(`Can't connect to https://update.joomla.org/language/translationlist`); + } else { + cy.get('#installer-languages table').within(() => { + cy.get('input[type="button"]').should('have.value', 'Install'); + cy.get('a[target="_blank"]').invoke('attr', 'href').should('match', /^https:\/\/update\.joomla\.org\/language\/details/); + }); + } }); }); }); diff --git a/tests/System/integration/administrator/components/com_users/Levels.cy.js b/tests/System/integration/administrator/components/com_users/Levels.cy.js index fda381242df76..3e974312cf6c9 100644 --- a/tests/System/integration/administrator/components/com_users/Levels.cy.js +++ b/tests/System/integration/administrator/components/com_users/Levels.cy.js @@ -19,7 +19,7 @@ describe('Test in backend that the user access level list', () => { it('can open the access level form', () => { cy.clickToolbarButton('New'); - cy.contains('Level Details'); + cy.contains('User Groups With Viewing Access'); }); it('can delete the test level', () => { diff --git a/tests/System/integration/api/com_banners/Banners.cy.js b/tests/System/integration/api/com_banners/Banners.cy.js index 6619b1ed4ee6f..e7c8d2b524ac5 100644 --- a/tests/System/integration/api/com_banners/Banners.cy.js +++ b/tests/System/integration/api/com_banners/Banners.cy.js @@ -48,4 +48,28 @@ describe('Test that banners API endpoint', () => { cy.db_createBanner({ name: 'automated test banner', state: -2 }) .then((banner) => cy.api_delete(`/banners/${banner.id}`)); }); + + it('check correct response for delete a not existent contact', () => { + cy.api_delete('/banners/9999') + .then((result) => expect(result.status).to.eq(204)); + }); + + it('cannot delete a banner that is not trashed', () => { + cy.db_createBanner({ name: 'automated test banner' }) + .then((banner) => { + cy.api_getBearerToken().then((token) => { + cy.request({ + method: 'DELETE', + url: `/api/index.php/v1/banners/${banner.id}`, + headers: { + Authorization: `Bearer ${token}`, + }, + failOnStatusCode: false + }).then((response) => { + expect(response.status).to.equal(409); + expect(response.body.data.message).to.include('must be trashed before it can be deleted'); + }); + }); + }); + }); }); diff --git a/tests/System/integration/api/com_content/Articles.cy.js b/tests/System/integration/api/com_content/Articles.cy.js index d1a31b94160cd..7e56609e4b90a 100644 --- a/tests/System/integration/api/com_content/Articles.cy.js +++ b/tests/System/integration/api/com_content/Articles.cy.js @@ -9,6 +9,18 @@ describe('Test that content API endpoint', () => { .should('include', 'automated test article')); }); + it('can deliver a list of articles filtered by the modified start and end filter', () => { + cy.db_createArticle({ title: 'automated test article before', modified: '2025-03-15 10:00:00' }) + .then(() => cy.db_createArticle({ title: 'automated test article within', modified: '2025-03-15 15:00:00' })) + .then(() => cy.db_createArticle({ title: 'automated test article after', modified: '2025-03-15 20:00:00' })) + .then(() => cy.api_get('/content/articles?filter[modified_start]=2025-03-15 14:00:00&filter[modified_end]=2025-03-15 16:00:00')) + .then((response) => cy.wrap(response).its('body').its('data.0').its('attributes') + .its('title') + .should('include', 'automated test article within') + .should('not.include', 'automated test article before') + .should('not.include', 'automated test article after')); + }); + it('can deliver a single article', () => { cy.db_createArticle({ title: 'automated test article' }) .then((article) => cy.api_get(`/content/articles/${article.id}`)) diff --git a/tests/System/integration/api/com_contenthistory/Banner.cy.js b/tests/System/integration/api/com_contenthistory/Banner.cy.js index 0b887006c25c4..8d8a1ebf067df 100644 --- a/tests/System/integration/api/com_contenthistory/Banner.cy.js +++ b/tests/System/integration/api/com_contenthistory/Banner.cy.js @@ -42,7 +42,6 @@ describe('Test that contenthistory for banners API endpoint', () => { const bannerName = versionData.name; const { alias } = versionData; const createdDate = versionData.created; - const modifiedDate = versionData.modified; // Log details for debugging cy.log(`History ID: ${historyId}`); @@ -52,12 +51,10 @@ describe('Test that contenthistory for banners API endpoint', () => { cy.log(`Banner Name: ${bannerName}`); cy.log(`Alias: ${alias}`); cy.log(`Created Date: ${createdDate}`); - cy.log(`Modified Date: ${modifiedDate}`); // Perform assertions expect(attributes).to.have.property('editor_user_id'); expect(versionData).to.have.property('name'); - expect(versionData).to.have.property('modified'); expect(bannerName).to.eq('automated test banner'); }); diff --git a/tests/System/integration/api/com_contenthistory/Contact.cy.js b/tests/System/integration/api/com_contenthistory/Contact.cy.js index 3815e09ad06a9..6953d5523c1e6 100644 --- a/tests/System/integration/api/com_contenthistory/Contact.cy.js +++ b/tests/System/integration/api/com_contenthistory/Contact.cy.js @@ -37,7 +37,6 @@ describe('Test that contenthistory for contact API endpoint', () => { const contactName = versionData.name; const { alias } = versionData; const createdDate = versionData.created; - const modifiedDate = versionData.modified; // Log details for debugging cy.log(`History ID: ${historyId}`); @@ -47,12 +46,10 @@ describe('Test that contenthistory for contact API endpoint', () => { cy.log(`Contact Name: ${contactName}`); cy.log(`Alias: ${alias}`); cy.log(`Created Date: ${createdDate}`); - cy.log(`Modified Date: ${modifiedDate}`); // Perform assertions expect(attributes).to.have.property('editor_user_id'); expect(versionData).to.have.property('name'); - expect(versionData).to.have.property('modified'); expect(contactName).to.eq('automated test contact'); }); diff --git a/tests/System/integration/api/com_contenthistory/Content.cy.js b/tests/System/integration/api/com_contenthistory/Content.cy.js index 9f939f7b97119..26fbad1921960 100644 --- a/tests/System/integration/api/com_contenthistory/Content.cy.js +++ b/tests/System/integration/api/com_contenthistory/Content.cy.js @@ -47,7 +47,6 @@ describe('Test that contenthistory for content API endpoint', () => { const articleTitle = versionData.title; const { alias } = versionData; const createdDate = versionData.created; - const modifiedDate = versionData.modified; // Log details for debugging cy.log(`History ID: ${historyId}`); @@ -57,12 +56,10 @@ describe('Test that contenthistory for content API endpoint', () => { cy.log(`Article Title: ${articleTitle}`); cy.log(`Alias: ${alias}`); cy.log(`Created Date: ${createdDate}`); - cy.log(`Modified Date: ${modifiedDate}`); // Perform assertions expect(attributes).to.have.property('editor_user_id'); expect(versionData).to.have.property('title'); - expect(versionData).to.have.property('modified'); expect(articleTitle).to.eq('automated test article'); }); diff --git a/tests/System/integration/api/com_languages/Languages.cy.js b/tests/System/integration/api/com_languages/Languages.cy.js index 0d942ff683fa5..0d9a3faa9767e 100644 --- a/tests/System/integration/api/com_languages/Languages.cy.js +++ b/tests/System/integration/api/com_languages/Languages.cy.js @@ -1,7 +1,12 @@ describe('Test that languages API endpoint', () => { it('can deliver a list of languages', () => { - cy.api_get('/languages') - .then((response) => cy.wrap(response).its('body').its('data.0').its('type') - .should('include', 'languages')); + cy.api_get('/languages').then((response) => { + if (response?.body?.data.length === 0) { + cy.wrap(response).its('body.data').should('have.length', 0); + cy.wrap(response).its('body.links.self').should('include', '/api/index.php/v1/languages'); + } else { + cy.wrap(response).its('body.data.0.type').should('include', 'languages'); + } + }); }); }); diff --git a/tests/System/integration/install/Installation.cy.js b/tests/System/integration/install/Installation.cy.js index 844ce5085097d..a27e7243094ad 100644 --- a/tests/System/integration/install/Installation.cy.js +++ b/tests/System/integration/install/Installation.cy.js @@ -20,7 +20,7 @@ describe('Install Joomla', () => { cy.installJoomla(config); // Disable compat plugin - cy.db_enableExtension(0, 'plg_behaviour_compat'); + cy.db_enableExtension(0, 'plg_behaviour_compat6'); cy.doAdministratorLogin(config.username, config.password, false); cy.cancelTour(); diff --git a/tests/Unit/Component/Actionlogs/Administrator/Model/ActionlogConfigModelTest.php b/tests/Unit/Component/Actionlogs/Administrator/Model/ActionlogConfigModelTest.php index 3f6fde9875f54..b7321d5587b30 100644 --- a/tests/Unit/Component/Actionlogs/Administrator/Model/ActionlogConfigModelTest.php +++ b/tests/Unit/Component/Actionlogs/Administrator/Model/ActionlogConfigModelTest.php @@ -35,7 +35,7 @@ public function testGetLogContentTypeParams() { $config = new \stdClass(); $db = $this->createStub(DatabaseInterface::class); - $db->method('getQuery')->willReturn($this->getQueryStub($db)); + $db->method('createQuery')->willReturn($this->getQueryStub($db)); $db->method('loadObject')->willReturn($config); $model = new ActionlogConfigModel(['dbo' => $db], $this->createStub(MVCFactoryInterface::class)); @@ -53,7 +53,7 @@ public function testGetLogContentTypeParams() public function testGetNullLogContentTypeParams() { $db = $this->createStub(DatabaseInterface::class); - $db->method('getQuery')->willReturn($this->getQueryStub($db)); + $db->method('createQuery')->willReturn($this->getQueryStub($db)); $model = new ActionlogConfigModel(['dbo' => $db], $this->createStub(MVCFactoryInterface::class)); diff --git a/tests/Unit/Libraries/Cms/Access/RulesTest.php b/tests/Unit/Libraries/Cms/Access/RulesTest.php index 0298ad1f3239b..8f8266ba27c55 100644 --- a/tests/Unit/Libraries/Cms/Access/RulesTest.php +++ b/tests/Unit/Libraries/Cms/Access/RulesTest.php @@ -12,7 +12,6 @@ use Joomla\CMS\Access\Rule; use Joomla\CMS\Access\Rules; -use Joomla\CMS\Object\CMSObject; use Joomla\Tests\Unit\UnitTestCase; /** @@ -340,10 +339,10 @@ public function testGetAllowed() $rules = new Rules($ruleData); $allowed = $rules->getAllowed(-42); - $this->assertInstanceOf(CMSObject::class, $allowed); - $this->assertTrue($allowed->get('create')); - $this->assertTrue($allowed->get('edit')); - $this->assertNull($allowed->get('delete')); + $this->assertInstanceOf(\stdClass::class, $allowed); + $this->assertTrue($allowed->create); + $this->assertTrue($allowed->edit); + $this->assertFalse(isset($allowed->delete)); } /** diff --git a/tests/Unit/Libraries/Cms/Image/ImageTest.php b/tests/Unit/Libraries/Cms/Image/ImageTest.php index 916d7b297830f..a7edbda6288cf 100644 --- a/tests/Unit/Libraries/Cms/Image/ImageTest.php +++ b/tests/Unit/Libraries/Cms/Image/ImageTest.php @@ -884,19 +884,19 @@ public function testGenerateThumbs() } /** - * Test the Image::createThumbs method without a loaded image. + * Test the Image::createThumbnails method without a loaded image. * * @return void * - * @covers \Joomla\CMS\Image\Image::createThumbs + * @covers \Joomla\CMS\Image\Image::createThumbnails * * @since 1.1.3 */ - public function testCreateThumbsWithoutLoadedImage() + public function testcreateThumbnailsWithoutLoadedImage() { $this->expectException(\LogicException::class); - $thumbs = $this->instance->createThumbs('50x38'); + $thumbs = $this->instance->createThumbnails('50x38'); } /** @@ -904,7 +904,7 @@ public function testCreateThumbsWithoutLoadedImage() * * @return void * - * @covers \Joomla\CMS\Image\Image::createThumbs + * @covers \Joomla\CMS\Image\Image::createThumbnails * * @since 1.1.3 */ @@ -913,23 +913,23 @@ public function testGenerateThumbsWithInvalidFolder() $this->expectException(\InvalidArgumentException::class); $this->instance->loadFile($this->testFile); - $this->instance->createThumbs('50x38', Image::SCALE_INSIDE, '/foo/bar'); + $this->instance->createThumbnails('50x38', Image::SCALE_INSIDE, '/foo/bar'); } /** - * Test the Image::createThumbs method. + * Test the Image::createThumbnails method. * * @return void * - * @covers \Joomla\CMS\Image\Image::createThumbs + * @covers \Joomla\CMS\Image\Image::createThumbnails * * @since 1.1.3 */ - public function testCreateThumbs() + public function testcreateThumbnails() { $this->instance->loadFile($this->testFile); - $thumbs = $this->instance->createThumbs('50x38', Image::CROP); + $thumbs = $this->instance->createThumbnails('50x38', Image::CROP); $outFileGif = TestHelper::getValue($thumbs[0], 'path'); $a = Image::getImageFileProperties($this->testFile); diff --git a/tests/Unit/Libraries/Cms/MVC/Model/DatabaseModelTest.php b/tests/Unit/Libraries/Cms/MVC/Model/DatabaseModelTest.php index 19c8693e6b22d..7915635164e30 100644 --- a/tests/Unit/Libraries/Cms/MVC/Model/DatabaseModelTest.php +++ b/tests/Unit/Libraries/Cms/MVC/Model/DatabaseModelTest.php @@ -13,7 +13,6 @@ use Exception; use Joomla\CMS\MVC\Factory\MVCFactoryInterface; use Joomla\CMS\MVC\Model\BaseDatabaseModel; -use Joomla\CMS\MVC\Model\DatabaseAwareTrait; use Joomla\CMS\Table\Table; use Joomla\CMS\User\User; use Joomla\Database\DatabaseInterface; @@ -130,7 +129,7 @@ public function testGetListFromString() { $db = $this->createStub(DatabaseInterface::class); $db->method('loadObjectList')->willReturn([1]); - $db->method('getQuery')->willReturn($this->getQueryStub($db)); + $db->method('createQuery')->willReturn($this->getQueryStub($db)); $model = new class (['dbo' => $db], $this->createStub(MVCFactoryInterface::class)) extends BaseDatabaseModel { public function _getList($query, $limitstart = 0, $limit = 0) @@ -303,49 +302,4 @@ public function testCheckedOutWitFieldEmptyUserSet() $this->assertTrue($model->isCheckedOut((object)['checked_out' => 1])); } - - /** - * @testdox still can use the old trait - * - * @return void - * - * @since 4.2.0 - * - * @deprecated 5.0 Must be removed when trait gets deleted - */ - public function testUseOldMVCTrait() - { - $db = $this->createStub(DatabaseInterface::class); - - $model = new class (['dbo' => $db], $this->createStub(MVCFactoryInterface::class)) extends BaseDatabaseModel { - use DatabaseAwareTrait; - }; - - $this->assertEquals($db, $model->getDbo()); - } - - /** - * @testdox operates normally even when no variable is declared - * - * @return void - * - * @since 4.2.0 - * - * @deprecated 5.0 This has to be removed when we do not support the MVC Trait anymore - */ - public function testNotDeclaredVariable() - { - $model = new class (['dbo' => $this->createStub(DatabaseInterface::class)], $this->createStub(MVCFactoryInterface::class)) extends BaseDatabaseModel { - public function cache($key, $value) - { - if (!isset($this->test[$key])) { - $this->test[$key] = $value; - } - - return $this->test[$key]; - } - }; - - $this->assertEquals('test', $model->cache(1, 'test')); - } } diff --git a/tests/Unit/Libraries/Cms/Updater/ConstraintCheckerTest.php b/tests/Unit/Libraries/Cms/Updater/ConstraintCheckerTest.php index e14bb25494ce4..c913606dc343b 100644 --- a/tests/Unit/Libraries/Cms/Updater/ConstraintCheckerTest.php +++ b/tests/Unit/Libraries/Cms/Updater/ConstraintCheckerTest.php @@ -197,11 +197,11 @@ protected function targetplatformDataProvider() [(array) ["name" => "foobar", "version" => "4.*"], false], [(array) ["name" => "joomla", "version" => "1.*"], false], [(array) ["name" => "joomla", "version" => "3.1.2"], false], - [(array) ["name" => "joomla", "version" => "6.*"], false], + [(array) ["name" => "joomla", "version" => "6.*"], true], [(array) ["name" => "joomla", "version" => ""], true], [(array) ["name" => "joomla", "version" => ".*"], true], [(array) ["name" => "joomla", "version" => JVERSION], true], - [(array) ["name" => "joomla", "version" => "5.*"], true], + [(array) ["name" => "joomla", "version" => "5.*"], false], ]; } diff --git a/tests/Unit/Plugin/Authentication/Ldap/LdapPluginTest.php b/tests/Unit/Plugin/Authentication/Ldap/LdapPluginTest.php index 35a60b75ea513..b5106254e3524 100644 --- a/tests/Unit/Plugin/Authentication/Ldap/LdapPluginTest.php +++ b/tests/Unit/Plugin/Authentication/Ldap/LdapPluginTest.php @@ -355,7 +355,7 @@ public function __construct(bool $failBind, bool $failQuery, bool $hasEntry) $this->hasEntry = $hasEntry; } - public function bind(?string $dn = null, ?string $password = null) + public function bind(?string $dn = null, ?string $password = null): void { if ($this->failBind) { throw new LdapException(); diff --git a/tests/Unit/Plugin/EditorsXtd/PageBreak/Extension/PageBreakTest.php b/tests/Unit/Plugin/EditorsXtd/PageBreak/Extension/PageBreakTest.php index 526d616d9a847..34b6cc672b5cf 100644 --- a/tests/Unit/Plugin/EditorsXtd/PageBreak/Extension/PageBreakTest.php +++ b/tests/Unit/Plugin/EditorsXtd/PageBreak/Extension/PageBreakTest.php @@ -89,6 +89,7 @@ public function testInvalidPermissions() $user->method('getAuthorisedCategories')->willReturn([]); $app = $this->createStub(CMSWebApplicationInterface::class); + $app->method('getLanguage')->willReturn($this->createStub(Language::class)); $app->method('getIdentity')->willReturn($user); $btnsReg = new ButtonsRegistry(); @@ -126,7 +127,9 @@ public function testInvalidApplication() $dispatcher = new Dispatcher(); $plugin = new PageBreak($dispatcher, ['name' => 'pagebreak', 'type' => 'editors-xtd', 'params' => []]); - $plugin->setApplication($this->createStub(CMSApplicationInterface::class)); + $app = $this->createStub(CMSApplicationInterface::class); + $app->method('getLanguage')->willReturn($this->createStub(Language::class)); + $plugin->setApplication($app); $plugin->onEditorButtonsSetup($event); $button = $btnsReg->getAll()[0] ?? false; diff --git a/tests/Unit/Plugin/Filesystem/Local/Extension/LocalPluginTest.php b/tests/Unit/Plugin/Filesystem/Local/Extension/LocalPluginTest.php index 7bad2a7685ece..620c427cb1363 100644 --- a/tests/Unit/Plugin/Filesystem/Local/Extension/LocalPluginTest.php +++ b/tests/Unit/Plugin/Filesystem/Local/Extension/LocalPluginTest.php @@ -97,6 +97,7 @@ public function testAdapters() { $app = $this->createStub(CMSApplicationInterface::class); $app->method('getIdentity')->willReturn(new User()); + $app->method('getLanguage')->willReturn($this->createStub(Language::class)); $plugin = new Local(['params' => ['directories' => '[{"directory": "tests"}]']], JPATH_ROOT); $plugin->setApplication($app); diff --git a/tests/Unit/bootstrap.php b/tests/Unit/bootstrap.php index c506928078569..bc296b8d08349 100644 --- a/tests/Unit/bootstrap.php +++ b/tests/Unit/bootstrap.php @@ -35,13 +35,6 @@ \define('JPATH_ROOT', JPATH_BASE); } -/** - * @deprecated 4.4.0 will be removed in 6.0 - **/ -if (!\defined('JPATH_PLATFORM')) { - \define('JPATH_PLATFORM', JPATH_BASE . DIRECTORY_SEPARATOR . 'libraries'); -} - if (!\defined('JPATH_LIBRARIES')) { \define('JPATH_LIBRARIES', JPATH_BASE . DIRECTORY_SEPARATOR . 'libraries'); }