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
-------

13c00f1b 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
-------

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

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

Another step towards contao/contao#2263.

Commits
-------

2efea3bc Allow version 3 of toflar/psr6-symfony-http-cache-store
1cc3754d 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
-------

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

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

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

Commits
-------

dee7c1dc Trigger the onload_callback when featuring news
bc8447de 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
-------

c3a849ca Trigger the onload_callback when featuring news/events
67c7b188 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
-------

ba9d21f1 Backport the doctrine-cache-bundle changes
d1103e9d CS
3feda719 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
-------

8ad61492 Add PHP 8.0 to the CI chain
7b8729e5 Fix the unit and functional tests
47c14dbb Use 127.0.0.1 instead of localhost in the functional tests
938836c0 Always set the ACCEPT_LANGUAGE header in the functional tests
a4199ec2 Use PHPUnit 8.5 for all PHP versions
7ffbd267 Adjust the error level in PHP 8
4ce6b27b Merge branch '4.9' into fix/php8
24b1d711 Update the changelog and the language files (see #2541)

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

-

Commits
-------

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

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

-

Commits
-------

288bc91b Add a missing PHPStan dependency
80b6469c 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
ffebcd7f Fix issues found by the PhpStorm code inspector (see #2544)

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

Function arguments renaming → forward compat with PHP 8.

Commits
-------

d6b22e4f Fix issues found by the PhpStorm code inspector
1fb0b96f More fixes
e2544f49 And even more
e6c4b182 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
-------

03e7c410 Add global page model for fragments (replaces #1935)
a5c23263 Cast values for comparison
826748dc Added unit tests
00eeb729 CS
29ea202c CS
0e09e4ec Merge branch '4.9' into bugfix/page-argument
77c79bef 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
-------

cc5d72c2 Do not try to generate fragments for generated fragments
a0b92bba CS
4b8bc8f6 Merge branch '4.9' into bugfix/fragment-children
8605bc45 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
-------

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

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

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

Commits
-------

1d6f4171 Move migrations to core bundle
20dfde35 Fix missing globals array
51fb5c72 PHPStan
5034731d Pass the filesystem as dependency and remove the Contao 3 migrations
66231e75 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
-------

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

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

-

Commits
-------

29af160e Run the CS fixer
0df5442b 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
-------

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

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

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

see #2536 for the discussion

Commits
-------

cb3740c2 Correctly load the DCA labels
64d23500 Merge branch '4.9' into bugfix/dca-labels
103649e2 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
-------

b523f614 Fix the cache tag invalidation
64c4cdc3 CS
4b61ac26 Do not double tag the content elements
5b4a03d8 Add a tag for the top parent element
996694e5 Add tagging for the missing modules
601247f2 Also tag the comments
90caa2a8 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
-------

52e85cdb Strip port numbers from root page domains
48a0c3c0 Improve the regex

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

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

-

Commits
-------

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

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

-

Commits
-------

6c50c48d Update the changelog and the language files
918884ce Update the changelog
5eb206fb 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
695843a5 Clean up after the upstream merge (see #2564)

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

-

Commits
-------

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

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

-

Commits
-------

5d2cadae Update the changelog and the language files
b7567a83 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 c1aa726 commit df53c93
Show file tree
Hide file tree
Showing 6 changed files with 85 additions and 9 deletions.
4 changes: 2 additions & 2 deletions composer.json
Original file line number Diff line number Diff line change
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
2 changes: 1 addition & 1 deletion src/DependencyInjection/ContaoNewsExtension.php
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@

class ContaoNewsExtension extends Extension
{
public function load(array $mergedConfig, ContainerBuilder $container): void
public function load(array $configs, ContainerBuilder $container): void
{
$loader = new YamlFileLoader(
$container,
Expand Down
69 changes: 67 additions & 2 deletions src/Resources/contao/dca/tl_news.php
Original file line number Diff line number Diff line change
Expand Up @@ -996,14 +996,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_news']['config']['onload_callback']))
{
foreach ($GLOBALS['TL_DCA']['tl_news']['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_news::featured', 'alexf'))
{
throw new AccessDeniedException('Not enough permissions to feature/unfeature news item ID ' . $intId . '.');
}

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

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

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

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

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

$time = time();

// Update the database
$this->Database->prepare("UPDATE tl_news SET tstamp=" . time() . ", featured='" . ($blnVisible ? 1 : '') . "' WHERE id=?")
$this->Database->prepare("UPDATE tl_news 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_news']['config']['onsubmit_callback']))
{
foreach ($GLOBALS['TL_DCA']['tl_news']['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
5 changes: 1 addition & 4 deletions src/Resources/contao/modules/ModuleNews.php
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,6 @@
namespace Contao;

use Contao\Model\Collection;
use FOS\HttpCache\ResponseTagger;

/**
* Parent class for news modules.
Expand Down Expand Up @@ -223,13 +222,11 @@ protected function parseArticle($objArticle, $blnAddArchive=false, $strClass='',
}
}

// Tag the response
// Tag the news (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_news.' . $objArticle->id));
$responseTagger->addTags(array('contao.db.tl_news_archive.' . $objArticle->pid));
}

return $objTemplate->parse();
Expand Down
7 changes: 7 additions & 0 deletions src/Resources/contao/modules/ModuleNewsArchive.php
Original file line number Diff line number Diff line change
Expand Up @@ -73,6 +73,13 @@ public function generate()
return '';
}

// Tag the news archives (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_news_archive.' . $id; }, $this->news_archives));
}

return parent::generate();
}

Expand Down
7 changes: 7 additions & 0 deletions src/Resources/contao/modules/ModuleNewsList.php
Original file line number Diff line number Diff line change
Expand Up @@ -66,6 +66,13 @@ public function generate()
return $this->getFrontendModule($this->news_readerModule, $this->strColumn);
}

// Tag the news archives (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_news_archive.' . $id; }, $this->news_archives));
}

return parent::generate();
}

Expand Down

0 comments on commit df53c93

Please sign in to comment.