diff --git a/administrator/components/com_installer/src/Model/ManageModel.php b/administrator/components/com_installer/src/Model/ManageModel.php
index 841a20c16d773..b283fa05b4dbe 100644
--- a/administrator/components/com_installer/src/Model/ManageModel.php
+++ b/administrator/components/com_installer/src/Model/ManageModel.php
@@ -408,7 +408,16 @@ public function loadChangelog($eid, $source)
]
)
)
- ->select($db->quoteName('updates.version', 'updateVersion'))
+ ->select($db->quoteName(
+ [
+ 'updates.version',
+ 'updates.changelogurl',
+ ],
+ [
+ 'updateVersion',
+ 'updateChangelogUrl',
+ ]
+ ))
->from($db->quoteName('#__extensions', 'extensions'))
->join(
'LEFT',
@@ -423,13 +432,15 @@ public function loadChangelog($eid, $source)
$this->translate($extensions);
$extension = array_shift($extensions);
- if (!$extension->changelogurl) {
+ $changelogurl = $source === 'manage' ? $extension->changelogurl : $extension->updateChangelogUrl;
+
+ if (!$changelogurl) {
return '';
}
$changelog = new Changelog();
$changelog->setVersion($source === 'manage' ? $extension->version : $extension->updateVersion);
- $changelog->loadFromXml($extension->changelogurl);
+ $changelog->loadFromXml($changelogurl);
// Read all the entries
$entries = [
diff --git a/administrator/components/com_mails/src/Helper/MailsHelper.php b/administrator/components/com_mails/src/Helper/MailsHelper.php
index 870e67781281e..61405818dc953 100644
--- a/administrator/components/com_mails/src/Helper/MailsHelper.php
+++ b/administrator/components/com_mails/src/Helper/MailsHelper.php
@@ -82,6 +82,10 @@ public static function loadTranslationFiles($extension, $language = 'en-GB')
case 'com':
default:
$source = JPATH_ADMINISTRATOR . '/components/' . $extension;
+
+ $lang->load($extension, JPATH_BASE, $language, true)
+ || $lang->load($extension, JPATH_BASE . '/components/' . $extension, $language, true);
+
break;
case 'mod':
diff --git a/administrator/components/com_users/src/Helper/DebugHelper.php b/administrator/components/com_users/src/Helper/DebugHelper.php
index 2635774858057..dda89bf802f11 100644
--- a/administrator/components/com_users/src/Helper/DebugHelper.php
+++ b/administrator/components/com_users/src/Helper/DebugHelper.php
@@ -85,6 +85,10 @@ public static function getDebugActions($component = null)
$component_actions = Access::getActionsFromFile(JPATH_ADMINISTRATOR . '/components/' . $component . '/access.xml');
if (!empty($component_actions)) {
+ // Load language
+ $lang = Factory::getApplication()->getLanguage();
+ $lang->load($component, JPATH_ADMINISTRATOR, null, false, false);
+
foreach ($component_actions as &$action) {
$descr = (string) $action->title;
diff --git a/administrator/components/com_users/tmpl/debuggroup/default.php b/administrator/components/com_users/tmpl/debuggroup/default.php
index 0b053e3a33f39..105c04627585c 100644
--- a/administrator/components/com_users/tmpl/debuggroup/default.php
+++ b/administrator/components/com_users/tmpl/debuggroup/default.php
@@ -36,6 +36,8 @@
actions as $action) :
$name = $action[0];
if (in_array($name, ['core.login.site', 'core.login.admin', 'core.login.offline', 'core.login.api', 'core.admin'])) :
diff --git a/administrator/components/com_users/tmpl/debuguser/default.php b/administrator/components/com_users/tmpl/debuguser/default.php
index d24c9d25a497d..c7af6108f9fe6 100644
--- a/administrator/components/com_users/tmpl/debuguser/default.php
+++ b/administrator/components/com_users/tmpl/debuguser/default.php
@@ -20,9 +20,6 @@
$listOrder = $this->escape($this->state->get('list.ordering'));
$listDirn = $this->escape($this->state->get('list.direction'));
-$loginActions = [];
-$actions = [];
-
/** @var Joomla\CMS\WebAsset\WebAssetManager $wa */
$wa = $this->getDocument()->getWebAssetManager();
$wa->useScript('table.columns');
@@ -39,6 +36,8 @@
actions as $action) :
$name = $action[0];
if (in_array($name, ['core.login.site', 'core.login.admin', 'core.login.api', 'core.login.offline'])) :
diff --git a/administrator/language/en-GB/com_config.ini b/administrator/language/en-GB/com_config.ini
index 027846bfb3c83..56d6d3e2b240f 100644
--- a/administrator/language/en-GB/com_config.ini
+++ b/administrator/language/en-GB/com_config.ini
@@ -244,7 +244,7 @@ COM_CONFIG_SENDMAIL_METHOD_SMTP="SMTP"
COM_CONFIG_SENDMAIL_SUBJECT="Test mail from {SITENAME}"
COM_CONFIG_SENDMAIL_SUCCESS="The email was sent to %s using %s. You should check that you've received the test email."
COM_CONFIG_SENDMAIL_SUCCESS_FALLBACK="The email was sent to %s but using %s as fallback. You should check that you've received the test email."
-COM_CONFIG_SEO_SETTINGS_DESC="Additional settings can be found in the \"System - SEF\" plugin."
+COM_CONFIG_SEO_SETTINGS_DESC="Additional settings can be found in the \"System - SEF\" plugin."
COM_CONFIG_SEO_SETTINGS="SEO"
COM_CONFIG_SERVER="Server"
COM_CONFIG_SERVER_SETTINGS="Server"
diff --git a/build/media_source/com_content/js/form-edit.es6.js b/build/media_source/com_content/js/form-edit.es6.js
index ca2ff966b2aa2..bb5c9828280fe 100644
--- a/build/media_source/com_content/js/form-edit.es6.js
+++ b/build/media_source/com_content/js/form-edit.es6.js
@@ -25,7 +25,7 @@
document.querySelectorAll(`[${buttonDataSelector}]`).forEach((button) => {
button.addEventListener('click', (e) => {
e.preventDefault();
- const task = e.target.getAttribute(buttonDataSelector);
+ const task = button.getAttribute(buttonDataSelector);
submitTask(task);
});
});
diff --git a/build/media_source/templates/site/cassiopeia/scss/blocks/_global.scss b/build/media_source/templates/site/cassiopeia/scss/blocks/_global.scss
index 1eb404754bdce..72d3db710b482 100644
--- a/build/media_source/templates/site/cassiopeia/scss/blocks/_global.scss
+++ b/build/media_source/templates/site/cassiopeia/scss/blocks/_global.scss
@@ -7,6 +7,12 @@
@media screen and (prefers-reduced-motion: reduce) {
scroll-behavior: auto;
}
+
+ &:has(.sticky-top) {
+ [id] {
+ scroll-margin-top: var(--cassiopeia-scroll-margin-top, 10rem);
+ }
+ }
}
html {
diff --git a/components/com_finder/src/Service/Router.php b/components/com_finder/src/Service/Router.php
index 81c35ca2a9d12..f072c495e8912 100644
--- a/components/com_finder/src/Service/Router.php
+++ b/components/com_finder/src/Service/Router.php
@@ -15,7 +15,6 @@
use Joomla\CMS\Component\Router\RouterViewConfiguration;
use Joomla\CMS\Component\Router\Rules\MenuRules;
use Joomla\CMS\Component\Router\Rules\NomenuRules;
-use Joomla\CMS\Component\Router\Rules\StandardRules;
use Joomla\CMS\Menu\AbstractMenu;
// phpcs:disable PSR1.Files.SideEffects
@@ -43,7 +42,37 @@ public function __construct(SiteApplication $app, AbstractMenu $menu)
parent::__construct($app, $menu);
$this->attachRule(new MenuRules($this));
- $this->attachRule(new StandardRules($this));
$this->attachRule(new NomenuRules($this));
}
+
+ /**
+ * Build method for URLs
+ *
+ * @param array &$query Array of query elements
+ *
+ * @return array Array of URL segments
+ *
+ * @since __DEPLOY_VERSION__
+ */
+ public function build(&$query)
+ {
+ $segments = [];
+
+ // Process the parsed variables based on custom defined rules
+ foreach ($this->rules as $rule) {
+ $rule->build($query, $segments);
+ }
+
+ if (isset($query['Itemid'])) {
+ $item = $this->menu->getItem($query['Itemid']);
+
+ if ($query['option'] == 'com_finder' && isset($query['f']) && isset($item->query['f']) && $query['f'] == $item->query['f']) {
+ unset($query['f']);
+ }
+ }
+
+ unset($query['view']);
+
+ return $segments;
+ }
}
diff --git a/components/com_users/src/Controller/CallbackController.php b/components/com_users/src/Controller/CallbackController.php
index 55ccbc9b30cd1..42fe803c274ae 100644
--- a/components/com_users/src/Controller/CallbackController.php
+++ b/components/com_users/src/Controller/CallbackController.php
@@ -1,7 +1,7 @@
diff --git a/components/com_users/src/Controller/CaptiveController.php b/components/com_users/src/Controller/CaptiveController.php
index b1f6d2e47cce7..2d13550ae3a0f 100644
--- a/components/com_users/src/Controller/CaptiveController.php
+++ b/components/com_users/src/Controller/CaptiveController.php
@@ -1,7 +1,7 @@
diff --git a/components/com_users/src/Controller/MethodController.php b/components/com_users/src/Controller/MethodController.php
index f24c0b2a087ba..0901527fa064a 100644
--- a/components/com_users/src/Controller/MethodController.php
+++ b/components/com_users/src/Controller/MethodController.php
@@ -1,7 +1,7 @@
diff --git a/components/com_users/src/Controller/MethodsController.php b/components/com_users/src/Controller/MethodsController.php
index d49b1b95f9d67..ebf40c6d913bd 100644
--- a/components/com_users/src/Controller/MethodsController.php
+++ b/components/com_users/src/Controller/MethodsController.php
@@ -1,7 +1,7 @@
diff --git a/components/com_users/src/Dispatcher/Dispatcher.php b/components/com_users/src/Dispatcher/Dispatcher.php
index 67daacb6ff357..e5d04442e9fbb 100644
--- a/components/com_users/src/Dispatcher/Dispatcher.php
+++ b/components/com_users/src/Dispatcher/Dispatcher.php
@@ -2,7 +2,7 @@
/**
* @package Joomla.Site
- * @subpackage com_privacy
+ * @subpackage com_users
*
* @copyright (C) 2024 Open Source Matters, Inc.
* @license GNU General Public License version 2 or later; see LICENSE.txt
@@ -19,7 +19,7 @@
// phpcs:enable PSR1.Files.SideEffects
/**
- * ComponentDispatcher class for com_privacy
+ * ComponentDispatcher class for com_users
*
* @since 5.2.3
*/
@@ -43,7 +43,7 @@ protected function checkAccess()
switch ($view) {
case 'registration':
// If the user is already logged in, redirect to the profile page.
- if ($user->get('guest') != 1) {
+ if ($user->guest != 1) {
// Redirect to profile page.
$this->app->redirect(Route::_('index.php?option=com_users&view=profile', false));
}
@@ -57,7 +57,7 @@ protected function checkAccess()
// Handle view specific models.
case 'profile':
- if ($user->get('guest') == 1) {
+ if ($user->guest == 1) {
// Redirect to login page.
$this->app->redirect(Route::_('index.php?option=com_users&view=login', false));
}
@@ -65,7 +65,7 @@ protected function checkAccess()
case 'remind':
case 'reset':
- if ($user->get('guest') != 1) {
+ if ($user->guest != 1) {
// Redirect to profile page.
$this->app->redirect(Route::_('index.php?option=com_users&view=profile', false));
}
diff --git a/components/com_users/src/Model/BackupcodesModel.php b/components/com_users/src/Model/BackupcodesModel.php
index 48b737e36e2c6..e44829465af3a 100644
--- a/components/com_users/src/Model/BackupcodesModel.php
+++ b/components/com_users/src/Model/BackupcodesModel.php
@@ -1,7 +1,7 @@
diff --git a/components/com_users/src/Model/CaptiveModel.php b/components/com_users/src/Model/CaptiveModel.php
index 77570d08e80bd..936266eaa7976 100644
--- a/components/com_users/src/Model/CaptiveModel.php
+++ b/components/com_users/src/Model/CaptiveModel.php
@@ -1,7 +1,7 @@
diff --git a/components/com_users/src/Model/MethodModel.php b/components/com_users/src/Model/MethodModel.php
index 520055900e530..cfb90b03e0f02 100644
--- a/components/com_users/src/Model/MethodModel.php
+++ b/components/com_users/src/Model/MethodModel.php
@@ -1,7 +1,7 @@
diff --git a/components/com_users/src/Model/MethodsModel.php b/components/com_users/src/Model/MethodsModel.php
index 1300acc01b47a..8b2672de42ebe 100644
--- a/components/com_users/src/Model/MethodsModel.php
+++ b/components/com_users/src/Model/MethodsModel.php
@@ -1,7 +1,7 @@
diff --git a/components/com_users/src/View/Captive/HtmlView.php b/components/com_users/src/View/Captive/HtmlView.php
index 3039e51d28100..99aa0a0b38768 100644
--- a/components/com_users/src/View/Captive/HtmlView.php
+++ b/components/com_users/src/View/Captive/HtmlView.php
@@ -1,7 +1,7 @@
diff --git a/components/com_users/src/View/Method/HtmlView.php b/components/com_users/src/View/Method/HtmlView.php
index 463f759ed665d..dbf656bed0155 100644
--- a/components/com_users/src/View/Method/HtmlView.php
+++ b/components/com_users/src/View/Method/HtmlView.php
@@ -1,7 +1,7 @@
diff --git a/components/com_users/src/View/Methods/HtmlView.php b/components/com_users/src/View/Methods/HtmlView.php
index 7363d50771a24..dafd7f499da8d 100644
--- a/components/com_users/src/View/Methods/HtmlView.php
+++ b/components/com_users/src/View/Methods/HtmlView.php
@@ -1,7 +1,7 @@
diff --git a/installation/language/af-ZA/langmetadata.xml b/installation/language/af-ZA/langmetadata.xml
index 7f2e3acb7e70f..87ea235288772 100644
--- a/installation/language/af-ZA/langmetadata.xml
+++ b/installation/language/af-ZA/langmetadata.xml
@@ -1,8 +1,8 @@
Afrikaans (Suid-Afrika)
- 5.2.3
- 2024-12
+ 5.2.4
+ 2025-01
Afrikaans Translation Team
(C) 2005 Open Source Matters, Inc.
GNU General Public License version 2 or later; see LICENSE.txt
diff --git a/installation/language/ar-AA/langmetadata.xml b/installation/language/ar-AA/langmetadata.xml
index d91d9d68084eb..312bc933aec7e 100644
--- a/installation/language/ar-AA/langmetadata.xml
+++ b/installation/language/ar-AA/langmetadata.xml
@@ -1,8 +1,8 @@
Arabic (اللغة العربية)
- 5.2.3
- 2024-12
+ 5.2.4
+ 2025-01
Dr. Ashraf Damra
(C) 2005 Open Source Matters, Inc.
GNU General Public License version 2 or later; see LICENSE.txt
diff --git a/installation/language/be-BY/langmetadata.xml b/installation/language/be-BY/langmetadata.xml
index bc997ec2d4ad7..0917c772619da 100644
--- a/installation/language/be-BY/langmetadata.xml
+++ b/installation/language/be-BY/langmetadata.xml
@@ -1,8 +1,8 @@
Belarusian (Belarus)
- 5.2.3
- 2024-12
+ 5.2.4
+ 2025-01
Joomla Belarus Community
(C) 2005 Open Source Matters, Inc.
GNU General Public License version 2 or later; see LICENSE.txt
diff --git a/installation/language/bg-BG/langmetadata.xml b/installation/language/bg-BG/langmetadata.xml
index 38ca92e90380e..b3230b1202f33 100644
--- a/installation/language/bg-BG/langmetadata.xml
+++ b/installation/language/bg-BG/langmetadata.xml
@@ -1,8 +1,8 @@
Bulgarian (bg-BG)
- 5.2.3
- 2024-12
+ 5.2.4
+ 2025-01
Joomla! Bulgaria
(C) 2005 Open Source Matters, Inc.
GNU General Public License version 2 or later; see LICENSE.txt
diff --git a/installation/language/ca-ES/langmetadata.xml b/installation/language/ca-ES/langmetadata.xml
index ca1ff6e2eb761..dcf1f1d5a683d 100644
--- a/installation/language/ca-ES/langmetadata.xml
+++ b/installation/language/ca-ES/langmetadata.xml
@@ -1,8 +1,8 @@
Catalan (ca-ES)
- 5.2.3
- 2024-12
+ 5.2.4
+ 2025-01
Catalan [ca-ES] Translation Team
(C) 2005 Open Source Matters, Inc.
GNU General Public License version 2 or later; see LICENSE.txt
diff --git a/installation/language/cs-CZ/langmetadata.xml b/installation/language/cs-CZ/langmetadata.xml
index 392c933b6e521..e8b6ee42b938b 100644
--- a/installation/language/cs-CZ/langmetadata.xml
+++ b/installation/language/cs-CZ/langmetadata.xml
@@ -1,8 +1,8 @@
Czech (Čeština)
- 5.2.3
- 2024-12
+ 5.2.4
+ 2025-01
Czech Translation Team
(C) 2005 Open Source Matters, Inc.
GNU General Public License version 2 or later; see LICENSE.txt
diff --git a/installation/language/cy-GB/langmetadata.xml b/installation/language/cy-GB/langmetadata.xml
index 3ca6d57651de4..3d4a4b4412fdd 100644
--- a/installation/language/cy-GB/langmetadata.xml
+++ b/installation/language/cy-GB/langmetadata.xml
@@ -1,8 +1,8 @@
Welsh (United Kingdom)
- 5.2.3
- 2024-12
+ 5.2.4
+ 2025-01
Joomla! Project - Welsh Translation Team
(C) 2005 Open Source Matters, Inc.
GNU General Public License version 2 or later; see LICENSE.txt
diff --git a/installation/language/da-DK/langmetadata.xml b/installation/language/da-DK/langmetadata.xml
index a6fa1795d56b8..198e0c60ba04f 100644
--- a/installation/language/da-DK/langmetadata.xml
+++ b/installation/language/da-DK/langmetadata.xml
@@ -1,8 +1,8 @@
Danish (Danmark)
- 5.2.3
- 2024-12
+ 5.2.4
+ 2025-01
Danish Translation Team (Transl.: Ronny Buelund)
(C) 2005 Open Source Matters, Inc.
GNU General Public License version 2 or later; see LICENSE.txt
diff --git a/installation/language/el-GR/langmetadata.xml b/installation/language/el-GR/langmetadata.xml
index 572e551e808ab..f9e868ca7d905 100644
--- a/installation/language/el-GR/langmetadata.xml
+++ b/installation/language/el-GR/langmetadata.xml
@@ -1,8 +1,8 @@
Greek (el-GR)
- 5.2.3
- 2024-12
+ 5.2.4
+ 2025-01
Ομάδα Μετάφρασης: joomla. gr
(C) 2005 Open Source Matters, Inc.
GNU General Public License version 2 or later; see LICENSE.txt
diff --git a/installation/language/en-AU/langmetadata.xml b/installation/language/en-AU/langmetadata.xml
index 1d707eb0fc1fb..cd1091db2ab13 100644
--- a/installation/language/en-AU/langmetadata.xml
+++ b/installation/language/en-AU/langmetadata.xml
@@ -1,8 +1,8 @@
English (Australia)
- 5.2.3
- 2024-12
+ 5.2.4
+ 2025-01
Joomla! Project
(C) 2005 Open Source Matters, Inc.
GNU General Public License version 2 or later; see LICENSE.txt
diff --git a/installation/language/en-CA/langmetadata.xml b/installation/language/en-CA/langmetadata.xml
index 13300b17d9bd5..e104fd54dfab1 100644
--- a/installation/language/en-CA/langmetadata.xml
+++ b/installation/language/en-CA/langmetadata.xml
@@ -1,8 +1,8 @@
English (Canada)
- 5.2.3
- 2024-12
+ 5.2.4
+ 2025-01
Joomla! Project
(C) 2005 Open Source Matters, Inc.
GNU General Public License version 2 or later; see LICENSE.txt
diff --git a/installation/language/en-NZ/langmetadata.xml b/installation/language/en-NZ/langmetadata.xml
index 5dc016bcdae3e..1fdcbf32ba7e8 100644
--- a/installation/language/en-NZ/langmetadata.xml
+++ b/installation/language/en-NZ/langmetadata.xml
@@ -1,8 +1,8 @@
English (New Zealand)
- 5.2.3
- 2024-12
+ 5.2.4
+ 2025-01
Joomla! Project
(C) 2005 Open Source Matters, Inc.
GNU General Public License version 2 or later; see LICENSE.txt
diff --git a/installation/language/en-US/langmetadata.xml b/installation/language/en-US/langmetadata.xml
index 16896b1bf5828..2fb05b7faaae0 100644
--- a/installation/language/en-US/langmetadata.xml
+++ b/installation/language/en-US/langmetadata.xml
@@ -1,8 +1,8 @@
English (United States)
- 5.2.3
- 2024-12
+ 5.2.4
+ 2025-01
Joomla! Project
(C) 2005 Open Source Matters, Inc.
GNU General Public License version 2 or later; see LICENSE.txt
diff --git a/installation/language/es-ES/langmetadata.xml b/installation/language/es-ES/langmetadata.xml
index e694d4141ce82..1f31853ec3c0f 100644
--- a/installation/language/es-ES/langmetadata.xml
+++ b/installation/language/es-ES/langmetadata.xml
@@ -1,8 +1,8 @@
Spanish (es-ES)
- 5.2.3
- 2024-12
+ 5.2.4
+ 2025-01
Spanish [es-ES] Translation Team
(C) 2005 Open Source Matters, Inc.
GNU General Public License version 2 or later; see LICENSE.txt
diff --git a/installation/language/et-EE/langmetadata.xml b/installation/language/et-EE/langmetadata.xml
index 6599b300f1e52..658781aefdfa3 100644
--- a/installation/language/et-EE/langmetadata.xml
+++ b/installation/language/et-EE/langmetadata.xml
@@ -1,8 +1,8 @@
Estonian
- 5.2.3
- 2024-12
+ 5.2.4
+ 2025-01
Joomla! Project
(C) 2005 Open Source Matters, Inc.
GNU General Public License version 2 or later; see LICENSE.txt
diff --git a/installation/language/eu-ES/langmetadata.xml b/installation/language/eu-ES/langmetadata.xml
index e5e565137ed27..f5da4765ef6b6 100644
--- a/installation/language/eu-ES/langmetadata.xml
+++ b/installation/language/eu-ES/langmetadata.xml
@@ -1,8 +1,8 @@
Basque
- 5.2.3
- 2024-12
+ 5.2.4
+ 2025-01
Joomla! Basque Translation Team
(C) 2005 Open Source Matters, Inc.
GNU General Public License version 2 or later; see LICENSE.txt
diff --git a/installation/language/fa-AF/langmetadata.xml b/installation/language/fa-AF/langmetadata.xml
index 30fb659c99115..c955e625037bc 100644
--- a/installation/language/fa-AF/langmetadata.xml
+++ b/installation/language/fa-AF/langmetadata.xml
@@ -1,8 +1,8 @@
فارسی (دری)
- 5.2.3
- 2024-12
+ 5.2.4
+ 2025-01
JoomlaPersian Translation Team
(C) 2005 Open Source Matters, Inc.
GNU General Public License version 2 or later; see LICENSE.txt
diff --git a/installation/language/fa-IR/langmetadata.xml b/installation/language/fa-IR/langmetadata.xml
index d8997871c570f..f9aa2669c5a3d 100644
--- a/installation/language/fa-IR/langmetadata.xml
+++ b/installation/language/fa-IR/langmetadata.xml
@@ -1,8 +1,8 @@
Persian (fa-IR)
- 5.2.3
- 2024-12
+ 5.2.4
+ 2025-01
Persian Translation Team: joomlafarsi.com
(C) 2005 Open Source Matters, Inc.
GNU General Public License version 2 or later; see LICENSE.txt
diff --git a/installation/language/fi-FI/langmetadata.xml b/installation/language/fi-FI/langmetadata.xml
index 81e15c1179849..9b9a9e1c377e2 100644
--- a/installation/language/fi-FI/langmetadata.xml
+++ b/installation/language/fi-FI/langmetadata.xml
@@ -1,8 +1,8 @@
Finnish (Finland)
- 5.2.3
- 2024-12
+ 5.2.4
+ 2025-01
Finnish translation team: Joomla.fi
(C) 2005 Open Source Matters, Inc.
GNU General Public License version 2 or later; see LICENSE.txt
diff --git a/installation/language/fr-CA/langmetadata.xml b/installation/language/fr-CA/langmetadata.xml
index 8fb55c617942c..1d290743932e3 100644
--- a/installation/language/fr-CA/langmetadata.xml
+++ b/installation/language/fr-CA/langmetadata.xml
@@ -1,8 +1,8 @@
French (Canada)
- 5.2.3
- 2024-12
+ 5.2.4
+ 2025-01
Joomla! Project - French 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/langmetadata.xml b/installation/language/fr-FR/langmetadata.xml
index 80b4050157387..cbf2462ceadce 100644
--- a/installation/language/fr-FR/langmetadata.xml
+++ b/installation/language/fr-FR/langmetadata.xml
@@ -1,8 +1,8 @@
French (fr-FR)
- 5.2.3
- 2024-12
+ 5.2.4
+ 2025-01
Joomla! Project - French translation team
(C) 2005 Open Source Matters, Inc.
GNU General Public License version 2 or later; see LICENSE.txt
diff --git a/installation/language/he-IL/langmetadata.xml b/installation/language/he-IL/langmetadata.xml
index ae67979596c3f..a4f1f9a5405eb 100644
--- a/installation/language/he-IL/langmetadata.xml
+++ b/installation/language/he-IL/langmetadata.xml
@@ -1,8 +1,8 @@
Hebrew (Israel)
- 5.2.3
- 2024-12
+ 5.2.4
+ 2025-01
פרוייקט ג'ומלה
(C) 2005 Open Source Matters, Inc.
GNU General Public License version 2 or later; see LICENSE.txt
diff --git a/installation/language/hr-HR/langmetadata.xml b/installation/language/hr-HR/langmetadata.xml
index a5935df3955b5..eefcba0465faf 100644
--- a/installation/language/hr-HR/langmetadata.xml
+++ b/installation/language/hr-HR/langmetadata.xml
@@ -1,8 +1,8 @@
Hrvatski (Hrvatska)
- 5.2.3
- 2024-12
+ 5.2.4
+ 2025-01
Joomla! Hrvatska team
(C) 2005 Open Source Matters, Inc.
GNU General Public License version 2 or later; see LICENSE.txt
diff --git a/installation/language/hu-HU/langmetadata.xml b/installation/language/hu-HU/langmetadata.xml
index 659153c7c4256..0494262eb0384 100644
--- a/installation/language/hu-HU/langmetadata.xml
+++ b/installation/language/hu-HU/langmetadata.xml
@@ -1,8 +1,8 @@
Hungarian (Magyar)
- 5.2.3
- 2024-12
+ 5.2.4
+ 2025-01
Joomla! Magyarország
(C) 2005 Open Source Matters, Inc.
GNU General Public License version 2 or later; see LICENSE.txt
diff --git a/installation/language/id-ID/langmetadata.xml b/installation/language/id-ID/langmetadata.xml
index aed64cbc591ac..f3c904ac68c97 100644
--- a/installation/language/id-ID/langmetadata.xml
+++ b/installation/language/id-ID/langmetadata.xml
@@ -1,8 +1,8 @@
Bahasa Indonesia (id-ID)
- 5.2.3
- 2024-12
+ 5.2.4
+ 2025-01
Joomla! Indonesia
(C) 2005 Open Source Matters, Inc.
GNU General Public License version 2 or later; see LICENSE.txt
diff --git a/installation/language/it-IT/langmetadata.xml b/installation/language/it-IT/langmetadata.xml
index 6d35b2a217733..202c13a7d5b6f 100644
--- a/installation/language/it-IT/langmetadata.xml
+++ b/installation/language/it-IT/langmetadata.xml
@@ -1,8 +1,8 @@
Italiano (it-IT)
- 5.2.3
- 2024-12
+ 5.2.4
+ 2025-01
Joomla! Project (Italian Translation Team)
(C) 2005 Open Source Matters, Inc.
GNU General Public License version 2 or later; see LICENSE.txt
diff --git a/installation/language/ja-JP/langmetadata.xml b/installation/language/ja-JP/langmetadata.xml
index 072d32cc9f492..7aab7436e7bdb 100644
--- a/installation/language/ja-JP/langmetadata.xml
+++ b/installation/language/ja-JP/langmetadata.xml
@@ -1,8 +1,8 @@
Japanese (Japan)
- 5.2.3
- 2024-12
+ 5.2.4
+ 2025-01
Joomla!じゃぱん
(C) 2005 Open Source Matters, Inc.
GNU General Public License version 2 or later; see LICENSE.txt
diff --git a/installation/language/ka-GE/langmetadata.xml b/installation/language/ka-GE/langmetadata.xml
index 5e4f28abffab4..a119bebe45acc 100644
--- a/installation/language/ka-GE/langmetadata.xml
+++ b/installation/language/ka-GE/langmetadata.xml
@@ -1,8 +1,8 @@
Georgian (Georgia)
- 5.2.3
- 2024-12
+ 5.2.4
+ 2025-01
Georgian Translation Team
(C) 2005 Open Source Matters, Inc.
GNU General Public License version 2 or later; see LICENSE.txt
diff --git a/installation/language/kk-KZ/langmetadata.xml b/installation/language/kk-KZ/langmetadata.xml
index d5308cba960d9..904d5553513d6 100644
--- a/installation/language/kk-KZ/langmetadata.xml
+++ b/installation/language/kk-KZ/langmetadata.xml
@@ -1,8 +1,8 @@
Kazakh (Kazakhstan)
- 5.2.3
- 2024-12
+ 5.2.4
+ 2025-01
Sarvarov Akylkerey
(C) 2005 Open Source Matters, Inc.
GNU General Public License version 2 or later; see LICENSE.txt
diff --git a/installation/language/ko-KR/langmetadata.xml b/installation/language/ko-KR/langmetadata.xml
index 32a30913a4bf7..f7072d555eb18 100644
--- a/installation/language/ko-KR/langmetadata.xml
+++ b/installation/language/ko-KR/langmetadata.xml
@@ -1,8 +1,8 @@
Korean (Republic of Korea)
- 5.2.3
- 2024-12
+ 5.2.4
+ 2025-01
Joomla! 프로젝트
(C) 2005 Open Source Matters, Inc.
GNU General Public License version 2 or later; see LICENSE.txt
diff --git a/installation/language/lt-LT/langmetadata.xml b/installation/language/lt-LT/langmetadata.xml
index b66f02fac7464..1314923c510ab 100644
--- a/installation/language/lt-LT/langmetadata.xml
+++ b/installation/language/lt-LT/langmetadata.xml
@@ -1,8 +1,8 @@
Lietuvių (lt-LT)
- 5.2.3
- 2024-12
+ 5.2.4
+ 2025-01
Oskaras Jankauskas
(C) 2005 Open Source Matters, Inc.
GNU General Public License version 2 or later; see LICENSE.txt
diff --git a/installation/language/lv-LV/langmetadata.xml b/installation/language/lv-LV/langmetadata.xml
index 6b5a6a29ac280..6cdb2665eda9f 100644
--- a/installation/language/lv-LV/langmetadata.xml
+++ b/installation/language/lv-LV/langmetadata.xml
@@ -1,8 +1,8 @@
Latvian (Latvia)
- 5.2.3
- 2024-12
+ 5.2.4
+ 2025-01
Joomla! Projekts
(C) 2005 Open Source Matters, Inc.
GNU General Public License version 2 or later; see LICENSE.txt
diff --git a/installation/language/mk-MK/langmetadata.xml b/installation/language/mk-MK/langmetadata.xml
index c5d442ab52f6f..a8bb569fb327a 100644
--- a/installation/language/mk-MK/langmetadata.xml
+++ b/installation/language/mk-MK/langmetadata.xml
@@ -1,8 +1,8 @@
Macedonian (mk-MK)
- 5.2.3
- 2024-12
+ 5.2.4
+ 2025-01
Joomla! Project
(C) 2005 Open Source Matters, Inc.
GNU General Public License version 2 or later; see LICENSE.txt
diff --git a/installation/language/nl-BE/langmetadata.xml b/installation/language/nl-BE/langmetadata.xml
index 8a26a994a5dce..63b3d5e083f61 100644
--- a/installation/language/nl-BE/langmetadata.xml
+++ b/installation/language/nl-BE/langmetadata.xml
@@ -1,8 +1,8 @@
Dutch (Belgium)
- 5.2.3
- 2024-12
+ 5.2.4
+ 2025-01
Dutch (BE) translation team
(C) 2005 Open Source Matters, Inc.
GNU General Public License version 2 or later; see LICENSE.txt
diff --git a/installation/language/nl-NL/langmetadata.xml b/installation/language/nl-NL/langmetadata.xml
index 973e0aacb505a..41fff0b928fdf 100644
--- a/installation/language/nl-NL/langmetadata.xml
+++ b/installation/language/nl-NL/langmetadata.xml
@@ -1,8 +1,8 @@
Dutch (nl-NL)
- 5.2.3
- 2024-12
+ 5.2.4
+ 2025-01
Dutch Translation Team
(C) 2005 Open Source Matters, Inc.
GNU General Public License version 2 or later; see LICENSE.txt
diff --git a/installation/language/pl-PL/langmetadata.xml b/installation/language/pl-PL/langmetadata.xml
index b085b16d8741d..6744c98f6937f 100644
--- a/installation/language/pl-PL/langmetadata.xml
+++ b/installation/language/pl-PL/langmetadata.xml
@@ -1,8 +1,8 @@
Polski (PL)
- 5.2.3
- 2024-12
+ 5.2.4
+ 2025-01
Projekt Joomla!
(C) 2005 Open Source Matters, Inc.
GNU General Public License version 2 or later; see LICENSE.txt
diff --git a/installation/language/pt-BR/langmetadata.xml b/installation/language/pt-BR/langmetadata.xml
index 7a7cf7b74bd5c..3836368fe26a8 100644
--- a/installation/language/pt-BR/langmetadata.xml
+++ b/installation/language/pt-BR/langmetadata.xml
@@ -1,8 +1,8 @@
Portuguese (Brazil)
- 5.2.3
- 2024-12
+ 5.2.4
+ 2025-01
Projeto Joomla!
(C) 2005 Open Source Matters, Inc.
GNU General Public License version 2 or later; see LICENSE.txt
diff --git a/installation/language/pt-PT/langmetadata.xml b/installation/language/pt-PT/langmetadata.xml
index c685f13ca0c9a..72b1769ad66d0 100644
--- a/installation/language/pt-PT/langmetadata.xml
+++ b/installation/language/pt-PT/langmetadata.xml
@@ -1,8 +1,8 @@
Português (Portugal)
- 5.2.3
- 2024-12
+ 5.2.4
+ 2025-01
Comunidade JoomlaPortugal
(C) 2005 Open Source Matters, Inc.
GNU General Public License version 2 or later; see LICENSE.txt
diff --git a/installation/language/ro-RO/langmetadata.xml b/installation/language/ro-RO/langmetadata.xml
index 1a49803982c77..413ee32496d9b 100644
--- a/installation/language/ro-RO/langmetadata.xml
+++ b/installation/language/ro-RO/langmetadata.xml
@@ -1,8 +1,8 @@
Română (România)
- 5.2.3
- 2024-12
+ 5.2.4
+ 2025-01
Horia Negura - Quanta
(C) 2005 Open Source Matters, Inc.
GNU General Public License version 2 or later; see LICENSE.txt
diff --git a/installation/language/sk-SK/langmetadata.xml b/installation/language/sk-SK/langmetadata.xml
index dc4f80d6e23fc..f96813342b69b 100644
--- a/installation/language/sk-SK/langmetadata.xml
+++ b/installation/language/sk-SK/langmetadata.xml
@@ -1,8 +1,8 @@
Slovak (Slovakia)
- 5.2.3
- 2024-12
+ 5.2.4
+ 2025-01
Slovak translation team : Peter Michnica
(C) 2005 Open Source Matters, Inc.
GNU General Public License version 2 or later; see LICENSE.txt
diff --git a/installation/language/sl-SI/langmetadata.xml b/installation/language/sl-SI/langmetadata.xml
index a3487578ec4c1..ecd85b4595055 100644
--- a/installation/language/sl-SI/langmetadata.xml
+++ b/installation/language/sl-SI/langmetadata.xml
@@ -1,8 +1,8 @@
Slovenščina (Slovenija)
- 5.2.3
- 2024-12
+ 5.2.4
+ 2025-01
Slovenska prevajalska ekipa
(C) 2005 Open Source Matters, Inc.
GNU General Public License version 2 or later; see LICENSE.txt
diff --git a/installation/language/sr-YU/langmetadata.xml b/installation/language/sr-YU/langmetadata.xml
index 10e2d851fc691..9f4489bfe8fc0 100644
--- a/installation/language/sr-YU/langmetadata.xml
+++ b/installation/language/sr-YU/langmetadata.xml
@@ -1,8 +1,8 @@
Srpski (Republika Srbija)
- 5.2.3
- 2024-12
+ 5.2.4
+ 2025-01
Goran Nešić - UIX Web Design & Saša Matić Bardak.RS
(C) 2005 Open Source Matters, Inc.
GNU General Public License version 2 or later; see LICENSE.txt
diff --git a/installation/language/sv-SE/langmetadata.xml b/installation/language/sv-SE/langmetadata.xml
index 5cb46f190bd6a..297a4122cad81 100644
--- a/installation/language/sv-SE/langmetadata.xml
+++ b/installation/language/sv-SE/langmetadata.xml
@@ -1,8 +1,8 @@
Swedish (Sweden)
- 5.2.3
- 2024-12
+ 5.2.4
+ 2025-01
Swedish Translation Team - SvenskJoomla
(C) 2005 Open Source Matters, Inc.
GNU General Public License version 2 or later; see LICENSE.txt
diff --git a/installation/language/ta-IN/langmetadata.xml b/installation/language/ta-IN/langmetadata.xml
index 79491c05896b5..64974c95bef05 100644
--- a/installation/language/ta-IN/langmetadata.xml
+++ b/installation/language/ta-IN/langmetadata.xml
@@ -1,8 +1,8 @@
Tamil (India)
- 5.2.3
- 2024-12
+ 5.2.4
+ 2025-01
Ilagnayeru 'MIG' Manickam, Elango Samy Manim
(C) 2005 Open Source Matters, Inc.
GNU General Public License version 2 or later; see LICENSE.txt
diff --git a/installation/language/th-TH/langmetadata.xml b/installation/language/th-TH/langmetadata.xml
index 4671162951a84..1f58afb8de579 100644
--- a/installation/language/th-TH/langmetadata.xml
+++ b/installation/language/th-TH/langmetadata.xml
@@ -1,8 +1,8 @@
Thai (ภาษาไทย)
- 5.2.3
- 2024-12
+ 5.2.4
+ 2025-01
Thai Translation Team
(C) 2005 Open Source Matters, Inc.
GNU General Public License version 2 or later; see LICENSE.txt
diff --git a/installation/language/tr-TR/langmetadata.xml b/installation/language/tr-TR/langmetadata.xml
index 83dd4b1ea8950..80dd66ec87c96 100644
--- a/installation/language/tr-TR/langmetadata.xml
+++ b/installation/language/tr-TR/langmetadata.xml
@@ -1,8 +1,8 @@
Turkish (Turkey)
- 5.2.3
- 2024-12
+ 5.2.4
+ 2025-01
Joomla! Türkiye
(C) 2005 Open Source Matters, Inc.
GNU General Public License version 2 or later; see LICENSE.txt
diff --git a/installation/language/uk-UA/langmetadata.xml b/installation/language/uk-UA/langmetadata.xml
index a478508b5170d..fb95ffd4f3eb8 100644
--- a/installation/language/uk-UA/langmetadata.xml
+++ b/installation/language/uk-UA/langmetadata.xml
@@ -1,8 +1,8 @@
Ukrainian (uk-UA)
- 5.2.3
- 2024-12
+ 5.2.4
+ 2025-01
Denys Nosov
(C) 2005 Open Source Matters, Inc.
GNU General Public License version 2 or later; see LICENSE.txt
diff --git a/installation/language/ur-PK/langmetadata.xml b/installation/language/ur-PK/langmetadata.xml
index b02f23e95c01f..749e40926d2da 100644
--- a/installation/language/ur-PK/langmetadata.xml
+++ b/installation/language/ur-PK/langmetadata.xml
@@ -1,8 +1,8 @@
Urdu (ur-PK)
- 5.2.3
- 2024-12
+ 5.2.4
+ 2025-01
Urdu Translation Team
(C) 2005 Open Source Matters, Inc.
GNU General Public License version 2 or later; see LICENSE.txt
diff --git a/installation/language/vi-VN/langmetadata.xml b/installation/language/vi-VN/langmetadata.xml
index 6665b6639b7c6..eccfbd5299e88 100644
--- a/installation/language/vi-VN/langmetadata.xml
+++ b/installation/language/vi-VN/langmetadata.xml
@@ -1,8 +1,8 @@
Vietnamese (Vietnam)
- 5.2.3
- 2024-12
+ 5.2.4
+ 2025-01
Joomla! Project
(C) 2005 Open Source Matters, Inc.
GNU General Public License version 2 or later; see LICENSE.txt
diff --git a/installation/language/zh-CN/langmetadata.xml b/installation/language/zh-CN/langmetadata.xml
index f2c3595408584..ce725e6d441e6 100644
--- a/installation/language/zh-CN/langmetadata.xml
+++ b/installation/language/zh-CN/langmetadata.xml
@@ -1,8 +1,8 @@
Chinese Simplified (China)
- 5.2.3
- 2024-12
+ 5.2.4
+ 2025-01
Joomla中文网
(C) 2005 Open Source Matters, Inc.
GNU General Public License version 2 or later; see LICENSE.txt
diff --git a/installation/language/zh-TW/langmetadata.xml b/installation/language/zh-TW/langmetadata.xml
index 6ff231ddf85c2..39cae5e1b4e28 100644
--- a/installation/language/zh-TW/langmetadata.xml
+++ b/installation/language/zh-TW/langmetadata.xml
@@ -1,8 +1,8 @@
正體中文
- 5.2.3
- 2024-12
+ 5.2.4
+ 2025-01
正體中文 Translation Team
(C) 2005 Open Source Matters, Inc.
GNU General Public License version 2 or later; see LICENSE.txt
diff --git a/installation/sql/mysql/base.sql b/installation/sql/mysql/base.sql
index afa2ca94d1577..534493dbc12f2 100644
--- a/installation/sql/mysql/base.sql
+++ b/installation/sql/mysql/base.sql
@@ -107,16 +107,16 @@ INSERT INTO `#__assets` (`id`, `parent_id`, `lft`, `rgt`, `level`, `name`, `titl
(87, 18, 124, 125, 2, 'com_modules.module.97', 'Recently Added Articles', '{}'),
(88, 18, 126, 127, 2, 'com_modules.module.98', 'Logged-in Users', '{}'),
(89, 18, 128, 129, 2, 'com_modules.module.90', 'Login Support', '{}'),
-(90, 1, 165, 166, 1, 'com_scheduler', 'com_scheduler', '{}'),
-(91, 1, 167, 168, 1, 'com_associations', 'com_associations', '{}'),
-(92, 1, 169, 170, 1, 'com_categories', 'com_categories', '{}'),
-(93, 1, 171, 172, 1, 'com_fields', 'com_fields', '{}'),
-(94, 1, 173, 174, 1, 'com_workflow', 'com_workflow', '{}'),
-(95, 1, 175, 176, 1, 'com_guidedtours', 'com_guidedtours', '{}'),
+(90, 1, 165, 172, 1, 'com_scheduler', 'com_scheduler', '{}'),
+(91, 1, 173, 174, 1, 'com_associations', 'com_associations', '{}'),
+(92, 1, 175, 176, 1, 'com_categories', 'com_categories', '{}'),
+(93, 1, 177, 178, 1, 'com_fields', 'com_fields', '{}'),
+(94, 1, 179, 180, 1, 'com_workflow', 'com_workflow', '{}'),
+(95, 1, 181, 182, 1, 'com_guidedtours', 'com_guidedtours', '{}'),
(96, 18, 130, 131, 2, 'com_modules.module.109', 'Guided Tours', '{}'),
-(97, 1, 177, 178, 1, 'com_scheduler.task.1', 'com_scheduler.task.1', '{}'),
-(98, 1, 179, 180, 1, 'com_scheduler.task.2', 'com_scheduler.task.2', '{}'),
-(99, 1, 181, 182, 1, 'com_scheduler.task.3', 'com_scheduler.task.3', '{}');
+(97, 90, 166, 167, 2, 'com_scheduler.task.1', 'Rotate Logs', '{}'),
+(98, 90, 168, 169, 2, 'com_scheduler.task.2', 'Session GC', '{}'),
+(99, 90, 170, 171, 2, 'com_scheduler.task.3', 'Update Notification', '{}');
-- --------------------------------------------------------
diff --git a/installation/sql/postgresql/base.sql b/installation/sql/postgresql/base.sql
index 7d89b0cf41c98..663718b278dfb 100644
--- a/installation/sql/postgresql/base.sql
+++ b/installation/sql/postgresql/base.sql
@@ -113,16 +113,16 @@ INSERT INTO "#__assets" ("id", "parent_id", "lft", "rgt", "level", "name", "titl
(87, 18, 124, 125, 2, 'com_modules.module.97', 'Recently Added Articles', '{}'),
(88, 18, 126, 127, 2, 'com_modules.module.98', 'Logged-in Users', '{}'),
(89, 18, 128, 129, 2, 'com_modules.module.90', 'Login Support', '{}'),
-(90, 1, 165, 166, 1, 'com_scheduler', 'com_scheduler', '{}'),
-(91, 1, 167, 168, 1, 'com_associations', 'com_associations', '{}'),
-(92, 1, 169, 170, 1, 'com_categories', 'com_categories', '{}'),
-(93, 1, 171, 172, 1, 'com_fields', 'com_fields', '{}'),
-(94, 1, 173, 174, 1, 'com_workflow', 'com_workflow', '{}'),
-(95, 1, 175, 176, 1, 'com_guidedtours', 'com_guidedtours', '{}'),
+(90, 1, 165, 172, 1, 'com_scheduler', 'com_scheduler', '{}'),
+(91, 1, 173, 174, 1, 'com_associations', 'com_associations', '{}'),
+(92, 1, 175, 176, 1, 'com_categories', 'com_categories', '{}'),
+(93, 1, 177, 178, 1, 'com_fields', 'com_fields', '{}'),
+(94, 1, 179, 180, 1, 'com_workflow', 'com_workflow', '{}'),
+(95, 1, 181, 182, 1, 'com_guidedtours', 'com_guidedtours', '{}'),
(96, 18, 130, 131, 2, 'com_modules.module.109', 'Guided Tours', '{}'),
-(97, 1, 177, 178, 1, 'com_scheduler.task.1', 'com_scheduler.task.1', '{}'),
-(98, 1, 179, 180, 1, 'com_scheduler.task.2', 'com_scheduler.task.2', '{}'),
-(99, 1, 181, 182, 1, 'com_scheduler.task.3', 'com_scheduler.task.3', '{}');
+(97, 90, 166, 167, 2, 'com_scheduler.task.1', 'Rotate Logs', '{}'),
+(98, 90, 168, 169, 2, 'com_scheduler.task.2', 'Session GC', '{}'),
+(99, 90, 170, 171, 2, 'com_scheduler.task.3', 'Update Notification', '{}');
SELECT setval('#__assets_id_seq', 100, false);
diff --git a/installation/template/index.php b/installation/template/index.php
index d28080ff2ac4d..2127cfb2ea86b 100644
--- a/installation/template/index.php
+++ b/installation/template/index.php
@@ -21,9 +21,7 @@
->useScript('core')
->useScript('keepalive')
->useScript('form.validate')
- ->registerAndUseScript('template.installation', 'installation/template/js/template.js', ['version' => 'auto'], ['defer' => true], ['core', 'form.validate']);
-
-$this->getWebAssetManager()
+ ->registerAndUseScript('template.installation', 'installation/template/js/template.js', ['version' => 'auto'], ['defer' => true], ['core', 'form.validate'])
->useStyle('webcomponent.joomla-alert')
->useScript('messages')
->useScript('webcomponent.core-loader')
diff --git a/libraries/src/Application/CMSApplication.php b/libraries/src/Application/CMSApplication.php
index 7cf77db26cb25..385936d8ecfaa 100644
--- a/libraries/src/Application/CMSApplication.php
+++ b/libraries/src/Application/CMSApplication.php
@@ -406,74 +406,74 @@ protected function checkUserRequireReset($option, $view, $layout, $tasks)
*/
protected function checkUserRequiresReset($option, $view, $layout, $urls = [])
{
- if ($this->getIdentity()->requireReset) {
- $redirect = false;
-
- /*
- * By default user profile edit page is used.
- * That page allows you to change more than just the password and might not be the desired behavior.
- * This allows a developer to override the page that manage the password reset.
- * (can be configured using the file: configuration.php, or if extended, through the global configuration form)
- */
- $name = $this->getName();
-
- if ($this->get($name . '_reset_password_override', 0)) {
- $option = $this->get($name . '_reset_password_option', '');
- $view = $this->get($name . '_reset_password_view', '');
- $layout = $this->get($name . '_reset_password_layout', '');
- $urls = $this->get($name . '_reset_password_urls', $urls);
- }
-
- // If the current URL matches an entry in $urls, we do not redirect
- if (\count($urls)) {
- $found = false;
-
- foreach ($urls as $url) {
- $found2 = false;
+ // Password reset is not required for the user, no need to check it further
+ if (!$this->getIdentity()->requireReset) {
+ return;
+ }
- foreach ($url as $key => $value) {
- if ($this->input->getCmd($key) !== $value) {
- $found2 = false;
- break;
- }
+ /*
+ * By default user profile edit page is used.
+ * That page allows you to change more than just the password and might not be the desired behavior.
+ * This allows a developer to override the page that manage the password reset.
+ * (can be configured using the file: configuration.php, or if extended, through the global configuration form)
+ */
+ $name = $this->getName();
- $found2 = true;
- }
+ if ($this->get($name . '_reset_password_override', 0)) {
+ $option = $this->get($name . '_reset_password_option', '');
+ $view = $this->get($name . '_reset_password_view', '');
+ $layout = $this->get($name . '_reset_password_layout', '');
+ $urls = $this->get($name . '_reset_password_urls', $urls);
+ }
- if ($found2) {
- $found = true;
- break;
- }
- }
+ /**
+ * The page which manage password reset always need to accessible, so if the current page
+ * is managing password reset page, no need to check it further
+ */
+ if (
+ $this->input->getCmd('option', '') === $option
+ && $this->input->getCmd('view', '') === $view
+ && $this->input->getCmd('layout', '') == $layout
+ ) {
+ return;
+ }
- if (!$found) {
- $redirect = true;
- }
- } else {
- if (
- $this->input->getCmd('option', '') !== $option || $this->input->getCmd('view', '') !== $view
- || $this->input->getCmd('layout', '') !== $layout
- ) {
- // Requested a different option/view/layout
- $redirect = true;
+ // If the current URL matches an entry in $urls, we do not redirect
+ foreach ($urls as $url) {
+ $match = true;
+
+ foreach ($url as $key => $value) {
+ if ($this->input->getCmd($key) !== $value) {
+ /**
+ * The current URL does not meet this entry, get out of this loop
+ * and check next entry
+ */
+ $match = false;
+ break;
}
}
- if ($redirect) {
- // Redirect to the profile edit page
- $this->enqueueMessage(Text::_('JGLOBAL_PASSWORD_RESET_REQUIRED'), 'notice');
+ // The current URL meet the entry, no redirect is needed, just return early
+ if ($match) {
+ return;
+ }
+ }
- $url = Route::_('index.php?option=' . $option . '&view=' . $view . '&layout=' . $layout, false);
+ // Redirect to the profile edit page
+ $this->enqueueMessage(Text::_('JGLOBAL_PASSWORD_RESET_REQUIRED'), 'notice');
- // In the administrator we need a different URL
- if (strtolower($name) === 'administrator') {
- $user = Factory::getApplication()->getIdentity();
- $url = Route::_('index.php?option=' . $option . '&task=' . $view . '.' . $layout . '&id=' . $user->id, false);
- }
+ $url = Route::_('index.php?option=' . $option . '&view=' . $view . '&layout=' . $layout, false);
- $this->redirect($url);
- }
+ // In the administrator we need a different URL
+ if ($this->isClient('administrator')) {
+ $user = $this->getIdentity();
+ $url = Route::_(
+ 'index.php?option=' . $option . '&task=' . $view . '.' . $layout . '&id=' . $user->id,
+ false
+ );
}
+
+ $this->redirect($url);
}
/**
diff --git a/libraries/src/Application/SiteApplication.php b/libraries/src/Application/SiteApplication.php
index 61f4b7403b220..0eacaad688af8 100644
--- a/libraries/src/Application/SiteApplication.php
+++ b/libraries/src/Application/SiteApplication.php
@@ -264,7 +264,6 @@ protected function doExecute()
['option' => 'com_users', 'view' => 'method'],
['option' => 'com_users', 'task' => 'method.add'],
['option' => 'com_users', 'task' => 'method.save'],
- ['option' => 'com_users', 'view' => 'profile', 'layout' => 'edit'],
]);
}
@@ -691,7 +690,6 @@ public function login($credentials, $options = [])
['option' => 'com_users', 'view' => 'method'],
['option' => 'com_users', 'task' => 'method.add'],
['option' => 'com_users', 'task' => 'method.save'],
- ['option' => 'com_users', 'view' => 'profile', 'layout' => 'edit'],
]);
}
diff --git a/libraries/src/HTML/HTMLHelper.php b/libraries/src/HTML/HTMLHelper.php
index 558a7aeb20402..1fcbf801da62e 100644
--- a/libraries/src/HTML/HTMLHelper.php
+++ b/libraries/src/HTML/HTMLHelper.php
@@ -785,7 +785,7 @@ public static function stylesheet($file, $options = [], $attribs = [])
foreach ($includes as $include) {
// If there is already a version hash in the script reference (by using deprecated MD5SUM).
- if ($pos = strpos($include, '?') !== false) {
+ if (($pos = strpos($include, '?')) !== false) {
$options['version'] = substr($include, $pos + 1);
}
diff --git a/libraries/src/Table/Table.php b/libraries/src/Table/Table.php
index af25216eb0ab0..8edb05fc2d5ed 100644
--- a/libraries/src/Table/Table.php
+++ b/libraries/src/Table/Table.php
@@ -680,7 +680,7 @@ public function bind($src, $ignore = [])
foreach ($this->getProperties() as $k => $v) {
// Only process fields not in the ignore array.
if (!\in_array($k, $ignore)) {
- if (isset($src[$k])) {
+ if (\array_key_exists($k, $src)) {
$this->$k = $src[$k];
}
}
diff --git a/tests/System/integration/administrator/components/com_contact/Contacts.cy.js b/tests/System/integration/administrator/components/com_contact/Contacts.cy.js
index 789d982d3d348..6025b8008fc25 100644
--- a/tests/System/integration/administrator/components/com_contact/Contacts.cy.js
+++ b/tests/System/integration/administrator/components/com_contact/Contacts.cy.js
@@ -94,4 +94,47 @@ describe('Test in backend that the contacts list', () => {
cy.get('#system-message-container').contains('Contact deleted.').should('exist');
});
});
+
+ it('can select contacts with multiselect', () => {
+ cy.db_createContact({ name: 'Test contact 1' })
+ .then(() => cy.db_createContact({ name: 'Test contact 2' }))
+ .then(() => cy.db_createContact({ name: 'Test contact 3' }))
+ .then(() => cy.db_createContact({ name: 'Test contact 4' }))
+ .then(() => cy.db_createContact({ name: 'Test contact 5' }))
+ .then(() => {
+ cy.reload();
+ cy.searchForItem('Test contact');
+ cy.get('#cb1').click();
+ cy.get('body').type('{shift}', { release: false });
+ cy.get('#cb3').click();
+
+ cy.clickToolbarButton('Action');
+ cy.clickToolbarButton('Unpublish');
+
+ cy.checkForSystemMessage('3 contacts unpublished.');
+
+ cy.get('thead input[name=\'checkall-toggle\']').should('not.be.checked');
+ cy.get('#cb0').click();
+ cy.get('body').type('{shift}', { release: false });
+ cy.get('#cb4').click();
+ cy.get('thead input[name=\'checkall-toggle\']').should('be.checked');
+
+ cy.clickToolbarButton('Action');
+ cy.clickToolbarButton('Unpublish');
+
+ cy.checkForSystemMessage('2 contacts unpublished.');
+
+ cy.checkAllResults();
+ cy.get('#cb2').click();
+ cy.get('body').type('{shift}', { release: false });
+ cy.get('#cb4').click();
+ cy.get('body').type('{shift}');
+ cy.get('#cb0').click();
+
+ cy.clickToolbarButton('Action');
+ cy.clickToolbarButton('Publish');
+
+ cy.checkForSystemMessage('Contact published.');
+ });
+ });
});
diff --git a/tests/System/integration/administrator/components/com_content/Articles.cy.js b/tests/System/integration/administrator/components/com_content/Articles.cy.js
index 8809283cf0efc..84b97ed828167 100644
--- a/tests/System/integration/administrator/components/com_content/Articles.cy.js
+++ b/tests/System/integration/administrator/components/com_content/Articles.cy.js
@@ -94,4 +94,47 @@ describe('Test in backend that the articles list', () => {
cy.get('#system-message-container').contains('Article deleted.').should('exist');
});
});
+
+ it('can select articles with multiselect', () => {
+ cy.db_createArticle({ title: 'Test article 1' })
+ .then(() => cy.db_createArticle({ title: 'Test article 2' }))
+ .then(() => cy.db_createArticle({ title: 'Test article 3' }))
+ .then(() => cy.db_createArticle({ title: 'Test article 4' }))
+ .then(() => cy.db_createArticle({ title: 'Test article 5' }))
+ .then(() => {
+ cy.reload();
+ cy.searchForItem('Test article');
+ cy.get('#cb2').click();
+ cy.get('body').type('{shift}', { release: false });
+ cy.get('#cb4').click();
+
+ cy.clickToolbarButton('Action');
+ cy.clickToolbarButton('Unpublish');
+
+ cy.checkForSystemMessage('3 articles unpublished.');
+
+ cy.get('thead input[name=\'checkall-toggle\']').should('not.be.checked');
+ cy.get('#cb0').click();
+ cy.get('body').type('{shift}', { release: false });
+ cy.get('#cb4').click();
+ cy.get('thead input[name=\'checkall-toggle\']').should('be.checked');
+
+ cy.clickToolbarButton('Action');
+ cy.clickToolbarButton('Unpublish');
+
+ cy.checkForSystemMessage('2 articles unpublished.');
+
+ cy.checkAllResults();
+ cy.get('#cb2').click();
+ cy.get('body').type('{shift}', { release: false });
+ cy.get('#cb0').click();
+ cy.get('body').type('{shift}');
+ cy.get('#cb4').click();
+
+ cy.clickToolbarButton('Action');
+ cy.clickToolbarButton('Publish');
+
+ cy.checkForSystemMessage('Article published.');
+ });
+ });
});