Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Allow global page model access in fragments #1935

Conversation

fritzmg
Copy link
Contributor

@fritzmg fritzmg commented Jul 15, 2020

Q A
Fixed issues -
Docs PR or issue -

Currently fragment controllers for content elements and front end modules only receive the ID of the page model of the current page in their pageModel request attribute, whereas everywhere else the pageModel request attribute is actually the global page model object itself.

This means that fragments are not able to access the global page model object at all, if they do not want to use global $objPage or $GLOBALS['objPage'], since the global page object is detached from the model registry. Thus you couldn't implement something like ModuleNewsreader as a fragment, without resorting to accessing the global variable, since the module needs to be able to modify the current global page object.

As far as I understand it, the pageModel only needs to be an ID for esi rendered fragments, but not really for inline or forward rendered fragments. Therefore this PR would change this behaviour.

However - why does this distinction need to be made at all? Isn't the global page object missing anyway (and thus also the pageModel request attribute), when rendering an esi fragment?

@fritzmg fritzmg requested a review from aschempp July 15, 2020 15:32
@fritzmg fritzmg self-assigned this Jul 15, 2020
Copy link
Member

@aschempp aschempp left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm not sure this is the correct approach. Having the fragments behave differently depending on the renderer isn't really good to me. Also, if your fragment's __invoke method has an argument for PageModel $pageModel, the object would automatically resolved through our controller resolver.

I agree its cumbersome not to have the page object. But I think we should have a way where the behavior is the same for all fragment types. The only question to me is whether the (non-esi) fragments must have access to the real global $objPage or if it could be a new instance?

@fritzmg
Copy link
Contributor Author

fritzmg commented Jul 21, 2020

Also, if your fragment's __invoke method has an argument for PageModel $pageModel, the object would automatically resolved through our controller resolver.

Huh, I didn't know that, may be we should document that 😁 . And this will be the global page object?

The only question to me is whether the (non-esi) fragments must have access to the real global $objPage or if it could be a new instance?

Well, if it's a new instance, then the module cannot change the page title, description etc., like the newsreader module would do for example.

@aschempp
Copy link
Member

Also, if your fragment's __invoke method has an argument for PageModel $pageModel, the object would automatically resolved through our controller resolver.

Huh, I didn't know that, may be we should document that 😁 . And this will be the global page object?

If your function argument is a subclass if Model and a (numeric) request attribute with that name exists, our argument resolver will inject the model instance for you. This is how the abstract fragment controller gets $contentModel or $moduleModel injected.

Be aware that you can inject any request attribute automatically in your controller, your listener just converts the attribute.

The only question to me is whether the (non-esi) fragments must have access to the real global $objPage or if it could be a new instance?

Well, if it's a new instance, then the module cannot change the page title, description etc., like the newsreader module would do for example.

That's true. Changing the page title would obviously not work for ESI requests anyway. However, I'm not sure we should add support for that – specifically because doing that is actually kind of wrong: the page controller should (be able to) define the title, not through a fragment. But thats another story...

@fritzmg
Copy link
Contributor Author

fritzmg commented Jul 22, 2020

However, I'm not sure we should add support for that – specifically because doing that is actually kind of wrong: the page controller should (be able to) define the title, not through a fragment. But thats another story...

Yes, but that's what we have to do in the current state of Contao. And so currently in a fragment controller, you still need to use global $objPage in order to do that.

And even if you don't need to do that and only need information from the page object, it is still more efficient to access global $objPage in your fragment controller! Otherwise your fragment controller will cause an additional database query, if it loads the page model from the page model ID from the request attribute (since the global page object is detached from the model registry).

@m-vo
Copy link
Member

m-vo commented Jul 22, 2020

To be honest, I found it strange ever since that the 'global page' model could be altered during the request. It's like starting an edit but never saving it (and therefore the need to detach it from the manager). Imo we should find a better abstraction for this and maybe use global $objPage until then.

