Skip to content

Commit

Permalink
Merge branch '4.10' into master (see #2566)
Browse files Browse the repository at this point in the history
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
  • Loading branch information
leofeyer committed Dec 11, 2020
1 parent 7e6bacd commit fd85823
Show file tree
Hide file tree
Showing 121 changed files with 789 additions and 561 deletions.
64 changes: 47 additions & 17 deletions .github/workflows/ci.yml
Expand Up @@ -21,14 +21,14 @@ jobs:
with:
php-version: 7.4
extensions: dom, fileinfo, filter, gd, hash, intl, json, mbstring, pcre, pdo, zlib
tools: prestissimo, flex
tools: flex
coverage: pcov

- name: Checkout
uses: actions/checkout@v1

- name: Install the dependencies
run: composer install --no-interaction --no-suggest
run: composer install --no-interaction

- name: Generate the coverage report
run: php -d pcov.enabled=1 vendor/bin/phpunit --testsuite=coverage --coverage-clover=clover.xml --colors=always
Expand All @@ -49,14 +49,14 @@ jobs:
with:
php-version: 7.4
extensions: dom, fileinfo, filter, gd, hash, intl, json, mbstring, pcre, pdo, zlib
tools: prestissimo, flex
tools: flex
coverage: none

- name: Checkout
uses: actions/checkout@v1

- name: Install the dependencies
run: composer install --no-interaction --no-suggest
run: composer install --no-interaction

- name: Check the coding style
run: |
Expand Down Expand Up @@ -89,7 +89,7 @@ jobs:
with:
php-version: ${{ matrix.php }}
extensions: dom, fileinfo, filter, gd, hash, intl, json, mbstring, pcre, pdo_mysql, zlib
tools: prestissimo, flex
tools: flex
coverage: none

- name: Initialize the database
Expand All @@ -101,15 +101,47 @@ jobs:
uses: actions/checkout@v1

- name: Install the dependencies
run: composer install --no-interaction --no-suggest
run: composer install --no-interaction

- name: Run the unit tests
run: vendor/bin/phpunit --colors=always

- name: Run the functional tests
run: vendor/bin/phpunit --testsuite=functional --colors=always
env:
DATABASE_URL: mysql://root:root@localhost:3306/contao_test
DATABASE_URL: mysql://root:root@127.0.0.1:3306/contao_test

php8:
name: PHP 8.0
runs-on: ubuntu-latest
if: github.event_name != 'push'
steps:
- name: Setup PHP
uses: shivammathur/setup-php@v2
with:
php-version: 8.0
extensions: dom, fileinfo, filter, gd, hash, intl, json, mbstring, pcre, pdo_mysql, zlib
tools: flex
coverage: none

- name: Initialize the database
run: |
sudo /etc/init.d/mysql start
mysql -uroot -proot -e "CREATE database contao_test"
- name: Checkout
uses: actions/checkout@v1

- name: Install the dependencies
run: composer install --ignore-platform-reqs --no-interaction

- name: Run the unit tests
run: vendor/bin/phpunit --colors=always

- name: Run the functional tests
run: vendor/bin/phpunit --testsuite=functional --colors=always
env:
DATABASE_URL: mysql://root:root@127.0.0.1:3306/contao_test

prefer-lowest:
name: Prefer Lowest
Expand All @@ -121,7 +153,7 @@ jobs:
with:
php-version: 7.4
extensions: dom, fileinfo, filter, gd, hash, intl, json, mbstring, pcre, pdo_mysql, zlib
tools: prestissimo, flex
tools: flex
coverage: none

- name: Initialize the database
Expand All @@ -133,15 +165,15 @@ jobs:
uses: actions/checkout@v1

- name: Install the dependencies
run: composer update --prefer-lowest --prefer-stable --no-interaction --no-suggest
run: composer update --prefer-lowest --prefer-stable --no-interaction

- name: Run the unit tests
run: vendor/bin/phpunit --colors=always

- name: Run the functional tests
run: vendor/bin/phpunit --testsuite=functional --colors=always
env:
DATABASE_URL: mysql://root:root@localhost:3306/contao_test
DATABASE_URL: mysql://root:root@127.0.0.1:3306/contao_test

bundles:
name: Bundles
Expand All @@ -153,7 +185,7 @@ jobs:
with:
php-version: 7.4
extensions: dom, fileinfo, filter, gd, hash, intl, json, mbstring, pcre, pdo, zlib
tools: prestissimo, flex
tools: flex
coverage: none

- name: Checkout
Expand All @@ -176,7 +208,7 @@ jobs:
}
file_put_contents(__DIR__."/composer.json", json_encode($data, JSON_UNESCAPED_SLASHES));
'
COMPOSER_ROOT_VERSION=dev-${{ env.GITHUB_SHA }} composer install --no-interaction --no-suggest
COMPOSER_ROOT_VERSION=dev-${{ env.GITHUB_SHA }} composer install --no-interaction
vendor/bin/phpunit --colors=always
cd ..
done
Expand All @@ -192,7 +224,7 @@ jobs:
php-version: 7.4
extensions: dom, fileinfo, filter, gd, hash, intl, json, mbstring, mysqli, pcre, pdo_mysql, zlib
ini-values: memory_limit=1G
tools: prestissimo, flex
tools: flex
coverage: none

