- Jan 24, 2024
-
-
Benjamin Franzke authored
The TYPO3 Backend URL is made configurable in order to enable optional protection against application admin interface infrastructure enumeration (WSTG-CONF-05). Both, frontend and backend requests are now handled by the PHP script `/index.php` to enable virtual admin interface URLs. The default TYPO3 Backend entrypoint path `/typo3` can be changed by specifying a custom URL path or domain name in `$GLOBALS['TYPO3_CONF_VARS']['BE']['entryPoint']`. This change requires web server adaption. A silent migration and according documentation for custom web server configurations is added. A deprecation layer (for non-adapted systems) is in place that rewrites the server environment variables passed to `/typo3/index.php` as if `/index.php` was used directly. This layer will be removed in TYPO3 v14. This change does not take assets into account, only routing is adapted. That means composer mode will use assets provided via _assets as before and TYPO3 classic mode will serve backend assets from /typo3/* even if another backend URL is used and configured. In composer mode there is an additional opt-out for the installation of the legacy entrypoint for that can be defined in composer.json: "extra": { "typo3/cms": { "install-deprecated-typo3-index-php": false } } The application flow is slightly adapted by moving common middlewares into a separate core middleware chain. This chain is dispatched by a distinct core HTTP application (which is invoked by index.php). These middlewares are suitable for proxy determination or generic access control – basically everything not needed for subrequests. The core HTTP request handler then decides whether the request is to be routed to the frontend or backend application. Frontend and backend appplications are still designed to work independently with a plain PSR-7 Server Request in order for sub requests from backend to frontend (or vice versa) to work. The following diagram outlines the new application workflow including flow of possible sub requests (not yet used from backend to frontend, but it shows how they are intended to be invoked): +-------------------+ | | | Core HTTP | | Application | | | +---------+---------+ | | v +---------+---------+ | | | Core HTTP | | Middlewares | | | +---------+---------+ | | v +---------+---------+ | | | Core HTTP | +-------------+ Request Handler +--------------+ | | | | | +-------------------+ | | | v v +--------+----------+ +---------+---------+ | | (Sub Request) | | | Frontend HTTP +<-------------+ | Backend HTTP | | Application +<-----------+ | | Application | | | | | | | +---------+---------+ | | +---------+---------+ | | | | | | | | v | | v +---------+---------+ | | +---------+---------+ | | | | | | | Frontend HTTP | | | | Backend HTTP | | Middlewares | | | | Middlewares | | | | | | | +---------+---------+ | | +---------+---------+ | | | | | | | | v | | v +---------+---------+ | | +---------+---------+ | | | | | | | Frontend HTTP | | | | Backend HTTP | | Request Handler | | | | Request Handler | | | | | | | +---------+---------+ | | +---------+---------+ | | | | | | | | v | | v +---------+---------+ | | +---------+---------+ | | | | | | | TypoScript | | | | Backend Route | | Frontend +------------+ | | Dispatcher | | Controller | | | | | | | +---------+---------+ +-------------------+ | | | | | v | +---------+---------+ | | | | | Backend | +------------+ Controller | | | +-------------------+ Commands executed: # For changed in https://github.com/TYPO3/testing-framework/pull/533 composer req --dev "typo3/testing-framework":"dev-main" Resolves: #87889 Releases: main Change-Id: I3c96d4d7c58f08ed302ee35eb75d28afbf77686a Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/74366 Reviewed-by:
Oliver Hader <oliver.hader@typo3.org> Reviewed-by:
Stefan Bürk <stefan@buerk.tech> Tested-by:
core-ci <typo3@b13.com> Tested-by:
Stefan Bürk <stefan@buerk.tech> Tested-by:
Christian Kuhn <lolli@schwarzbu.ch> Reviewed-by:
Christian Kuhn <lolli@schwarzbu.ch> Tested-by:
Oliver Hader <oliver.hader@typo3.org> Reviewed-by:
Benni Mack <benni@typo3.org> Tested-by:
Benni Mack <benni@typo3.org>
-
Oliver Bartsch authored
This introduces the new PSR-14 AfterFormDefinitionLoadedEvent, enabling extension authors to modify loaded form definitions. The Event is dispatched by the `FormPersistenceManager` after the form definition was loaded from either cache or the filesystem, just before being overridden by TypoScript. Resolves: #102865 Releases: main Change-Id: Ic6c6490cd6259a81f1579a48c891d611552dd99d Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/82513 Reviewed-by:
Nikita Hovratov <nikita.h@live.de> Reviewed-by:
Oliver Bartsch <bo@cedev.de> Tested-by:
Oliver Bartsch <bo@cedev.de> Tested-by:
Nikita Hovratov <nikita.h@live.de> Tested-by:
core-ci <typo3@b13.com>
-
Christian Kuhn authored
Having a getter here helps phpstorm find usages of TSFE more easily. Resolves: #102915 Releases: main Change-Id: Ie5538fc435ac8ea8f655c1206930d65faccb62c5 Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/82634 Tested-by:
core-ci <typo3@b13.com> Tested-by:
Benni Mack <benni@typo3.org> Tested-by:
Stefan Bürk <stefan@buerk.tech> Reviewed-by:
Stefan Bürk <stefan@buerk.tech> Reviewed-by:
Benni Mack <benni@typo3.org>
-
Andreas Kienast authored
This patch adds PHP types to all properties and methods within EXT:indexed_search. Resolves: #102914 Releases: main Change-Id: If3cb7fc8af53c4bbc02781546128d23f6f1c56d8 Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/82632 Reviewed-by:
Christian Kuhn <lolli@schwarzbu.ch> Tested-by:
core-ci <typo3@b13.com> Tested-by:
Christian Kuhn <lolli@schwarzbu.ch> Tested-by:
Benni Mack <benni@typo3.org> Reviewed-by:
Benni Mack <benni@typo3.org>
-
Stefan Bürk authored
TYPO3 v13 requires Doctrine DBAL 4 and will be subsequently updated. Doctrine DBAL 4 is shipping with a few breaking changes, where most breaking stuff is coped and handled by the TYPO3 core and placed in internal API implementation and wrappings. However, minor breaking things on extended and provided API's are included and requires proper adoption by extensions. * [1] `AbstractPlatform::getName()` has been removed and `instance of` checks are required to be used instead. TYPO3 adopted this removal in the extended platform classes and does not provide a b/c for it. * [2] Doctrine DBAL dropped support for older RDBMS version, aligned the Platform class extend chain and removed not-supported version for PostgreSQL and MariaDB. TYPO3 extended platform implementation are aligned and platform replacement in the replacement driver middleware modified. * [3] Doctrine DBAL switched the casing (renaming) of some of the Platform classes, where the new casing has already been used for the extended classes. Due to the fact that aliased `use` import statement has been used, adjusting these casing is minimized to these places. * [4] `Connection::lastInsertId()` no longer accepts a sequence name. TYPO3 core `Connection::getLastInsertId()` implementation is aligned to match this and core usages has been replaced with a pre-patch except one oversight which is done now. * [5] Doctrine DBAL introducing replacement methods for the removed methods `QueryBuilder::resetQueryParam()` and `resetQueryParams()`, which are replaced at required places. Methods are removed on TYPO3 QueryBuilder to be aligned with Doctrine DBAL. * [6] Doctrine DBAL made QueryBuilder's state internal and therefore removed the QueryBuilder methods `getQueryParts()`, `getQueryPart()`, `getType()` and `getState()` along with the public class constants. Methods are removed from the TYPO3 QueryBuilder to align here with Doctrine DBAL. TYPO3 requires access to this internal state, mainly for the Extbase ORM handling and the ContentObjectRenderer. This is solved by introducing a internal `ConcreteQueryBuilder` ensuring a state duplication and adding internal marked public getter to the outer TYPO3 QueryBuilder. * [7] Doctrine DBAL removed schema compare APIs not taking the DB connection into account and suggest to use connection aware comparator instead. `TYPO3\CMS\Install\Database\PermissionsCheck` is modified to respect this change. * [8] Doctrine DBAL removed table renaming by using the `TableDiff` object and not creating corresponding DDL statements anymore. To compensate for this, the already extended `TableDiff` object get the `new name` information reintroduced, and the renaming SQL DDL is directly created at the required place in `ConnectionMigrator`. * [9] Deprecated `SchemaDiff::toSql()` and `toSaveSql()` are replaced with `AbstractPlatform::getAlterSchemaSQL()`. * [10] TYPO3 SchemaMigrator, ConnectionMigrator and Comparator are modified to cope with some modifications in Doctrine DBAL 4. This leads to the requirement that additional normalisation from the MySQL variant (ext_tables.sql) towards the target platform. SQLite autoincrement normalization is moved from SchemaMigrator into the connection migrator and additional MySQL/MariaDB, generic identifier and PostgreSQL normalization is added to cope with this fact. * [11] Due to dropped PostgreSQL 9.6 support Doctrine DBAL switched from `SERIAL` to `GENERATED IDENTITY COLUMN` as virtual autoincrement handling still using sequence tables under the hood. The implemented schema change created by Doctrine DBAL will not migrate the sequence relation correctly and leads to really bad issues. The suggested and documented way is to create and use a procedure to migrate this. This is not suitable for the TYPO3 way of doing the database changes, and the `ConnectionMigrator` is modified to create the update statements taken from the procedure and replacing the normal alter statements. Due to the lack of a good entry point to combine data migration with required DDL changes, this has been implemented as a hackish merged statement for the meanwhile. * \TYPO3\CMS\Core\Database\Platform\PlatformSaveAlterSchemaSQLTrait is removed as "not used anymore" and already mitigated. The required work on the database analyser involved classes revealed badly, that a complete overhaul and restructuring of the code in this area is mandatory but exceeds the scope if this change. Multiple todo comments have been added to make this clear and will be done later. This is possible because the code in this area is considerable internal versus the need to make the breaking change until the dot-zero sprint release. Used command(s): > \ composer req --no-update --no-install \ -d typo3/sysext/redirects \ "doctrine/dbal":"4.0.x-dev@dev" ; \ composer req --no-update --no-install \ -d typo3/sysext/core \ "doctrine/dbal":"4.0.x-dev@dev" ; \ composer req --no-update --no-install \ -d typo3/sysext/install \ "doctrine/dbal":"4.0.x-dev@dev" ; \ composer req -W \ "doctrine/dbal":"4.0.x-dev@dev" ; \ COMPOSER=composer.dist.json composer req --no-update \ -d Build/composer \ "doctrine/dbal":"4.0.x-dev@dev" > Build/Scripts/runTests.sh -s phpstanGenerateBaseline [1] https://github.com/doctrine/dbal/blob/4.0.x/UPGRADE.md#bc-break-doctrinedbaldrivergetname-removed https://github.com/doctrine/dbal/blob/4.0.x/UPGRADE.md#bc-break-removed-support-for-postgresql-93-and-older [2] https://github.com/doctrine/dbal/blob/4.0.x/UPGRADE.md#bc-break-removed-support-for-mariadb-100-and-older https://github.com/doctrine/dbal/blob/4.0.x/UPGRADE.md#bc-break-removed-support-for-mysql-56-and-older [3] https://github.com/doctrine/dbal/blob/4.0.x/UPGRADE.md#bc-break-renamed-sqlite-platform-classes [4] https://github.com/doctrine/dbal/blob/4.0.x/UPGRADE.md#removed-support-for-connectionlastinsertidname [5] https://github.com/doctrine/dbal/blob/4.0.x/UPGRADE.md#deprecated-reset-methods-from-querybuilder [6] https://github.com/doctrine/dbal/blob/4.0.x/UPGRADE.md#deprecated-getting-query-parts-from-querybuilder https://github.com/doctrine/dbal/blob/4.0.x/UPGRADE.md#deprecated-querybuilder-methods-and-constants [7] https://github.com/doctrine/dbal/blob/4.0.x/UPGRADE.md#bc-break-removed-schema-comparison-apis-that-dont-account-for-the-current-database-connection-and-the-database-platform [8] https://github.com/doctrine/dbal/blob/3.7.x/UPGRADE.md#deprecated-renaming-tables-via-tablediff-and-abstractplatformaltertable [9] https://github.com/doctrine/dbal/blob/4.0.x/UPGRADE.md#deprecated-schemadifftosql-and-schemadifftosavesql [10] https://github.com/doctrine/dbal/blob/4.0.x/UPGRADE.md#bc-break-changes-in-handling-string-and-binary-columns [11] https://github.com/doctrine/dbal/blob/4.0.x/UPGRADE.md#bc-break-auto-increment-columns-on-postgresql-are-implemented-as-identity-not-serial https://github.com/doctrine/dbal/blob/4.0.x/docs/en/how-to/postgresql-identity-migration.rst Resolves: #102875 Related: #102589 Related: #102402 Releases: main Change-Id: I547928b5ebba55e574d3a992e864784d8f594653 Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/77709 Tested-by:
Oliver Klee <typo3-coding@oliverklee.de> Tested-by:
Christian Kuhn <lolli@schwarzbu.ch> Reviewed-by:
Christian Kuhn <lolli@schwarzbu.ch> Tested-by:
core-ci <typo3@b13.com> Tested-by:
Stefan Bürk <stefan@buerk.tech> Reviewed-by:
Benni Mack <benni@typo3.org> Reviewed-by:
Stefan Bürk <stefan@buerk.tech> Tested-by:
Benni Mack <benni@typo3.org>
-
Torben Hansen authored
This change introduces strict types for properties, excluding the `$view` property, in `TYPO3\CMS\Extbase\Mvc\Controller\ActionController`. In addition, all function arguments and function return types are now also strictly typed. Resolves: #102632 Releases: main Signed-off-by:
Torben Hansen <derhansen@gmail.com> Change-Id: Ie057392addc1cf469d25c548cd796f6a29ae46b5 Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/81885 Tested-by:
Nikita Hovratov <nikita.h@live.de> Tested-by:
Simon Schaufelberger <simonschaufi+typo3@gmail.com> Reviewed-by:
Nikita Hovratov <nikita.h@live.de> Reviewed-by:
Simon Schaufelberger <simonschaufi+typo3@gmail.com> Tested-by:
Oliver Hader <oliver.hader@typo3.org> Reviewed-by:
Oliver Hader <oliver.hader@typo3.org> Tested-by:
core-ci <typo3@b13.com> Tested-by:
Oliver Klee <typo3-coding@oliverklee.de> Reviewed-by:
Oliver Klee <typo3-coding@oliverklee.de>
-
Oliver Bartsch authored
Due to the loading order, the EXT:form configuration module provider might not be available. This is now fixed by adding EXT:lowlevel as constraint (suggests) to EXT:form. Resolves: #102838 Releases: main, 12.4 Change-Id: I172ff2d27803f61b9247147ae8a7fd1cb6585561 Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/82497 Reviewed-by:
Oliver Bartsch <bo@cedev.de> Tested-by:
Christian Kuhn <lolli@schwarzbu.ch> Tested-by:
Stefan Bürk <stefan@buerk.tech> Reviewed-by:
Stefan Bürk <stefan@buerk.tech> Reviewed-by:
Christian Kuhn <lolli@schwarzbu.ch> Tested-by:
Oliver Bartsch <bo@cedev.de> Tested-by:
core-ci <typo3@b13.com>
-
Christian Kuhn authored
Make the calls to sub methods explicit and add type hints. Resolves: #102912 Releases: main Change-Id: I6d1ff6dbcfd6f0df375f7d87f85a1563b92ceaec Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/82610 Reviewed-by:
Benni Mack <benni@typo3.org> Tested-by:
core-ci <typo3@b13.com> Reviewed-by:
Andreas Kienast <a.fernandez@scripting-base.de> Tested-by:
Christian Kuhn <lolli@schwarzbu.ch> Tested-by:
Benni Mack <benni@typo3.org> Tested-by:
Andreas Kienast <a.fernandez@scripting-base.de> Reviewed-by:
Christian Kuhn <lolli@schwarzbu.ch>
-
Benni Mack authored
By working with the LinkResult object, and LinkFactory APIs, Indexed Search does now generate proper links to pages as expected, and with sane defaults in regards to ATagParams etc, which can be modified by the central Event system in PageLinkBuilder APIs. For this reason, the TypoScript settings plugin.tx_indexedsearch.settings.detectDomainRecords plugin.tx_indexedsearch.settings.detectDomainRecords.target are removed, as the link generation follows the same rules as for regular links in menus or content (a.k.a. typolink knows exactly when to use a full domain or just an absolute path). Resolves: #102907 Releases: main Change-Id: Ifbcaf596aeda80df4632c332de8d2d157f8f4d13 Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/82606 Reviewed-by:
Andreas Kienast <a.fernandez@scripting-base.de> Tested-by:
core-ci <typo3@b13.com> Tested-by:
Andreas Kienast <a.fernandez@scripting-base.de> Tested-by:
Christian Kuhn <lolli@schwarzbu.ch> Reviewed-by:
Christian Kuhn <lolli@schwarzbu.ch>
-
Andreas Kienast authored
Indexed Search's `Indexer` class has two methods `log_push()` and `log_pull()` which are blunt wrappers for similar methods of the `TimeTracker` component. This patch removes the wrapper methods and uses TT directly. Resolves: #102910 Releases: main Change-Id: Ideaff898db09c100b9e180b1bb530cb2a3dfa484 Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/82609 Tested-by:
core-ci <typo3@b13.com> Reviewed-by:
Benni Mack <benni@typo3.org> Tested-by:
Benni Mack <benni@typo3.org> Reviewed-by:
Stephan Großberndt <stephan.grossberndt@typo3.org> Reviewed-by:
Christian Kuhn <lolli@schwarzbu.ch> Tested-by:
Christian Kuhn <lolli@schwarzbu.ch>
-
Andreas Kienast authored
Content parsers implemented in Indexed Search return a solely defined array for the internal indexer. To streamline the data passing, dedicated DTO classes are now introduced and used. Resolves: #102908 Releases: main Change-Id: Ib06df1b42e05338240c2e2c50f73d88f94bf551f Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/82607 Reviewed-by:
Garvin Hicking <gh@faktor-e.de> Reviewed-by:
Benni Mack <benni@typo3.org> Tested-by:
core-ci <typo3@b13.com> Reviewed-by:
Stephan Großberndt <stephan.grossberndt@typo3.org> Tested-by:
Benni Mack <benni@typo3.org> Tested-by:
Garvin Hicking <gh@faktor-e.de>
-
Andreas Kienast authored
The `Indexer` class from Indexed Search has an `internal_log` property that's only accessed when `debugMode` is enabled. However, the wrapper method `log_setTSlogMessage()` always writes into the log, which doesn't make much sense. Said method now checks for enabled debugging before writing into the log property. Resolves: #102909 Releases: main, 12.4 Change-Id: I3d2df9ce49677e995bc86e87d74d80a9016900c4 Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/82608 Reviewed-by:
Stephan Großberndt <stephan.grossberndt@typo3.org> Reviewed-by:
Daniel Siepmann <coding@daniel-siepmann.de> Tested-by:
Garvin Hicking <gh@faktor-e.de> Reviewed-by:
Garvin Hicking <gh@faktor-e.de> Tested-by:
Stefan Bürk <stefan@buerk.tech> 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> Reviewed-by:
Stefan Bürk <stefan@buerk.tech>
-
- Jan 23, 2024
-
-
Simon Praetorius authored
Maybe there is also a better way to display this? Currently the line breaks aren't visible, which makes it quite hard to understand. https://docs.typo3.org/c/typo3/cms-form/main/en-us/D/FrontendRendering/Index.html Releases: main, 12.4 Resolves: #102903 Change-Id: Ib363f2aa6145511b0ed244d140068bb32e68de15 Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/82603 Tested-by:
Nikita Hovratov <nikita.h@live.de> Reviewed-by:
Nikita Hovratov <nikita.h@live.de> Reviewed-by:
Chris Müller <typo3@krue.ml> Tested-by:
Chris Müller <typo3@krue.ml> Tested-by:
core-ci <typo3@b13.com>
-
Torben Hansen authored
The `GeneralUtility::hmac()` function is used in several places to create HMAC hashes for a given string and optional additional secret. Extbase has the class `HashService`, which also provides the ability to create a HMAC for a given string, but without the possibility to add an additional secret. The missing possibility to use an additional secret is suboptimal in terms of security, since generated HMAC hashes will be equal for the same input in different contexts. This change introduces a new class, which combines the functionality of `GeneralUtility::hmac()` and Extbase `HashService` but with the requirement, that an additional secret is always mandatory. The class will be used in follow up patches, where `GeneralUtility::hmac()` and Extbase `HashService` will be deprecated. Resolves: #102761 Releases: main Signed-off-by:
Torben Hansen <derhansen@gmail.com> Change-Id: Ibf0be09f4dffe076ddd0d3a31323ccd05693f7c1 Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/80394 Tested-by:
core-ci <typo3@b13.com> Reviewed-by:
Andreas Kienast <a.fernandez@scripting-base.de> Tested-by:
Oliver Hader <oliver.hader@typo3.org> Tested-by:
Andreas Kienast <a.fernandez@scripting-base.de> Reviewed-by:
Oliver Hader <oliver.hader@typo3.org> Reviewed-by:
Oliver Klee <typo3-coding@oliverklee.de> Tested-by:
Oliver Klee <typo3-coding@oliverklee.de>
-
Benni Mack authored
The PackageInterface is now stricly typed, in addition a new method is added to the interface "PackageInterface->getPackageIcon()" thus, deprecating the method ExtensionManagementUtiliy::getExtensionIcon() Resolves: #102895 Releases: main Change-Id: Icf64e1a6b932fb9803cc772a233257f7a5fc5fad Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/82530 Tested-by:
Stefan Bürk <stefan@buerk.tech> Tested-by:
Christian Kuhn <lolli@schwarzbu.ch> Tested-by:
core-ci <typo3@b13.com> Reviewed-by:
Christian Kuhn <lolli@schwarzbu.ch> Reviewed-by:
Stefan Bürk <stefan@buerk.tech>
-
Benni Mack authored
This change adapts various strict types, and reduces some injection within EXT:extensionmanager. The main issue is: There are main circular dependencies between Utility classes, which should slowly dissolve, some safe places have been considered now to be adapted further in subsequenting patches In addition, all code is now strict-typed, as all code is internal within EXT:extensionmanager this is now finally taken care of. Resolves: #102897 Releases: main Change-Id: Idb1bd24a9694bb0204acc276de2bcc38c3b6d7a1 Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/81948 Tested-by:
Christian Kuhn <lolli@schwarzbu.ch> Reviewed-by:
Christian Kuhn <lolli@schwarzbu.ch> Tested-by:
Stefan Bürk <stefan@buerk.tech> Reviewed-by:
Stefan Bürk <stefan@buerk.tech> Tested-by:
core-ci <typo3@b13.com>
-
Andreas Kienast authored
The "Rules" section in Indexed Search stems from a time where today's knowledge how a search works was considered "advanced". By today's standards, it can be considered common sense and therefore the rules and its related TypoScript configuration have been removed. Resolves: #102902 Releases: main Change-Id: I40bc2c3b14118020015d7b26cfb6f8619c2fee55 Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/82602 Reviewed-by:
Stefan Bürk <stefan@buerk.tech> Tested-by:
core-ci <typo3@b13.com> Tested-by:
Stefan Bürk <stefan@buerk.tech> Tested-by:
Andreas Kienast <a.fernandez@scripting-base.de> Reviewed-by:
Andreas Kienast <a.fernandez@scripting-base.de> Reviewed-by:
Christian Kuhn <lolli@schwarzbu.ch> Tested-by:
Christian Kuhn <lolli@schwarzbu.ch>
-
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/+/82556 Tested-by:
core-ci <typo3@b13.com> Tested-by:
Christian Kuhn <lolli@schwarzbu.ch> Reviewed-by:
Christian Kuhn <lolli@schwarzbu.ch>
-
Christian Kuhn authored
"Advanced search" Frontend of indexed_search comes with a "metaphone" / "sounds like" feature. Its search results are staggeringly bad and the implementation is a not maintained mess that has not seen any substantial improvements for 15 years. The feature seems to be very unused, it seems there is not even some extension that tries to improve it, and there are no reports about the incomplete results one would expect from a proper "metaphone" implementation. It does not consider UTF-8 in any way, to name just one issue. To unblock further indexed_search development that polish and improve other features, this patch removes the entire 'metaphone' implementation together with the Frontend selection, the Backend statistics, a custom metaphone implementation, and two database fields. Resolves: #102900 Releases: main Change-Id: I2e8f8cb0db3ef75ad83bb1f8189452fd2a2d3a87 Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/82600 Reviewed-by:
Christian Kuhn <lolli@schwarzbu.ch> Tested-by:
core-ci <typo3@b13.com> Tested-by:
Christian Kuhn <lolli@schwarzbu.ch> Tested-by:
Andreas Kienast <a.fernandez@scripting-base.de> Reviewed-by:
Benni Mack <benni@typo3.org> Reviewed-by:
Andreas Kienast <a.fernandez@scripting-base.de> Tested-by:
Benni Mack <benni@typo3.org>
-
Torben Hansen authored
The code example for the `BeforeRequestTokenProcessedEvent` event listener implementation contains an error, since the request token scope is checked for lower cased `loginType` in `AbstractUserAuthentication`. This change fixes the code example. Resolves: #102899 Releases: main, 12.4 Change-Id: I5582b916b9399eb90672edf3f06a59d84e3bdef0 Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/82599 Tested-by:
core-ci <typo3@b13.com> Tested-by:
Benni Mack <benni@typo3.org> Reviewed-by:
Benni Mack <benni@typo3.org>
-
Andreas Kienast authored
IndexedSearch uses a bunch of "randomly" defined values for options that are hard to read and understand in the code flow. To improve the situation a bit, such structs are now converted into real PHP enums, providing assistance when reading and/or refactoring code. Resolves: #102898 Releases: main Change-Id: I1eac6344485a464ac2ad1e53a948a6ebc5e182cd Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/82598 Tested-by:
core-ci <typo3@b13.com> Tested-by:
Stefan Bürk <stefan@buerk.tech> Reviewed-by:
Andreas Kienast <a.fernandez@scripting-base.de> Tested-by:
Christian Kuhn <lolli@schwarzbu.ch> Reviewed-by:
Christian Kuhn <lolli@schwarzbu.ch> Reviewed-by:
Stefan Bürk <stefan@buerk.tech> Tested-by:
Andreas Kienast <a.fernandez@scripting-base.de>
-
Oliver Klee authored
To follow the principle of the "smallest surprise" concerning the behavior of our code, the integer array keys of the return values of `GU::intExplode()` should be ensured to be gap-free. Resolves: #99898 Releases: main Change-Id: I683ee805e2ad4efd2fd182f4f94b7f95fa6cf2be Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/77802 Tested-by:
core-ci <typo3@b13.com> Reviewed-by:
Andreas Kienast <a.fernandez@scripting-base.de> Reviewed-by:
Simon Schaufelberger <simonschaufi+typo3@gmail.com> Reviewed-by:
Guido Schmechel <guido.schmechel@brandung.de> Tested-by:
Christian Kuhn <lolli@schwarzbu.ch> Reviewed-by:
Christian Kuhn <lolli@schwarzbu.ch> Tested-by:
Garvin Hicking <gh@faktor-e.de> Reviewed-by:
Garvin Hicking <gh@faktor-e.de> Tested-by:
Simon Schaufelberger <simonschaufi+typo3@gmail.com>
-
Andreas Kienast authored
In preparation for further improvements in the LiveSearch, the latest used page id stored in the browser's session storage is now passed to the LiveSearch search demands. This patch is marked as a task, as the whole API is still internal, allowing to backport this to v12 as well. Resolves: #102894 Releases: main, 12.4 Change-Id: If957d3b5eadbfe9fe5eb967fe5e17a697995ee6b Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/82592 Tested-by:
Benni Mack <benni@typo3.org> Reviewed-by:
Daniel Siepmann <coding@daniel-siepmann.de> Reviewed-by:
Andreas Kienast <a.fernandez@scripting-base.de> Tested-by:
Andreas Kienast <a.fernandez@scripting-base.de> Reviewed-by:
Oliver Hader <oliver.hader@typo3.org> Reviewed-by:
Benni Mack <benni@typo3.org> Tested-by:
core-ci <typo3@b13.com> Tested-by:
Daniel Siepmann <coding@daniel-siepmann.de>
-
Andreas Nedbal authored
Resolves: #102442 Related: #102431 Releases: main Change-Id: Iaf65cb4f1a027414a7402d3519ed30b67d50cf4b Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/81839 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> Tested-by:
Andreas Nedbal <andy@pixelde.su> Reviewed-by:
Andreas Nedbal <andy@pixelde.su> Reviewed-by:
Oliver Hader <oliver.hader@typo3.org>
-
Benni Mack authored
Resolves: #102893 Releases: main Change-Id: Id83ae50f3735163bb442d05177f3d30c1b70ec6d Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/82529 Tested-by:
Andreas Kienast <a.fernandez@scripting-base.de> Tested-by:
Benni Mack <benni@typo3.org> Reviewed-by:
Benni Mack <benni@typo3.org> Reviewed-by:
Andreas Kienast <a.fernandez@scripting-base.de> Reviewed-by:
Oliver Klee <typo3-coding@oliverklee.de> Tested-by:
Oliver Klee <typo3-coding@oliverklee.de> Tested-by:
core-ci <typo3@b13.com>
-
Benni Mack authored
This change automatically registers all TCA types to the new content element wizard, so no pageTS is needed anymore. The old pageTS config is still evaluated and overrides existing TCA config. This way it is still possible to add additional wizard items with special default values. Due to the switch, some groups are renamed and the structuring has slightly changed as it is now aligned with the CType switch select box. Most importantly the group `common` is now named `default`. A permanent migration is in place. Items can still be removed through TCEFORM. This will remove both, the entry in the CType select and the wizard item. This is the old behavior. Since all groups and elements, defined in TCA are added automatically, the previously `show` list is no longer evaluated. To remove groups and elements only in the wizard, a new option "removeItems" is available. In addition, labels of TCA for tt_content have been consolidated into EXT:frontend/Resources/Private/locallang_ttc.xlf Resolves: #102834 Releases: main Change-Id: I0f9beacd5abd7a129a139172199ac26cab5ce215 Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/73488 Reviewed-by:
Oliver Bartsch <bo@cedev.de> Tested-by:
Andreas Kienast <a.fernandez@scripting-base.de> Reviewed-by:
Andreas Kienast <a.fernandez@scripting-base.de> Tested-by:
Oliver Bartsch <bo@cedev.de> Tested-by:
core-ci <typo3@b13.com> Tested-by:
Benni Mack <benni@typo3.org> Reviewed-by:
Benni Mack <benni@typo3.org>
-
- Jan 22, 2024
-
-
Oliver Bartsch authored
This introduces the new PSR-14 `AfterLinkResolvedByStringRepresentationEvent`, enabling extension authors to modify the resolved link result data. The event is dispatched by `LinkService->resolveByStringRepresentation()` after existing handlers have been executed. Therefore, in contrast to the previously available hook `$GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['Link']['resolveByStringRepresentation']` does the new event allow to even modify the resolved link result data of the existing handlers and also cases where the `UnknownLinkHandlerException` would have been thrown. The corresponding exception is also added to the event to provide as much information as possible. Resolves: #102855 Releases: main Change-Id: I3e702e3540c510dc4d03f5cc710dc204a505e9ed Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/82506 Reviewed-by:
Andreas Kienast <a.fernandez@scripting-base.de> Tested-by:
Oliver Bartsch <bo@cedev.de> Tested-by:
Benni Mack <benni@typo3.org> Tested-by:
Andreas Kienast <a.fernandez@scripting-base.de> Reviewed-by:
Oliver Bartsch <bo@cedev.de> Tested-by:
core-ci <typo3@b13.com> Reviewed-by:
Benni Mack <benni@typo3.org>
-
Christian Kuhn authored
page = PAGE page { 10 = COA 10 { 10 = TEXT 10.value = A 20 = TEXT 20.value = B 30 = TEXT 30.value = C } } page.10.30 > This correctly unsets 'page.10.30', but also 'page.10.10' which should be kept of course. The patch fixes this by avoiding a bogus removeChildByName(). Resolves: #102831 Related: #97816 Releases: main, 12.4 Change-Id: Iab66e9c3187588cb403f7c4e65145863314817d3 Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/82520 Reviewed-by:
Christian Kuhn <lolli@schwarzbu.ch> Reviewed-by:
Oliver Klee <typo3-coding@oliverklee.de> Tested-by:
Oliver Klee <typo3-coding@oliverklee.de> Reviewed-by:
Georg Ringer <georg.ringer@gmail.com> Tested-by:
core-ci <typo3@b13.com> Tested-by:
Christian Kuhn <lolli@schwarzbu.ch> Tested-by:
Stefan Bürk <stefan@buerk.tech> Reviewed-by:
Stefan Bürk <stefan@buerk.tech>
-
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/+/82521 Reviewed-by:
Nikita Hovratov <nikita.h@live.de> Tested-by:
core-ci <typo3@b13.com> Reviewed-by:
Stefan Bürk <stefan@buerk.tech> Reviewed-by:
Garvin Hicking <gh@faktor-e.de> Tested-by:
Nikita Hovratov <nikita.h@live.de> Tested-by:
Christian Kuhn <lolli@schwarzbu.ch> Tested-by:
Garvin Hicking <gh@faktor-e.de> Reviewed-by:
Georg Ringer <georg.ringer@gmail.com> Reviewed-by:
Benni Mack <benni@typo3.org> Reviewed-by:
Christian Kuhn <lolli@schwarzbu.ch> Tested-by:
Georg Ringer <georg.ringer@gmail.com> Tested-by:
Benni Mack <benni@typo3.org> Tested-by:
Stefan Bürk <stefan@buerk.tech>
-
Julian Hofmann authored
No semicolon after method argument is needed/allowed. Releases: main, 12.4 Resolves: #102888 Change-Id: Ib04783dc487456df88d5b42ae68882ab8c34eb67 Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/82557 Reviewed-by:
Oliver Klee <typo3-coding@oliverklee.de> Tested-by:
Christian Kuhn <lolli@schwarzbu.ch> Tested-by:
Oliver Klee <typo3-coding@oliverklee.de> Reviewed-by:
Christian Kuhn <lolli@schwarzbu.ch> Tested-by:
core-ci <typo3@b13.com>
-
Stefan Bürk authored
With #102779 the support for PHP 8.1 has been dropped and GitLab workflow jobs simply raised. In general it is tried to have a good mix between supported database versions and PHP versions. As a rule of thumb, we have a good mix against the composer.lock file and run composer min/max jobs in the nightly while trying to cover all database vendors and have a good min/max dbms LTS version mix - albeit not even nearly having all possible matrix mutations in place. Due to the simply replacement we have duplicated max jobs only differing in the PHP version which does not make much sense. Unit test beeing quick albeit having quite a huge number is a exception and have a broader matrix mix. pre-merge concentrates on lower boundary testing. This change reshuffles this and uses PHP 8.2 for the composer min tests and PHP8.3 for composer max tests. Resolves: #102883 Related: #102779 Releases: main Change-Id: Ic39691595e686f7a0579874e1dca83470330dd11 Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/82531 Tested-by:
core-ci <typo3@b13.com> Tested-by:
Benni Mack <benni@typo3.org> Reviewed-by:
Stefan Bürk <stefan@buerk.tech> Reviewed-by:
Benni Mack <benni@typo3.org> Tested-by:
Stefan Bürk <stefan@buerk.tech>
-
Stefan Bürk authored
New core-testing-* images has been build and published in the TYPO3 testing-infrastructure repository and pulled to the core ci gitlab runner instances. [1][2] This change modifies `Build/Scripts/runTests.sh` to set new image version to ensure the usage for all changes based on this change. For information what changed in the image see the patches in the testing-infrastrucure repository linked below - at least for the phpXY images. * core-testing-php82 => 1.9 * core-testing-php83 => 1.10 * core-testing-apache24 => 1.3 * core-testing-nodejs18 => 1.2 * core-testing-nodejs18-chrome => 1.2 [1] https://git.typo3.org/typo3/CI/testing-infrastructure/-/commit/2fb328622d88d47afd3e8abc9bf6ff32f7ef3db6 [2] https://git.typo3.org/typo3/CI/testing-infrastructure/-/commit/e1ec0954b823acbab3f37100f8b6d0a03c31f0d8 Resolves: #102886 Releases: main, 12.4, 11.5 Change-Id: I3830a5f53b18e2170c9f973a66007dc3868d99dd Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/82552 Tested-by:
Christian Kuhn <lolli@schwarzbu.ch> Reviewed-by:
Christian Kuhn <lolli@schwarzbu.ch> 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> Reviewed-by:
Stefan Bürk <stefan@buerk.tech>
-
- Jan 21, 2024
-
-
Torben Hansen authored
The documentation for redirect mode "Defined by Domain entries" for ext:felogin does not describe, that configured domains must be known to TYPO3. This change updates the documentation, so it is clear, that all domains for the "Defined by Domain entries" redirect mode must be configured in TYPO3 site settings. Resolves: #98372 Releases: main, 12.4 Change-Id: I2a18ce40016d60c3878656cc5194cec6af5ed6a5 Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/82533 Tested-by:
Benni Mack <benni@typo3.org> Tested-by:
core-ci <typo3@b13.com> Reviewed-by:
Benni Mack <benni@typo3.org>
-
Oliver Bartsch authored
This fixes several bugs of the recordlist pagination page input field. 1. The selector for the corresponding form element is no longer hardcoded to "pages", enabling the field for all tables again. 2. A JavaScript warning regarding "NaN" for parseInt() is resolved by using `Number()`. 3. Setting the value is only done in case corresponding `min` / `max` settings exist. Resolves: #102872 Resolves: #102861 Releases: main, 12.4 Change-Id: I2110fef23e17ccbde3e37754be5ef3c5187dfa43 Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/82519 Tested-by:
Andreas Kienast <a.fernandez@scripting-base.de> Reviewed-by:
Oliver Bartsch <bo@cedev.de> Tested-by:
core-ci <typo3@b13.com> Tested-by:
Stefan Bürk <stefan@buerk.tech> Reviewed-by:
Stefan Bürk <stefan@buerk.tech> Tested-by:
Oliver Bartsch <bo@cedev.de> Reviewed-by:
Andreas Kienast <a.fernandez@scripting-base.de>
-
Benni Mack authored
This change reduces the internal duplicate state from PageRepository, in order to fully rely on the workspace aspect from the Context. Resolves: #102882 Releases: main Change-Id: I588ec7ca5c72f3c65262887a336ea324325c9b8f Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/82528 Tested-by:
core-ci <typo3@b13.com> Tested-by:
Oliver Bartsch <bo@cedev.de> Tested-by:
Stefan Bürk <stefan@buerk.tech> Tested-by:
Benni Mack <benni@typo3.org> Reviewed-by:
Benni Mack <benni@typo3.org> Reviewed-by:
Oliver Bartsch <bo@cedev.de> Reviewed-by:
Stefan Bürk <stefan@buerk.tech>
-
Torben Hansen authored
A todo for the `intExplode` function suggests to refactor the method by using `array_filter` and `array_walk`. This refactoring would however result in more code and slower performance. The todo is therefore removed, as the function is good as it is. Resolves: #102877 Releases: main Change-Id: Ib945e010532d0ec5df14be698651197311eea809 Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/82534 Tested-by:
core-ci <typo3@b13.com> Reviewed-by:
Benni Mack <benni@typo3.org> Tested-by:
Oliver Klee <typo3-coding@oliverklee.de> Reviewed-by:
Oliver Klee <typo3-coding@oliverklee.de> Tested-by:
Benni Mack <benni@typo3.org>
-
Stefan Bürk authored
`AbstractSchemaManager::getDatabasePlatform()` is deprecated and will be remove with Doctrine DBAL 4.x. A intermediate compat method has been added to the extended `SchemaManager` classes. Meanwhile, core internal and testing-framework usages has been modified and the compatibilty methods are superflous and will not hit the TYPO3 core directly. It does not make sense to keep that and extension authors are able to change there code already with TYPO3 v12 the removal of these compat methods are not-breaking (yet). This may be breaking some extensions with Doctrine DBAL 4.x and will be noticed in the Doctrine DBAL 4.x upgrade change along with the other breaking changes. Resolves: #102881 Releases: main Change-Id: I0308d0aa6c657fbb879f143cb48c9adc1e4fa425 Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/82527 Tested-by:
Benni Mack <benni@typo3.org> Reviewed-by:
Stefan Bürk <stefan@buerk.tech> Tested-by:
core-ci <typo3@b13.com> Tested-by:
Oliver Klee <typo3-coding@oliverklee.de> Reviewed-by:
Benni Mack <benni@typo3.org> Reviewed-by:
Oliver Klee <typo3-coding@oliverklee.de> Tested-by:
Stefan Bürk <stefan@buerk.tech>
-
Stefan Bürk authored
Albeit never officially supported some workarounds has been introduced in several places to support Oracle at least partly. It does not make sense to keep traces of special handling code flows for unsupported dbms vendors and versions as required adjustments at mandantory places are not included, for example during the database analyser step. Beside that, these changes could not be properly tested any way. Traces of the unsupported `Oracle` platform are now removed to cleanup the code base and considered as non-breaking - due to not officially supported and applying the same rule as for internal marked code. Resolves: #102880 Releases: main Change-Id: I5ad3c737278644d17d578beb31132c5fbdc246ef Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/82526 Reviewed-by:
Stefan Bürk <stefan@buerk.tech> Tested-by:
core-ci <typo3@b13.com> Tested-by:
Benni Mack <benni@typo3.org> Tested-by:
Oliver Klee <typo3-coding@oliverklee.de> Reviewed-by:
Oliver Klee <typo3-coding@oliverklee.de> Reviewed-by:
Benni Mack <benni@typo3.org> Tested-by:
Stefan Bürk <stefan@buerk.tech>
-
- Jan 20, 2024
-
-
Torben Hansen authored
Some type casts in ext:extbase are superfluous, since it is already ensured that the variable types are as expected. This change removes all redundant type casts. Resolves: #102876 Releases: main Change-Id: Idbc40f5b127fe6d1724eb43a2c0792bbd00506c9 Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/82523 Tested-by:
core-ci <typo3@b13.com> Reviewed-by:
Oliver Klee <typo3-coding@oliverklee.de> Tested-by:
Oliver Klee <typo3-coding@oliverklee.de> Tested-by:
Benni Mack <benni@typo3.org> Reviewed-by:
Benni Mack <benni@typo3.org>
-
Benjamin Franzke authored
Also switch back to `List` instead of `DocumentList`, since the new DocumentList implementation (that we use since #100348) has been integrated into `List` and the temporary name `DocumentList` is now deprecated (and just a no-op wrapper for `List`). Executed commands: npm install -P $( grep ckeditor5 package.json | \ grep '\^40' | \ grep -v dev-utils | \ sed 's/^[^"]*"\([^"]*\)".*/\1@^41/' \ ) npm remove @ckeditor/ckeditor5-dev-utils npm install -D @ckeditor/ckeditor5-dev-utils@^39.5.1 npm run build Releases: main, 12.4 Resolves: #102854 Change-Id: I7c5085a6526941e3d3b4125f019b66d2c71b5f79 Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/82503 Tested-by:
core-ci <typo3@b13.com> Tested-by:
Andreas Kienast <a.fernandez@scripting-base.de> Reviewed-by:
Benni Mack <benni@typo3.org> Tested-by:
Benni Mack <benni@typo3.org> Reviewed-by:
Andreas Kienast <a.fernandez@scripting-base.de>
-