@leofeyer leofeyer added the bug label Jul 24, 2020
@aschempp aschempp self-assigned this Aug 3, 2020
@aschempp
Copy link
Member

aschempp commented Oct 5, 2020

I tend to agree with @m-vo. Since we introduced page controllers in Contao 4.10, we should probably consider this "the solution" to modifying the page title. Only pages are supposed to tell about the page title, none of the fragments should take care of this.

@fritzmg
Copy link
Contributor Author

fritzmg commented Oct 5, 2020

Yes, but the issue isn't just about altering the global page object. It's also about simply accessing it. The current implementation leads to an additional, unnecessary database query. Surely it would make sense to prevent this?

And even if you implement a page controller in the future: the fragment still needs access to the model of the page.

@leofeyer leofeyer added this to the 4.9 milestone Oct 6, 2020
@bytehead
Copy link
Member

bytehead commented Oct 28, 2020

I've just stumbled over this, usingFrontend::getRootPageFromUrl() does not work in fragments, because the request attribute pageModel is an ID and not the page object.

Fun fact: in $request->attributes->get('_route_params') is the pageModel available as object...

@leofeyer leofeyer added the up for discussion Issues and PRs which will be discussed in our monthly Mumble calls. label Oct 30, 2020
@aschempp
Copy link
Member

aschempp commented Nov 5, 2020

Fun fact: in $request->attributes->get('_route_params') is the pageModel available as object...

most likely because it has been copied from the original request.

--

Maybe we should add a service that provides the current page model instead of retrieving it from the request parameter? That service could then look into the request or $GLOBALS. Not sure what that service would look like though (and it obviously would only be available in 4.11 or later).

@fritzmg
Copy link
Contributor Author

fritzmg commented Nov 5, 2020

I still consider it a bug that the pageModel is only an ID in fragments ;)

@leofeyer
Copy link
Member

leofeyer commented Nov 19, 2020

See #2506

@leofeyer leofeyer closed this Nov 19, 2020
leofeyer pushed a commit that referenced this pull request Dec 7, 2020
Description
-----------

| Q                | A
| -----------------| ---
| Fixed issues     | Fixes #1935

As discussed on Mumble on the 2020-11-19, this should make the (global) page model available in the fragment controllers.

Commits
-------