- name: Adjust the Git autocrlf setting
Expand All @@ -202,7 +234,7 @@ jobs:
uses: actions/checkout@v1

- name: Install the dependencies
run: composer install --no-interaction --no-suggest --no-progress
run: composer install --no-interaction --no-progress

- name: Run the unit tests
run: vendor/bin/phpunit.bat --colors=always
Expand All @@ -217,7 +249,6 @@ jobs:
with:
php-version: 7.4
extensions: json, zlib
tools: prestissimo
coverage: none

- name: Checkout
Expand All @@ -226,7 +257,7 @@ jobs:
- name: Install the dependencies
run: |
composer global require contao/monorepo-tools:dev-master
composer install --no-interaction --no-suggest
composer install --no-interaction
- name: Validate the composer.json files
run: $HOME/.composer/vendor/bin/monorepo-tools composer-json --validate --ansi
Expand All @@ -241,7 +272,6 @@ jobs:
with:
php-version: 7.4
extensions: json, zlib
tools: prestissimo
coverage: none

- name: Checkout
Expand Down
4 changes: 2 additions & 2 deletions calendar-bundle/composer.json
Expand Up @@ -15,7 +15,7 @@
}
],
"require": {
"php": "^7.3",
"php": "^7.3 || ^8.0",
"contao/core-bundle": "self.version",
"friendsofsymfony/http-cache": "^2.4",
"patchwork/utf8": "^1.2",
Expand All @@ -33,7 +33,7 @@
"require-dev": {
"contao/manager-plugin": "^2.3.1",
"contao/test-case": "^4.0",
"phpunit/phpunit": "^8.4",
"phpunit/phpunit": "^8.5",
"symfony/http-client": "4.4.*",
"symfony/phpunit-bridge": "4.4.*"
},
Expand Down
Expand Up @@ -19,7 +19,7 @@

class ContaoCalendarExtension extends Extension
{
public function load(array $mergedConfig, ContainerBuilder $container): void
public function load(array $configs, ContainerBuilder $container): void
{
$loader = new YamlFileLoader(
$container,
Expand Down
6 changes: 1 addition & 5 deletions calendar-bundle/src/Resources/contao/classes/Events.php
Expand Up @@ -10,8 +10,6 @@

namespace Contao;

use FOS\HttpCache\ResponseTagger;

/**
* Provide methods to get all events of a certain period from the database.
*
Expand Down Expand Up @@ -284,13 +282,11 @@ protected function addEvent($objEvents, $intStart, $intEnd, $intBegin, $intLimit
}
}

// Tag the response
// Tag the event (see #2137)
if (System::getContainer()->has('fos_http_cache.http.symfony_response_tagger'))
{
/** @var ResponseTagger $responseTagger */
$responseTagger = System::getContainer()->get('fos_http_cache.http.symfony_response_tagger');
$responseTagger->addTags(array('contao.db.tl_calendar_events.' . $objEvents->id));
$responseTagger->addTags(array('contao.db.tl_calendar.' . $objEvents->pid));
}

// Store raw data
Expand Down
70 changes: 68 additions & 2 deletions calendar-bundle/src/Resources/contao/dca/tl_calendar_events.php
Expand Up @@ -641,6 +641,7 @@ public function checkPermission()
case 'show':
case 'delete':
case 'toggle':
case 'feature':
$objCalendar = $this->Database->prepare("SELECT pid FROM tl_calendar_events WHERE id=?")
->limit(1)
->execute($id);
Expand Down Expand Up @@ -1141,14 +1142,49 @@ public function toggleFeatured($intId, $blnVisible, DataContainer $dc=null)
Input::setGet('id', $intId);
Input::setGet('act', 'feature');

$this->checkPermission();
if ($dc)
{
$dc->id = $intId; // see #8043
}

// Trigger the onload_callback
if (is_array($GLOBALS['TL_DCA']['tl_calendar_events']['config']['onload_callback']))
{
foreach ($GLOBALS['TL_DCA']['tl_calendar_events']['config']['onload_callback'] as $callback)
{
if (is_array($callback))
{
$this->import($callback[0]);
$this->{$callback[0]}->{$callback[1]}($dc);
}
elseif (is_callable($callback))
{
$callback($dc);
}
}
}

// Check permissions to feature
if (!$this->User->hasAccess('tl_calendar_events::featured', 'alexf'))
{
throw new AccessDeniedException('Not enough permissions to feature/unfeature event ID ' . $intId . '.');
}

$objRow = $this->Database->prepare("SELECT * FROM tl_calendar_events WHERE id=?")
->limit(1)
->execute($intId);

if ($objRow->numRows < 1)
{
throw new AccessDeniedException('Invalid event ID ' . $intId . '.');
}

// Set the current record
if ($dc)
{
$dc->activeRecord = $objRow;
}

$objVersions = new Versions('tl_calendar_events', $intId);
$objVersions->initialize();

Expand All @@ -1169,11 +1205,41 @@ public function toggleFeatured($intId, $blnVisible, DataContainer $dc=null)
}
}

$time = time();

// Update the database
$this->Database->prepare("UPDATE tl_calendar_events SET tstamp=" . time() . ", featured='" . ($blnVisible ? 1 : '') . "' WHERE id=?")
$this->Database->prepare("UPDATE tl_calendar_events SET tstamp=$time, featured='" . ($blnVisible ? 1 : '') . "' WHERE id=?")
->execute($intId);

if ($dc)
{
$dc->activeRecord->tstamp = $time;
$dc->activeRecord->published = ($blnVisible ? '1' : '');
}

// Trigger the onsubmit_callback
if (is_array($GLOBALS['TL_DCA']['tl_calendar_events']['config']['onsubmit_callback']))
{
foreach ($GLOBALS['TL_DCA']['tl_calendar_events']['config']['onsubmit_callback'] as $callback)
{
if (is_array($callback))
{
$this->import($callback[0]);
$this->{$callback[0]}->{$callback[1]}($dc);
}
elseif (is_callable($callback))
{
$callback($dc);
}
}
}

$objVersions->create();

if ($dc)
{
$dc->invalidateCacheTags();
}
}

