Skip to content

Commit 3a41804

Browse files
committed
Merge branch '6.0-dev' into 6.1/maint/upmerge-251030
2 parents ae19f06 + fcede21 commit 3a41804

File tree

179 files changed

+1593
-508
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

179 files changed

+1593
-508
lines changed

.devcontainer/devcontainer.json

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,13 @@
1414
"6080": {
1515
"label": "Cypress GUI",
1616
"onAutoForward": "silent"
17+
},
18+
"8025": {
19+
"label": "Mailpit Web UI",
20+
"onAutoForward": "openPreview"
1721
}
1822
},
23+
"forwardPorts": [80, 443, 6080, 8025],
1924
"postCreateCommand": "bash ./.devcontainer/post-create.sh",
2025
"customizations": {
2126
"vscode": {

.devcontainer/docker-compose.yml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,5 +25,11 @@ services:
2525
volumes:
2626
- "mysql-data:/var/lib/mysql"
2727

28+
mailpit:
29+
image: axllent/mailpit:latest
30+
restart: unless-stopped
31+
ports:
32+
- "8025:8025"
33+
2834
volumes:
2935
mysql-data:

.devcontainer/post-create.sh

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,12 @@ echo "✅ Joomla installed."
5454
echo "--> Applying development settings..."
5555
# Enable debug mode and maximum error reporting for easier troubleshooting.
5656
php cli/joomla.php config:set error_reporting=maximum
57+
# Configure mail settings for Mailpit
58+
php cli/joomla.php config:set mailer=smtp
59+
php cli/joomla.php config:set smtphost=mailpit
60+
php cli/joomla.php config:set smtpport=1025
61+
php cli/joomla.php config:set smtpauth=0
62+
php cli/joomla.php config:set smtpsecure=none
5763
echo "✅ Development settings applied."
5864

5965
# --- 5. Install and Configure phpMyAdmin ---
@@ -148,6 +154,10 @@ DETAILS_FILE="${JOOMLA_ROOT}/codespace-details.txt"
148154
echo " Username: $DB_USER"
149155
echo " Password: $DB_PASS"
150156
echo ""
157+
echo "Mailpit (Email Testing):"
158+
echo " URL: Open the 'Ports' tab, find 'Mailpit Web UI' (8025), and click the Globe icon"
159+
echo " All emails sent by Joomla will appear here for testing"
160+
echo ""
151161
echo "Cypress E2E Testing:"
152162
echo " Run interactive tests: npx cypress open"
153163
echo " Run headless tests: npx cypress run"

.github/CODEOWNERS

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ plugins/finder/* @hackwar
99
build/build.php @rdeutz
1010
build/bump.php @rdeutz
1111
build/deleted_file_check.php @rdeutz
12+
.drone.yml @rdeutz @hackwar
1213

1314
# Core/Extension Install/Update Tools
1415
administrator/components/com_joomlaupdate/* @rdeutz
@@ -19,9 +20,7 @@ libraries/src/Updater/* @rdeutz
1920
.github/workflows/ci.yml @rdeutz @hackwar @laoneo
2021
tests/* @hackwar @laoneo
2122
tests/Unit/* @rdeutz @laoneo
22-
.drone.yml @rdeutz @hackwar @laoneo
2323
phpunit.xml.dist @rdeutz @hackwar @laoneo
24-
phpunit-pgsql.xml.dist @rdeutz @hackwar @laoneo
2524
phpunit-windows.xml.dist @rdeutz @hackwar @laoneo
2625

2726
# Workflow

.github/CONTRIBUTING.md

Lines changed: 6 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -31,17 +31,11 @@ Please be patient as not all items will be viewed or tested immediately (remembe
3131
is done by volunteers) and be receptive to feedback about your code.
3232

3333
#### Branches
34+
Bug fixing PRs should be made to the `5.4-dev` branch. Merged bugfixes will be upmerged into the current branches. New features that do not break backwards compatibility should be made to the `6.1-dev`.
3435

35-
Joomla 4.4 is in security maintenance mode, until 14th October 2025, which means it will only receive security fixes.
36-
Bug fixing PRs should be made to the `5.3-dev` branch. Merged bugfixes will be upmerged into the current branches.
37-
New features that do not break backwards compatibility should be made to the `6.1-dev` branch otherwise
38-
they should be made to the `7.0-dev` branch.
39-
40-
| Branch | Purpose |
41-
|---------|--------------------------------------------------------------------------------------------------------------|
42-
| 4.4-dev | Branch for the current 4.x Joomla version. Currently in security maintenance mode. |
43-
| 5.3-dev | Branch for the current 5.x Joomla version. Bugfix only for 5.x go into this branch. |
44-
| 5.4-dev | Branch for the next minor 5.x Joomla version. Bugfix only for 5.x go into this branch. |
45-
| 6.0-dev | Branch for the next major Joomla version. Bugfix only for 5.x go into this branch. |
46-
| 6.1-dev | Branch for the next minor 6.x Joomla version. New features go into this branch. |
36+
| Branch | Purpose |
37+
|---------|-----------------------------------------------------------------------------------------|
38+
| 5.4-dev | Branch for the current 5.x Joomla version. |
39+
| 6.0-dev | Branch for the current 6.x Joomla version. Bugfixes only for 6.x go into this branch. |
40+
| 6.1-dev | Branch for the next minor 6.x Joomla version. New features have to go into this branch. |
4741
| 7.0-dev | Branch for the next major Joomla version. New features that include a b/c break have to go into this branch. |

.github/workflows/ci.yml

Lines changed: 64 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -134,7 +134,31 @@ jobs:
134134
strategy:
135135
matrix:
136136
php_version: ['8.3', '8.4']
137-
config: ['phpunit.xml.dist', 'phpunit-pgsql.xml.dist']
137+
config:
138+
- my_version: '8.4'
139+
engine: 'mysqli'
140+
host: 'mysql'
141+
user: 'joomla_ut'
142+
- my_version: '8.0.13'
143+
engine: 'mysqli'
144+
host: 'mysql'
145+
user: 'joomla_ut'
146+
- maria_version: '12.0'
147+
engine: 'mysqli'
148+
host: 'maria'
149+
user: 'joomla_ut'
150+
- maria_version: '10.4'
151+
engine: 'mysqli'
152+
host: 'maria'
153+
user: 'joomla_ut'
154+
- pg_version: '12.0'
155+
engine: 'pgsql'
156+
host: 'postgres'
157+
user: 'root'
158+
- pg_version: '18.0'
159+
engine: 'pgsql'
160+
host: 'postgres'
161+
user: 'root'
138162
steps:
139163
- uses: actions/checkout@v4
140164
- name: Start LDAP container
@@ -146,23 +170,36 @@ jobs:
146170
path: libraries/vendor
147171
key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }}
148172
- name: Run Integration tests
173+
env:
174+
JTEST_DB_ENGINE: ${{ matrix.config.engine }}
175+
JTEST_DB_HOST: ${{ matrix.config.host }}
176+
JTEST_DB_USER: ${{ matrix.config.user }}
177+
JTEST_DB_NAME: test_joomla
178+
JTEST_DB_PASSWORD: joomla_ut
149179
run: |
150180
sleep 3
151-
./libraries/vendor/bin/phpunit --testsuite Integration --configuration ${{ matrix.config }}
181+
./libraries/vendor/bin/phpunit --testsuite Integration --configuration phpunit.xml.dist
152182
- name: Stop LDAP container
153183
uses: docker://docker
154184
with:
155185
args: docker kill openldap
156186
services:
157187
mysql:
158-
image: mariadb
188+
image: mysql:${{ matrix.config.my_version || '8.4' }}
189+
env:
190+
MYSQL_USER: joomla_ut
191+
MYSQL_PASSWORD: joomla_ut
192+
MYSQL_ROOT_PASSWORD: joomla_ut
193+
MYSQL_DATABASE: test_joomla
194+
maria:
195+
image: mariadb:${{ matrix.config.maria_version || '12.0' }}
159196
env:
160197
MARIADB_USER: joomla_ut
161198
MARIADB_PASSWORD: joomla_ut
162199
MARIADB_ROOT_PASSWORD: joomla_ut
163200
MARIADB_DATABASE: test_joomla
164201
postgres:
165-
image: postgres:12-alpine
202+
image: postgres:${{ matrix.config.pg_version || '18' }}-alpine
166203
env:
167204
POSTGRES_USER: root
168205
POSTGRES_PASSWORD: joomla_ut
@@ -270,18 +307,32 @@ jobs:
270307
test_group: cmysqlmax
271308
db_engine: mysqli
272309
db_host: mysql
310+
my_version: '8.4'
273311
- php_version: '8.3'
274312
test_group: cmysql
275313
db_engine: mysqli
276314
db_host: mysql
315+
my_version: '8.0.13'
316+
- php_version: '8.4'
317+
test_group: cmariamax
318+
db_engine: mysqli
319+
db_host: maria
320+
maria_version: '12.0'
321+
- php_version: '8.3'
322+
test_group: cmaria
323+
db_engine: mysqli
324+
db_host: maria
325+
maria_version: '10.4'
277326
- php_version: '8.3'
278327
test_group: cpostgres
279328
db_engine: pgsql
280329
db_host: postgres
330+
pg_version: '12.0'
281331
- php_version: '8.4'
282332
test_group: cpostgresmax
283333
db_engine: pgsql
284334
db_host: postgres
335+
pg_version: '18.0'
285336
env:
286337
JOOMLA_INSTALLATION_DISABLE_LOCALHOST_CHECK: 1
287338
steps:
@@ -313,14 +364,21 @@ jobs:
313364
if-no-files-found: ignore
314365
services:
315366
mysql:
316-
image: mariadb
367+
image: mysql:${{ matrix.config.my_version || '8.4' }}
368+
env:
369+
MYSQL_USER: joomla_ut
370+
MYSQL_PASSWORD: joomla_ut
371+
MYSQL_ROOT_PASSWORD: joomla_ut
372+
MYSQL_DATABASE: test_joomla
373+
maria:
374+
image: mariadb:${{ matrix.config.maria_version || '12.0' }}
317375
env:
318376
MARIADB_USER: joomla_ut
319377
MARIADB_PASSWORD: joomla_ut
320378
MARIADB_ROOT_PASSWORD: joomla_ut
321379
MARIADB_DATABASE: test_joomla
322380
postgres:
323-
image: postgres:12-alpine
381+
image: postgres:${{ matrix.config.pg_version || '18' }}-alpine
324382
env:
325383
POSTGRES_USER: root
326384
POSTGRES_PASSWORD: joomla_ut

.github/workflows/create-translation-pull-request-v4.yml

Lines changed: 0 additions & 77 deletions
This file was deleted.

administrator/components/com_admin/script.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -492,6 +492,7 @@ public function deleteUnexistingFiles($dryRun = false, $suppressOutput = false)
492492
'/administrator/components/com_admin/sql/updates/postgresql/5.4.0-2025-04-23.sql',
493493
'/administrator/components/com_admin/sql/updates/postgresql/5.4.0-2025-05-10.sql',
494494
'/administrator/components/com_admin/sql/updates/postgresql/5.4.0-2025-08-02.sql',
495+
'/administrator/components/com_admin/sql/updates/postgresql/5.4.0-2025-10-07.sql',
495496
'/administrator/components/com_content/forms/filter_featured.xml',
496497
'/administrator/components/com_content/tmpl/featured/default.php',
497498
'/administrator/components/com_content/tmpl/featured/default.xml',

administrator/components/com_content/src/Controller/FeaturedController.php

Lines changed: 15 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -18,11 +18,22 @@
1818
* Featured content controller class.
1919
*
2020
* @since 1.6
21-
*
22-
* @deprecated 6.0 will be removed in 8.0
23-
* Use \Joomla\Component\Content\Administrator\Controller\ArticlesController instead
24-
* For Quickicons use articles.getQuickiconFeatured()
2521
*/
2622
class FeaturedController extends ArticlesController
2723
{
24+
/**
25+
* Method to get a model object, loading it if required.
26+
*
27+
* @param string $name The model name. Optional.
28+
* @param string $prefix The class prefix. Optional.
29+
* @param array $config Configuration array for model. Optional.
30+
*
31+
* @return \Joomla\CMS\MVC\Model\BaseDatabaseModel The model.
32+
*
33+
* @since 1.6
34+
*/
35+
public function getModel($name = 'Feature', $prefix = 'Administrator', $config = ['ignore_request' => true])
36+
{
37+
return parent::getModel($name, $prefix, $config);
38+
}
2839
}

administrator/components/com_content/tmpl/articles/default.php

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,8 @@
5252
}
5353

5454
if ($saveOrder && !empty($this->items)) {
55-
$saveOrderingUrl = 'index.php?option=com_content&task=articles.saveOrderAjax&tmpl=component&' . Session::getFormToken() . '=1';
55+
$controller = $featured === '1' ? 'featured' : 'articles';
56+
$saveOrderingUrl = 'index.php?option=com_content&task=' . $controller . '.saveOrderAjax&tmpl=component&' . Session::getFormToken() . '=1';
5657
HTMLHelper::_('draggablelist.draggable');
5758
}
5859

@@ -154,7 +155,7 @@
154155
</tr>
155156
</thead>
156157
<tbody<?php if ($saveOrder) :
157-
?> class="js-draggable" data-url="<?php echo $saveOrderingUrl; ?>" data-direction="<?php echo strtolower($listDirn); ?>" data-nested="true"<?php
158+
?> class="js-draggable" data-url="<?php echo $saveOrderingUrl; ?>" data-direction="<?php echo strtolower($listDirn); ?>"<?php echo $featured === '1' ? '' : ' data-nested="true"'; ?><?php
158159
endif; ?>>
159160
<?php foreach ($this->items as $i => $item) :
160161
$item->max_ordering = 0;
@@ -192,7 +193,7 @@
192193
}
193194

194195
?>
195-
<tr class="row<?php echo $i % 2; ?>" data-draggable-group="<?php echo $item->catid; ?>"
196+
<tr class="row<?php echo $i % 2; ?>"<?php echo $featured === '1' ? '' : ' data-draggable-group="' . $item->catid; ?>
196197
<?php echo $dataTransitionsAttribute ?? '' ?>
197198
>
198199
<td class="text-center">

0 commit comments

Comments
 (0)