joomlagerman / joomla

The J!German translation team provides German translation for Joomla!
https://www.jgerman.de
GNU General Public License v2.0
25 stars 46 forks source link

[5.1] upmerge 2024-01-04 fix #3077

Closed jgerman-bot closed 8 months ago

jgerman-bot commented 8 months ago

New language relevant PR in upstream repo: https://github.com/joomla/joomla-cms/pull/42624 Here are the upstream changes:

Click to expand the diff! ```diff diff --git a/.drone.yml b/.drone.yml index 9b22abbb42c3f..5517cb10f5823 100644 --- a/.drone.yml +++ b/.drone.yml @@ -6,7 +6,7 @@ clone: steps: - name: setup - image: joomlaprojects/docker-images:php8.2 + image: joomlaprojects/docker-images:php8.3 volumes: - name: certificates path: /certificates @@ -14,7 +14,7 @@ steps: - cp -v tests/certs/* /certificates/ - name: composer - image: joomlaprojects/docker-images:php8.2 + image: joomlaprojects/docker-images:php8.3 volumes: - name: composer-cache path: /tmp/composer-cache @@ -63,6 +63,13 @@ steps: - php -v - ./libraries/vendor/bin/phpunit --testsuite Unit + - name: php83-unit + depends_on: [ phpcs ] + image: joomlaprojects/docker-images:php8.3 + commands: + - php -v + - ./libraries/vendor/bin/phpunit --testsuite Unit + - name: php81-integration depends_on: [ npm ] image: joomlaprojects/docker-images:php8.1 @@ -77,6 +84,13 @@ steps: - php -v - ./libraries/vendor/bin/phpunit --testsuite Integration + - name: php83-integration + depends_on: [ npm ] + image: joomlaprojects/docker-images:php8.3 + commands: + - php -v + - ./libraries/vendor/bin/phpunit --testsuite Integration + - name: php81-integration-pgsql depends_on: [ npm ] image: joomlaprojects/docker-images:php8.1 @@ -91,6 +105,13 @@ steps: - php -v - ./libraries/vendor/bin/phpunit --testsuite Integration --configuration phpunit-pgsql.xml.dist + - name: php83-integration-pgsql + depends_on: [ npm ] + image: joomlaprojects/docker-images:php8.3 + commands: + - php -v + - ./libraries/vendor/bin/phpunit --testsuite Integration --configuration phpunit-pgsql.xml.dist + - name: scss-cs depends_on: [ npm ] image: node:current-alpine @@ -145,7 +166,7 @@ steps: - name: phpnext-system-mysql depends_on: - phpmax-system-mysql - image: joomlaprojects/docker-images:cypress8.2 + image: joomlaprojects/docker-images:cypress8.3 volumes: - name: cypress-cache path: /root/.cache/Cypress @@ -184,7 +205,7 @@ steps: - name: phpnext-system-postgres depends_on: - phpmax-system-postgres - image: joomlaprojects/docker-images:cypress8.2 + image: joomlaprojects/docker-images:cypress8.3 volumes: - name: cypress-cache path: /root/.cache/Cypress @@ -382,6 +403,6 @@ trigger: --- kind: signature -hmac: 5814cadc441b90eec51da0aa32cd29ff1014c4d759841cc70063b5e9245d2b08 +hmac: e8ab45eb1d91c0b0b38c8d25a3a983d112c973dcba0153a982f2afd581dfa458 ... diff --git a/administrator/components/com_actionlogs/src/Helper/ActionlogsHelper.php b/administrator/components/com_actionlogs/src/Helper/ActionlogsHelper.php index 8b4bd4a078a22..102e2638c7538 100644 --- a/administrator/components/com_actionlogs/src/Helper/ActionlogsHelper.php +++ b/administrator/components/com_actionlogs/src/Helper/ActionlogsHelper.php @@ -330,6 +330,12 @@ public static function loadActionLogPluginsLanguage() // Load plg_system_actionlogs too $lang->load('plg_system_actionlogs', JPATH_ADMINISTRATOR); + // Load plg_system_privacyconsent too + $lang->load('plg_system_privacyconsent', JPATH_ADMINISTRATOR); + + // Load plg_user_terms too + $lang->load('plg_user_terms', JPATH_ADMINISTRATOR); + // Load com_privacy too. $lang->load('com_privacy', JPATH_ADMINISTRATOR); } diff --git a/administrator/components/com_joomlaupdate/tmpl/joomlaupdate/noupdate.php b/administrator/components/com_joomlaupdate/tmpl/joomlaupdate/noupdate.php index 5a4c9bc3d552a..f61c771241e33 100644 --- a/administrator/components/com_joomlaupdate/tmpl/joomlaupdate/noupdate.php +++ b/administrator/components/com_joomlaupdate/tmpl/joomlaupdate/noupdate.php @@ -19,14 +19,14 @@ $reasonNoDownload = ''; if (!empty($this->reasonNoDownload)) { - $reasonNoDownload = Text::_($this->reasonNoDownload); + $reasonNoDownload = Text::_($this->reasonNoDownload) . '
'; if (isset($this->detailsNoDownload->php)) { $reasonNoDownload .= Text::sprintf( 'COM_JOOMLAUPDATE_NODOWNLOAD_EMPTYSTATE_REASON_PHP', $this->detailsNoDownload->php->used, $this->detailsNoDownload->php->required - ); + ) . '
'; } if (isset($this->detailsNoDownload->db)) { @@ -35,10 +35,10 @@ Text::_('JLIB_DB_SERVER_TYPE_' . $this->detailsNoDownload->db->type), $this->detailsNoDownload->db->used, $this->detailsNoDownload->db->required - ); + ) . '
'; } - $reasonNoDownload .= Text::_('COM_JOOMLAUPDATE_NODOWNLOAD_EMPTYSTATE_REASON_ACTION'); + $reasonNoDownload .= Text::_('COM_JOOMLAUPDATE_NODOWNLOAD_EMPTYSTATE_REASON_ACTION') . '
'; } $displayData = [ diff --git a/administrator/components/com_menus/tmpl/items/modal.php b/administrator/components/com_menus/tmpl/items/modal.php index 0943ac02a5fc2..dd11a10cb5e53 100644 --- a/administrator/components/com_menus/tmpl/items/modal.php +++ b/administrator/components/com_menus/tmpl/items/modal.php @@ -33,14 +33,14 @@ $editor = $app->getInput()->getCmd('editor', ''); $listOrder = $this->escape($this->state->get('list.ordering')); $listDirn = $this->escape($this->state->get('list.direction')); -$link = 'index.php?option=com_menus&view=items&layout=modal&tmpl=component&' . Session::getFormToken() . '=1'; +$link = 'index.php?option=com_menus&view=items&layout=modal&tmpl=component&' . Session::getFormToken() . '=1&function=' . $function; $multilang = Multilanguage::isEnabled(); if (!empty($editor)) { // This view is used also in com_menus. Load the xtd script only if the editor is set! $this->document->addScriptOptions('xtd-menus', ['editor' => $editor]); $onclick = "jSelectMenuItem"; - $link = 'index.php?option=com_menus&view=items&layout=modal&tmpl=component&editor=' . $editor . '&' . Session::getFormToken() . '=1'; + $link = 'index.php?option=com_menus&view=items&layout=modal&tmpl=component&editor=' . $editor . '&' . Session::getFormToken() . '=1&function=' . $function; } ?>
@@ -186,7 +186,6 @@ - diff --git a/administrator/components/com_templates/src/Model/TemplateModel.php b/administrator/components/com_templates/src/Model/TemplateModel.php index 0f2ef4130dd6e..221f6a3df4b0a 100644 --- a/administrator/components/com_templates/src/Model/TemplateModel.php +++ b/administrator/components/com_templates/src/Model/TemplateModel.php @@ -886,8 +886,8 @@ public function &getSource() $fileName = str_replace('//', '/', $fileName); $isMedia = $input->getInt('isMedia', 0); - $fileName = $isMedia ? Path::clean(JPATH_ROOT . '/media/templates/' . ($this->template->client_id === 0 ? 'site' : 'administrator') . '/' . $this->template->element . $fileName) - : Path::clean(JPATH_ROOT . ($this->template->client_id === 0 ? '' : '/administrator') . '/templates/' . $this->template->element . $fileName); + $fileName = $isMedia ? Path::clean(JPATH_ROOT . '/media/templates/' . ((int) $this->template->client_id === 0 ? 'site' : 'administrator') . '/' . $this->template->element . $fileName) + : Path::clean(JPATH_ROOT . ((int) $this->template->client_id === 0 ? '' : '/administrator') . '/templates/' . $this->template->element . $fileName); try { $filePath = Path::check($fileName); diff --git a/administrator/components/com_templates/tmpl/template/default.php b/administrator/components/com_templates/tmpl/template/default.php index c3a5c8582892d..75528e08e0a09 100644 --- a/administrator/components/com_templates/tmpl/template/default.php +++ b/administrator/components/com_templates/tmpl/template/default.php @@ -60,7 +60,7 @@
type != 'home') : ?> -

get('isMedia', 0) ? '/media/templates/' . ($this->template->client_id === 0 ? 'site' : 'administrator') . '/' . $this->template->element . str_replace('//', '/', base64_decode($this->file)) : '/' . ($this->template->client_id === 0 ? '' : 'administrator/') . 'templates/' . $this->template->element . str_replace('//', '/', base64_decode($this->file))), $this->template->element); ?>

+

get('isMedia', 0) ? '/media/templates/' . ((int) $this->template->client_id === 0 ? 'site' : 'administrator') . '/' . $this->template->element . str_replace('//', '/', base64_decode($this->file)) : '/' . ((int) $this->template->client_id === 0 ? '' : 'administrator/') . 'templates/' . $this->template->element . str_replace('//', '/', base64_decode($this->file))), $this->template->element); ?>

@@ -80,7 +80,7 @@
  • - template->client_id === 0 ? '/' : '/administrator/') . 'templates/' . $this->template->element; ?> + template->client_id === 0 ? '/' : '/administrator/') . 'templates/' . $this->template->element; ?> loadTemplate('tree'); ?>
  • @@ -90,7 +90,7 @@
  • - template->client_id === 0 ? 'site/' : 'administrator/') . $this->template->element; ?> + template->client_id === 0 ? 'site/' : 'administrator/') . $this->template->element; ?> loadTemplate('tree_media'); ?>
  • diff --git a/administrator/language/en-GB/com_joomlaupdate.ini b/administrator/language/en-GB/com_joomlaupdate.ini index 17fca2758a9b6..cbfd490950582 100644 --- a/administrator/language/en-GB/com_joomlaupdate.ini +++ b/administrator/language/en-GB/com_joomlaupdate.ini @@ -44,10 +44,10 @@ COM_JOOMLAUPDATE_MINIMUM_STABILITY_STABLE="Stable" COM_JOOMLAUPDATE_NODOWNLOAD_EMPTYSTATE_APPEND="Upload and Update" COM_JOOMLAUPDATE_NODOWNLOAD_EMPTYSTATE_BUTTON_ADD="Retry check for update" COM_JOOMLAUPDATE_NODOWNLOAD_EMPTYSTATE_CONTENT="An update to Joomla %1$s was found, but it wasn't possible to fetch the download URL for that update. Either the update to Joomla %1$s is not available for your stability level or there is a problem with the Joomla Update Server.
    Please try to download the update package from the official Joomla download page and use the Upload and Update function." -COM_JOOMLAUPDATE_NODOWNLOAD_EMPTYSTATE_REASON="An update to Joomla %1$s was found but your web server doesn't meet the minimum requirements.
    " -COM_JOOMLAUPDATE_NODOWNLOAD_EMPTYSTATE_REASON_ACTION="Please contact your web host to update your server.
    " -COM_JOOMLAUPDATE_NODOWNLOAD_EMPTYSTATE_REASON_DATABASE="Your %1$s version \"%2$s\" is lower than \"%3$s\".
    " -COM_JOOMLAUPDATE_NODOWNLOAD_EMPTYSTATE_REASON_PHP="Your PHP version \"%1$s\" is lower than \"%2$s\".
    " +COM_JOOMLAUPDATE_NODOWNLOAD_EMPTYSTATE_REASON="An update to Joomla %1$s was found but your web server doesn't meet the minimum requirements." +COM_JOOMLAUPDATE_NODOWNLOAD_EMPTYSTATE_REASON_ACTION="Please contact your web host to update your server." +COM_JOOMLAUPDATE_NODOWNLOAD_EMPTYSTATE_REASON_DATABASE="Your %1$s version \"%2$s\" is lower than \"%3$s\"." +COM_JOOMLAUPDATE_NODOWNLOAD_EMPTYSTATE_REASON_PHP="Your PHP version \"%1$s\" is lower than \"%2$s\"." COM_JOOMLAUPDATE_NODOWNLOAD_EMPTYSTATE_TITLE="This site can't be updated to Joomla %1$s" COM_JOOMLAUPDATE_OVERVIEW="Joomla Update" COM_JOOMLAUPDATE_PREUPDATE_CHECK_CAPTION="Server settings to check before update." diff --git a/administrator/language/en-GB/lib_joomla.ini b/administrator/language/en-GB/lib_joomla.ini index 7fbad4d2981c0..c935ca774a6a4 100644 --- a/administrator/language/en-GB/lib_joomla.ini +++ b/administrator/language/en-GB/lib_joomla.ini @@ -615,8 +615,10 @@ JLIB_INSTALLER_ERROR_PACK_UNINSTALL_INVALID_MANIFEST="Package Uninstall: Invalid JLIB_INSTALLER_ERROR_PACK_UNINSTALL_INVALID_NOTFOUND_MANIFEST="Package Uninstall: Manifest file invalid or not found: %s" JLIB_INSTALLER_ERROR_PACK_UNINSTALL_LOAD_MANIFEST="Package Uninstall: Could not load manifest file." JLIB_INSTALLER_ERROR_PACK_UNINSTALL_MANIFEST_NOT_REMOVED="Package Uninstall: Errors were detected, manifest file not removed!" +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." diff --git a/administrator/language/en-GB/plg_task_deleteactionlogs.ini b/administrator/language/en-GB/plg_task_deleteactionlogs.ini index 30a9ede1a6fb2..43ba702e4bd6f 100644 --- a/administrator/language/en-GB/plg_task_deleteactionlogs.ini +++ b/administrator/language/en-GB/plg_task_deleteactionlogs.ini @@ -5,6 +5,6 @@ PLG_TASK_DELETEACTIONLOGS="Task - Delete Action Logs" PLG_TASK_DELETEACTIONLOGS_DELETE_DESC="Delete Action logs after days" -PLG_TASK_DELETEACTIONLOGS_DELETE_TITLE="Delete ActionLogs - Task" +PLG_TASK_DELETEACTIONLOGS_DELETE_TITLE="Delete ActionLogs" PLG_TASK_DELETEACTIONLOGS_LOG_DELETE_PERIOD="Days to delete action logs after" PLG_TASK_DELETEACTIONLOGS_XML_DESCRIPTION="This plugin for schedule Action Logs delete Tasks." diff --git a/administrator/language/en-GB/plg_task_sessiongc.ini b/administrator/language/en-GB/plg_task_sessiongc.ini index 0064055c70eb8..e01f337c39ce3 100644 --- a/administrator/language/en-GB/plg_task_sessiongc.ini +++ b/administrator/language/en-GB/plg_task_sessiongc.ini @@ -9,5 +9,5 @@ PLG_TASK_SESSIONGC_ENABLE_SESSION_GC_DESC="When enabled, this plugin will attemp PLG_TASK_SESSIONGC_ENABLE_SESSION_GC_LABEL="Enable Session Data Cleanup" PLG_TASK_SESSIONGC_ENABLE_SESSION_METADATA_GC_DESC="When enabled, this plugin will clean optional session metadata from the database. Note that this operation will not run when the database handler is in use as that data is cleared as part of the Session Data Cleanup operation." PLG_TASK_SESSIONGC_ENABLE_SESSION_METADATA_GC_LABEL="Enable Session Metadata Cleanup" -PLG_TASK_SESSIONGC_TITLE="Task - Session Data Purge" +PLG_TASK_SESSIONGC_TITLE="Session Data Purge" PLG_TASK_SESSIONGC_XML_DESCRIPTION="Task Plugin that purges expired data and metadata depending on the session handler set in Global Configuration." diff --git a/api/components/com_content/src/Controller/ArticlesController.php b/api/components/com_content/src/Controller/ArticlesController.php index fd8d1f97a70c7..a5226eb00e390 100644 --- a/api/components/com_content/src/Controller/ArticlesController.php +++ b/api/components/com_content/src/Controller/ArticlesController.php @@ -115,9 +115,11 @@ protected function preprocessSaveData(array $data): array } } - $tags = new TagsHelper(); - $tags->getTagIds($data['id'], 'com_content.article'); - $data['tags'] = explode(',', $tags->tags); + if (($this->input->getMethod() === 'PATCH') && !(\array_key_exists('tags', $data))) { + $tags = new TagsHelper(); + $tags->getTagIds($data['id'], 'com_content.article'); + $data['tags'] = explode(',', $tags->tags); + } return $data; } 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 66a0609a5d819..67c18350119d9 100644 --- a/build/media_source/com_media/scss/components/_media-browser.scss +++ b/build/media_source/com_media/scss/components/_media-browser.scss @@ -380,6 +380,7 @@ > td, > th { + color: #fff; background-color: $table-item-icon-bg-selected; } } diff --git a/build/media_source/templates/site/cassiopeia/scss/blocks/_footer.scss b/build/media_source/templates/site/cassiopeia/scss/blocks/_footer.scss index 4aa0ad776c95d..2ad8727c176a9 100644 --- a/build/media_source/templates/site/cassiopeia/scss/blocks/_footer.scss +++ b/build/media_source/templates/site/cassiopeia/scss/blocks/_footer.scss @@ -12,8 +12,13 @@ padding: 2.5rem ($cassiopeia-grid-gutter * .5); } - a { + a:not(.btn), .btn-link { color: currentColor; + + &:hover, + &:focus { + color: var(--gray-200); + } } .mod-menu { 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 091c61db051eb..0591114c5f42e 100644 --- a/build/media_source/templates/site/cassiopeia/scss/blocks/_global.scss +++ b/build/media_source/templates/site/cassiopeia/scss/blocks/_global.scss @@ -60,11 +60,6 @@ a { text-decoration: underline; } - &:not(.btn):hover, - &:not(.btn):focus { - color: var(--cassiopeia-color-hover); - } - &.navbar-brand { color: var(--cassiopeia-color-brand); } diff --git a/build/media_source/templates/site/cassiopeia/scss/blocks/_header.scss b/build/media_source/templates/site/cassiopeia/scss/blocks/_header.scss index 19f6ccf2b6326..ece7792b12ba3 100644 --- a/build/media_source/templates/site/cassiopeia/scss/blocks/_header.scss +++ b/build/media_source/templates/site/cassiopeia/scss/blocks/_header.scss @@ -213,7 +213,7 @@ .mod-finder { color: $white; - a { + a:not(.jmodedit) { color: $white; &:hover, &:focus { diff --git a/build/media_source/templates/site/cassiopeia/scss/blocks/_layout.scss b/build/media_source/templates/site/cassiopeia/scss/blocks/_layout.scss index ca9419b0cf57c..4162e96444b1f 100644 --- a/build/media_source/templates/site/cassiopeia/scss/blocks/_layout.scss +++ b/build/media_source/templates/site/cassiopeia/scss/blocks/_layout.scss @@ -15,8 +15,14 @@ .container-topbar, .container-below-top { color: $white; - a { + + a:not(.btn), .btn-link { color: currentColor; + + &:hover, + &:focus { + color: var(--gray-200); + } } } diff --git a/composer.lock b/composer.lock index 881e6a8da2486..279f635fb342c 100644 --- a/composer.lock +++ b/composer.lock @@ -3025,16 +3025,16 @@ }, { "name": "phpseclib/phpseclib", - "version": "3.0.23", + "version": "3.0.34", "source": { "type": "git", "url": "https://github.com/phpseclib/phpseclib.git", - "reference": "866cc78fbd82462ffd880e3f65692afe928bed50" + "reference": "56c79f16a6ae17e42089c06a2144467acc35348a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpseclib/phpseclib/zipball/866cc78fbd82462ffd880e3f65692afe928bed50", - "reference": "866cc78fbd82462ffd880e3f65692afe928bed50", + "url": "https://api.github.com/repos/phpseclib/phpseclib/zipball/56c79f16a6ae17e42089c06a2144467acc35348a", + "reference": "56c79f16a6ae17e42089c06a2144467acc35348a", "shasum": "" }, "require": { @@ -3115,7 +3115,7 @@ ], "support": { "issues": "https://github.com/phpseclib/phpseclib/issues", - "source": "https://github.com/phpseclib/phpseclib/tree/3.0.23" + "source": "https://github.com/phpseclib/phpseclib/tree/3.0.34" }, "funding": [ { @@ -3131,7 +3131,7 @@ "type": "tidelift" } ], - "time": "2023-09-18T17:22:01+00:00" + "time": "2023-11-27T11:13:31+00:00" }, { "name": "psr/clock", diff --git a/language/en-GB/lib_joomla.ini b/language/en-GB/lib_joomla.ini index 254264554b6ff..e31571e9b846d 100644 --- a/language/en-GB/lib_joomla.ini +++ b/language/en-GB/lib_joomla.ini @@ -609,8 +609,10 @@ JLIB_INSTALLER_ERROR_PACK_UNINSTALL_INVALID_MANIFEST="Package Uninstall: Invalid JLIB_INSTALLER_ERROR_PACK_UNINSTALL_INVALID_NOTFOUND_MANIFEST="Package Uninstall: Manifest file invalid or not found: %s" JLIB_INSTALLER_ERROR_PACK_UNINSTALL_LOAD_MANIFEST="Package Uninstall: Could not load manifest file." JLIB_INSTALLER_ERROR_PACK_UNINSTALL_MANIFEST_NOT_REMOVED="Package Uninstall: Errors were detected, manifest file not removed!" +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." diff --git a/libraries/src/Extension/ExtensionHelper.php b/libraries/src/Extension/ExtensionHelper.php index bbe6bc2f5ee9a..3e0ac57e16aeb 100644 --- a/libraries/src/Extension/ExtensionHelper.php +++ b/libraries/src/Extension/ExtensionHelper.php @@ -401,15 +401,25 @@ public static function getCoreExtensionIds() ->select($db->quoteName('extension_id')) ->from($db->quoteName('#__extensions')); + $values = []; + foreach (self::$coreExtensions as $extension) { - $values = $query->bindArray($extension, [ParameterType::STRING, ParameterType::STRING, ParameterType::STRING, ParameterType::INTEGER]); - $query->where( - '(' . $db->quoteName('type') . ' = ' . $values[0] . ' AND ' . $db->quoteName('element') . ' = ' . $values[1] - . ' AND ' . $db->quoteName('folder') . ' = ' . $values[2] . ' AND ' . $db->quoteName('client_id') . ' = ' . $values[3] . ')', - 'OR' - ); + $values[] = $extension[0] . '|' . $extension[1] . '|' . $extension[2] . '|' . $extension[3]; } + $query->whereIn( + $query->concatenate( + [ + $db->quoteName('type'), + $db->quoteName('element'), + $db->quoteName('folder'), + $db->quoteName('client_id'), + ], + '|' + ), + $values + ); + $db->setQuery($query); self::$coreExtensionIds = $db->loadColumn(); diff --git a/libraries/src/Form/Form.php b/libraries/src/Form/Form.php index 6680c8f7052f1..4ee6bc74e4cd6 100644 --- a/libraries/src/Form/Form.php +++ b/libraries/src/Form/Form.php @@ -182,9 +182,9 @@ protected function bindLevel($group, $data) } /** - * Return all errors, if any. + * Return Exceptions thrown during the form validation process. * - * @return \Exception[] Array of error messages or RuntimeException objects. + * @return \Exception[] * * @since 1.7.0 */ @@ -1055,8 +1055,8 @@ public function filter($data, $group = null) /** * Method to validate form data. * - * Validation warnings will be pushed into JForm::errors and should be - * retrieved with JForm::getErrors() when validate returns boolean false. + * Validation warnings will be pushed into Form::$errors and should be + * retrieved with Form::getErrors() when validate returns boolean false. * * @param array $data An array of field values to validate. * @param string $group The optional dot-separated form group path on which to filter the @@ -1134,6 +1134,7 @@ public function validate($data, $group = null) // The field returned false from setup and shouldn't be included in the page body - yet we received // a value for it. This is probably some sort of injection attack and should be rejected $this->errors[] = new \RuntimeException(Text::sprintf('JLIB_FORM_VALIDATE_FIELD_INVALID', $key)); + $return = false; } } diff --git a/libraries/src/Installer/Adapter/PackageAdapter.php b/libraries/src/Installer/Adapter/PackageAdapter.php index eb7875212dd89..2957b44787369 100644 --- a/libraries/src/Installer/Adapter/PackageAdapter.php +++ b/libraries/src/Installer/Adapter/PackageAdapter.php @@ -435,7 +435,7 @@ protected function removeExtensionFiles() Log::add(Text::sprintf('JLIB_INSTALLER_ERROR_PACK_UNINSTALL_NOT_PROPER', basename($extension->filename)), Log::WARNING, 'jerror'); } } else { - Log::add(Text::_('JLIB_INSTALLER_ERROR_PACK_UNINSTALL_UNKNOWN_EXTENSION'), Log::WARNING, 'jerror'); + Log::add(Text::sprintf('JLIB_INSTALLER_ERROR_PACK_UNINSTALL_MISSING_EXTENSION', basename($extension->filename)), Log::WARNING, 'jerror'); } } diff --git a/tests/System/integration/administrator/components/com_privacy/Consent.cy.js b/tests/System/integration/administrator/components/com_privacy/Consent.cy.js index 36514f9db696c..2538c99f61e44 100644 --- a/tests/System/integration/administrator/components/com_privacy/Consent.cy.js +++ b/tests/System/integration/administrator/components/com_privacy/Consent.cy.js @@ -2,6 +2,7 @@ describe('Test in backend that privacy consent component', () => { beforeEach(() => cy.doAdministratorLogin()); afterEach(() => { cy.task('queryDB', 'DELETE FROM #__privacy_consents'); + cy.task('queryDB', "DELETE FROM #__users WHERE name = 'test user'"); cy.get('.js-stools-btn-clear').click({ force: true }); }); ```