JoomlaPolska / jezyk-J4

Język polski dla Joomla 4
GNU General Public License v2.0
3 stars 5 forks source link

[5.3] Upmerge changes from 5.2-dev 2024-10-23 #602

Open joomlapl-bot opened 1 month ago

joomlapl-bot commented 1 month ago

PR w związku ze zmianą oryginału https://github.com/joomla/joomla-cms/pull/44348 Poniżej zmiany w oryginale:

Click to expand the diff! ```diff diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index d659b92ed8779..bb3d40090994f 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -6,7 +6,6 @@ plugins/content/finder/* @hackwar plugins/finder/* @hackwar # Release Tools -build.xml @fancyFranci build/build.php @rdeutz build/bump.php @rdeutz build/deleted_file_check.php @rdeutz @@ -17,12 +16,12 @@ libraries/src/Installer/* @rdeutz libraries/src/Updater/* @rdeutz # Automated Testing -tests/* @hackwar @fancyFranci -tests/Unit/* @rdeutz @fancyFranci -.appveyor.yml @rdeutz @hackwar @fancyFranci -.drone.yml @rdeutz @hackwar @fancyFranci -phpunit.xml.dist @rdeutz @hackwar @fancyFranci -phpunit-pgsql.xml.dist @rdeutz @hackwar @fancyFranci +tests/* @hackwar @laoneo +tests/Unit/* @rdeutz @laoneo +.appveyor.yml @rdeutz @hackwar @laoneo +.drone.yml @rdeutz @hackwar @laoneo +phpunit.xml.dist @rdeutz @hackwar @laoneo +phpunit-pgsql.xml.dist @rdeutz @hackwar @laoneo # Workflow administrator/components/com_workflow/* @bembelimen @hleithner diff --git a/README.md b/README.md index 421c03175675b..e4fa750e4bf32 100644 --- a/README.md +++ b/README.md @@ -1,14 +1,11 @@ Joomla! CMS™ ==================== -The Joomla! 5.2 branch is under heavy development and not all links in this document are available yet ------------------------------------------------------------------------------------------------------- - Build Status | Drone-CI | AppVeyor | PHP | Node | npm | |------------------------------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------|--------------------------------------------------------------------------------------|---------------------------------------------------------------------------------| -| [![Build Status](https://ci.joomla.org/api/badges/joomla/joomla-cms/status.svg?branch=5.2-dev)](https://ci.joomla.org/joomla/joomla-cms) | [![Build status](https://ci.appveyor.com/api/projects/status/ru6sxal8jmfckvjc/branch/5.2-dev?svg=true)](https://ci.appveyor.com/project/release-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-V18.0-green)](https://nodejs.org/en/) | [![npm](https://img.shields.io/badge/npm-v9.6.7-green)](https://nodejs.org/en/) | +| [![Build Status](https://ci.joomla.org/api/badges/joomla/joomla-cms/status.svg?branch=5.2-dev)](https://ci.joomla.org/joomla/joomla-cms) | [![Build status](https://ci.appveyor.com/api/projects/status/ru6sxal8jmfckvjc/branch/5.2-dev?svg=true)](https://ci.appveyor.com/project/release-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/) | Overview --------------------- diff --git a/README.txt b/README.txt index 8f117f87ea4c2..b8bc56e931a43 100644 --- a/README.txt +++ b/README.txt @@ -1,8 +1,5 @@ Joomla! CMS™ -The Joomla! 5.2 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. * Joomla! Official site: https://www.joomla.org diff --git a/administrator/components/com_admin/sql/updates/mysql/5.2.0-2024-09-24.sql b/administrator/components/com_admin/sql/updates/mysql/5.2.0-2024-09-24.sql new file mode 100644 index 0000000000000..1592aba38893f --- /dev/null +++ b/administrator/components/com_admin/sql/updates/mysql/5.2.0-2024-09-24.sql @@ -0,0 +1,7 @@ +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.0-2024-09-24.sql b/administrator/components/com_admin/sql/updates/postgresql/5.2.0-2024-09-24.sql new file mode 100644 index 0000000000000..8da7f706d58f6 --- /dev/null +++ b/administrator/components/com_admin/sql/updates/postgresql/5.2.0-2024-09-24.sql @@ -0,0 +1,7 @@ +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_content/src/Model/FeaturedModel.php b/administrator/components/com_content/src/Model/FeaturedModel.php index 2f9893f99a4f1..a91926785134c 100644 --- a/administrator/components/com_content/src/Model/FeaturedModel.php +++ b/administrator/components/com_content/src/Model/FeaturedModel.php @@ -10,9 +10,9 @@ namespace Joomla\Component\Content\Administrator\Model; -// phpcs:disable PSR1.Files.SideEffects use Joomla\Database\QueryInterface; +// phpcs:disable PSR1.Files.SideEffects \defined('_JEXEC') or die; // phpcs:enable PSR1.Files.SideEffects diff --git a/administrator/components/com_menus/tmpl/items/default_batch_body.php b/administrator/components/com_menus/tmpl/items/default_batch_body.php index 71f9df278611b..266830db1368f 100644 --- a/administrator/components/com_menus/tmpl/items/default_batch_body.php +++ b/administrator/components/com_menus/tmpl/items/default_batch_body.php @@ -10,7 +10,6 @@ defined('_JEXEC') or die; -use Joomla\CMS\Factory; use Joomla\CMS\HTML\HTMLHelper; use Joomla\CMS\Language\Multilanguage; use Joomla\CMS\Language\Text; @@ -24,7 +23,6 @@ ]; $published = (int) $this->state->get('filter.published'); $clientId = (int) $this->state->get('filter.client_id'); -$menuType = Factory::getApplication()->getUserState('com_menus.items.menutype', ''); if ($clientId == 1) { /** @var Joomla\CMS\WebAsset\WebAssetManager $wa */ @@ -34,23 +32,22 @@ } ?>
- - -
+ +
+
+
+ +
+
+
- +
- -
-
- -
-
- +
= 0) : ?>
@@ -82,17 +79,12 @@

- -
-

-
- -
-= 0 && $clientId == 1)) : ?> -
- - -
+= 0 && $clientId == 1)) : ?> +
+ + + +
diff --git a/administrator/components/com_privacy/tmpl/consents/default.php b/administrator/components/com_privacy/tmpl/consents/default.php index 723d7ccb15c18..73d9e7fd90c28 100644 --- a/administrator/components/com_privacy/tmpl/consents/default.php +++ b/administrator/components/com_privacy/tmpl/consents/default.php @@ -34,6 +34,7 @@ 0 => Text::_('COM_PRIVACY_CONSENTS_STATE_OBSOLETE'), 1 => Text::_('COM_PRIVACY_CONSENTS_STATE_VALID') ]; +$this->getLanguage()->load('plg_system_privacyconsent', JPATH_ADMINISTRATOR); ?>
diff --git a/administrator/language/en-GB/com_menus.ini b/administrator/language/en-GB/com_menus.ini index c205c860eda17..05210e29cdcc2 100644 --- a/administrator/language/en-GB/com_menus.ini +++ b/administrator/language/en-GB/com_menus.ini @@ -176,6 +176,7 @@ 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" diff --git a/administrator/language/en-GB/mod_guidedtours.sys.ini b/administrator/language/en-GB/mod_guidedtours.sys.ini index 6a10e4865429b..3a8895066d65b 100644 --- a/administrator/language/en-GB/mod_guidedtours.sys.ini +++ b/administrator/language/en-GB/mod_guidedtours.sys.ini @@ -4,4 +4,5 @@ ; Note : All ini files need to be saved as UTF-8 MOD_GUIDEDTOURS="Guided Tours" +MOD_GUIDEDTOURS_LAYOUT_DEFAULT="Default" MOD_GUIDEDTOURS_XML_DESCRIPTION="This module shows a list of the available guided tours." diff --git a/administrator/language/en-GB/mod_latestactions.sys.ini b/administrator/language/en-GB/mod_latestactions.sys.ini index a2754e9250c76..8b0bcb940e5d5 100644 --- a/administrator/language/en-GB/mod_latestactions.sys.ini +++ b/administrator/language/en-GB/mod_latestactions.sys.ini @@ -4,4 +4,5 @@ ; Note : All ini files need to be saved as UTF-8 MOD_LATESTACTIONS="Action Logs - Latest" +MOD_LATESTACTIONS_LAYOUT_DEFAULT="Default" MOD_LATESTACTIONS_XML_DESCRIPTION="This module shows a list of the most recent actions." diff --git a/administrator/language/en-GB/mod_logged.sys.ini b/administrator/language/en-GB/mod_logged.sys.ini index 1f5af276312fc..13fc681147dc4 100644 --- a/administrator/language/en-GB/mod_logged.sys.ini +++ b/administrator/language/en-GB/mod_logged.sys.ini @@ -5,4 +5,5 @@ MOD_LOGGED="Logged-in Users" MOD_LOGGED_LAYOUT_DEFAULT="Default" +MOD_LOGGED_LAYOUT_DISABLED="Disabled" MOD_LOGGED_XML_DESCRIPTION="This module shows a list of the Logged-in Users." diff --git a/administrator/language/en-GB/mod_multilangstatus.sys.ini b/administrator/language/en-GB/mod_multilangstatus.sys.ini index ef31269b7581e..16e87e714232f 100644 --- a/administrator/language/en-GB/mod_multilangstatus.sys.ini +++ b/administrator/language/en-GB/mod_multilangstatus.sys.ini @@ -4,4 +4,5 @@ ; Note : All ini files need to be saved as UTF-8 MOD_MULTILANGSTATUS="Multilingual Status" +MOD_MULTILANGSTATUS_LAYOUT_DEFAULT="Default" MOD_MULTILANGSTATUS_XML_DESCRIPTION="This module shows the status of the multilingual parameters and is intended to be displayed in the 'status' position." diff --git a/administrator/language/en-GB/mod_post_installation_messages.sys.ini b/administrator/language/en-GB/mod_post_installation_messages.sys.ini index 1800cf5669df5..b17da23875bc9 100644 --- a/administrator/language/en-GB/mod_post_installation_messages.sys.ini +++ b/administrator/language/en-GB/mod_post_installation_messages.sys.ini @@ -4,4 +4,5 @@ ; Note : All ini files need to be saved as UTF-8 MOD_POST_INSTALLATION_MESSAGES="Post Installation Messages" +MOD_POST_INSTALLATION_MESSAGES_LAYOUT_DEFAULT="Default" MOD_POST_INSTALLATION_MESSAGES_XML_DESCRIPTION="This module shows a counter and a link to the latest post installation messages. It is only displayed when there are messages to read." diff --git a/administrator/language/en-GB/mod_sampledata.sys.ini b/administrator/language/en-GB/mod_sampledata.sys.ini index 1e56687f9e2c4..b28ad7d9029b2 100644 --- a/administrator/language/en-GB/mod_sampledata.sys.ini +++ b/administrator/language/en-GB/mod_sampledata.sys.ini @@ -4,4 +4,5 @@ ; Note : All ini files need to be saved as UTF-8 MOD_SAMPLEDATA="Sample Data" +MOD_SAMPLEDATA_LAYOUT_DEFAULT="Default" MOD_SAMPLEDATA_XML_DESCRIPTION="This module lets you install sample data." diff --git a/administrator/language/en-GB/mod_stats_admin.sys.ini b/administrator/language/en-GB/mod_stats_admin.sys.ini index 23bb31e390c09..38bd731fb2e93 100644 --- a/administrator/language/en-GB/mod_stats_admin.sys.ini +++ b/administrator/language/en-GB/mod_stats_admin.sys.ini @@ -4,5 +4,8 @@ ; Note : All ini files need to be saved as UTF-8 MOD_STATS_ADMIN="Statistics" -MOD_STATS_LAYOUT_DEFAULT="Default" +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_submenu.sys.ini b/administrator/language/en-GB/mod_submenu.sys.ini index 4f5a580832a84..9fd781c183761 100644 --- a/administrator/language/en-GB/mod_submenu.sys.ini +++ b/administrator/language/en-GB/mod_submenu.sys.ini @@ -4,4 +4,5 @@ ; Note : All ini files need to be saved as UTF-8 MOD_SUBMENU="Administrator Dashboard Menu" +MOD_SUBMENU_LAYOUT_DEFAULT="Default" MOD_SUBMENU_XML_DESCRIPTION="This module displays an administrator submenu module." diff --git a/build/media_source/templates/administrator/atum/scss/vendor/bootstrap/_custom-forms.scss b/build/media_source/templates/administrator/atum/scss/vendor/bootstrap/_custom-forms.scss index 3492f93d86a67..9c172f7913c26 100644 --- a/build/media_source/templates/administrator/atum/scss/vendor/bootstrap/_custom-forms.scss +++ b/build/media_source/templates/administrator/atum/scss/vendor/bootstrap/_custom-forms.scss @@ -22,7 +22,7 @@ &:checked { color: var(--template-text-light); - background-color: var(--template-bg-dark) !important; + background-color: var(--template-contrast) !important; } } } diff --git a/composer.lock b/composer.lock index f393ad40fa9c3..5f5acb250f669 100644 --- a/composer.lock +++ b/composer.lock @@ -1494,16 +1494,16 @@ }, { "name": "joomla/database", - "version": "3.2.0", + "version": "3.2.1", "source": { "type": "git", "url": "https://github.com/joomla-framework/database.git", - "reference": "7abff998d4e0d63c0469dae5358822e757928871" + "reference": "3927dea8a08927d7d1dd4254bee6c6d66994a202" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/joomla-framework/database/zipball/7abff998d4e0d63c0469dae5358822e757928871", - "reference": "7abff998d4e0d63c0469dae5358822e757928871", + "url": "https://api.github.com/repos/joomla-framework/database/zipball/3927dea8a08927d7d1dd4254bee6c6d66994a202", + "reference": "3927dea8a08927d7d1dd4254bee6c6d66994a202", "shasum": "" }, "require": { @@ -1561,7 +1561,7 @@ ], "support": { "issues": "https://github.com/joomla-framework/database/issues", - "source": "https://github.com/joomla-framework/database/tree/3.2.0" + "source": "https://github.com/joomla-framework/database/tree/3.2.1" }, "funding": [ { @@ -1573,7 +1573,7 @@ "type": "github" } ], - "time": "2024-08-15T10:09:54+00:00" + "time": "2024-08-19T13:09:59+00:00" }, { "name": "joomla/di", diff --git a/installation/sql/mysql/base.sql b/installation/sql/mysql/base.sql index 6301dfdc950c9..e8ef9f56f4ae7 100644 --- a/installation/sql/mysql/base.sql +++ b/installation/sql/mysql/base.sql @@ -77,13 +77,13 @@ INSERT INTO `#__assets` (`id`, `parent_id`, `lft`, `rgt`, `level`, `name`, `titl (55, 18, 94, 95, 2, 'com_modules.module.87', 'Sample Data', '{}'), (56, 8, 20, 37, 2, 'com_content.workflow.1', 'COM_WORKFLOW_BASIC_WORKFLOW', '{}'), (57, 56, 21, 22, 3, 'com_content.stage.1', 'COM_WORKFLOW_BASIC_STAGE', '{}'), -(58, 56, 23, 24, 3, 'com_content.transition.1', 'Unpublish', '{}'), -(59, 56, 25, 26, 3, 'com_content.transition.2', 'Publish', '{}'), -(60, 56, 27, 28, 3, 'com_content.transition.3', 'Trash', '{}'), -(61, 56, 29, 30, 3, 'com_content.transition.4', 'Archive', '{}'), -(62, 56, 31, 32, 3, 'com_content.transition.5', 'Feature', '{}'), -(63, 56, 33, 34, 3, 'com_content.transition.6', 'Unfeature', '{}'), -(64, 56, 35, 36, 3, 'com_content.transition.7', 'Publish & Feature', '{}'), +(58, 56, 23, 24, 3, 'com_content.transition.1', 'UNPUBLISH', '{}'), +(59, 56, 25, 26, 3, 'com_content.transition.2', 'PUBLISH', '{}'), +(60, 56, 27, 28, 3, 'com_content.transition.3', 'TRASH', '{}'), +(61, 56, 29, 30, 3, 'com_content.transition.4', 'ARCHIVE', '{}'), +(62, 56, 31, 32, 3, 'com_content.transition.5', 'FEATURE', '{}'), +(63, 56, 33, 34, 3, 'com_content.transition.6', 'UNFEATURE', '{}'), +(64, 56, 35, 36, 3, 'com_content.transition.7', 'PUBLISH_AND_FEATURE', '{}'), (65, 1, 143, 144, 1, 'com_privacy', 'com_privacy', '{}'), (66, 1, 145, 146, 1, 'com_actionlogs', 'com_actionlogs', '{}'), (67, 18, 76, 77, 2, 'com_modules.module.88', 'Latest Actions', '{}'), diff --git a/installation/sql/postgresql/base.sql b/installation/sql/postgresql/base.sql index 9ade1f50e49a8..304f6de35c86e 100644 --- a/installation/sql/postgresql/base.sql +++ b/installation/sql/postgresql/base.sql @@ -83,13 +83,13 @@ INSERT INTO "#__assets" ("id", "parent_id", "lft", "rgt", "level", "name", "titl (55, 18, 94, 95, 2, 'com_modules.module.87', 'Sample Data', '{}'), (56, 8, 20, 37, 2, 'com_content.workflow.1', 'COM_WORKFLOW_BASIC_WORKFLOW', '{}'), (57, 56, 21, 22, 3, 'com_content.stage.1', 'COM_WORKFLOW_BASIC_STAGE', '{}'), -(58, 56, 23, 24, 3, 'com_content.transition.1', 'Unpublish', '{}'), -(59, 56, 25, 26, 3, 'com_content.transition.2', 'Publish', '{}'), -(60, 56, 27, 28, 3, 'com_content.transition.3', 'Trash', '{}'), -(61, 56, 29, 30, 3, 'com_content.transition.4', 'Archive', '{}'), -(62, 56, 31, 32, 3, 'com_content.transition.5', 'Feature', '{}'), -(63, 56, 33, 34, 3, 'com_content.transition.6', 'Unfeature', '{}'), -(64, 56, 35, 36, 3, 'com_content.transition.7', 'Publish & Feature', '{}'), +(58, 56, 23, 24, 3, 'com_content.transition.1', 'UNPUBLISH', '{}'), +(59, 56, 25, 26, 3, 'com_content.transition.2', 'PUBLISH', '{}'), +(60, 56, 27, 28, 3, 'com_content.transition.3', 'TRASH', '{}'), +(61, 56, 29, 30, 3, 'com_content.transition.4', 'ARCHIVE', '{}'), +(62, 56, 31, 32, 3, 'com_content.transition.5', 'FEATURE', '{}'), +(63, 56, 33, 34, 3, 'com_content.transition.6', 'UNFEATURE', '{}'), +(64, 56, 35, 36, 3, 'com_content.transition.7', 'PUBLISH_AND_FEATURE', '{}'), (65, 1, 143, 144, 1, 'com_privacy', 'com_privacy', '{}'), (66, 1, 145, 146, 1, 'com_actionlogs', 'com_actionlogs', '{}'), (67, 18, 76, 77, 2, 'com_modules.module.88', 'Latest Actions', '{}'), diff --git a/installation/src/Form/Rule/UsernameRule.php b/installation/src/Form/Rule/UsernameRule.php index 969d638ac9003..4e12fa1177943 100644 --- a/installation/src/Form/Rule/UsernameRule.php +++ b/installation/src/Form/Rule/UsernameRule.php @@ -15,7 +15,7 @@ use Joomla\Registry\Registry; // phpcs:disable PSR1.Files.SideEffects -\defined('JPATH_BASE') or die; +\defined('_JEXEC') or die; // phpcs:enable PSR1.Files.SideEffects /** diff --git a/installation/src/Model/ConfigurationModel.php b/installation/src/Model/ConfigurationModel.php index 24b06d836cdea..e92ea8708d532 100644 --- a/installation/src/Model/ConfigurationModel.php +++ b/installation/src/Model/ConfigurationModel.php @@ -560,6 +560,18 @@ private function createRootUser($options, $db) try { $db->execute(); + + // Synch the sequence if pgsql + if (($db->getServerType() === 'postgresql') && (!$result)) { + $query = $db->getQuery(true) + ->select('MAX(' . $db->quoteName('id') . ') + 1 AS ' . $db->quoteName('id')) + ->from($db->quoteName('#__users')); + $db->setQuery($query); + $result = $db->loadResult(); + + $db->setQuery('SELECT setval(' . $db->quote('#__users_id_seq') . ', ' . $result . ', false)') + ->execute(); + } } catch (\RuntimeException $e) { Factory::getApplication()->enqueueMessage($e->getMessage(), 'error'); diff --git a/language/en-GB/mod_articles_news.sys.ini b/language/en-GB/mod_articles_news.sys.ini index d618f6d886ba9..1cd060b4f36b8 100644 --- a/language/en-GB/mod_articles_news.sys.ini +++ b/language/en-GB/mod_articles_news.sys.ini @@ -5,4 +5,6 @@ MOD_ARTICLES_NEWS="Articles - Newsflash" MOD_ARTICLES_NEWS_LAYOUT_DEFAULT="Default" +MOD_ARTICLES_NEWS_LAYOUT_HORIZONTAL="Horizontal" +MOD_ARTICLES_NEWS_LAYOUT_VERTICAL="Vertical" MOD_ARTICLES_NEWS_XML_DESCRIPTION="The Newsflash Module will display a fixed number of articles from a specific category." diff --git a/language/en-GB/mod_whosonline.sys.ini b/language/en-GB/mod_whosonline.sys.ini index ed8f0fe5e61ac..0b96e3edd7042 100644 --- a/language/en-GB/mod_whosonline.sys.ini +++ b/language/en-GB/mod_whosonline.sys.ini @@ -5,4 +5,5 @@ MOD_WHOSONLINE="Who's Online" MOD_WHOSONLINE_LAYOUT_DEFAULT="Default" +MOD_WHOSONLINE_LAYOUT_DISABLED="Disabled" MOD_WHOSONLINE_XML_DESCRIPTION="The Who's Online Module displays the number of Anonymous Users (Guests) and Registered Users (users logged-in) that are currently accessing the website." diff --git a/language/en-GB/tpl_cassiopeia.sys.ini b/language/en-GB/tpl_cassiopeia.sys.ini index be02e4c25a6f8..226990e03c946 100644 --- a/language/en-GB/tpl_cassiopeia.sys.ini +++ b/language/en-GB/tpl_cassiopeia.sys.ini @@ -4,7 +4,8 @@ ; Note : All ini files need to be saved as UTF-8 CASSIOPEIA="Cassiopeia Site template" -TPL_CASSIOPEIA_MOD_MENU_LAYOUT_COLLAPSE-METISMENU="Collapsible Dropdown" +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" diff --git a/libraries/src/Event/Application/BeforeCompileHeadEvent.php b/libraries/src/Event/Application/BeforeCompileHeadEvent.php index 87a019dfaa1a9..b9e5a211353f3 100644 --- a/libraries/src/Event/Application/BeforeCompileHeadEvent.php +++ b/libraries/src/Event/Application/BeforeCompileHeadEvent.php @@ -10,7 +10,6 @@ namespace Joomla\CMS\Event\Application; // phpcs:disable PSR1.Files.SideEffects - \defined('_JEXEC') or die; // phpcs:enable PSR1.Files.SideEffects diff --git a/libraries/src/Extension/Service/Provider/MVCFactory.php b/libraries/src/Extension/Service/Provider/MVCFactory.php index 7eb07ef7b8f03..171cb665c3790 100644 --- a/libraries/src/Extension/Service/Provider/MVCFactory.php +++ b/libraries/src/Extension/Service/Provider/MVCFactory.php @@ -23,7 +23,7 @@ // phpcs:disable PSR1.Files.SideEffects \defined('_JEXEC') or die; -// phpcs:e_JEXECes.SideEffects +// phpcs:enable PSR1.Files.SideEffects /** * Service provider for the service MVC factory. diff --git a/libraries/src/Form/Rule/UrlRule.php b/libraries/src/Form/Rule/UrlRule.php index 8b6c7dcce8e3e..0098b97f01d2e 100644 --- a/libraries/src/Form/Rule/UrlRule.php +++ b/libraries/src/Form/Rule/UrlRule.php @@ -105,7 +105,7 @@ public function test(\SimpleXMLElement $element, $value, $group = null, ?Registr return false; } - // For some schemes here must be two slashes. + // For some schemes there must be two slashes. $scheme = ['http', 'https', 'ftp', 'ftps', 'gopher', 'wais', 'prospero', 'sftp', 'telnet', 'git']; if (\in_array($urlScheme, $scheme) && substr($value, \strlen($urlScheme), 3) !== '://') { diff --git a/libraries/src/Table/Ucm.php b/libraries/src/Table/Ucm.php index 2018e587d9a58..c6fd09ec75445 100644 --- a/libraries/src/Table/Ucm.php +++ b/libraries/src/Table/Ucm.php @@ -9,10 +9,10 @@ namespace Joomla\CMS\Table; -// phpcs:disable PSR1.Files.SideEffects use Joomla\Database\DatabaseDriver; use Joomla\Event\DispatcherInterface; +// phpcs:disable PSR1.Files.SideEffects \defined('_JEXEC') or die; // phpcs:enable PSR1.Files.SideEffects diff --git a/package-lock.json b/package-lock.json index b5e1e426399d9..1497cd7ea5b64 100644 --- a/package-lock.json +++ b/package-lock.json @@ -84,8 +84,8 @@ "joomla-cypress": "^1.1.1", "lightningcss": "^1.27.0", "mysql": "^2.18.1", + "pg": "^8.13.0", "postcss-scss": "^4.0.9", - "postgres": "^3.4.4", "recursive-readdir": "^2.2.3", "rimraf": "^3.0.2", "rollup": "^2.79.2", @@ -8813,6 +8813,103 @@ "dev": true, "license": "MIT" }, + "node_modules/pg": { + "version": "8.13.0", + "resolved": "https://registry.npmjs.org/pg/-/pg-8.13.0.tgz", + "integrity": "sha512-34wkUTh3SxTClfoHB3pQ7bIMvw9dpFU1audQQeZG837fmHfHpr14n/AELVDoOYVDW2h5RDWU78tFjkD+erSBsw==", + "dev": true, + "license": "MIT", + "dependencies": { + "pg-connection-string": "^2.7.0", + "pg-pool": "^3.7.0", + "pg-protocol": "^1.7.0", + "pg-types": "^2.1.0", + "pgpass": "1.x" + }, + "engines": { + "node": ">= 8.0.0" + }, + "optionalDependencies": { + "pg-cloudflare": "^1.1.1" + }, + "peerDependencies": { + "pg-native": ">=3.0.1" + }, + "peerDependenciesMeta": { + "pg-native": { + "optional": true + } + } + }, + "node_modules/pg-cloudflare": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/pg-cloudflare/-/pg-cloudflare-1.1.1.tgz", + "integrity": "sha512-xWPagP/4B6BgFO+EKz3JONXv3YDgvkbVrGw2mTo3D6tVDQRh1e7cqVGvyR3BE+eQgAvx1XhW/iEASj4/jCWl3Q==", + "dev": true, + "license": "MIT", + "optional": true + }, + "node_modules/pg-connection-string": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/pg-connection-string/-/pg-connection-string-2.7.0.tgz", + "integrity": "sha512-PI2W9mv53rXJQEOb8xNR8lH7Hr+EKa6oJa38zsK0S/ky2er16ios1wLKhZyxzD7jUReiWokc9WK5nxSnC7W1TA==", + "dev": true, + "license": "MIT" + }, + "node_modules/pg-int8": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/pg-int8/-/pg-int8-1.0.1.tgz", + "integrity": "sha512-WCtabS6t3c8SkpDBUlb1kjOs7l66xsGdKpIPZsg4wR+B3+u9UAum2odSsF9tnvxg80h4ZxLWMy4pRjOsFIqQpw==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/pg-pool": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/pg-pool/-/pg-pool-3.7.0.tgz", + "integrity": "sha512-ZOBQForurqh4zZWjrgSwwAtzJ7QiRX0ovFkZr2klsen3Nm0aoh33Ls0fzfv3imeH/nw/O27cjdz5kzYJfeGp/g==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "pg": ">=8.0" + } + }, + "node_modules/pg-protocol": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/pg-protocol/-/pg-protocol-1.7.0.tgz", + "integrity": "sha512-hTK/mE36i8fDDhgDFjy6xNOG+LCorxLG3WO17tku+ij6sVHXh1jQUJ8hYAnRhNla4QVD2H8er/FOjc/+EgC6yQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/pg-types": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/pg-types/-/pg-types-2.2.0.tgz", + "integrity": "sha512-qTAAlrEsl8s4OiEQY69wDvcMIdQN6wdz5ojQiOy6YRMuynxenON0O5oCpJI6lshc6scgAY8qvJ2On/p+CXY0GA==", + "dev": true, + "license": "MIT", + "dependencies": { + "pg-int8": "1.0.1", + "postgres-array": "~2.0.0", + "postgres-bytea": "~1.0.0", + "postgres-date": "~1.0.4", + "postgres-interval": "^1.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/pgpass": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/pgpass/-/pgpass-1.0.5.tgz", + "integrity": "sha512-FdW9r/jQZhSeohs1Z3sI1yxFQNFvMcnmfuj4WBMUTxOrAyLMaTcE1aAMBiTlbMNaXvBCQuVi0R7hd8udDSP7ug==", + "dev": true, + "license": "MIT", + "dependencies": { + "split2": "^4.1.0" + } + }, "node_modules/picocolors": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.0.tgz", @@ -8969,18 +9066,47 @@ "dev": true, "license": "MIT" }, - "node_modules/postgres": { - "version": "3.4.4", - "resolved": "https://registry.npmjs.org/postgres/-/postgres-3.4.4.tgz", - "integrity": "sha512-IbyN+9KslkqcXa8AO9fxpk97PA4pzewvpi2B3Dwy9u4zpV32QicaEdgmF3eSQUzdRk7ttDHQejNgAEr4XoeH4A==", + "node_modules/postgres-array": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/postgres-array/-/postgres-array-2.0.0.tgz", + "integrity": "sha512-VpZrUqU5A69eQyW2c5CA1jtLecCsN2U/bD6VilrFDWq5+5UIEVO7nazS3TEcHf1zuPYO/sqGvUvW62g86RXZuA==", "dev": true, - "license": "Unlicense", + "license": "MIT", "engines": { - "node": ">=12" + "node": ">=4" + } + }, + "node_modules/postgres-bytea": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/postgres-bytea/-/postgres-bytea-1.0.0.tgz", + "integrity": "sha512-xy3pmLuQqRBZBXDULy7KbaitYqLcmxigw14Q5sj8QBVLqEwXfeybIKVWiqAXTlcvdvb0+xkOtDbfQMOf4lST1w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postgres-date": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/postgres-date/-/postgres-date-1.0.7.tgz", + "integrity": "sha512-suDmjLVQg78nMK2UZ454hAG+OAW+HQPZ6n++TNDUX+L0+uUlLywnoxJKDou51Zm+zTCjrCl0Nq6J9C5hP9vK/Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postgres-interval": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/postgres-interval/-/postgres-interval-1.2.0.tgz", + "integrity": "sha512-9ZhXKM/rw350N1ovuWHbGxnGh/SNJ4cnxHiM0rxE4VN41wsg8P8zWn9hv/buK00RP4WvlOyr/RBDiptyxVbkZQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "xtend": "^4.0.0" }, - "funding": { - "type": "individual", - "url": "https://github.com/sponsors/porsager" + "engines": { + "node": ">=0.10.0" } }, "node_modules/prelude-ls": { @@ -10418,6 +10544,16 @@ "dev": true, "license": "CC0-1.0" }, + "node_modules/split2": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/split2/-/split2-4.2.0.tgz", + "integrity": "sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">= 10.x" + } + }, "node_modules/sqlstring": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/sqlstring/-/sqlstring-2.3.1.tgz", @@ -11684,6 +11820,16 @@ "node": "^12.13.0 || ^14.15.0 || >=16.0.0" } }, + "node_modules/xtend": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.4" + } + }, "node_modules/yallist": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", diff --git a/package.json b/package.json index bec45262426fa..9634e8f35ed58 100644 --- a/package.json +++ b/package.json @@ -111,8 +111,8 @@ "joomla-cypress": "^1.1.1", "lightningcss": "^1.27.0", "mysql": "^2.18.1", + "pg": "^8.13.0", "postcss-scss": "^4.0.9", - "postgres": "^3.4.4", "recursive-readdir": "^2.2.3", "rimraf": "^3.0.2", "rollup": "^2.79.2", diff --git a/tests/System/integration/administrator/components/com_cache/Default.cy.js b/tests/System/integration/administrator/components/com_cache/Default.cy.js index 74fc19891d532..4e9439461a964 100644 --- a/tests/System/integration/administrator/components/com_cache/Default.cy.js +++ b/tests/System/integration/administrator/components/com_cache/Default.cy.js @@ -12,7 +12,7 @@ describe('Test in backend that the cache', () => { cy.get('div.alert.alert-info').should('contain.text', 'Select the Clear Expired Cache button'); }); - it('can display a list of chached items', () => { + it('can display a list of cached items', () => { cy.get('tr.row0').should('contain.text', '_media_version'); }); diff --git a/tests/System/integration/install/Installation.cy.js b/tests/System/integration/install/Installation.cy.js index cc00e3b19e61c..2a5909f7c0c8a 100644 --- a/tests/System/integration/install/Installation.cy.js +++ b/tests/System/integration/install/Installation.cy.js @@ -8,6 +8,7 @@ describe('Install Joomla', () => { email: Cypress.env('email'), db_type: Cypress.env('db_type'), db_host: Cypress.env('db_host'), + db_port: Cypress.env('db_port'), db_user: Cypress.env('db_user'), db_password: Cypress.env('db_password'), db_name: Cypress.env('db_name'), diff --git a/tests/System/plugins/db.mjs b/tests/System/plugins/db.mjs index a92065c07e6a5..e24a176ae80e7 100644 --- a/tests/System/plugins/db.mjs +++ b/tests/System/plugins/db.mjs @@ -1,11 +1,12 @@ import mysql from 'mysql'; -import postgres from 'postgres'; +import pkg from 'pg'; + +const { Pool } = pkg; // Using Pool from pg for PostgreSQL connections // Items cache which are added by an insert statement let insertedItems = []; -// Use of the PostgreSQL connection pool to limit the number of sessions, see -// https://github.com/porsager/postgres?tab=readme-ov-file#connection-details +// Use of the PostgreSQL connection pool to limit the number of sessions let postgresConnectionPool = null; /** @@ -37,11 +38,11 @@ function queryTestDB(joomlaQuery, config) { if (config.env.db_type === 'pgsql' || config.env.db_type === 'PostgreSQL (PDO)') { if (postgresConnectionPool === null) { // Initialisation on the first call - postgresConnectionPool = postgres({ + postgresConnectionPool = new Pool({ host: config.env.db_host, port: config.env.db_port, database: config.env.db_name, - username: config.env.db_user, + user: config.env.db_user, password: config.env.db_password, max: 10, // Use only this (unchanged default) maximum number of connections in the pool }); @@ -55,24 +56,27 @@ function queryTestDB(joomlaQuery, config) { // Postgres needs double quotes query = query.replaceAll('`', '"'); - return postgresConnectionPool.unsafe(query).then((result) => { + return postgresConnectionPool.query(query).then((result) => { // Select query should always return an array - if (query.indexOf('SELECT') === 0 && !Array.isArray(result)) { - return [result]; + if (query.startsWith('SELECT') && !Array.isArray(result.rows)) { + return [result.rows]; } - if (!insertItem || result.length === 0) { - return result; + if (!insertItem || result.rows.length === 0) { + return result.rows; } // Push the id to the cache when it is an insert operation - if (insertItem && result.length && result[0].id) { - insertItem.rows.push(result[0].id); + if (insertItem && result.rows.length && result.rows[0].id) { + insertItem.rows.push(result.rows[0].id); } // Normalize the object and return from PostgreSQL - return { insertId: result[0].id }; - }); + return { insertId: result.rows[0].id }; + }) + .catch((error) => { + throw new Error(`Postgres query failed: ${error.message}`); + }); } // Return a promise which runs the query for MariaDB / MySQL ```