/**
Expand Down
Expand Up @@ -81,6 +81,13 @@ public function generate()
$this->strLink = $objTarget->getFrontendUrl();
}

// Tag the calendars (see #2137)
if (System::getContainer()->has('fos_http_cache.http.symfony_response_tagger'))
{
$responseTagger = System::getContainer()->get('fos_http_cache.http.symfony_response_tagger');
$responseTagger->addTags(array_map(static function ($id) { return 'contao.db.tl_calendar.' . $id; }, $this->cal_calendar));
}

return parent::generate();
}

Expand Down
17 changes: 7 additions & 10 deletions calendar-bundle/src/Resources/contao/modules/ModuleEventReader.php
Expand Up @@ -13,7 +13,6 @@
use Contao\CoreBundle\Exception\InternalServerErrorException;
use Contao\CoreBundle\Exception\PageNotFoundException;
use Contao\CoreBundle\Exception\RedirectResponseException;
use FOS\HttpCache\ResponseTagger;
use Patchwork\Utf8;

/**
Expand Down Expand Up @@ -243,15 +242,6 @@ protected function compile()
$objTemplate->hasDetails = false;
$objTemplate->hasTeaser = false;

// Tag the response
if (System::getContainer()->has('fos_http_cache.http.symfony_response_tagger'))
{
/** @var ResponseTagger $responseTagger */
$responseTagger = System::getContainer()->get('fos_http_cache.http.symfony_response_tagger');
$responseTagger->addTags(array('contao.db.tl_calendar_events.' . $objEvent->id));
$responseTagger->addTags(array('contao.db.tl_calendar.' . $objEvent->pid));
}

// Clean the RTE output
if ($objEvent->teaser)
{
Expand Down Expand Up @@ -407,6 +397,13 @@ protected function compile()

$this->Template->event = $objTemplate->parse();

// Tag the event (see #2137)
if (System::getContainer()->has('fos_http_cache.http.symfony_response_tagger'))
{
$responseTagger = System::getContainer()->get('fos_http_cache.http.symfony_response_tagger');
$responseTagger->addTags(array('contao.db.tl_calendar_events.' . $objEvent->id));
}

$bundles = System::getContainer()->getParameter('kernel.bundles');

// HOOK: comments extension required
Expand Down
Expand Up @@ -78,6 +78,13 @@ public function generate()
return $this->getFrontendModule($this->cal_readerModule, $this->strColumn);
}

// Tag the calendars (see #2137)
if (System::getContainer()->has('fos_http_cache.http.symfony_response_tagger'))
{
$responseTagger = System::getContainer()->get('fos_http_cache.http.symfony_response_tagger');
$responseTagger->addTags(array_map(static function ($id) { return 'contao.db.tl_calendar.' . $id; }, $this->cal_calendar));
}

return parent::generate();
}

Expand Down

0 comments on commit fd85823

Please sign in to comment.