plone / plone.app.theming

Integrates the Diazo theming engine with Plone
https://docs.plone.org/external/plone.app.theming/docs/index.html
Other
21 stars 30 forks source link

Regression: theme fragment called on site root instead of navigation root #236

Closed mauritsvanrees closed 7 months ago

mauritsvanrees commented 7 months ago

I have a Plone 6 Classic UI site with plone.app.multilingual active. (Actually various Plone sites using the exact same code, some with and some without multilingual.)

In the Diazo rules I have the following (simplified here):

<replace css:theme="#target" href="/@@disclaimer-url" />

Again simplified, @@disclaimer-url basically returns ${context/plone_portal_state/navigation_root_url}/disclaimer (there is some more template code around this). When I call it on http://localhost:8080/Plone/en/@@disclaimer-url I correctly get the link to the disclaimer page in the English navigation root. Same when I call it on a folder or page within the English nav root.

Problem: in Plone 6.0.9 the Diazo rule works fine, but in Plone 6.0.10.1 it returns http://localhost:8080/Plone/disclaimer, so pointing to a disclaimer page in the site root. This page does not exist. And if it would exist, then it would be in only one language, instead of having one page for each language.

This is caused by PR #232 which fixes a different corner case: theme resources cannot be loaded on a private navigation root, so the PR makes sure they get loaded from the site root. That breaks my use case which is described above: insertion of html which needs to be called on the navigation root.

I think I have fixed it for both cases, including tests, and will make a PR.