{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":144819408,"defaultBranch":"5.x","name":"contao","ownerLogin":"contao","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2018-08-15T07:18:30.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/1206136?v=4","public":true,"private":false,"isOrgOwned":true},"refInfo":{"name":"","listCacheKey":"v0:1716543480.0","currentOid":""},"activityList":{"items":[{"before":"ed7cabb1e83bc2e1d8e06bd1a475d8b0289eb549","after":"7d8af0fa05aa2ddc073c78979d30580aeb7ed354","ref":"refs/heads/5.3","pushedAt":"2024-05-27T15:01:26.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"leofeyer","name":"Leo Feyer","path":"/leofeyer","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1192057?s=80&v=4"},"commit":{"message":"Fix more edge cases in the `HtmlAttributes` class (see #7239)\n\nDescription\n-----------\n\nFixes some bugs in the `HtmlAttributes` class:\r\n\r\n1. Numerical attributes like `123=\"foo\"` caused type errors\r\n2. Invalid UTF-8 and null bytes were not handled correctly\r\n3. Attributes starting with `=` were not supported\n\nCommits\n-------\n\n74c07e49 Fix bug with edge cases in HtmlAttributes","shortMessageHtmlLink":"Fix more edge cases in the HtmlAttributes class (see #7239)"}},{"before":"5eadb1b7a42f082726ff855ce8bec6893f264ef1","after":"52f1d91d8415f5f377542331d1c20bfe03a21a77","ref":"refs/heads/5.x","pushedAt":"2024-05-27T14:56:30.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"leofeyer","name":"Leo Feyer","path":"/leofeyer","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1192057?s=80&v=4"},"commit":{"message":"Use `HtmlAttributes` for `fe_page` (see #7238)\n\nDescription\n-----------\n\nSince we don't have a replacement for our `fe_page.html5` in the pipeline yet - and inspired by #7218 I think it would be great if we could introduce the `HtmlAttributes` to the default `fe_page` as well.\r\n\r\nAdding additional attributes to `` or `` without overwriting the `fe_page` template completely is currently pretty akward. These are the hacks that I use currently:\r\n\r\n```php\r\n$this->extend('fe_page');\r\n\r\n// By adding a `\"` in the beginning and omitting it at the end we can \"inject\" \r\n// additional attributes on the node using the $this->language variable\r\n$this->language .= '\" data-turbo=\"false';\r\n\r\n// Same concept for the via the $this->class variable\r\n$this->class .= '\" data-controller=\"foobar';\r\n```\r\n\r\nWith this PR it would be much nicer:\r\n\r\n```php\r\n$this->extend('fe_page'); \r\n\r\n$this->rootAttributes = $this->attr()\r\n ->set('data-turbo', false)\r\n ->mergeWith($this->rootAttributes)\r\n;\r\n\r\n$this->bodyAttributes = $this->attr()\r\n ->set('data-controller', 'foobar')\r\n ->mergeWith($this->bodyAttributes)\r\n;\r\n```\n\nCommits\n-------\n\nfeaa9d82 use HtmlAttributes for fe_page","shortMessageHtmlLink":"Use HtmlAttributes for fe_page (see #7238)"}},{"before":"cd3dfc19fb6810687a342ce3c21fe6c29e1cfd80","after":"ed7cabb1e83bc2e1d8e06bd1a475d8b0289eb549","ref":"refs/heads/5.3","pushedAt":"2024-05-27T14:55:19.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"leofeyer","name":"Leo Feyer","path":"/leofeyer","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1192057?s=80&v=4"},"commit":{"message":"Overwrite the page metadata before parsing the news article (see #7228)\n\nDescription\n-----------\n\nThis PR fixes the fact that the page metadata is overwritten after the content has been generated. The sequence is relevant, for example, if an insert tag is used in the content that outputs the page metadata, e.g. `{{page::pageTitle}}`.\r\nIf the page metadata is overwritten afterwards the insert tag will be replaced with the page title set in tl_page, with this PR the insert tag is replaced with the title of the news, as it should be IMO.\n\nCommits\n-------\n\n00d2dd77 Overwrite page metadata before parsing the news article","shortMessageHtmlLink":"Overwrite the page metadata before parsing the news article (see #7228)"}},{"before":"14c242d65b11d6a261c6a00c9b087778ae0baa67","after":"5eadb1b7a42f082726ff855ce8bec6893f264ef1","ref":"refs/heads/5.x","pushedAt":"2024-05-27T14:49:26.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"leofeyer","name":"Leo Feyer","path":"/leofeyer","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1192057?s=80&v=4"},"commit":{"message":"Use CSS grid to align checkboxes and their labels and drag handles (see #7231)\n\nDescription\n-----------\n\n### Before\r\n\r\n\"\"\r\n\r\n### After\r\n\r\n\"\"\n\nCommits\n-------\n\nd5da62ea Use CSS grid to align checkboxes and their labels and drag handles\n8f839dba Rebuild the assets\n75ef26c6 Adjust the radio table as well","shortMessageHtmlLink":"Use CSS grid to align checkboxes and their labels and drag handles (see "}},{"before":"00a94934423e015791a5cfd0658fcd67a8aa06bd","after":"cd3dfc19fb6810687a342ce3c21fe6c29e1cfd80","ref":"refs/heads/5.3","pushedAt":"2024-05-27T11:07:39.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"leofeyer","name":"Leo Feyer","path":"/leofeyer","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1192057?s=80&v=4"},"commit":{"message":"Fix an endless loop in the `DC_Folder::getParentFilemounts()` method (see #7237)\n\nDescription\n-----------\n\nTo reproduce, create the following structure:\r\n\r\n```\r\nfiles/\r\n image1.jpg\r\n images/\r\n image2.jpg\r\n```\r\n\r\nNow open the picker and search for `image`. Since one of the files is in the root directory, `$filemount` will be `files` and `Path::getDirectory($filemount)` will be an empty string causing the endless loop.\n\nCommits\n-------\n\n045930d6 Fix an endless loop in the `DC_Folder::getParentFilemounts()` method","shortMessageHtmlLink":"Fix an endless loop in the DC_Folder::getParentFilemounts() method …"}},{"before":"b370e4f6c95f946493ae4f35135045c079b80488","after":"0a6e74ab81a0debe7594b1f4d787960ebbc329db","ref":"refs/heads/4.13","pushedAt":"2024-05-27T08:19:54.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"leofeyer","name":"Leo Feyer","path":"/leofeyer","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1192057?s=80&v=4"},"commit":{"message":"Only handle `GET` requests in the search index listener (see #7240)\n\nDescription\n-----------\n\nI noticed that `$this->indexer->delete($document);` is still executed for `POST` requests - if the response has a failure status code. Thus it is currently possible to remove pages from the index via `POST` requests, if you can make the `POST` request fail - which is easy, as you just have to send a cookie with the request and omit the request token.\r\n\r\nI noticed this via spam attacks that invoked error responses (since there were so many request, a deadlock error occured during `$this->indexer->delete($document)`).\r\n\r\nThe _\"Should be skipped because it is not a GET request\"_ test did not pick up on this as it only tested for a sucessful response. I have adjusted the test accordingly. Or should we split it up into two tests instead? One with a succesful response and one with an unsuccesful response.\n\nCommits\n-------\n\n595ceaad skip non-GET requests outright\n268c67b8 adjust comment","shortMessageHtmlLink":"Only handle GET requests in the search index listener (see #7240)"}},{"before":"b6b55a8ba97236a019556d10b9bf96d4587797d1","after":"00a94934423e015791a5cfd0658fcd67a8aa06bd","ref":"refs/heads/5.3","pushedAt":"2024-05-24T12:53:33.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"leofeyer","name":"Leo Feyer","path":"/leofeyer","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1192057?s=80&v=4"},"commit":{"message":"Do not trigger the PHP `header()` deprecation for certain headers (see #7225)\n\nDescription\n-----------\n\nCurrently if a session is started when using the `NativeSessionStorage` (which is the default) or `expose_php` is not set to `Off`/`0`, the following deprecation is always triggered:\r\n\r\n```\r\nUsing the PHP header() function to set HTTP headers has been deprecated and will no longer work in Contao 6. Use the response object instead.\r\n```\r\n\r\nThere can always be headers that bypass the response object from Symfony. This PR at least ignores the `Set-Cookie: PHPSESSID=` and `X-Powered-By` headers.\n\nCommits\n-------\n\nb7dbf148 do not trigger deprecation for session cookie and X-Powered-By\n8b742b5e cs\n107bf43e update test\ncda95207 Update core-bundle/src/EventListener/MergeHttpHeadersListener.php\ne5f0c271 Update core-bundle/src/EventListener/MergeHttpHeadersListener.php\nc84c683c Merge remote-tracking branch 'origin/5.3' into update-merge-http-head…\n8f8afdc1 fix tests","shortMessageHtmlLink":"Do not trigger the PHP header() deprecation for certain headers (see "}},{"before":"2be2bf943e125a0660cb2195feb8aef892117826","after":"14c242d65b11d6a261c6a00c9b087778ae0baa67","ref":"refs/heads/5.x","pushedAt":"2024-05-24T12:18:50.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"leofeyer","name":"Leo Feyer","path":"/leofeyer","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1192057?s=80&v=4"},"commit":{"message":"Use the `attr()` method in templates (see #7218)\n\nDescription\n-----------\n\nSee https://github.com/contao/contao/pull/7209/files#r1598224759\r\n\r\n\"\"\r\n\r\nThe content element templates belong to deprecated legacy elements, so I‘m not sure if we want to update these, too?\n\nCommits\n-------\n\nb8eaf2d9 Use the `attr()` method in templates\n01e85a54 Allow overwriting the wrapper attributes in child templates\n3f428e9c Reduce duplicate code\n9dcc4271 Unify HtmlAttributes usage in legacy templates (see #13)\n3f4899c1 Clean up\n3e27bb57 Move the $this->extend() call to the top\na62e0720 Adjust the ce_teaser.html5 template\nbf5e8ee0 Adjust the info_default.html5 template\n\nCo-authored-by: fritzmg ","shortMessageHtmlLink":"Use the attr() method in templates (see #7218)"}},{"before":"b11c0119bf3b946067d899b9cea7684bfc033395","after":"b370e4f6c95f946493ae4f35135045c079b80488","ref":"refs/heads/4.13","pushedAt":"2024-05-24T10:10:19.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"leofeyer","name":"Leo Feyer","path":"/leofeyer","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1192057?s=80&v=4"},"commit":{"message":"Fix the `_token_check` logic (see #7233)\n\nDescription\n-----------\n\nThis is how the `RequestTokenListener` currently works:\r\n\r\n* Check the request token if it is a Contao request and the `_token_check` attribute is not `false`.\r\n* Check the request token if it is not a Contao request but the `_token_check` attribute **exists**.\r\n\r\nHowever, the latter case should be implemented as _if the attribute **is true**_, otherwise the request token would also be checked in the following case:\r\n\r\n```php\r\n/**\r\n * @Route(\"/foo\", defaults={\"_token_check\" = null})\r\n *\r\n * This is treated the same as \"_token_check\" = true, although null is falsey.\r\n */\r\n```\r\n\r\n---\r\n\r\nThe pull request also removes the redundant `\"_scope\" = \"backend\", \"_token_check\" = true` configuration, as `\"_token_check\" = true` is only required if the scope is not `backend` or `frontend`.\n\nCommits\n-------\n\n10185889 Correctly implement the `_token_check` attribute","shortMessageHtmlLink":"Fix the _token_check logic (see #7233)"}},{"before":"9dbb0e57807df56e1357c7ebb3ad87a49180612b","after":"2be2bf943e125a0660cb2195feb8aef892117826","ref":"refs/heads/5.x","pushedAt":"2024-05-24T09:34:34.000Z","pushType":"push","commitsCount":19,"pusher":{"login":"leofeyer","name":"Leo Feyer","path":"/leofeyer","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1192057?s=80&v=4"},"commit":{"message":"Merge branch '5.3' into 5.x\n\n# Conflicts:\n#\tCHANGELOG.md\n#\tcalendar-bundle/contao/languages/sv/tl_module.xlf\n#\tcore-bundle/contao/languages/sv/default.xlf\n#\tcore-bundle/contao/languages/sv/explain.xlf\n#\tcore-bundle/contao/languages/sv/tl_article.xlf\n#\tcore-bundle/contao/languages/sv/tl_content.xlf\n#\tcore-bundle/contao/languages/sv/tl_maintenance.xlf\n#\tcore-bundle/contao/languages/sv/tl_member.xlf\n#\tcore-bundle/contao/languages/sv/tl_module.xlf\n#\tcore-bundle/contao/languages/sv/tl_page.xlf\n#\tcore-bundle/contao/languages/sv/tl_theme.xlf\n#\tcore-bundle/contao/languages/sv/tl_user.xlf\n#\tnews-bundle/contao/languages/sv/tl_module.xlf","shortMessageHtmlLink":"Merge branch '5.3' into 5.x"}},{"before":"be7b9fe48ccfdaef2059a3dd59d8eae63a36fea9","after":"b6b55a8ba97236a019556d10b9bf96d4587797d1","ref":"refs/heads/5.3","pushedAt":"2024-05-24T09:29:18.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"leofeyer","name":"Leo Feyer","path":"/leofeyer","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1192057?s=80&v=4"},"commit":{"message":"Update the changelog and the language files","shortMessageHtmlLink":"Update the changelog and the language files"}},{"before":"c2df8c2d43075f696c5294cf85cc3c7c397cea01","after":"be7b9fe48ccfdaef2059a3dd59d8eae63a36fea9","ref":"refs/heads/5.3","pushedAt":"2024-05-24T09:22:15.000Z","pushType":"push","commitsCount":3,"pusher":{"login":"leofeyer","name":"Leo Feyer","path":"/leofeyer","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1192057?s=80&v=4"},"commit":{"message":"Merge branch '4.13' into 5.3\n\n# Conflicts:\n#\tCHANGELOG.md\n#\tcore-bundle/config/services.yaml\n#\tcore-bundle/contao/languages/cs/tl_settings.xlf\n#\tcore-bundle/contao/languages/de/tl_settings.xlf\n#\tcore-bundle/contao/languages/en/tl_settings.xlf\n#\tcore-bundle/contao/languages/fr/tl_settings.xlf\n#\tcore-bundle/contao/languages/it/tl_settings.xlf\n#\tcore-bundle/contao/languages/ja/tl_settings.xlf\n#\tcore-bundle/contao/languages/nl/tl_settings.xlf\n#\tcore-bundle/contao/languages/pl/tl_settings.xlf\n#\tcore-bundle/contao/languages/ru/tl_settings.xlf\n#\tcore-bundle/contao/languages/sl/tl_settings.xlf\n#\tcore-bundle/contao/languages/sr/tl_settings.xlf\n#\tcore-bundle/contao/languages/sv/explain.xlf\n#\tcore-bundle/contao/languages/sv/tl_settings.xlf\n#\tcore-bundle/contao/languages/tr/tl_settings.xlf\n#\tcore-bundle/src/Resources/contao/config/constants.php\n#\tcore-bundle/src/Resources/contao/languages/es/tl_settings.xlf\n#\tcore-bundle/src/Resources/contao/languages/fa/tl_settings.xlf\n#\tcore-bundle/src/Resources/contao/languages/pt/tl_settings.xlf","shortMessageHtmlLink":"Merge branch '4.13' into 5.3"}},{"before":"5ca6147cc36e65f673d75aee15a06219e9774fcc","after":"b11c0119bf3b946067d899b9cea7684bfc033395","ref":"refs/heads/4.13","pushedAt":"2024-05-24T08:19:04.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"leofeyer","name":"Leo Feyer","path":"/leofeyer","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1192057?s=80&v=4"},"commit":{"message":"Add 'Bubble the back end log entries to file logs' again (see #7236)\n\nDescription\n-----------\n\nSee #6532\n\nCommits\n-------\n\n336ece7b Add 'Bubble the back end log entries to file logs' again","shortMessageHtmlLink":"Add 'Bubble the back end log entries to file logs' again (see #7236)"}},{"before":"83ddc078f78561cf37f82a2b80d00266ebed8562","after":"c2df8c2d43075f696c5294cf85cc3c7c397cea01","ref":"refs/heads/5.3","pushedAt":"2024-05-23T14:28:00.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"leofeyer","name":"Leo Feyer","path":"/leofeyer","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1192057?s=80&v=4"},"commit":{"message":"Invalidate the pagemounts cache in the back end access voter when duplicating a page (see #7102)\n\nDescription\n-----------\n\nIf a user who is not an admin copies a page, the articles (and thus all content) are no longer copied, as it was the case in Contao 4. Instead a new empty article is created.\r\nThis is because the check whether the user is allowed to create the articles depends on the pagemountCache in the BackendAccessVoter, which is only set once per request and user. \r\nAs the page does not yet exist when the cache is first set and has not been reset after the page has been created, the check as to whether the user is allowed to access the newly created page fails.\r\n\r\nThis PR adds a check if a new page has been created before accessing the pagemountCache in the BackendAccessVoter and clears the cache if this is the case.\r\n\r\n\r\nSteps to reproduce:\r\n\r\n1. Login as a user without admin privileges\r\n2. Copy and paste a page that has content elements in its article\r\n3. The original article(s) will not be copied but a new one will be created\n\nCommits\n-------\n\n45f2cbb5 Change pagemountCache structure in BackendAccessVoter\n5257361d Store true/false in the pagemountsCache\nc53c4e10 Merge pull request #1 from aschempp/fix/page-access\nf30b8f05 Merge pull request #2 from lukasbableck/5.3\ned3f337c run rector\n479dad1c run ecs fix\n0c3bba24 Revert \"Change pagemountCache structure in BackendAccessVoter\"\nd031b280 check if page is in pagemountsCache and rebuild cache if not before r…\n\nCo-authored-by: aschempp ","shortMessageHtmlLink":"Invalidate the pagemounts cache in the back end access voter when dup…"}},{"before":"22171c5d03e71a22e9216d581e0565a8b5a7281c","after":"5ca6147cc36e65f673d75aee15a06219e9774fcc","ref":"refs/heads/4.13","pushedAt":"2024-05-23T14:19:21.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"leofeyer","name":"Leo Feyer","path":"/leofeyer","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1192057?s=80&v=4"},"commit":{"message":"Update the changelog and the language files","shortMessageHtmlLink":"Update the changelog and the language files"}},{"before":"862793b988272def554359c15f8b3bc06bc42db8","after":"83ddc078f78561cf37f82a2b80d00266ebed8562","ref":"refs/heads/5.3","pushedAt":"2024-05-23T13:45:50.000Z","pushType":"push","commitsCount":3,"pusher":{"login":"leofeyer","name":"Leo Feyer","path":"/leofeyer","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1192057?s=80&v=4"},"commit":{"message":"Fix the functional tests","shortMessageHtmlLink":"Fix the functional tests"}},{"before":"73331f26c353d742066f1b01bd872cb443999928","after":"22171c5d03e71a22e9216d581e0565a8b5a7281c","ref":"refs/heads/4.13","pushedAt":"2024-05-23T11:54:36.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"leofeyer","name":"Leo Feyer","path":"/leofeyer","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1192057?s=80&v=4"},"commit":{"message":"Render the Contao login page even if the current route is not a Contao page (see #7077)\n\nDescription\n-----------\n\nFixed point 1 of https://github.com/contao/contao/pull/6805 for Contao 4.13\r\n\r\nThis must not be merged upstream!\n\nCommits\n-------\n\nd8076d63 Render the Contao login page even if the current route is not a Conta…\nb8e09940 Fixed tests\n1946850a Fixed tests\n5431917c Add a comment\nec386773 Use deprecated method as fallback\ndf0c68ce Trying to fix the tests\n6748cb4c Replace PageFinder to find root page\n37376a7b Fix request\n\nCo-authored-by: leofeyer <1192057+leofeyer@users.noreply.github.com>","shortMessageHtmlLink":"Render the Contao login page even if the current route is not a Conta…"}},{"before":"966532ad78782f992b6d66260693b822968c9801","after":"862793b988272def554359c15f8b3bc06bc42db8","ref":"refs/heads/5.3","pushedAt":"2024-05-23T11:21:28.000Z","pushType":"push","commitsCount":6,"pusher":{"login":"leofeyer","name":"Leo Feyer","path":"/leofeyer","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1192057?s=80&v=4"},"commit":{"message":"Merge branch '4.13' into 5.3\n\n# Conflicts:\n#\tcore-bundle/src/Controller/BackendController.php\n#\tcore-bundle/src/Controller/BackendPreviewController.php\n#\tcore-bundle/src/Controller/BackendPreviewSwitchController.php\n#\tcore-bundle/src/Resources/config/routes.yml\n#\tcore-bundle/src/Resources/contao/library/Contao/Controller.php\n#\tcore-bundle/tests/Contao/TemplateLoaderTest.php\n#\tinstallation-bundle/src/Controller/InstallationController.php","shortMessageHtmlLink":"Merge branch '4.13' into 5.3"}},{"before":"def182a6ed743899948606d35c6098faa8857ffa","after":"966532ad78782f992b6d66260693b822968c9801","ref":"refs/heads/5.3","pushedAt":"2024-05-23T11:00:19.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"leofeyer","name":"Leo Feyer","path":"/leofeyer","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1192057?s=80&v=4"},"commit":{"message":"Remove a redundant `strlen()` check (see #7197)\n\nDescription\n-----------\n\nThis is a follow-up on #7133, where @aschempp has already removed the `strlen($v)` check from the `deleteChildren()` method. `$v` can never be empty, otherwise the `loadDataContainer()` call would already have triggered a `The table name must not be empty` exception.\n\nCommits\n-------\n\n37382fe5 Remove a redundant `strlen()` check","shortMessageHtmlLink":"Remove a redundant strlen() check (see #7197)"}},{"before":"796c2cc3418420b301a7e11b73c0e8e0be39316e","after":"73331f26c353d742066f1b01bd872cb443999928","ref":"refs/heads/4.13","pushedAt":"2024-05-23T10:40:55.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"leofeyer","name":"Leo Feyer","path":"/leofeyer","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1192057?s=80&v=4"},"commit":{"message":"Consolidate the route definitions in invokable controllers (see #7232)\n\nDescription\n-----------\n\nFollow-up on #7227\n\nCommits\n-------\n\n970ade34 Fix the inconsistent `_store_referrer` configuration\n366a331e Consolidate the route definitions","shortMessageHtmlLink":"Consolidate the route definitions in invokable controllers (see #7232)"}},{"before":"c8e1d2553a41ffc8e228107cb9a35c69a5200eac","after":"9dbb0e57807df56e1357c7ebb3ad87a49180612b","ref":"refs/heads/5.x","pushedAt":"2024-05-23T09:38:28.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"leofeyer","name":"Leo Feyer","path":"/leofeyer","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1192057?s=80&v=4"},"commit":{"message":"Fix the `.nogrid` backwards compatibility layer (see #7229)\n\nDescription\n-----------\n\nFollow-up on #7087\r\n\r\n### Before\r\n\r\n\"\"\r\n\r\n### After\r\n\r\n\"\"\n\nCommits\n-------\n\nc008fe26 Fix the `.nogrid` backwards compatibility layer\nb1eb3bca Use the :is() selector\nc23109ba Convert `*:not` to `:not`","shortMessageHtmlLink":"Fix the .nogrid backwards compatibility layer (see #7229)"}},{"before":"ae5da0321efa59264a4b6ae0e9046104f9cc4584","after":"796c2cc3418420b301a7e11b73c0e8e0be39316e","ref":"refs/heads/4.13","pushedAt":"2024-05-23T09:13:46.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"leofeyer","name":"Leo Feyer","path":"/leofeyer","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1192057?s=80&v=4"},"commit":{"message":"Backport 'Set a low priority for the back end fallback route' (see #7224)\n\nDescription\n-----------\n\nThis backports #7222 and #7223 to Contao 4.13.\r\n\r\n~However, I must note that I actually could not reproduce the original problem after all. In theory the original problem cannot occur if you have~\r\n\r\n```php\r\nuse Contao\\CoreBundle\\ContaoCoreBundle;\r\n// …\r\n\r\nclass Plugin implements BundlePluginInterface, RoutingPluginInterface\r\n{\r\n public function getBundles(ParserInterface $parser)\r\n {\r\n return [\r\n BundleConfig::create(ExampleBundle::class)\r\n ->setLoadAfter([ContaoCoreBundle::class]),\r\n ];\r\n }\r\n\r\n public function getRouteCollection(LoaderResolverInterface $resolver, KernelInterface $kernel): RouteCollection|null\r\n {\r\n // …\r\n }\r\n}\r\n```\r\n\r\n~in the Contao Manager Plugin of your bundle, as the routes will be loaded in reverse order. Thus the `contao_backend_fallback` should only ever appear after every other (regular) route.~\r\n\r\n~@veronikaplenta may be your Contao Manager Plugin was not correct after all? Or do you have dynamically loaded routes (via CMF router) for the back end?~\r\n\r\n// never mind - the routes order depends on the (reverse) Contao Manager _Plugin_ order (which can be influenced via the `DependentPluginInterface`).\r\n\r\nNevertheless, it does not hurt to give the `contao_backend_fallback` a lower priority I suppose.\n\nCommits\n-------\n\n0cd607a5 backport #7222 and #7223 to Contao 4.13","shortMessageHtmlLink":"Backport 'Set a low priority for the back end fallback route' (see #7224"}},{"before":"4b9ce8303e23d633c9d397476db487499fe05197","after":"ae5da0321efa59264a4b6ae0e9046104f9cc4584","ref":"refs/heads/4.13","pushedAt":"2024-05-23T09:05:07.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"leofeyer","name":"Leo Feyer","path":"/leofeyer","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1192057?s=80&v=4"},"commit":{"message":"Check the cookie headers in the `isSessionEmpty()` method (see #7213)\n\nDescription\n-----------\n\nAttempt to fix #7167\n\nCommits\n-------\n\n5a0e9fa9 Check cookie headers for empty session check\n7d0a9ddf Same check for the MakeResponsePrivateListener","shortMessageHtmlLink":"Check the cookie headers in the isSessionEmpty() method (see #7213)"}},{"before":"58352cf86a41e267032d1c4fb8e0671ae1d70bbd","after":"c8e1d2553a41ffc8e228107cb9a35c69a5200eac","ref":"refs/heads/5.x","pushedAt":"2024-05-22T10:06:24.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"leofeyer","name":"Leo Feyer","path":"/leofeyer","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1192057?s=80&v=4"},"commit":{"message":"Render widget groups in the back end with CSS grid (see #7087)\n\nDescription\n-----------\n\nReviving #2053 with this for Contao ^5.3 and the new introduced classes (w25, w33, w50, w66, w75).\r\nCould be merged with additional changes and would be BC-compatible due to the `widget-group` wrapper.\r\n\r\nKeep in mind this is the reworked CSS-Grid based on @m-vo's solution for the backend widgets as discussed in the contao call for #1024.\r\n\r\n___\r\n\r\n#### Rewrite\r\n\r\nAlso grouped most media-queries so it's mobile first (not the split-button tho, doesn't make sense for that one)\r\n\r\n___\r\n\r\n#### Additional classes\r\n\r\nIntrocuded `.w16` on that occasion\r\n\r\n___\r\n\r\n#### Custom properties\r\n\r\nFollowing custom properties were added:\r\n\r\n| Custom property | Description |\r\n| :- | :- |\r\n| `--widget-col-amount` | Column amount of the backend-grid
_(Defaults to 12)_ |\r\n| `--widget-cols` | Amount of space that this takes per row
_(Can be used to create more specific widget classes)_ |\r\n| `--widget-gap-rows` | Row gap for widget-group container |\r\n| `--widget-gap-cols` | Column gap for widget-group container |\n\nCommits\n-------\n\ndf706f1b Rewrite #2053 for Contao 5.3 (5.x)\n13ff3508 Mobile and tablet styles for grid widgets\n67d15bd7 Revert editorConfig\n8524095b Add a size range for grid template columns\n84ca874f Update grid-layout\nb8fab3fb Use `grid-column-end` for widget cols\nabd07102 Rebuild the assets\n608b93e0 Use custom properties for backend widgets and introduce `w16`\n87c308d2 Mobile first + CS\nef4799ae Update widget layout\n1ec35096 Revert the unrelated changes\n5c0d8862 Consider more classes for backwards compatibility\n937c34bb Run the tools\n8ab3b5a4 Use `align-items: center` instead of `.m12`\n00c35459 Use `align-items: center` instead of `.m12`\n0e6e8ff1 Consider `m12` for backwards compatibility\n0ad58fbc Remove unnecessary margins for `.tl_checkbox`\nc0f6333d Rebuild the assets\n\nCo-authored-by: leofeyer <1192057+leofeyer@users.noreply.github.com>","shortMessageHtmlLink":"Render widget groups in the back end with CSS grid (see #7087)"}},{"before":"5c6558a2572b4682c6a562edd7098d4684c62556","after":"4b9ce8303e23d633c9d397476db487499fe05197","ref":"refs/heads/4.13","pushedAt":"2024-05-21T15:48:04.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"leofeyer","name":"Leo Feyer","path":"/leofeyer","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1192057?s=80&v=4"},"commit":{"message":"Store the referrer by default in `backend` scope (see #7227)\n\nDescription\n-----------\n\n#7190\r\n\r\nThis implements my opt-out suggestion from https://github.com/contao/contao/issues/7190#issuecomment-2094788128.\r\n\r\nAny back end route will now store the referrer by default - but you can opt-out via `_store_referrer: false` in your route defaults/attributes.\r\n\r\n/cc @ameotoko\n\nCommits\n-------\n\ncadf65a3 Always store referrer for backend _scope\n0cfb6ec2 Make the configuration explicit\n\nCo-authored-by: leofeyer <1192057+leofeyer@users.noreply.github.com>","shortMessageHtmlLink":"Store the referrer by default in backend scope (see #7227)"}},{"before":"62a636e0759ba7d105d1c18de7aca4ef72b67e3a","after":"def182a6ed743899948606d35c6098faa8857ffa","ref":"refs/heads/5.3","pushedAt":"2024-05-17T12:19:59.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"leofeyer","name":"Leo Feyer","path":"/leofeyer","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1192057?s=80&v=4"},"commit":{"message":"Correctly set the status code of the fallback route to 404 (see #7223)\n\nDescription\n-----------\n\nAs a follow up to #7222, this sets the status code of the fallback route correctly to 404 again.\n\nCommits\n-------\n\na0b5ee01 Set status code of fallback route back to 404\n62528187 Remove status code from attribute\ndb46a94f ECS\n1ac1d91f ECS\nf35aa0c7 ECS","shortMessageHtmlLink":"Correctly set the status code of the fallback route to 404 (see #7223)"}},{"before":"95ac936f88765af00e9c4d790708e70fc2f3e47e","after":"62a636e0759ba7d105d1c18de7aca4ef72b67e3a","ref":"refs/heads/5.3","pushedAt":"2024-05-17T11:32:34.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"leofeyer","name":"Leo Feyer","path":"/leofeyer","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1192057?s=80&v=4"},"commit":{"message":"Set a low priority for the back end fallback route (see #7222)\n\nDescription\n-----------\n\nFixes backend fallback route having a higher priority than custom backend routes\n\nCommits\n-------\n\n9e49ae24 Move backend fallbackroute to BackendController with priority\nfc795d37 Add return type","shortMessageHtmlLink":"Set a low priority for the back end fallback route (see #7222)"}},{"before":"ce0526391d402f0b053312248ca47e92c7e4ae35","after":"5c6558a2572b4682c6a562edd7098d4684c62556","ref":"refs/heads/4.13","pushedAt":"2024-05-16T07:37:01.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"leofeyer","name":"Leo Feyer","path":"/leofeyer","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1192057?s=80&v=4"},"commit":{"message":"Adjust the deprecation for custom template names (see #7181)\n\nDescription\n-----------\n\nFollow-up on #7145\r\n\r\nInstead of suggesting to use snake_case, the deprecation message now says `The template \"mod_article-custom--with-columns.html5\" uses a deprecated name that will no longer work in Contao 5.0. Name it \"mod_article_custom--with-columns.html5\" instead.`\n\nCommits\n-------\n\n92da3331 Adjust the deprecation for custom template names\nc326d775 Fix the tests","shortMessageHtmlLink":"Adjust the deprecation for custom template names (see #7181)"}},{"before":"f50847ea7d14a1172e535ce607f247022df85e5d","after":"95ac936f88765af00e9c4d790708e70fc2f3e47e","ref":"refs/heads/5.3","pushedAt":"2024-05-15T15:06:03.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"leofeyer","name":"Leo Feyer","path":"/leofeyer","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1192057?s=80&v=4"},"commit":{"message":"Make Twig 3.10.2 the minimum requirement (see #7214)\n\nDescription\n-----------\n\nThis pull request makes Twig 3.10.2 the minimum version and therefore does not need all the BC layers.\r\n\r\n@contao/developers Do we want to add this to Contao 5.3 or only in Contao 5.4?\n\nCommits\n-------\n\ne3f56025 Make Twig 3.10.2 the minimum requirement\n4e8915e4 Remove a Twig 3.8 BC layer\n04205f95 Clean up after the upstream merge\n10b05f0e Use EscaperExtension::escapeFilterIsSafe() instead of twig_escape_fil…\n025eadbd Do not use the internal EscaperExtension::escapeFilterIsSafe() method…\n6f7ccc2f Apply the suggestions from the pull request\n6dea4c84 Drop the \"testContaoUsesCorrectTwigFunctionSignatures\" test","shortMessageHtmlLink":"Make Twig 3.10.2 the minimum requirement (see #7214)"}},{"before":"276e0400f0b3eb1ab9bcd6a5e7b03b9b64319722","after":"58352cf86a41e267032d1c4fb8e0671ae1d70bbd","ref":"refs/heads/5.x","pushedAt":"2024-05-15T14:53:11.000Z","pushType":"push","commitsCount":12,"pusher":{"login":"leofeyer","name":"Leo Feyer","path":"/leofeyer","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1192057?s=80&v=4"},"commit":{"message":"Merge branch '5.3' into 5.x\n\n# Conflicts:\n#\t.github/workflows/pr.yml","shortMessageHtmlLink":"Merge branch '5.3' into 5.x"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks8AAAAEVQOHRwA","startCursor":null,"endCursor":null}},"title":"Activity · contao/contao"}