03e7c41 Add global page model for fragments (replaces #1935)
a5c2326 Cast values for comparison
826748d Added unit tests
00eeb72 CS
29ea202 CS
0e09e4e Merge branch '4.9' into bugfix/page-argument
leofeyer added a commit that referenced this pull request Dec 11, 2020
Description
-----------

| Q                | A
| -----------------| ---
| Fixed issues     | Fixes #...
| Docs PR or issue | contao/docs#...

Commits
-------

13c00f1 Add the feature action to the permission checks (see #2524)

Description
-----------

| Q                | A
| -----------------| ---
| Fixed issues     | Fixes #2505
| Docs PR or issue | n/a

See #2505.

Commits
-------

6131435 Add feature action to permission check as well (see #2505)
55d85f3 Allow version 3 of toflar/psr6-symfony-http-cache-store (see #2522)

Description
-----------

Another step towards #2263.

Commits
-------

2efea3b Allow version 3 of toflar/psr6-symfony-http-cache-store
1cc3754 Increase undo expiry date (see #2528)

Description
-----------

| Q                | A
| -----------------| ---
| Fixed issues     | -
| Docs PR or issue | -

I really think the default undo period of 24h is not a good default (which is why I think it should be changed in 4.9 LTS too).

For me, there are two use cases our current undo system can cover:

1. The immediate "Oh, I deleted something which I shouldn't have" case: 24 hours are enough
2. The customer did something over the weekend and you get a report on Monday that something was deleted: 24 hours are likely not enough.

So 30 days by default seem totally okay to me. It makes no sense to store undo entries that date back a year or so.

Commits
-------

7d7f01e Increase undo expiry date
7efdef4 Trigger the onload_callback when featuring news (see #2531)

Description
-----------

| Q                | A
| -----------------| ---
| Fixed issues     | Fixes #2485
| Docs PR or issue | -

Commits
-------

dee7c1d Trigger the onload_callback when featuring news
bc8447d Trigger the onload_callback when featuring news/events (see #2532)

Description
-----------

| Q                | A
| -----------------| ---
| Fixed issues     | Fixes #2485
| Docs PR or issue | -

Same PR as #2531 for Contao 4.10 where we also have featured events.

Commits
-------

c3a849c Trigger the onload_callback when featuring news/events
67c7b18 Backport the doctrine-cache-bundle changes (see #2534)

Description
-----------

Backports the changes from #1916 to Contao 4.9 to make it compatible with PHP 8 (see #2263).

Commits
-------

ba9d21f Backport the doctrine-cache-bundle changes
d1103e9 CS
3feda71 Add compatibility with PHP 8 (see #2535)

Description
-----------

See #2263 and #2291

### TODO

* [x] Fix the tests.
* [x] Wait if sebastianbergmann/php-code-coverage#837 gets merged and then use PHPUnit 8.5 for all PHP versions.
* [ ] <del>Click through the back end and front end and fix all warnings.</del>

Commits
-------

8ad6149 Add PHP 8.0 to the CI chain
7b8729e Fix the unit and functional tests
47c14db Use 127.0.0.1 instead of localhost in the functional tests
938836c Always set the ACCEPT_LANGUAGE header in the functional tests
a4199ec Use PHPUnit 8.5 for all PHP versions
7ffbd26 Adjust the error level in PHP 8
4ce6b27 Merge branch '4.9' into fix/php8
24b1d71 Update the changelog and the language files (see #2541)

Description
-----------

-

Commits
-------

a55a7f2 Update the changelog and the language files
d19cb6c Add a missing PHPStan dependency (see #2543)

Description
-----------

-

Commits
-------

288bc91 Add a missing PHPStan dependency
80b6469 Merge branch '4.4' into 4.9

# Conflicts:
#	installation-bundle/src/Resources/translations/messages.fr.xlf
#	news-bundle/src/Resources/contao/dca/tl_news.php
ffebcd7 Fix issues found by the PhpStorm code inspector (see #2544)

Description
-----------

Function arguments renaming → forward compat with PHP 8.

Commits
-------

d6b22e4 Fix issues found by the PhpStorm code inspector
1fb0b96 More fixes
e2544f4 And even more
e6c4b18 Add global page model for fragments (see #2506)

Description
-----------

| Q                | A
| -----------------| ---
| Fixed issues     | Fixes #1935

As discussed on Mumble on the 2020-11-19, this should make the (global) page model available in the fragment controllers.

Commits
-------

03e7c41 Add global page model for fragments (replaces #1935)
a5c2326 Cast values for comparison
826748d Added unit tests
00eeb72 CS
29ea202 CS
0e09e4e Merge branch '4.9' into bugfix/page-argument
77c79be Do not try to generate fragments for generated fragments (see #2521)

Description
-----------

If a fragment has multiple methods with different fragment type (e.g. a content element and a front end module), the first RegisterFragmentsPass creates a child definition that inherits all tags from the original. On the next run, the RegisterFragmentsPass would pick up the child definition and try to create duplicate fragments.

Commits
-------

cc5d72c Do not try to generate fragments for generated fragments
a0b92bb CS
4b8bc8f Merge branch '4.9' into bugfix/fragment-children
8605bc4 Allow caption to be a textarea rather than a text field (see #2527)

Description
-----------

An image caption shouldn't be limited to 255 chars only, that makes no sense to me.

That's the result:

<img width="1174" alt="Bildschirmfoto 2020-11-27 um 13 12 19" src="https://user-images.githubusercontent.com/481937/100448322-60b94a80-30b2-11eb-88f2-99f8fb499e4d.png">

Commits
-------

06f57ee Allow caption to be a textarea rather than a text field limited to 255 chars
b346f65 CS
0c23a1f Merge branch '4.9' into fix/allow-textarea-for-meta-caption
244d845 Move migrations to core bundle (see #2545)

Description
-----------

| Q                | A
| -----------------| ---
| Fixed issues     | Fixes #2364

Commits
-------

1d6f417 Move migrations to core bundle
20dfde3 Fix missing globals array
51fb5c7 PHPStan
5034731 Pass the filesystem as dependency and remove the Contao 3 migrations
66231e7 Fix compatibility with scssphp 1.4 (see #2547)

Description
-----------

| Q                | A
| -----------------| ---
| Fixed issues     | Fixes #2495

### ToDos

- [ ] Revert contao/conflicts@820074e once this got merged and released (4.9 and upstream).

Commits
-------

961abaa Set the file path to fix compatibility with scssphp 1.4
946940d Run the CS fixer (see #2548)

Description
-----------

-

Commits
-------

29af160 Run the CS fixer
0df5442 Do not index preview URLs for searching (see #2550)

Description
-----------

| Q                | A
| -----------------| ---
| Fixed issues     | Fixes #2507
| Docs PR or issue | -

@Toflar: If the `X-Robots-Tag` header or the meta robots tag contains `noindex`, the listener will not pass the document to the indexer at all. This means that potentially existing entries will not be deleted. Is this OK?

Commits
-------

17d0e8a Do not index preview URLs for searching
137d410 Correctly load the DCA labels (see #2540)

Description
-----------

| Q                | A
| -----------------| ---
| Fixed issues     | Fixes #2536

see #2536 for the discussion

Commits
-------

cb3740c Correctly load the DCA labels
64d2350 Merge branch '4.9' into bugfix/dca-labels
103649e Fix the cache tag invalidation (see #2551)

Description
-----------

| Q                | A
| -----------------| ---
| Fixed issues     | Fixes #2137
| Docs PR or issue | -

This is currently a proof of concept that should work for news and events. @Toflar @ausi Can you confirm that my implementation is what you had in mind?

### TODO

* [x] Add a general tag without ID for the top parent record
* [x] Implement cache tagging for the other elements and modules

Commits
-------

b523f61 Fix the cache tag invalidation
64c4cdc CS
4b61ac2 Do not double tag the content elements
5b4a03d Add a tag for the top parent element
996694e Add tagging for the missing modules
601247f Also tag the comments
90caa2a Strip port numbers from root page domains (see #2553)

Description
-----------

| Q                | A
| -----------------| ---
| Fixed issues     | Fixes #2214
| Docs PR or issue | -

Tested against https://regex101.com/r/jU0OrQ/2

Commits
-------

52e85cd Strip port numbers from root page domains
48a0c3c Improve the regex

Co-authored-by: Martin Auswöger <martin@auswoeger.com>
bacb48b Clean up before the release (see #2560)

Description
-----------

-

Commits
-------

7db3c54 Clean up before the release
41b89f2 Update the changelog and the language files (see #2561)

Description
-----------

-

Commits
-------

6c50c48 Update the changelog and the language files
918884c Update the changelog
5eb206f Merge branch '4.9' into 4.10

# Conflicts:
#	calendar-bundle/src/Resources/contao/languages/fr/tl_calendar_feed.xlf
#	composer.json
#	core-bundle/src/Command/InstallCommand.php
#	core-bundle/src/Command/SymlinksCommand.php
#	core-bundle/src/DependencyInjection/Compiler/RegisterFragmentsPass.php
#	core-bundle/src/Migration/Version408/Version480Update.php
#	core-bundle/src/Resources/contao/dca/tl_page.php
#	core-bundle/src/Resources/contao/library/Contao/Controller.php
#	core-bundle/src/Resources/contao/library/Contao/DcaExtractor.php
#	core-bundle/src/Resources/contao/library/Contao/InsertTags.php
#	core-bundle/src/Resources/contao/modules/Module.php
#	core-bundle/tests/Contao/Database/ResultTest.php
#	core-bundle/tests/Functional/RoutingTest.php
#	core-bundle/tests/Security/Authentication/RememberMe/ExpiringTokenBasedRememberMeServicesTest.php
#	installation-bundle/src/Database/Version330Update.php
#	manager-bundle/composer.json
#	manager-bundle/src/Resources/skeleton/config/config.yml
#	manager-bundle/tests/ContaoManager/PluginTest.php
#	monorepo.yml
#	news-bundle/src/Resources/contao/dca/tl_news.php
#	news-bundle/src/Resources/contao/languages/fr/tl_news_feed.xlf
695843a Clean up after the upstream merge (see #2564)

Description
-----------

-

Commits
-------

950581e Clean up after the upstream merge
280339c Update the changelog and the language files (see #2565)

Description
-----------

-

Commits
-------

5d2cada Update the changelog and the language files
b7567a8 Merge branch '4.10' into master

# Conflicts:
#	calendar-bundle/composer.json
#	comments-bundle/composer.json
#	composer.json
#	core-bundle/composer.json
#	core-bundle/src/Resources/contao/languages/fr/tl_article.xlf
#	core-bundle/src/Resources/contao/languages/fr/tl_form_field.xlf
#	core-bundle/src/Resources/contao/languages/fr/tl_image_size_item.xlf
#	core-bundle/src/Resources/contao/languages/fr/tl_layout.xlf
#	core-bundle/src/Resources/contao/languages/fr/tl_member.xlf
#	core-bundle/src/Resources/contao/languages/fr/tl_member_group.xlf
#	core-bundle/src/Resources/contao/languages/fr/tl_style_sheet.xlf
#	core-bundle/src/Resources/contao/languages/fr/tl_theme.xlf
#	core-bundle/src/Resources/contao/languages/fr/tl_user.xlf
#	core-bundle/src/Resources/contao/languages/fr/tl_user_group.xlf
#	core-bundle/tests/Contao/SearchTest.php
#	faq-bundle/composer.json
#	installation-bundle/composer.json
#	installation-bundle/src/Database/Version330Update.php
#	installation-bundle/src/Database/Version350Update.php
#	listing-bundle/composer.json
#	manager-bundle/composer.json
#	news-bundle/composer.json
#	news-bundle/src/Resources/contao/languages/cs/default.xlf
#	news-bundle/src/Resources/contao/languages/cs/tl_layout.xlf
#	news-bundle/src/Resources/contao/languages/cs/tl_news_feed.xlf
#	news-bundle/src/Resources/contao/languages/cs/tl_user_group.xlf
#	newsletter-bundle/composer.json
AlexejKossmann pushed a commit to AlexejKossmann/contao that referenced this pull request Apr 6, 2021
Description
-----------

| Q                | A
| -----------------| ---
| Fixed issues     | Fixes #...
| Docs PR or issue | contao/docs#...

Commits
-------

13c00f1 Add the feature action to the permission checks (see contao#2524)

Description
-----------

| Q                | A
| -----------------| ---
| Fixed issues     | Fixes contao#2505
| Docs PR or issue | n/a

See contao#2505.

Commits
-------

6131435 Add feature action to permission check as well (see contao#2505)
55d85f3 Allow version 3 of toflar/psr6-symfony-http-cache-store (see contao#2522)

Description
-----------

Another step towards contao#2263.

Commits
-------

2efea3b Allow version 3 of toflar/psr6-symfony-http-cache-store
1cc3754 Increase undo expiry date (see contao#2528)

Description
-----------

| Q                | A
| -----------------| ---
| Fixed issues     | -
| Docs PR or issue | -

I really think the default undo period of 24h is not a good default (which is why I think it should be changed in 4.9 LTS too).

For me, there are two use cases our current undo system can cover:

1. The immediate "Oh, I deleted something which I shouldn't have" case: 24 hours are enough
2. The customer did something over the weekend and you get a report on Monday that something was deleted: 24 hours are likely not enough.

So 30 days by default seem totally okay to me. It makes no sense to store undo entries that date back a year or so.

Commits
-------

7d7f01e Increase undo expiry date
7efdef4 Trigger the onload_callback when featuring news (see contao#2531)

Description
-----------

| Q                | A
| -----------------| ---
| Fixed issues     | Fixes contao#2485
| Docs PR or issue | -

Commits
-------

dee7c1d Trigger the onload_callback when featuring news
bc8447d Trigger the onload_callback when featuring news/events (see contao#2532)

Description
-----------

| Q                | A
| -----------------| ---
| Fixed issues     | Fixes contao#2485
| Docs PR or issue | -

Same PR as contao#2531 for Contao 4.10 where we also have featured events.

Commits
-------

c3a849c Trigger the onload_callback when featuring news/events
67c7b18 Backport the doctrine-cache-bundle changes (see contao#2534)

Description
-----------

Backports the changes from contao#1916 to Contao 4.9 to make it compatible with PHP 8 (see contao#2263).

Commits
-------

ba9d21f Backport the doctrine-cache-bundle changes
d1103e9 CS
3feda71 Add compatibility with PHP 8 (see contao#2535)

Description
-----------

See contao#2263 and contao#2291

### TODO

* [x] Fix the tests.
* [x] Wait if sebastianbergmann/php-code-coverage#837 gets merged and then use PHPUnit 8.5 for all PHP versions.
* [ ] <del>Click through the back end and front end and fix all warnings.</del>

Commits
-------

8ad6149 Add PHP 8.0 to the CI chain
7b8729e Fix the unit and functional tests
47c14db Use 127.0.0.1 instead of localhost in the functional tests
938836c Always set the ACCEPT_LANGUAGE header in the functional tests
a4199ec Use PHPUnit 8.5 for all PHP versions
7ffbd26 Adjust the error level in PHP 8
4ce6b27 Merge branch '4.9' into fix/php8
24b1d71 Update the changelog and the language files (see contao#2541)

Description
-----------

-

Commits
-------

a55a7f2 Update the changelog and the language files
d19cb6c Add a missing PHPStan dependency (see contao#2543)

Description
-----------

-

Commits
-------

288bc91 Add a missing PHPStan dependency
80b6469 Merge branch '4.4' into 4.9

# Conflicts:
#	installation-bundle/src/Resources/translations/messages.fr.xlf
#	news-bundle/src/Resources/contao/dca/tl_news.php
ffebcd7 Fix issues found by the PhpStorm code inspector (see contao#2544)

Description
-----------

Function arguments renaming → forward compat with PHP 8.

Commits
-------

d6b22e4 Fix issues found by the PhpStorm code inspector
1fb0b96 More fixes
e2544f4 And even more
e6c4b18 Add global page model for fragments (see contao#2506)

Description
-----------

| Q                | A
| -----------------| ---
| Fixed issues     | Fixes contao#1935

As discussed on Mumble on the 2020-11-19, this should make the (global) page model available in the fragment controllers.

Commits
-------

03e7c41 Add global page model for fragments (replaces contao#1935)
a5c2326 Cast values for comparison
826748d Added unit tests
00eeb72 CS
29ea202 CS
0e09e4e Merge branch '4.9' into bugfix/page-argument
77c79be Do not try to generate fragments for generated fragments (see contao#2521)

Description
-----------

If a fragment has multiple methods with different fragment type (e.g. a content element and a front end module), the first RegisterFragmentsPass creates a child definition that inherits all tags from the original. On the next run, the RegisterFragmentsPass would pick up the child definition and try to create duplicate fragments.

Commits
-------

cc5d72c Do not try to generate fragments for generated fragments
a0b92bb CS
4b8bc8f Merge branch '4.9' into bugfix/fragment-children
8605bc4 Allow caption to be a textarea rather than a text field (see contao#2527)

Description
-----------

An image caption shouldn't be limited to 255 chars only, that makes no sense to me.

That's the result:

<img width="1174" alt="Bildschirmfoto 2020-11-27 um 13 12 19" src="https://user-images.githubusercontent.com/481937/100448322-60b94a80-30b2-11eb-88f2-99f8fb499e4d.png">

Commits
-------

06f57ee Allow caption to be a textarea rather than a text field limited to 255 chars
b346f65 CS
0c23a1f Merge branch '4.9' into fix/allow-textarea-for-meta-caption
244d845 Move migrations to core bundle (see contao#2545)

Description
-----------

| Q                | A
| -----------------| ---
| Fixed issues     | Fixes contao#2364

Commits
-------

1d6f417 Move migrations to core bundle
20dfde3 Fix missing globals array
51fb5c7 PHPStan
5034731 Pass the filesystem as dependency and remove the Contao 3 migrations
66231e7 Fix compatibility with scssphp 1.4 (see contao#2547)

Description
-----------

| Q                | A
| -----------------| ---
| Fixed issues     | Fixes contao#2495

### ToDos

- [ ] Revert contao/conflicts@820074e once this got merged and released (4.9 and upstream).

Commits
-------

961abaa Set the file path to fix compatibility with scssphp 1.4
946940d Run the CS fixer (see contao#2548)

Description
-----------

-

Commits
-------

29af160 Run the CS fixer
0df5442 Do not index preview URLs for searching (see contao#2550)

Description
-----------

| Q                | A
| -----------------| ---
| Fixed issues     | Fixes contao#2507
| Docs PR or issue | -

@Toflar: If the `X-Robots-Tag` header or the meta robots tag contains `noindex`, the listener will not pass the document to the indexer at all. This means that potentially existing entries will not be deleted. Is this OK?

Commits
-------

17d0e8a Do not index preview URLs for searching
137d410 Correctly load the DCA labels (see contao#2540)

Description
-----------

| Q                | A
| -----------------| ---
| Fixed issues     | Fixes contao#2536

see contao#2536 for the discussion

Commits
-------

cb3740c Correctly load the DCA labels
64d2350 Merge branch '4.9' into bugfix/dca-labels
103649e Fix the cache tag invalidation (see contao#2551)

Description
-----------

| Q                | A
| -----------------| ---
| Fixed issues     | Fixes contao#2137
| Docs PR or issue | -

This is currently a proof of concept that should work for news and events. @Toflar @ausi Can you confirm that my implementation is what you had in mind?

### TODO

* [x] Add a general tag without ID for the top parent record
* [x] Implement cache tagging for the other elements and modules

Commits
-------

b523f61 Fix the cache tag invalidation
64c4cdc CS
4b61ac2 Do not double tag the content elements
5b4a03d Add a tag for the top parent element
996694e Add tagging for the missing modules
601247f Also tag the comments
90caa2a Strip port numbers from root page domains (see contao#2553)

Description
-----------

| Q                | A
| -----------------| ---
| Fixed issues     | Fixes contao#2214
| Docs PR or issue | -

Tested against https://regex101.com/r/jU0OrQ/2

Commits
-------

52e85cd Strip port numbers from root page domains
48a0c3c Improve the regex

Co-authored-by: Martin Auswöger <martin@auswoeger.com>
bacb48b Clean up before the release (see contao#2560)

Description
-----------

-

Commits
-------

7db3c54 Clean up before the release
41b89f2 Update the changelog and the language files (see contao#2561)

Description
-----------

-

Commits
-------

6c50c48 Update the changelog and the language files
918884c Update the changelog
5eb206f Merge branch '4.9' into 4.10

# Conflicts:
#	calendar-bundle/src/Resources/contao/languages/fr/tl_calendar_feed.xlf
#	composer.json
#	core-bundle/src/Command/InstallCommand.php
#	core-bundle/src/Command/SymlinksCommand.php
#	core-bundle/src/DependencyInjection/Compiler/RegisterFragmentsPass.php
#	core-bundle/src/Migration/Version408/Version480Update.php
#	core-bundle/src/Resources/contao/dca/tl_page.php
#	core-bundle/src/Resources/contao/library/Contao/Controller.php
#	core-bundle/src/Resources/contao/library/Contao/DcaExtractor.php
#	core-bundle/src/Resources/contao/library/Contao/InsertTags.php
#	core-bundle/src/Resources/contao/modules/Module.php
#	core-bundle/tests/Contao/Database/ResultTest.php
#	core-bundle/tests/Functional/RoutingTest.php
#	core-bundle/tests/Security/Authentication/RememberMe/ExpiringTokenBasedRememberMeServicesTest.php
#	installation-bundle/src/Database/Version330Update.php
#	manager-bundle/composer.json
#	manager-bundle/src/Resources/skeleton/config/config.yml
#	manager-bundle/tests/ContaoManager/PluginTest.php
#	monorepo.yml
#	news-bundle/src/Resources/contao/dca/tl_news.php
#	news-bundle/src/Resources/contao/languages/fr/tl_news_feed.xlf
695843a Clean up after the upstream merge (see contao#2564)

Description
-----------

-

Commits
-------

950581e Clean up after the upstream merge
280339c Update the changelog and the language files (see contao#2565)

Description
-----------

-

Commits
-------

5d2cada Update the changelog and the language files
b7567a8 Merge branch '4.10' into master

# Conflicts:
#	calendar-bundle/composer.json
#	comments-bundle/composer.json
#	composer.json
#	core-bundle/composer.json
#	core-bundle/src/Resources/contao/languages/fr/tl_article.xlf
#	core-bundle/src/Resources/contao/languages/fr/tl_form_field.xlf
#	core-bundle/src/Resources/contao/languages/fr/tl_image_size_item.xlf
#	core-bundle/src/Resources/contao/languages/fr/tl_layout.xlf
#	core-bundle/src/Resources/contao/languages/fr/tl_member.xlf
#	core-bundle/src/Resources/contao/languages/fr/tl_member_group.xlf
#	core-bundle/src/Resources/contao/languages/fr/tl_style_sheet.xlf
#	core-bundle/src/Resources/contao/languages/fr/tl_theme.xlf
#	core-bundle/src/Resources/contao/languages/fr/tl_user.xlf
#	core-bundle/src/Resources/contao/languages/fr/tl_user_group.xlf
#	core-bundle/tests/Contao/SearchTest.php
#	faq-bundle/composer.json
#	installation-bundle/composer.json
#	installation-bundle/src/Database/Version330Update.php
#	installation-bundle/src/Database/Version350Update.php
#	listing-bundle/composer.json
#	manager-bundle/composer.json
#	news-bundle/composer.json
#	news-bundle/src/Resources/contao/languages/cs/default.xlf
#	news-bundle/src/Resources/contao/languages/cs/tl_layout.xlf
#	news-bundle/src/Resources/contao/languages/cs/tl_news_feed.xlf
#	news-bundle/src/Resources/contao/languages/cs/tl_user_group.xlf
#	newsletter-bundle/composer.json
@fritzmg fritzmg deleted the allow-global-page-model-access-in-fragments branch October 24, 2021 21:51
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug up for discussion Issues and PRs which will be discussed in our monthly Mumble calls.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

5 participants