Feature Language Change b/c break PR-6.0-dev Pending

User tests: Successful: Unsuccessful:

avatar Hackwar
Hackwar
19 Nov 2024

Summary of Changes

This PR changes the feature introduced in 5.2.0 to be able to enforce a suffix ending if it is enabled and makes this the standard behavior. It removes the option from the SEF plugin and moves the code to the SiteRouter class, at the same time using the "tainted URL" feature from #44455 to prevent unnecessary redirects.

Testing Instructions

  1. Enable SEF URLs with suffix ending.
  2. Open a random URL of the site and remove the suffix
  3. Open a random URL of the site and replace the suffix with something else and add ?format=html to the URL
  4. Open a random URL of the site, remove the suffix and add ?format=html to the URL

Actual result BEFORE applying this Pull Request

Joomla loads all the URLs without any redirects.

Expected result AFTER applying this Pull Request

All URLs are redirected to the version with .html at the end.

Link to documentations

Please select:

  • Documentation link for docs.joomla.org:

  • No documentation changes for docs.joomla.org needed

  • Pull Request link for manual.joomla.org:

  • No documentation changes for manual.joomla.org needed

avatar Hackwar Hackwar - open - 19 Nov 2024
avatar Hackwar Hackwar - change - 19 Nov 2024
Status New Pending
avatar joomla-cms-bot joomla-cms-bot - change - 19 Nov 2024
Category Administration Language & Strings Libraries Front End Plugins
avatar Hackwar Hackwar - change - 19 Nov 2024
Labels Added: Language Change PR-6.0-dev
avatar joomla-cms-bot joomla-cms-bot - change - 19 Nov 2024
Category Administration Language & Strings Libraries Front End Plugins Administration Language & Strings SQL Installation Postgresql Libraries Front End Plugins
avatar HLeithner HLeithner - test_item - 21 Nov 2024 - Tested unsuccessfully
avatar HLeithner
HLeithner - comment - 21 Nov 2024

I have tested this item 🔴 unsuccessfully on 9873b77

* install pr

  • install sample data
  • open website blog entry "Welcome to our blog" (/blog/welcome-to-your-blog) in new tab and let it stay open
  • change setting "Add Suffix to URL" to yes
  • reload page opened before: 0 Call to undefined method Joomla\CMS\Router\SiteRouter::setTainted()

Expected a smooths transition, at least not a fatal error


#	Function	Location
1	()	JROOT/libraries/src/Router/SiteRouter.php:203
2	Joomla\CMS\Router\SiteRouter->parseFormat()	JROOT/libraries/src/Router/Router.php:384
3	Joomla\CMS\Router\Router->processParseRules()	JROOT/libraries/src/Router/Router.php:144
4	Joomla\CMS\Router\Router->parse()	JROOT/libraries/src/Application/SiteApplication.php:738
5	Joomla\CMS\Application\SiteApplication->route()	JROOT/libraries/src/Application/SiteApplication.php:243
6	Joomla\CMS\Application\SiteApplication->doExecute()	JROOT/libraries/src/Application/CMSApplication.php:306
7	Joomla\CMS\Application\CMSApplication->execute()	JROOT/includes/app.php:58
8	require_once()	JROOT/index.php:32
```<hr /><sub>This comment was created with the <a href="https://github.com/joomla/jissues">J!Tracker Application</a> at <a href="https://issues.joomla.org/tracker/joomla-cms/44480">issues.joomla.org/tracker/joomla-cms/44480</a>.</sub>
avatar Hackwar
Hackwar - comment - 21 Nov 2024

That is why it says "tainted URL" feature from #44455 and since that PR is not merged yet, this PR indeed fails.

avatar HLeithner
HLeithner - comment - 21 Nov 2024

I changed this to draft since it's not ready

avatar Hackwar
Hackwar - comment - 23 Nov 2024

I added the b/c break label because technically it removes anoption and forces this behavior on everyone, even though it is the expected behavior.

avatar Hackwar Hackwar - change - 14 Feb 2025
Labels Added: Feature b/c break
avatar VaishnaviSidral VaishnaviSidral - test_item - 22 Feb 2025 - Tested successfully
avatar VaishnaviSidral
VaishnaviSidral - comment - 22 Feb 2025

I have tested this item ✅ successfully on 7950bcb


This comment was created with the J!Tracker Application at issues.joomla.org/tracker/joomla-cms/44480.

avatar ceford
ceford - comment - 3 Jun 2025

Could you clarify the testing instructions? Without the patch applied, and using this url: http://localhost/joomla-cms6/en/content-component/single-article (which is the Australian Parks article in the testing data) I get a 301 response - permanent 301 redirect. All the tests work the same without the patch applied. That is, I get the behaviour the patch is supposed to produce.

With the patch applied all pages produce an error:

     0 Call to undefined method Joomla\CMS\Router\SiteRouter::setTainted() 

Call Stack
# 	Function 	Location
1 	() 	JROOT/libraries/src/Router/SiteRouter.php:203
2 	Joomla\CMS\Router\SiteRouter->parseFormat() 	JROOT/libraries/src/Router/Router.php:384
3 	Joomla\CMS\Router\Router->processParseRules() 	JROOT/libraries/src/Router/Router.php:144
4 	Joomla\CMS\Router\Router->parse() 	JROOT/libraries/src/Application/SiteApplication.php:754
5 	Joomla\CMS\Application\SiteApplication->route() 	JROOT/libraries/src/Application/SiteApplication.php:244
6 	Joomla\CMS\Application\SiteApplication->doExecute() 	JROOT/libraries/src/Application/CMSApplication.php:306
7 	Joomla\CMS\Application\CMSApplication->execute() 	JROOT/includes/app.php:58
8 	require_once() 	JROOT/index.php:32 
```<hr /><sub>This comment was created with the <a href="https://github.com/joomla/jissues">J!Tracker Application</a> at <a href="https://issues.joomla.org/tracker/joomla-cms/44480">issues.joomla.org/tracker/joomla-cms/44480</a>.</sub>
avatar Hackwar
Hackwar - comment - 3 Jun 2025

@ceford with which Joomla version did you test this? The code you mentioned is only available in recent versions of Joomla 6.

avatar ceford
ceford - comment - 3 Jun 2025

@ceford with which Joomla version did you test this? The code you mentioned is only available in recent versions of Joomla 6.

I use a local clone and update it often, last time being a few days ago. And from time to time I throw it away and start again. The last commit message for this test was May 28:

[6.0] Workflow: use generic AbstractApplication in type hint (#43155)

Add a Comment

Login with GitHub to post a comment