- Apr 12, 2024
-
-
Christian Kuhn authored
New version phpdocumentor/reflection-docblock:5.4.0 changed the signature of DocBlockFactory::createInstance(), which now points out a misuse in extbase. The patch changes the instantiation and avoids calling registerTagHandler() since this can and should be hand over to createInstance() directly. Resolves: #103614 Releases: main, 12.4 Change-Id: I344ef7df23dedd950c2775fe2fab93f7bb808786 Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/83751 Tested-by:
Benni Mack <benni@typo3.org> Tested-by:
Christian Kuhn <lolli@schwarzbu.ch> Reviewed-by:
Christian Kuhn <lolli@schwarzbu.ch> Tested-by:
Stefan Bürk <stefan@buerk.tech> Tested-by:
core-ci <typo3@b13.com> Reviewed-by:
Stefan Bürk <stefan@buerk.tech> Reviewed-by:
Benni Mack <benni@typo3.org>
-
- Apr 09, 2024
-
-
Benni Mack authored
Change-Id: I0e897680df27e5380344f4436a7db7a6085d0688 Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/83717 Reviewed-by:
Benni Mack <benni@typo3.org> Tested-by:
core-ci <typo3@b13.com> Tested-by:
Benni Mack <benni@typo3.org>
-
Benni Mack authored
Change-Id: Ibd990830d7ad9d43707be802c6a24a1388589d18 Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/83716 Tested-by:
Benni Mack <benni@typo3.org> Reviewed-by:
Benni Mack <benni@typo3.org>
-
- Apr 07, 2024
-
-
Christian Kuhn authored
The backend uses request GET/POST parameter 'id' as convention for "pages uid" at various places: Especially the BackendModuleValidator checks for this parameter early, to deny access to pages a BE user has no access to. This convention is a broken misuse: There is no such convention, and for instance the filelist module uses 'id' to transfer a selected "storage-uid:path". The BackendModuleValidator mitigates this by calling MU::canBeInterpretedAsInteger() before interpreting that parameter as a pages-uid. The extbase BackendConfigurationManager also uses 'id' to retrieve the FE TypoScript configuration for this "pages-uid", it however does not check with MU::canBeInterpretedAsInteger(), first. The patch adds a MU::canBeInterpretedAsInteger() check to extbase BackendConfigurationManager to be in-line with BackendModuleValidator, and adds `@todo` comments outlining the general misuse of the argument. Change-Id: I9b53a521bde4d3c145bfda2994d81dc4abf9c103 Resolves: #103540 Related: #96797 Releases: main, 12.4 Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/83678 Reviewed-by:
Christian Kuhn <lolli@schwarzbu.ch> Tested-by:
core-ci <typo3@b13.com> Tested-by:
Christian Kuhn <lolli@schwarzbu.ch>
-
- Apr 04, 2024
-
-
Stefan Bürk authored
To harden the Extbase LazyLoadingProxy implementation a new test has been added with #101400, which creates a proxy directly and using ObjectAccess::getProperty() to access a property of the not loadable child proxy class instance. Due to the use of magic methods`__get()` and `__isset()` methods in the `LazyLoadingProxy` class and some wrong assumptions of the Symfony PropertyAccessor simply null has been retrieved even if the concrete class could not been retrieved (property on a null value instead of an object). The property accessor is used under the hood within the Extbase internal ObjectAccess implementation. The Symfony Team recently declared that behaviour a bug and fixed it with releases `7.0.6` and `6.4.6` and now correctly throwing the `PropertyNotAccessibleException`. Failing nightlies with Symfony releases containing the bugfix revealed a incorrect test implementation, using a constructed and unrealistic construct. This change modifies the test to use a correct access on the LazyLoadingProxy without changing the scenario of the test. [1] https://github.com/symfony/symfony/releases/tag/v7.0.6 [2] https://github.com/symfony/symfony/releases/tag/v6.4.6 [3] https://github.com/symfony/symfony/pull/54194 Resolves: #103531 Related: #101400 Releases: main, 12.4 Change-Id: I5bdd52955af138c1e99b4492c9b5a43839c743cf Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/83658 Reviewed-by:
Stefan Bürk <stefan@buerk.tech> Tested-by:
core-ci <typo3@b13.com> Tested-by:
Stefan Bürk <stefan@buerk.tech>
-
- Mar 19, 2024
-
-
Benni Mack authored
Change-Id: I03729854c268a32ba072d891d4701d42ba5d365d Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/83517 Tested-by:
core-ci <typo3@b13.com> Reviewed-by:
Benni Mack <benni@typo3.org> Tested-by:
Benni Mack <benni@typo3.org>
-
Benni Mack authored
Change-Id: I981c2fe620a96ce344730b184ce60e7aa17a6aa4 Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/83516 Reviewed-by:
Benni Mack <benni@typo3.org> Tested-by:
Benni Mack <benni@typo3.org>
-
- Mar 12, 2024
-
-
Benni Mack authored
Change-Id: I1e193614b425f216d46a1f18a74172621af4fb2d Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/83411 Tested-by:
Benni Mack <benni@typo3.org> Tested-by:
core-ci <typo3@b13.com> Reviewed-by:
Benni Mack <benni@typo3.org>
-
Benni Mack authored
Change-Id: Ib2f4569e5ce62f5979fa9fb9a9d8188e93e83871 Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/83410 Tested-by:
Benni Mack <benni@typo3.org> Reviewed-by:
Benni Mack <benni@typo3.org>
-
- Mar 06, 2024
-
-
Daniel Dorndorf authored
The reset breaks the mapping if a file upload should be mapped as a property of an object. Additionally, parts of the ext:form fix introduced with #100362 have been removed again, since uploadedFiles are now available in arguments again. Resolves: #102271 Releases: 12.4 Change-Id: I19a45369216c63a2d67a67c05a4b5695a0d42b2a Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/81594 Tested-by:
Garvin Hicking <gh@faktor-e.de> Reviewed-by:
Stefan Bürk <stefan@buerk.tech> Tested-by:
Christian Kuhn <lolli@schwarzbu.ch> Reviewed-by:
Garvin Hicking <gh@faktor-e.de> Reviewed-by:
Torben Hansen <derhansen@gmail.com> Reviewed-by:
Christian Kuhn <lolli@schwarzbu.ch> Tested-by:
core-ci <typo3@b13.com> Tested-by:
Torben Hansen <derhansen@gmail.com> Tested-by:
Stefan Bürk <stefan@buerk.tech>
-
- Feb 26, 2024
-
-
Christian Kuhn authored
phpunit 11 deprecates annotations like `@test` and `@dataProvider` in favor of their attribute counterparts. We'll adapt core main & v12 to keep v12 backports simple. The patch takes care of Tests/Functional and Tests/FunctionalDeprecated. Script `Build/Scripts/splitFunctionalTests.php` is adapted to deal with annotations for CI to continue splitting functional tests into chunks. This also fixes detection in two test cases that had unexpected `@test` annotation combinations which were not properly detected before. > composer req --dev rector/rector > wget https://forge.typo3.org/attachments/download/38273/rector.php > find typo3/ -name \*Test.php | grep Tests/Functional | xargs bin/rector process > rm rector.php > composer rem --dev rector/rector Minor manual adaption in a few files plus cgl fixes. Also deny `@test` annotion in annotationChecker.php now to not introduce new occurences with other patches anymore. The script will receive another cleanup to look at further obsolete annotations. `@dataProvider` is currently still used in acceptance tests. Change-Id: I42705b57193a32db6fe17276d53476ecddcae835 Resolves: #103195 Related: #103180 Releases: main, 12.4 Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/83129 Tested-by:
Christian Kuhn <lolli@schwarzbu.ch> Tested-by:
core-ci <typo3@b13.com> Reviewed-by:
Christian Kuhn <lolli@schwarzbu.ch>
-
- Feb 23, 2024
-
-
Christian Kuhn authored
phpunit 11 deprecates annotations like `@test` and `@dataProvider` in favor of their attribute counterparts. We'll adapt core main & v12 to keep v12 backports simple. The patch takes care of Tests/Unit and Tests/UnitDeprecated, functional test need some additional quirk for the test splitter to continue to work. > composer req --dev rector/rector > wget https://forge.typo3.org/attachments/download/38273/rector.php > find typo3/ -name \*Test.php | grep Tests/Unit | xargs bin/rector process > rm rector.php > composer rem --dev rector/rector Minor manual adaption in ErrorHandlerTest.php and GeneralUtilityTest.php, and `runTests.sh -s cglGit`. Number of executed unit tests and unitDeprecated tests should stay the same. Change-Id: I63d2be40b8aa022f0918edd8dc1c360017316c46 Resolves: #103180 Releases: main, 12.4 Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/83091 Tested-by:
Christian Kuhn <lolli@schwarzbu.ch> Reviewed-by:
Christian Kuhn <lolli@schwarzbu.ch> Tested-by:
core-ci <typo3@b13.com>
-
Oliver Bartsch authored
A couple of tests are adding services to a container instance. Since the `ContainerInterface` does not define the used `set()` method, the tests are adjusted to explicitly require the symfony service container, which provides mentioned `set()` method. Resolves: #103183 Releases: main, 12.4 Change-Id: Icdb36a0ea871d79cd2c280d5f17a00569b49cb2b Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/83088 Tested-by:
core-ci <typo3@b13.com> Tested-by:
Oliver Bartsch <bo@cedev.de> Reviewed-by:
Oliver Bartsch <bo@cedev.de>
-
- Feb 21, 2024
-
-
sschreiberten authored
Resolves: #103170 Releases: main, 12.4, 11.5 Change-Id: Ic7f63f6c55b832af27e9e30a0711ba042df42aa3 Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/82987 Tested-by:
core-ci <typo3@b13.com> Tested-by:
Christian Kuhn <lolli@schwarzbu.ch> Reviewed-by:
Christian Kuhn <lolli@schwarzbu.ch>
-
- Feb 20, 2024
-
-
Benjamin Franzke authored
Adapt the service provider compiler to perform the same level of optimization as for the array-based callable syntax: We unroll the static closure into its static components (class name and method name). That means the effective generated dependency injection php code is the same as before with the gain of better DX. Note that first class closures can only be used where methods of the current scope are referenced, late state binding is not supported. AbstractServiceProvider therefore keeps using array-based callable syntax to be able to reference method scope of extending classes. Resolves: #103104 Releases: main, 12.4 Change-Id: I2f8ca7a69b1b69c51b1ff6bec384ddafe4492a41 Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/83033 Tested-by:
Benjamin Franzke <ben@bnf.dev> Reviewed-by:
Benjamin Franzke <ben@bnf.dev> Tested-by:
Stefan Bürk <stefan@buerk.tech> Reviewed-by:
Stefan Bürk <stefan@buerk.tech> Tested-by:
core-ci <typo3@b13.com>
-
- Feb 13, 2024
-
-
Oliver Hader authored
Change-Id: I706b9d7328f06eff3e7f7fb86ae3a3138615bfd4 Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/82966 Tested-by:
Oliver Hader <oliver.hader@typo3.org> Tested-by:
core-ci <typo3@b13.com> Reviewed-by:
Oliver Hader <oliver.hader@typo3.org>
-
Oliver Hader authored
Change-Id: Ibd1ea27ced45de785a6a417758b33a0461a97d97 Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/82965 Reviewed-by:
Oliver Hader <oliver.hader@typo3.org> Tested-by:
Oliver Hader <oliver.hader@typo3.org>
-
Benjamin Franzke authored
The encryptionKey is a secret that must never be sent within any request, therefore it is now dropped from the editing interface in "Configure Installation-Wide Options". Resolves: #103046 Releases: main, 13.0, 12.4, 11.5 Change-Id: I260a8a2e9af29908543dfe48ac3658d8c45cc440 Security-Bulletin: TYPO3-CORE-SA-2024-004 Security-References: CVE-2024-25119 Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/82948 Reviewed-by:
Oliver Hader <oliver.hader@typo3.org> Tested-by:
Oliver Hader <oliver.hader@typo3.org>
-
- Feb 07, 2024
-
-
Simon Schaufelberger authored
A new test case is added to cover the case when a TCA definition exists without `ctrl`. The test case has been added to the test extension `blog_example` which is not part of the public extension. Resolves: #103025 Releases: main, 12.4, 11.5 Change-Id: Iccd4428ad544fd6a94ed48ec97264b2945463d04 Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/82790 Tested-by:
Stefan Bürk <stefan@buerk.tech> Reviewed-by:
Stefan Bürk <stefan@buerk.tech> Tested-by:
core-ci <typo3@b13.com>
-
- Feb 02, 2024
-
-
Albrecht Köhnlein authored
The methods `logicalAnd()` and `logicalOr()` allow any number of constraints as parameters. The outdated PHPdoc comment still said "two". Resolves: #103007 Releases: main, 12.4 Change-Id: I582eb3f1c17fb3149a49a15649469794ce386149 Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/82739 Reviewed-by:
Stefan Bürk <stefan@buerk.tech> Tested-by:
core-ci <typo3@b13.com> Tested-by:
Stefan Bürk <stefan@buerk.tech>
-
- Jan 28, 2024
-
-
Oliver Klee authored
Make proper use of generics and align the API of our classes with that of the implemented interfaces `Iterator` and `ArrayAccess`. This helps extension developers use static analysis for their extensions. This is a pre-patch to introducing native types for the two classes. Resolves: #102958 Related: #102956 Releases: main, 12.4 Change-Id: I19f850264040246ef140c6958d20473ef4c9be28 Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/82620 Tested-by:
core-ci <typo3@b13.com> Reviewed-by:
Christian Kuhn <lolli@schwarzbu.ch> Tested-by:
Christian Kuhn <lolli@schwarzbu.ch>
-
- Jan 23, 2024
-
-
Oliver Klee authored
This change makes the parameter type annotations consistent with the property type annotations in the affected classes. This allows PHPStan to catch calls with invalid argument types. Resolves: #102887 Related: #102885 Releases: main, 12.4 Change-Id: I0cb1ab2ce5da1a40ae670d65e4997a456ef7a8c3 Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/82601 Reviewed-by:
Christian Kuhn <lolli@schwarzbu.ch> Tested-by:
Christian Kuhn <lolli@schwarzbu.ch> Tested-by:
core-ci <typo3@b13.com>
-
- Jan 22, 2024
-
-
Christian Kuhn authored
Extbase BE modules suffer from the conceptual mistake of using FE TypoScript for configuration. Modules not in page context pick the first root template in the page tree as TS entry point. The patch changes this awful handling to also use the attached site object for this page to substitute site settings used as constants in TS correctly. Resolves: #102452 Related: #97816 Releases: main, 12.4 Change-Id: I24e1e814cd20fc4999311d4f0068fb51818ad611 Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/82558 Tested-by:
core-ci <typo3@b13.com> Tested-by:
Christian Kuhn <lolli@schwarzbu.ch> Reviewed-by:
Christian Kuhn <lolli@schwarzbu.ch>
-
- Jan 16, 2024
-
-
Oliver Hader authored
Change-Id: I60ef2b390e55d5544f599d82f8c71b64093ede8b Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/82467 Tested-by:
core-ci <typo3@b13.com> Tested-by:
Oliver Hader <oliver.hader@typo3.org> Reviewed-by:
Oliver Hader <oliver.hader@typo3.org>
-
Oliver Hader authored
Change-Id: Id818722727dd70ecccf819231901c8ba2946049f Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/82466 Reviewed-by:
Oliver Hader <oliver.hader@typo3.org> Tested-by:
Oliver Hader <oliver.hader@typo3.org>
-
- Jan 12, 2024
-
-
Benni Mack authored
With TYPO3 v12, the SelectItem API was introduced to allow an associative array for registering items in TCA select. However, it was forgotten to be added in registerPlugin and addPlugin, which is now supported as well to be consistent around TYPO3 Core, and the new API. As an addition, Extbase plugins can now also add a description in order to have feature parity with Core API. Core plugins such as indexed search now utilize description and group, moving "EXT:indexed_search" plugin into the forms group for consistency reasons. Resolves: #102826 Related: #99739 Releases: main, 12.4 Change-Id: Ifcfc5f8ce482fab3203fe6a9591cc152d0a4261a Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/82390 Tested-by:
Benni Mack <benni@typo3.org> Tested-by:
core-ci <typo3@b13.com> Reviewed-by:
Benni Mack <benni@typo3.org>
-
- Jan 04, 2024
-
-
Benni Mack authored
PHP-CS-Fixer rule `array_indentation` is activated to have consistent indentation of arrays. In addition, a full run of php-cs-fixer without caches shows also affected areas where comments did not apply properly. Resolves: #102753 Releases: main, 12.4, 11.5 Change-Id: I759149606c4b042f1ac4329d4f5b7166d591456b Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/82334 Tested-by:
core-ci <typo3@b13.com> Reviewed-by:
Benni Mack <benni@typo3.org> Tested-by:
Benni Mack <benni@typo3.org>
-
Benni Mack authored
This change enables Symfony 7 in addition to symfony 6 in TYPO3. Symfony7 requires PHP 8.2, thus is not installed by default for the time being, as this change is also allowed for TYPO3 v12 support when running with PHP 8.2 and composer. Used commands: composer req -W \ "symfony/config:^6.4 || ^7.0" \ "symfony/console:^6.4 || ^7.0" \ "symfony/dependency-injection:^6.4 || ^7.0" \ "symfony/doctrine-messenger:^6.4 || ^7.0" \ "symfony/expression-language:^6.4 || ^7.0" \ "symfony/filesystem:^6.4 || ^7.0" \ "symfony/finder:^6.4 || ^7.0" \ "symfony/http-foundation:^6.4 || ^7.0" \ "symfony/mailer:^6.4 || ^7.0" \ "symfony/messenger:^6.4 || ^7.0" \ "symfony/mime:^6.4 || ^7.0" \ "symfony/options-resolver:^6.4 || ^7.0" \ "symfony/property-access:^6.4 || ^7.0" \ "symfony/property-info:^6.4 || ^7.0" \ "symfony/rate-limiter:^6.4 || ^7.0" \ "symfony/routing:^6.4 || ^7.0" \ "symfony/uid:^6.4 || ^7.0" \ "symfony/var-dumper:^6.4 || ^7.0" \ "symfony/yaml:^6.4 || ^7.0" composer req --dev -W \ "codeception/codeception:^5.0.13" \ "codeception/module-filesystem:^3.0.1" \ "friendsofphp/php-cs-fixer:^3.46" \ "symfony/translation:^6.4 || ^7.0" Resolves: #102746 Releases: main, 12.4 Change-Id: I6bbbfb0bc6e26c00fba0010234b5c8b698cf0a81 Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/82314 Tested-by:
core-ci <typo3@b13.com> Tested-by:
Benni Mack <benni@typo3.org> Reviewed-by:
Benni Mack <benni@typo3.org>
-
- Dec 13, 2023
-
-
Nikita Hovratov authored
EU::configurePlugin tightly couples registration of controller actions and TypoScript generation for a frontend rendering definition. Furthermore, lib.contentElement is only defined in fluid_styled_content, which makes it an indirect requirement. This patch extracts the part for the controller action registration, so it can be used independently of fluid_styled_content. In addition, this new method expects the controller actions to have an array shape already. A converter method ensures compatibility for both string and array syntax. A concrete use-case for internal usage would be Content Blocks, as it would be possible to separately define a Content Block of type "Plugin" and in addition register controller actions for it. Resolves: #102643 Releases: main, 12.4 Change-Id: I74d84f54bdd399934b57b3e49e2209f62b5fda68 Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/82181 Reviewed-by:
Oliver Bartsch <bo@cedev.de> Tested-by:
Oliver Bartsch <bo@cedev.de> Tested-by:
core-ci <typo3@b13.com>
-
- Dec 12, 2023
-
-
Benni Mack authored
Change-Id: I05fb7181a26e6bc6cae3696fc037491e49f0892e Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/82177 Tested-by:
Benni Mack <benni@typo3.org> Tested-by:
core-ci <typo3@b13.com> Reviewed-by:
Benni Mack <benni@typo3.org>
-
Benni Mack authored
Change-Id: I4d979c9bdd1305a8bca8a2c36f70bc054d3d6ce3 Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/82176 Reviewed-by:
Benni Mack <benni@typo3.org> Tested-by:
Benni Mack <benni@typo3.org>
-
- Dec 08, 2023
-
-
Benni Mack authored
When pages use overlays, the special key "_PAGES_OVERLAY_UID" is used (PageRepository->getPageOverlay), for other pages doing overlays, the property "_LOCALIZED_UID" is used (PageRepository->getRecordOverlay). Extbase is setting the special property $_localizedUid in a Domain Model, based on the key "_LOCALIZED_UID" in the DataMapper. The Typo3DbBackend now maps the _PAGES_OVERLAY_UID onto the _LOCALIZED_UID in order to have Extbase deal with language overlays in pages as well. Resolves: #88951 Releases: main, 12.4 Change-Id: If0b462d0373cf63fcdb78b75cc0f3381c85eee8d Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/82117 Tested-by:
core-ci <typo3@b13.com> Reviewed-by:
Benni Mack <benni@typo3.org> Tested-by:
Benni Mack <benni@typo3.org>
-
- Dec 06, 2023
-
-
Benni Mack authored
"DK" stands for "Denmark", whereas "da" stands for the Danish language. We should clean our mess up once and for all. Resolves: #102607 Releases: main, 12.4 Change-Id: Ib9927691a68bfc3e031224eba93a9a760c59b27a Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/82113 Tested-by:
Benni Mack <benni@typo3.org> Tested-by:
core-ci <typo3@b13.com> Reviewed-by:
Benni Mack <benni@typo3.org>
-
- Dec 05, 2023
-
-
Benni Mack authored
Within TYPO3's LanguageAspect there are four options for doing overlays: OVERLAYS_OFF -> fetch records in a specific language directly OVERLAYS_MIXED -> fetch default records + do overlays if available OVERLAYS_ON -> fetch default records + do overlays - discard if no overlay is available OVERLAYS_ON_WITH_FLOATING -> same as OVERLAYS_ON PLUS the records that have no l10n_parent. This change enables Extbase records to also be fetched when using LanguageAspect::OVERLAYS_ON_WIITH_FLOATING as floating records are the ones that do not have a l10n_parent set ("copy mode"). Resolves: #87160 Releases: main, 12.4 Change-Id: I021efe3761efa63860eac5522af82fc20f0fe53f Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/82024 Tested-by:
core-ci <typo3@b13.com> Tested-by:
Benni Mack <benni@typo3.org> Reviewed-by:
Benni Mack <benni@typo3.org>
-
Christian Kuhn authored
This bugfix enables the possibility to access _LOCAL_LANG values from TypoScript properly again via Extbase's LocalizationUtility, and thus for <f:translate> ViewHelpers as well again. This is what has changed under-the-hood: The TranslateViewHelper is now only a thin layer to Extbase's LocalizationUtility (as before), and only checks if a current request or Locale/languageKey is given, if a locale can be resolved. Everything else is then dispatched to the LocalizationUtility. <f:translate> is very clean now and has almost no further responsibility than to call LocalizationUtility::translate Instead of adding further LocalizationUtility magic, overriding of TypoScript is now enabled for any kind of plugin which hands in $extensionName. This is achieved by building proper Locale objects from the request which are then used to build the respective LanguageService. As it turned out after the 12.4.0 release, the "Locales" class is indeed the factory for creating a Locale, which is decoupled from the actual LanguageService (= label magic), the Locales factory receives a few create methods to make life easier for usage, which both f:translate AND LocalizationUtility receive, making their parts much smaller. Further work will dissolve the usage of the Configuration Manager of Extbase, but this won't happen in v12 anymore. Resolves: #100759 Releases: main, 12.4 Change-Id: Ifcad2ec590746e96066a96f314500bd50e9b4695 Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/82023 Tested-by:
core-ci <typo3@b13.com> Reviewed-by:
Benni Mack <benni@typo3.org> Tested-by:
Benni Mack <benni@typo3.org>
-
- Dec 04, 2023
-
-
Benni Mack authored
Since TYPO3 v12.4, TYPO3 uses locales such as "de_DE" or "de-AT" in Site Configuration natively. In order to resolve the "locale dependencies" natively, a new Locale object needs to be created be the "Locales" factory class. This is needed to check for "de_AT.locallang.xlf" and falling back to "de.locallang.xlf" in a multi-step mode. This change adapts one place in Extbase's LocalizationUtility where a new Locale object was previously instantiated via new Locale() instead of using the "Locales" class which deals with all dependencies (incl. manually defined dependencies) directly there. A new comment is added to explain this inside the constructor of Locale. In addition, some more tests are added (including the ones that did not work before), as well as an example that it does not matter if the file is called "de-AT.locallang.xlf" (with a hyphen) or "de_CH.locallang.xlf" (with an underscore) Resolves: #102579 Related: #101710 Releases: main, 12.4 Change-Id: Id51082e75cf635bbe3cbdfc906dc2a7442ab06af Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/82019 Tested-by:
core-ci <typo3@b13.com> Reviewed-by:
Benni Mack <benni@typo3.org> Tested-by:
Benni Mack <benni@typo3.org>
-
- Nov 30, 2023
-
-
Benni Mack authored
This changes the behaviour of config.sendCacheHeaders = 1. When a non-cacheable option is used, the HTTP Response Headers for ensuring that a response should never be cached (that is Cache-Control: private, no-store) should be sent at any time, as it could contain sensitive information, regardless of the TypoScript option. The TypoScript option config.sendCacheHeaders is then only used to actually explicitly send the headers for a fully client-cacheable page (e.g. for a proxy), to explicitly allow the cached content to be stored for a defined amount of time. In addition, a lot of tests have been adapted to remove this option as it does not have any effect in the tests if the option is set. Resolves: #102445 Releases: main, 12.4 Change-Id: I603e73a114eb9668910484da7e9dc4e0e33e56ba Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/82016 Tested-by:
core-ci <typo3@b13.com> Reviewed-by:
Benni Mack <benni@typo3.org> Tested-by:
Benni Mack <benni@typo3.org>
-
- Nov 29, 2023
-
-
Benni Mack authored
This commit updates all Symfony components to version 6.4, as 6.3 ran out of support. Symfony 6.4 also marks an LTS release. Please see the upgrade document at [1]. Executed command: composer require \ symfony/config:^6.4 \ symfony/console:^6.4 \ symfony/dependency-injection:^6.4 \ symfony/doctrine-messenger:^6.4 \ symfony/expression-language:^6.4 \ symfony/filesystem:^6.4 \ symfony/finder:^6.4 \ symfony/http-foundation:^6.4 \ symfony/mailer:^6.4 \ symfony/messenger:^6.4 \ symfony/mime:^6.4 \ symfony/options-resolver:^6.4 \ symfony/property-access:^6.4 \ symfony/property-info:^6.4 \ symfony/rate-limiter:^6.4 \ symfony/routing:^6.4 \ symfony/uid:^6.4 \ symfony/var-dumper:^6.4 \ symfony/yaml:^6.4 \ -W composer require --dev \ symfony/translation:^6.4 \ -W [1]: https://github.com/symfony/symfony/blob/6.4/UPGRADE-6.4.md Resolves: #102552 Releases: main, 12.4 Change-Id: I01f8fcedff74eac49a6901651b36584272f93b82 Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/82036 Tested-by:
core-ci <typo3@b13.com> Tested-by:
Andreas Kienast <a.fernandez@scripting-base.de> Reviewed-by:
Andreas Kienast <a.fernandez@scripting-base.de>
-
- Nov 25, 2023
-
-
madaxel authored
The request attribute 'frontend.typoscript' might not be initialized at the point of calling `$request->getAttribute` and will return null. Even if this indicates that something is trying to access extbase to early in the stack without taking care to bootstrap it properly, the core should avoid a fatal error at that point. Therefore, a access guard is added in the `getTypoScriptSetup` method of the `FrontendConfigurationManager` to mitigate the fatal php error. The added guard does not fix the invalid state at that point as this is impossible, so extensions messing around in that early state may now not fatal but left with an invalid and incomplete state anyway. Note: This will replaced with a dedicated meaningfull exception in v13 only in followup. Resolves: #102457 Releases: main, 12.4 Change-Id: I00ec0e95d3f5b92abf9ee5dabcf24369b5d6374b Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/81962 Reviewed-by:
Stefan Bürk <stefan@buerk.tech> Tested-by:
core-ci <typo3@b13.com> Tested-by:
Stefan Bürk <stefan@buerk.tech>
-
- Nov 23, 2023
-
-
moveDaniel authored
Releases: main, 12.4 Resolves: #102489 Change-Id: I2e0c190366bd052fdafa2d8b3e91ff7064c2465a Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/81941 Reviewed-by:
Christian Kuhn <lolli@schwarzbu.ch> Tested-by:
core-ci <typo3@b13.com> Tested-by:
Christian Kuhn <lolli@schwarzbu.ch>
-