- Sep 15, 2024
-
-
Elias Häußler authored
The TSFE->cacheExpires property was removed in #102422. This patch removes an existing property access and replaces it with its successor in PrepareTypoScriptFrontendRendering middleware. Resolves: #104975 Related: #102422 Releases: main Change-Id: I106209ac5aa896abdd7838f6922cbb20f8411106 Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/86105 Reviewed-by:
Anja Leichsenring <aleichsenring@ab-softlab.de> Tested-by:
Stefan Bürk <stefan@buerk.tech> Tested-by:
core-ci <typo3@b13.com> Reviewed-by:
Stefan Bürk <stefan@buerk.tech> Tested-by:
Anja Leichsenring <aleichsenring@ab-softlab.de>
-
Benni Mack authored
Instead of config.sendCacheHeaders which might have your users see the same content for a long time, it is recommended to use config.sendCacheHeadersForSharedCaches = auto instead, because this now sends the following HTTP Header: Cache-Control: max-age=0, s-maxage=12345 where as s-maxage is the number of seconds how long the proxy / CDN is allowed to cache, while the browser/client should never cache this. This way, the proxy can decide on how long to cache things. See: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Cache-Control Resolves: #104914 Releases: main Change-Id: If121df42b22dd0027a8fd17e5bc434c4e67e612a Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/86007 Reviewed-by:
Stefan Bürk <stefan@buerk.tech> Tested-by:
Benni Mack <benni@typo3.org> Reviewed-by:
Benni Mack <benni@typo3.org> Tested-by:
Stefan Bürk <stefan@buerk.tech> Reviewed-by:
Benjamin Franzke <ben@bnf.dev> Tested-by:
core-ci <typo3@b13.com> Tested-by:
Benjamin Franzke <ben@bnf.dev>
-
- Sep 14, 2024
-
-
Sascha Nowak authored
A new API has been introduced to collect cache tags and their lifetime during frontend rendering. This API is used in the core to collect cache tags from page cache and content object cache. The API is implemented as a new PSR-7 request attribute `frontend.cache.collector` to remove the dependency from TSFE. Every cache tag has a lifetime. The minimum lifetime is calculated from all given cache tags. API users don't have to deal with it individually. The default lifetime for a cache tag is 86400 seconds (24 hours). The current TSFE api is deprecated in favor of the new API as the current API implementation does not allow to set a lifetime and extension authors have to workaround it. The TSFE api will be removed with the next major version. The frontend employs the following strategy: A relatively early middleware adds an empty new cacheDataCollector instance as attribute to request. Extensions rendering code based on database records can then add cache tags to this attribute. The FE rendering adds the final cache content, the middleware then compiles the final cache entries and triggers their persistence. There is an additional event `AddCacheTagEvent` the middleware listens to. It allows adding cache tags at places where the request is not available. This is a tribute to technical debt that can not be avoided at the moment. That event is however marked `@internal` and may vanish later. Resolves: #102422 Releases: main Change-Id: Ice7b3b8aba7c4df3e48d3895d6388f5641fdad63 Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/81801 Tested-by:
Torben Hansen <derhansen@gmail.com> Tested-by:
Benjamin Franzke <ben@bnf.dev> Reviewed-by:
Stefan Bürk <stefan@buerk.tech> Reviewed-by:
Benjamin Franzke <ben@bnf.dev> Reviewed-by:
Christian Kuhn <lolli@schwarzbu.ch> Reviewed-by:
Torben Hansen <derhansen@gmail.com> Tested-by:
Stefan Bürk <stefan@buerk.tech> Tested-by:
Guido Schmechel <guido.schmechel@brandung.de> Tested-by:
Christian Kuhn <lolli@schwarzbu.ch> Tested-by:
core-ci <typo3@b13.com> Reviewed-by:
Guido Schmechel <guido.schmechel@brandung.de> Reviewed-by:
Benni Mack <benni@typo3.org> Tested-by:
Sascha Nowak <typo3@saschanowak.me> Reviewed-by:
Sascha Nowak <typo3@saschanowak.me>
-
- Sep 13, 2024
-
-
Benni Mack authored
Since the removal of CSS Styled Content in TYPO3 v8, the usage for the DB fields in tt_content: - Menu block title [accessibility_title] - Add link to bypass navigation block [accessibility_bypass] - Link text to bypass navigation block [accessibility_bypass_text] have been unused, and are not needed anymore. If someone still uses them with CSS Styled Content, they need to add the fields and the TCA definitions to their own schema again. Resolves: #101535 Releases: main Change-Id: Ia841d700c5cf48eefc43b277edcec2a5ff3dde71 Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/85933 Tested-by:
core-ci <typo3@b13.com> Reviewed-by:
Jasmina Ließmann <minapokhalo+typo3@gmail.com> Reviewed-by:
Christian Kuhn <lolli@schwarzbu.ch> Reviewed-by:
Benni Mack <benni@typo3.org> Tested-by:
Jasmina Ließmann <minapokhalo+typo3@gmail.com> Tested-by:
Christian Kuhn <lolli@schwarzbu.ch> Tested-by:
Benni Mack <benni@typo3.org>
-
- Sep 11, 2024
-
-
Oliver Bartsch authored
The RecordInterface is extended to require implementations to implement the `getRawRecord()` and `getSystemProperties()` methods as well as the PSR-11 `ContainerInterface`. This allows to change RecordFactory's `createRecord()` method to return the interface instead of the `Record` object. This will come in handy e.g. for the already existing `Page` object, which can now be used without extending `Record`. By using the `ContainerInterface` we allow access to the record and its properties via the has() and get() methods, which is supported since Fluid 4.0: https://github.com/TYPO3/Fluid/issues/1001. Resolves: #104859 Releases: main Change-Id: Ib8d20dc4eea343bf1c2160dbab6d4301930792ee Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/85925 Reviewed-by:
Benni Mack <benni@typo3.org> Tested-by:
Oliver Bartsch <bo@cedev.de> Tested-by:
Benjamin Franzke <ben@bnf.dev> Reviewed-by:
Benjamin Franzke <ben@bnf.dev> Tested-by:
Benni Mack <benni@typo3.org> Reviewed-by:
Oliver Bartsch <bo@cedev.de>
-
Jochen Roth authored
Previously, it was possible to allow editors to modify colPos and CType in FormEngine via connected CEs. This has been changed when editing translated CEs, that CType and colPos cannot be changed anymore. An upgrade wizard is added to ensure that all translated CEs really contain the same colPos and CType values as their default language pendants. Both fields are now set to l10n_mode=exclude to avoid future inconsistencies. Resolves: #60357 Releases: main Change-Id: Id04636d8c131ce8fbc7c9a87d5fc13a6b406eec2 Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/85978 Tested-by:
André Buchmann <andy.schliesser@gmail.com> Tested-by:
core-ci <typo3@b13.com> Reviewed-by:
André Buchmann <andy.schliesser@gmail.com> Reviewed-by:
Oliver Bartsch <bo@cedev.de> Tested-by:
Oliver Bartsch <bo@cedev.de>
-
- Sep 10, 2024
-
-
Thomas Hohn authored
If the 'contentSecurityPolicies' value is not filled properly in the site configuration, the call to $site->getConfiguration()['contentSecurityPolicies'] will fail. The access should we guarded with a null coalescing operator. Resolves: #104873 Releases: main, 12.4 Change-Id: Ie49a25d8ca9a194629c4a389b17b299091d44031 Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/85977 Reviewed-by:
Garvin Hicking <gh@faktor-e.de> Tested-by:
Benni Mack <benni@typo3.org> Tested-by:
core-ci <typo3@b13.com> Tested-by:
Garvin Hicking <gh@faktor-e.de> Reviewed-by:
Benni Mack <benni@typo3.org>
-
Oliver Bartsch authored
Move TypolinkParameter to EXT:core and therefore remove a dependency from EXT:core to EXT:frontend. Resolves: #104869 Related: #104615 Releases: main Change-Id: I7474d31a722a4e27438461b8812e25299f0a72cb Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/85937 Tested-by:
core-ci <typo3@b13.com> Reviewed-by:
Benni Mack <benni@typo3.org> Reviewed-by:
Jochen Roth <rothjochen@gmail.com> Reviewed-by:
Oliver Bartsch <bo@cedev.de> Tested-by:
Oliver Bartsch <bo@cedev.de> Tested-by:
Benni Mack <benni@typo3.org> Tested-by:
Nikita Hovratov <nikita.h@live.de> Reviewed-by:
Nikita Hovratov <nikita.h@live.de> Tested-by:
Jochen Roth <rothjochen@gmail.com>
-
- Sep 06, 2024
-
-
Oliver Bartsch authored
This extracts most of the content types from the main tt_content file to dedicated configuration files in the TCA/Overrides/ directory. This allows a better handling and also paves the ways for a component based registration in the future. Resolves: #104838 Releases: main Change-Id: I1b1446a506aaa0774d70fdcdfdbcf466eff9a580 Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/85898 Reviewed-by:
Nikita Hovratov <nikita.h@live.de> Tested-by:
core-ci <typo3@b13.com> Tested-by:
Nikita Hovratov <nikita.h@live.de> Reviewed-by:
Oliver Bartsch <bo@cedev.de> Reviewed-by:
Benni Mack <benni@typo3.org> Tested-by:
Benni Mack <benni@typo3.org> Tested-by:
Oliver Bartsch <bo@cedev.de>
-
- Sep 05, 2024
-
-
Oliver Bartsch authored
The "script" typeicon definition is removed since no such CType exists. Resolves: #104830 Releases: main Change-Id: I6d733a3d87a916e616407bd9f7681ebf8bd03184 Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/85897 Tested-by:
Oliver Hader <oliver.hader@typo3.org> Reviewed-by:
Oliver Hader <oliver.hader@typo3.org> Tested-by:
Benni Mack <benni@typo3.org> Tested-by:
core-ci <typo3@b13.com> Reviewed-by:
Benni Mack <benni@typo3.org>
-
Nikita Hovratov authored
This change adds system fields - as defined in the ctrl section - of tt_content to the showitem field list automatically. This is either done based on palettes that already exist or adding the fields individually to the corresponding tabs. Tabs that are therefore added automatically are: * General tab at the beginning * Language tab including language fields * Access tab including hidden+access fields * Description tab including descriptionColumn In case the showitem of such type defines the "Extended" tab, it is added at the end. We do this for tt_content because we want a unified way of how FormEngine renders the fields. Resolves: #104814 Releases: main Change-Id: I69965fbc74ae2192151ad2617c1a88cf1eb2a987 Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/85859 Tested-by:
Nikita Hovratov <nikita.h@live.de> Tested-by:
Benni Mack <benni@typo3.org> Reviewed-by:
Benni Mack <benni@typo3.org> Reviewed-by:
Nikita Hovratov <nikita.h@live.de> Tested-by:
Oliver Bartsch <bo@cedev.de> Tested-by:
core-ci <typo3@b13.com> Reviewed-by:
Oliver Bartsch <bo@cedev.de>
-
- Aug 30, 2024
-
-
Christian Kuhn authored
After a long list of preparation and side patches, this change introduces a central ext:core ViewFactoryInterface plus a default implementation for fluid, and rolls it out. We established a sub section of a generic view for backend modules with ext:backend BackendViewFactory in TYPO3 v12 already. This worked out well. The patch picks this up with a global factory interface for all other use cases that need to deal with views. This ultimately allows instances to change any view rendered by any component by configuring the instance to inject a different ViewFactoryInterface implementation to some controller and let it return an ext:core ViewInterface that uses some different view implemenation like Twig or whatever floats your boat. This is also very helpful for headless implementations to transparently substitute casual html rendering with for instance a json result. The patch decouples fluid much better and obsoletes the custom fluid view implemen...
-
- Aug 28, 2024
-
-
Oliver Hader authored
+ new feature flag `security.frontend.reportContentSecurityPolicy`, to be used next to `security.frontend.enforceContentSecurityPolicy`, resulting in `Content-Security-Policy-Report-Only` and/or `Content-Security-Policy` HTTP headers + new `enforce` and `report` segments in `csp.yaml` site config + possibility to disable CSP for a particular site by either setting `active: false` in the `csp.yaml` site config + allows having the HTTP headers `Content-Security-Policy` and `Content-Security-Policy-Report-Only` side-by-side in the frontend Resolves: #101580 Resolves: #104549 Releases: main, 12.4 Change-Id: I8c1a8305702629eac1bfedddbecbc19b452fd500 Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/85632 Tested-by:
Benjamin Franzke <ben@bnf.dev> Reviewed-by:
Garvin Hicking <gh@faktor-e.de> Tested-by:
Oliver Hader <oliver.hader@typo3.org> Tested-by:
core-ci <typo3@b13.com> Tested-by:
Garvin Hicking <gh@faktor-e.de> Reviewed-by: ...
-
- Aug 27, 2024
-
-
Christian Kuhn authored
To reduce mocking and GeneralUtility instance tampering, a couple of error handling related tests are turned into functional tests. Also, a data provider case that misuses an unrelated class is removed. Resolves: #104755 Releases: main Change-Id: I0e33ec87a46d4c948a52388fc388cdd4e6780def Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/85801 Tested-by:
Garvin Hicking <gh@faktor-e.de> Tested-by:
Christian Kuhn <lolli@schwarzbu.ch> Reviewed-by:
Garvin Hicking <gh@faktor-e.de> Tested-by:
core-ci <typo3@b13.com> Reviewed-by:
Nikita Hovratov <nikita.h@live.de> Tested-by:
Nikita Hovratov <nikita.h@live.de> Reviewed-by:
Christian Kuhn <lolli@schwarzbu.ch>
-
Christian Kuhn authored
Resolves: #104754 Releases: main Change-Id: Id1164684fcbcf2bc1bdaa2dbbe74f73d2c608fb3 Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/85800 Tested-by:
Christian Kuhn <lolli@schwarzbu.ch> Reviewed-by:
Garvin Hicking <gh@faktor-e.de> Tested-by:
Nikita Hovratov <nikita.h@live.de> Tested-by:
Garvin Hicking <gh@faktor-e.de> Reviewed-by:
Nikita Hovratov <nikita.h@live.de> Tested-by:
core-ci <typo3@b13.com> Reviewed-by:
Christian Kuhn <lolli@schwarzbu.ch>
-
Christian Kuhn authored
Some setUp() code is not triggered and thus obsolete. Resolves: #104747 Releases: main Change-Id: I72099d5d09bf36f83c381f3e12415a73e4190e56 Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/85791 Reviewed-by:
Stefan Bürk <stefan@buerk.tech> Tested-by:
Garvin Hicking <gh@faktor-e.de> Tested-by:
core-ci <typo3@b13.com> Reviewed-by:
Christian Kuhn <lolli@schwarzbu.ch> Tested-by:
Christian Kuhn <lolli@schwarzbu.ch> Tested-by:
Stefan Bürk <stefan@buerk.tech> Reviewed-by:
Garvin Hicking <gh@faktor-e.de>
-
Benni Mack authored
What does it do? When creating a record object out of a database row (via the RecordFactory), the Record object now holds enriched values for fields where the content is "known" based on TCA / Schema API. This is especially relevant for records with possible relations, for field types such as "type=group", "type=select" with foreign_table set and "type=inline" as an example. The main purpose for this relation enriching is rendering of the backend page module and content in frontend, but it can be used for any kind of TCA-based record. It also works recursively and with circular dependencies thanks to the RecordIdentityMap. In order to avoid any problems with large amounts of data, an approach of "Lazy+Greedy Fetching" was chosen. How does this approach work under the hood? As an example, we load 10 content elements on a page (1 DB query) so we can render them. Step 1: Lazy Collections / RecordPropertyClosure RecordFactory filters out only the relevant fields and their values from a record's type. Now, the RecordFactory also checks for fields with their meaning and uses a different value for a field. Example: For a type=inline value, there was the number "5" as value (= 5 relations) available, now we know we need the relation records (as a collection) properly sorted resolved there as well. For this to work, the new RecordFieldTransformer creates LazyCollection objects or RecordPropertyClosure objects (for a 1:1/n:1 relation) which means that the DB query is not made (yet) but only called when the value is accessed for the first time ("lazy loading"). Step 2: Getting the related UID/Table Pairs The RecordIdentityMap now knows about the 10 Records from tt_content, as they have been created completely before handing it to the output rendering. There comes the fun part. As soon as the value (with a lazy closure) is accessed for the first time, the RelationResolver checks the RelationHandler to find the table / uids that we should resolve. In our case, we now know that our first content element has 5 relations to a DB table e.g. "tx_mycarousel_item" with UIDs 12,13,14,15,16. Thanks to the RelationHandler, we also have the proper sorting of these items. Step 3: A greedy database query to get the full DB rows So, for the first content element, we want the 5 complete, related DB rows. The RelationResolver now sends this query to the "GreedyDatabaseBackend" which uses a subquery to not only fetch the 5 DB rows, but ALL rows of this DB table that are on the same PID with 1 DB query (using subselects). It however only returns the 5 items, and keeps the other items in a runtime cache. At this point we have made 3 DB queries. Currently, we then do the language + workspace overlays. Step 4: The long way back The RelationResolver now has the full DB rows and sorts them. The RecordFieldTransformer builds Record / Collection objects out of it, checks if an object has been created already (via the IdentityMap) or creates new ones, utilizing again the Lazy approach from step 1 to ensure we only resolve the records when we need them. Responsibilities: - RecordFieldTransformer - knows what to do based on the Field Type - returns objects, never raw DB records - initializes the lazy collections / closure objects - RelationResolver - uses RelationHandler to resolve uids - knows and applies the sorting - GreedyDatabaseBackend - does overlays / enableFields The design decisions behind this approach: - We only build Record objects when they are requested explicitly - We distinguish the cardinality (1:1 / n:1 vs. 1:n) - We do overlays on a very end of the chain Kudos to Nikita Hovratov for creating the first draft of this approach here: https://review.typo3.org/c/Packages/TYPO3.CMS/+/83725 along with comprehensive tests. PS: In the mid-term, the RelationResolver could be based on the sys_refindex and minimize queries. Resolves: #103581 Related: #103783 Related: #104002 Releases: main Change-Id: I73d1f017c5f98115f7ad4ddd2634b7acf66d183c Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/85046 Tested-by:
Oliver Bartsch <bo@cedev.de> Reviewed-by:
Nikita Hovratov <nikita.h@live.de> Reviewed-by:
Oliver Bartsch <bo@cedev.de> Tested-by:
core-ci <typo3@b13.com> Tested-by:
Nikita Hovratov <nikita.h@live.de> Tested-by:
Benjamin Franzke <ben@bnf.dev> Reviewed-by:
Benjamin Franzke <ben@bnf.dev>
-
- Aug 20, 2024
-
-
Oliver Bartsch authored
Resolves: #104639 Releases: main, 12.4, 11.5 Change-Id: I74a0cd9e856283d26a382582cc5d6b8e99887cd4 Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/85694 Tested-by:
Andreas Kienast <a.fernandez@scripting-base.de> Tested-by:
Christian Kuhn <lolli@schwarzbu.ch> Reviewed-by:
Christian Kuhn <lolli@schwarzbu.ch> Reviewed-by:
Andreas Kienast <a.fernandez@scripting-base.de> Tested-by:
core-ci <typo3@b13.com> Reviewed-by:
Oliver Klee <typo3-coding@oliverklee.de>
-
Oliver Bartsch authored
Resolves: #104665 Related: #103783 Releases: main Change-Id: I60bb7561f25a0c25068064890ee5deb474c183e4 Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/85681 Reviewed-by:
Jochen Roth <rothjochen@gmail.com> Reviewed-by:
Christian Kuhn <lolli@schwarzbu.ch> Reviewed-by:
Garvin Hicking <gh@faktor-e.de> Reviewed-by:
Oliver Bartsch <bo@cedev.de> Tested-by:
Oliver Bartsch <bo@cedev.de> Tested-by:
Garvin Hicking <gh@faktor-e.de> Tested-by:
core-ci <typo3@b13.com> Tested-by:
Christian Kuhn <lolli@schwarzbu.ch> Tested-by:
Jochen Roth <rothjochen@gmail.com>
-
- Aug 15, 2024
-
-
Oliver Hader authored
Aims to combine disabling site-specific CSP with report-only mode later. This reverts commit acf70306. Reverts: #104549 Resolves: #104633 Releases: main, 12.4 Change-Id: I651f60d7b5cc24133801412c8f09b1efba98d3f4 Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/85646 Reviewed-by:
Garvin Hicking <gh@faktor-e.de> Tested-by:
Oliver Hader <oliver.hader@typo3.org> Reviewed-by:
Oliver Hader <oliver.hader@typo3.org> Tested-by:
Garvin Hicking <gh@faktor-e.de>
-
- Aug 14, 2024
-
-
Oliver Bartsch authored
This adds a new value object, containing the resolved parameters of a typolink. The object will be used as enriched value for TCA type "link" properties in the Record object. The enrichment will be added with #103581. Since this value is then passed to the view instead of the plain typolink string, the TypoLink ViewHelpers do also support the new object. Resolves: #104615 Related: #103581 Releases: main Change-Id: Ifbac6d44ed05d5d793b951b38229891d6b219eb4 Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/85619 Reviewed-by:
Nikita Hovratov <nikita.h@live.de> Tested-by:
Oliver Bartsch <bo@cedev.de> Tested-by:
core-ci <typo3@b13.com> Reviewed-by:
Oliver Bartsch <bo@cedev.de> Tested-by:
Jochen Roth <rothjochen@gmail.com> Reviewed-by:
Jochen Roth <rothjochen@gmail.com> Tested-by:
Nikita Hovratov <nikita.h@live.de>
-
Oliver Hader authored
This change allows to disable CSP headers for a particular site configured in `sites/<my-site>/csp.yaml` by using the assignment `enable: false`. Resolves: #104549 Releases: main, 12.4 Change-Id: I9e17b5658610e5d47915a5e45ca6a33a870e8d76 Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/85591 Reviewed-by:
Stefan Bürk <stefan@buerk.tech> Reviewed-by:
Garvin Hicking <gh@faktor-e.de> Tested-by:
Oliver Hader <oliver.hader@typo3.org> Tested-by:
Georg Ringer <georg.ringer@gmail.com> Tested-by:
Garvin Hicking <gh@faktor-e.de> Reviewed-by:
Georg Ringer <georg.ringer@gmail.com> Reviewed-by:
Oliver Hader <oliver.hader@typo3.org> Tested-by:
core-ci <typo3@b13.com> Tested-by:
Stefan Bürk <stefan@buerk.tech>
-
- Aug 09, 2024
-
-
Christian Kuhn authored
Younger phpunit come with a happy little feature to suppress E_DEPRECATED and E_USER_DEPRECATED errors: The attribute `#[IgnoreDeprecations]` makes a test not fail when such a deprecation is triggered by the test subject, even when failOnDeprecation=true is set in phpunit XML. Using the attribute has been recommended by phpunit maintainer Sebastian Bergmann. This allows us to give up on the current strategy of moving tests that test deprecated subjects to an own directory. This simplifies maintenance, makes patches that deprecate things more easy to review, and saves some CI jobs. During 'deprecation removal phase' at the beginning of new major branches, we now simply look up usages of the attribute to see what needs to be removed. The patch takes care of 'UnitDeprecated' tests by merging them back into 'Unit' and adding the attribute. It also adapts runTests.sh to remove the `-s unitDeprecated` test suite and adapts CI. 'FunctionalDeprecated' will follow with a separate patch. Resolves: #104582 Releases: main Change-Id: I44473b04b3fe800a6fdd4032c6b2bd7682810979 Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/85572 Tested-by:
Stefan Bürk <stefan@buerk.tech> Reviewed-by:
Simon Praetorius <simon@praetorius.me> Reviewed-by:
Andreas Kienast <a.fernandez@scripting-base.de> Tested-by:
Simon Praetorius <simon@praetorius.me> Reviewed-by:
Stefan Bürk <stefan@buerk.tech> Tested-by:
Andreas Kienast <a.fernandez@scripting-base.de> Tested-by:
core-ci <typo3@b13.com> Reviewed-by:
Christian Kuhn <lolli@schwarzbu.ch> Tested-by:
Christian Kuhn <lolli@schwarzbu.ch>
-
- Aug 06, 2024
-
-
Oliver Hader authored
Instead of having to use custom route aspect mappers, implementing `StaticMappableAspectInterface`, to avoid having `&cHash=` signatures being applied to the generated URL, variables now can be simply declared `static` in the corresponding route enhancer configuration. By using the new `static` route configuration directive, custom aspect mapper implementations can be avoided. However, static route variables are only applied for a particular variable name if no other aspect mapper is defined (those would take precedence) and if a companion `requirements` definition is given (should be restrictive, to reduce possible cache flooding scenarios). Example: routeEnhancers: Verification: type: Simple routePath: '/verify/{code}' static: code: true requirements: code: '[a-f0-9]{40}' Resolves: #93100 Releases: main Change-Id: I4a929c88622ec49fca92fc7699ea96bfa7565309 Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/74016 Tested-by:
Benni Mack <benni@typo3.org> Tested-by:
core-ci <typo3@b13.com> Reviewed-by:
Benni Mack <benni@typo3.org> Reviewed-by:
Georg Ringer <georg.ringer@gmail.com> Tested-by:
Georg Ringer <georg.ringer@gmail.com>
-
Christian Kuhn authored
Resolves: #104557 Releases: main, 12.4, 11.5 Change-Id: I1bea6d74fc444007c8787e0a642c86b35a7ccb90 Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/85534 Tested-by:
Wolfgang Wagner <wwagner@wwagner.net> Reviewed-by:
Christian Kuhn <lolli@schwarzbu.ch> Tested-by:
Benni Mack <benni@typo3.org> Reviewed-by:
Benni Mack <benni@typo3.org> Tested-by:
Christian Kuhn <lolli@schwarzbu.ch> Tested-by:
core-ci <typo3@b13.com> Tested-by:
Stefan Bürk <stefan@buerk.tech> Reviewed-by:
Stefan Bürk <stefan@buerk.tech>
-
- Jul 29, 2024
-
-
Thomas Hohn authored
In the RestoreRegisterContentObject::render method a call to array_pop is performed. The result is assigned to the variable $frontendController->register which has type array. However array_pop can return null, this patch add's a null coalesce operator to ensure that correct type. Resolves: #104495 Releases: main, 12.4, 11.5 Change-Id: I46efce10e4322ff3cd39b5a0eeafd1f768644e38 Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/85404 Reviewed-by:
Christian Kuhn <lolli@schwarzbu.ch> Tested-by:
Benni Mack <benni@typo3.org> Reviewed-by:
Benni Mack <benni@typo3.org> Tested-by:
core-ci <typo3@b13.com> Tested-by:
Christian Kuhn <lolli@schwarzbu.ch>
-
- Jul 25, 2024
-
-
Christian Kuhn authored
FluidTemplateContentObject has some magic to adapt the given request *if* the request is an extbase request already. This code is relatively obviously obsolete: Only extbase bootstrap creates extbase requests (and actually, the code *below* the lines changed by this patch in FluidTemplateContentObject, those will see a separate deprecation or removal patch, soon). So, when FluidTemplateContentObject is called for whatever reason with an extbase request, it has been created by a proper extbase bootstrap call, wich created a "correct" extbase request already. There is no need to tamper with this in FluidTemplateContentObject again. Note this wasn't the case with earlier TYPO3 versions where extbase requests were created within StandaloneView, a misuse we got rid off in v12. The patch removes these extbase request manipulations from FluidTemplateContentObject. Resolves: #104473 Related: #104472 Related: #104471 Related: #98377 Releases: main Change-Id: Id4fc202f140fe270e35259251ed052752c2c6ed0 Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/85348 Tested-by:
core-ci <typo3@b13.com> Reviewed-by:
Benni Mack <benni@typo3.org> Tested-by:
Benni Mack <benni@typo3.org> Reviewed-by:
Simon Praetorius <simon@praetorius.me> Reviewed-by:
Christian Kuhn <lolli@schwarzbu.ch> Tested-by:
Simon Praetorius <simon@praetorius.me> Tested-by:
Christian Kuhn <lolli@schwarzbu.ch>
-
- Jul 23, 2024
-
-
Georg Ringer authored
Provide a new type of static routes `assets` to expose assets shipped by extensions. Resolves: #101472 Releases: main Change-Id: I46d5b8af795b1037c6a3e2554454df6a6e7174ea Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/85268 Reviewed-by:
Georg Ringer <georg.ringer@gmail.com> Tested-by:
Benni Mack <benni@typo3.org> Tested-by:
Garvin Hicking <gh@faktor-e.de> Tested-by:
Georg Ringer <georg.ringer@gmail.com> Reviewed-by:
Benni Mack <benni@typo3.org> Tested-by:
core-ci <typo3@b13.com> Reviewed-by:
Garvin Hicking <gh@faktor-e.de>
-
- Jul 19, 2024
-
-
Oliver Bartsch authored
To prevent using the renderType for checking whether a column of SelectRelationFieldType is a single reference, we set the maxitems option to 1. This allows to keep existing functionality unmodified. Resolves: #104424 Releases: main Change-Id: I1190f6957e7351c79e23f2a313b3f4775ee130d0 Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/85286 Tested-by:
core-ci <typo3@b13.com> Tested-by:
Benni Mack <benni@typo3.org> Reviewed-by:
Georg Ringer <georg.ringer@gmail.com> Reviewed-by:
Benni Mack <benni@typo3.org> Tested-by:
Georg Ringer <georg.ringer@gmail.com>
-
- Jul 18, 2024
-
-
Oliver Bartsch authored
TextPreviewRenderer and TextpicPreviewRenderer extend the StandardContentPreviewRenderer while not implementing any custom functionality and are therefore now removed. Resolves: #104417 Releases: main Change-Id: Ia99c3751405f038dbdc57b531650d7657e4a83fc Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/85283 Reviewed-by:
Benni Mack <benni@typo3.org> Tested-by:
Oliver Bartsch <bo@cedev.de> Tested-by:
Benni Mack <benni@typo3.org> Reviewed-by:
Oliver Bartsch <bo@cedev.de> Tested-by:
core-ci <typo3@b13.com> Tested-by:
Jochen Roth <rothjochen@gmail.com> Reviewed-by:
Jochen Roth <rothjochen@gmail.com>
-
- Jul 15, 2024
-
-
Oliver Bartsch authored
Resolves: #104385 Related: #104367 Releases: main Change-Id: I3584b57fb021bc8e90d945250a00ad2968afafad Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/85250 Tested-by:
core-ci <typo3@b13.com> Reviewed-by:
Benni Mack <benni@typo3.org> Tested-by:
Benni Mack <benni@typo3.org> Tested-by:
Georg Ringer <georg.ringer@gmail.com> Reviewed-by:
Georg Ringer <georg.ringer@gmail.com>
-
- Jul 12, 2024
-
-
Nikita Hovratov authored
The maximum value for "cols" is 50. Using higher values has no effect. See AbstractFormElement->maxInputWidth Resolves: #104381 Releases: main Change-Id: Ifd1a5931706f75ec438794b92fb3fe0dcc3c426e Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/85246 Tested-by:
Oliver Bartsch <bo@cedev.de> Reviewed-by:
Christian Kuhn <lolli@schwarzbu.ch> Tested-by:
Christian Kuhn <lolli@schwarzbu.ch> Tested-by:
core-ci <typo3@b13.com> Reviewed-by:
Oliver Bartsch <bo@cedev.de>
-
Benni Mack authored
When loading Record objects, and we use Relations in one of the next patches, the main issue will be that we might run in recursions when fetching relations. This can be resolved by re-using created Record objects by utilizing the Identity Map pattern (https://en.wikipedia.org/wiki/Identity_map_pattern) which keeps track (context-wise) of the loaded records. In a way to unify this logic, the "RecordRememeberer" for Page Module has now been removed as this is the exact purpose of the Identity Map. The next step is to actually utilize the Record API in the Page module replacing arrays there completely. Resolves: #104367 Related: #103783 Releases: main Change-Id: Idd56a49c421fd722ed35eedded365420a7479bea Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/85047 Reviewed-by:
Benni Mack <benni@typo3.org> Tested-by:
core-ci <typo3@b13.com> Reviewed-by:
Christian Kuhn <lolli@schwarzbu.ch> Tested-by:
Benni Mack <benni@typo3.org> Reviewed-by:
Oliver Hader <oliver.hader@typo3.org> Tested-by:
Oliver Hader <oliver.hader@typo3.org> Tested-by:
Christian Kuhn <lolli@schwarzbu.ch>
-
- Jul 11, 2024
-
-
Benni Mack authored
This change adds a new fixture extension with a content element with a relation to an inline table. Resolves: #104369 Releases: main Change-Id: I777d5dbdebaad4f278bab2dc2b87ebd92f331515 Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/85227 Reviewed-by:
Christian Kuhn <lolli@schwarzbu.ch> Tested-by:
Benni Mack <benni@typo3.org> Tested-by:
core-ci <typo3@b13.com> Reviewed-by:
Stefan Bürk <stefan@buerk.tech> Tested-by:
Stefan Bürk <stefan@buerk.tech> Tested-by:
Christian Kuhn <lolli@schwarzbu.ch> Reviewed-by:
Benni Mack <benni@typo3.org>
-
Simon Schaufelberger authored
Add test coverage for GeneralUtility::getFilesInDir with sorting by mtime. Resolves: #103817 Releases: main Change-Id: I298f63fef0369cf2fefd0876628ca55a152947c9 Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/84190 Reviewed-by:
Georg Ringer <georg.ringer@gmail.com> Tested-by:
core-ci <typo3@b13.com> Tested-by:
Georg Ringer <georg.ringer@gmail.com> Reviewed-by:
Benni Mack <benni@typo3.org> Tested-by:
Benni Mack <benni@typo3.org>
-
- Jul 09, 2024
-
-
Daniel Siepmann authored
The menu generation must not reuse the page record from the current page but must use the data from the linked page. This got already fixed for #101883. But that fix didn't take into account that ->createLink() might throw an exception. This is now considered and the state is properly re- initialized also on exceptions. Resolves: #104335 Related: #103582 Related: #101883 Releases: main, 12.4 Change-Id: Ib4c1f1fba68a83dca32a9ffd7ee14c31cf60bab5 Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/85175 Tested-by:
Benni Mack <benni@typo3.org> Tested-by:
core-ci <typo3@b13.com> Reviewed-by:
Benni Mack <benni@typo3.org> Reviewed-by:
Christian Kuhn <lolli@schwarzbu.ch> Tested-by:
Christian Kuhn <lolli@schwarzbu.ch>
-
- Jul 06, 2024
-
-
Christian Kuhn authored
This patch adds a layer to the "load and create final TCA" process. When "base" TCA files in 'Configuration/TCA' define 'ctrl' capabilities like 'languageField=sys_language_uid', these fields need according 'columns' definitions. The core now adds default definitions of such columns if they do not exist after loading 'Configuration/TCA' files, and before loading 'Configuration/TCA/Overrides' files. Developers no longer need to define such columns and can rely on core adding them, if a capability is enabled in 'ctrl'. There are two advantages: First, it adds a level of control for these columns away from extensions to the core, which is good for future development in this area. Secondly, extension developers no longer need to take care of nasty configuration details of these columns and can remove lots of boilerplace TCA definitions that had to be maintained manually before. The patch shows this: About 6000 lines of TCA definitions can be removed. These columm...
-
- Jul 02, 2024
-
-
Benni Mack authored
Change-Id: Ia8a718c96803f84f558dc5bfab35b9559491a8c1 Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/85078 Reviewed-by:
Oliver Hader <oliver.hader@typo3.org> Tested-by:
Oliver Hader <oliver.hader@typo3.org>
-
Benni Mack authored
Change-Id: Ieb4da6a77ab6da4ad0149d6b3f7f91bafc9ae13c Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/85077 Tested-by:
Benni Mack <benni@typo3.org> Reviewed-by:
Benni Mack <benni@typo3.org>
-
Benni Mack authored
Change-Id: Idd321771d9772715595e7bbbf648fb16ead1de61 Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/85076 Reviewed-by:
Benni Mack <benni@typo3.org> Tested-by:
core-ci <typo3@b13.com> Tested-by:
Benni Mack <benni@typo3.org>
-