- Jan 26, 2024
-
-
Christian Kuhn authored
The install tool has just a few dependencies to ext:extensionmanager. Most notably, it ships the AbstractDownloadExtensionUpdate upgrade wizard, which is used when core extracts stuff to dedicated extensions that are removed from monorepo. The v12 upgrade wizard for 'fe_login_mode' uses this. These upgrade wizards are tailored for non-composer-mode only, just like the extensionmanager, which essentially does nothing in composer mode. To loosen the dependency from ext:install to ext:extensionmanager, the patch moves the abstract, a model class for this case, plus the fe_login_mode implementation to ext:extensionmanager. Class aliases are established, so a casual deprecation is enough in this case. A few extensions rely on the class, typically those that try to extend the upgrade range of core by forward porting wizards older than two major core versions. Those shoud continue to work with v13, and will have to adapt the class namespace of the abstract with v14 latest. Moving the fe_login_mode wizard around does not make the wizard show up again in case the wizard has been marked 'done' during v12 upgrade already, since usually the according DB field does not exist anymore. We don't need special handling for this case. Resolves: #102943 Releases: main Change-Id: Idb5e6c90900ffad7f9c3c383fff58a05c6728aa9 Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/82659 Tested-by:
Andreas Kienast <a.fernandez@scripting-base.de> Tested-by:
core-ci <typo3@b13.com> Tested-by:
Nikita Hovratov <nikita.h@live.de> Reviewed-by:
Andreas Kienast <a.fernandez@scripting-base.de> Reviewed-by:
Nikita Hovratov <nikita.h@live.de>
-
Christian Kuhn authored
ReferenceIndex has a hard coded "skip" for table "tx_extensionmanager_domain_model_extension". This is needed since the extbase based EM repository depends on TCA being defined. To get rid of this dependency, the patch turns it by adding an event listener within ext:extensionmanager. Resolves: #102947 Releases: main Change-Id: Iacf8f0cbca42f57fe8ea7010580dd9278b550d1e Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/82663 Reviewed-by:
Andreas Kienast <a.fernandez@scripting-base.de> Tested-by:
Andreas Kienast <a.fernandez@scripting-base.de> Tested-by:
Nikita Hovratov <nikita.h@live.de> Reviewed-by:
Nikita Hovratov <nikita.h@live.de> Tested-by:
core-ci <typo3@b13.com>
-
Christian Kuhn authored
EXT:styleguide uses two images from EXT:extensionmanager in the "Cards" examples. To loosen the dependency, the example images are copied over to EXT:styleguide. Resolves: #102946 Releases: main Change-Id: I9eff6b9ef009b0d1059b788fa2ad730f148b37e2 Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/82662 Tested-by:
Simon Schaufelberger <simonschaufi+typo3@gmail.com> Reviewed-by:
Andreas Kienast <a.fernandez@scripting-base.de> Reviewed-by:
Simon Schaufelberger <simonschaufi+typo3@gmail.com> Tested-by:
core-ci <typo3@b13.com> Tested-by:
Andreas Kienast <a.fernandez@scripting-base.de>
-
Oliver Hader authored
Resolves: #102942 Releases: main Change-Id: Ic12f84dd2a10897f5fded82c4264892f9029a6a3 Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/82660 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:
Christian Kuhn <lolli@schwarzbu.ch> Tested-by:
core-ci <typo3@b13.com>
-
Andreas Kienast authored
The `sword` property and its getter/setter are used within the `SearchController` only. The getter and setter have been removed, the property is used directly. Resolves: #102940 Releases: main Change-Id: I4c0032b3fd19dfe18e5ebb82e2d78f04398678af Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/82655 Reviewed-by:
Guido Schmechel <guido.schmechel@brandung.de> Tested-by:
core-ci <typo3@b13.com> Tested-by:
Stefan Bürk <stefan@buerk.tech> Reviewed-by:
Christian Kuhn <lolli@schwarzbu.ch> Reviewed-by:
Stefan Bürk <stefan@buerk.tech> Tested-by:
Christian Kuhn <lolli@schwarzbu.ch>
-
Oliver Klee authored
Add native type declarations and first-class callables for improved type safety and readability. Also make some callbacks static for improved performance. Resolves: #102722 Releases: main Change-Id: Icd7d4e5881cd859ec8342266cd7d49b65654dc06 Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/82281 Tested-by:
Benni Mack <benni@typo3.org> Reviewed-by:
Simon Schaufelberger <simonschaufi+typo3@gmail.com> Reviewed-by:
Stefan Bürk <stefan@buerk.tech> Tested-by:
Simon Schaufelberger <simonschaufi+typo3@gmail.com> Tested-by:
Stefan Bürk <stefan@buerk.tech> Reviewed-by:
Benni Mack <benni@typo3.org> Tested-by:
core-ci <typo3@b13.com>
-
Andreas Kienast authored
The ViewHelper namespace of Indexed Search was previously known as `is`, but it has been re-introduced as `search` previously. This commit streamlines this oopsie-whoopsie. Resolves: #102941 Releases: main Change-Id: I17fb68666a8bc1192e025612bae2c6340fd9633d Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/82658 Reviewed-by:
Oliver Klee <typo3-coding@oliverklee.de> Reviewed-by:
Benni Mack <benni@typo3.org> Reviewed-by:
Simon Schaufelberger <simonschaufi+typo3@gmail.com> Tested-by:
core-ci <typo3@b13.com> Tested-by:
Simon Schaufelberger <simonschaufi+typo3@gmail.com> Tested-by:
Benni Mack <benni@typo3.org>
-
Andreas Kienast authored
The `searchData` property is now removed to get rid of some state in the `SearchController` class. Resolves: #102936 Releases: main Change-Id: I9b49de7b75ad85d317d04dcf27605e5c1a238de1 Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/82652 Reviewed-by:
Oliver Klee <typo3-coding@oliverklee.de> Tested-by:
Andreas Kienast <a.fernandez@scripting-base.de> Tested-by:
Benni Mack <benni@typo3.org> Tested-by:
core-ci <typo3@b13.com> Reviewed-by:
Andreas Kienast <a.fernandez@scripting-base.de> Reviewed-by:
Benni Mack <benni@typo3.org>
-
Andreas Kienast authored
Indexed Search provided the possibility to manipulate the search behavior via hooks with `$GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['indexed_search']['pi1_hooks']`. There are no public extensions supporting TYPO3 v12 known using this hooking mechanism, therefore it has been removed without replacement. Resolves: #102937 Releases: main Change-Id: I8236304b3af2ed89b5345ab4e2fa80e154665ff3 Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/82653 Tested-by:
Andreas Kienast <a.fernandez@scripting-base.de> Reviewed-by:
Andreas Kienast <a.fernandez@scripting-base.de> Tested-by:
core-ci <typo3@b13.com> 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:
Christian Kuhn <lolli@schwarzbu.ch>
-
Christian Kuhn authored
Frontend TypoScript has two special details, next to 'configuration' ("constants") and 'setup'. First, there is the determined "PAGE" object that depends on type / typeNum. It allows to render multiple different variants of a pages content. Historically, this has often been a "print" view, nowadays, this is usually a "json" variant, or some XML for sitemaps. A frontend is not rendered without a proper PAGE object. The FE rendering chain determines the given 'type' and maps it to a configured PAGE with this 'typeNum', defaulting to zero '0'. The patch models the determined PAGE object to the Request attribute 'FrontendTypoScript' now, which is used by FE RequestHandler to manage rendering of this PAGE type. Second special thing is 'config' TypoScript as top-level 'config' settings. Those can be overridden by the specific PAGE object (often 'page.config'). A typical use case is 'json.config.disableAllHeaderCode = 1'. This "merged" 'config' array has been available as TSFE->config['config'] before. The patch makes the merged config available in the 'FrontendTypoScript' object as well, available in the Request object as 'frontend.typoscript' attribute. The patch adapts all usages of TSFE->config['config'] to the attribute. There is a special quirk with 'config': This part of TypoScript 'setup' is so important, that it needs to be available in 'fully cached page' scenarios as well, to for instance decide if a content-length header should be added to the response. This has been the reason 'config' has been cached along with page cache content in 'page' cache before. The patch changes this and adds dedicated cache entries for 'merged config' in the (file based) 'typoscript' cache. This reduces page cache size a bit and allows re-using these 'config' cache accross different pages when they are identical, which is determined by the cache identifiers. All these changes are logical follow-ups to the TypoScript parser that has been implemented with v12. They pave the way to extract TypoScript calculation from TypoScriptFrontendController with upcoming patches. Next to this refactoring, the existing hooks in this area had to fall, especially to get rid of their dependency to "pObj" TypoScriptFrontendController. They are mostly substituted by new events, details are documented with the .rst files and class comments. The patch reduces usages of $GLOBALS['TSFE'] and usages of TypoScriptFrontendController in general. $GLOBALS['TSFE']->config['config'] is still available as b/w compat layer (a dedicated deprecation will follow), but core usages have been removed. This became a bit complicated with TimeTrackerInitialization and WorkspacePreview middlewares: Both are run before the final TypoScript 'config' is determined, so they do not have that attribute attached to their incoming Request. But they still need to know TS 'config' details to decide on details *after* calling lower handle() middlewares. They by now accessed $GLOBALS['TSFE'], which is (still) set by a lower middleware. To avoid this indirect state usage, these middlewares now register an event listener that is dispatched after TypoScript 'config' has been determined, and set local state to know if they should add additional Response data. Resolves: #102932 Releases: main Change-Id: I8282f7a93fe9594e78865db63a3e656cc4d5f8da Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/82522 Tested-by:
Stefan Bürk <stefan@buerk.tech> Tested-by:
Benni Mack <benni@typo3.org> Reviewed-by:
Benni Mack <benni@typo3.org> Reviewed-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>
-
Andreas Kienast authored
Resolves: #102934 Related: #102925 Releases: main Change-Id: Iff8cfee9ebfc2deea935c2c235267ba4d74d1d3c Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/82651 Tested-by:
core-ci <typo3@b13.com> Tested-by:
Anja Leichsenring <aleichsenring@ab-softlab.de> Reviewed-by:
Christian Kuhn <lolli@schwarzbu.ch> Reviewed-by:
Anja Leichsenring <aleichsenring@ab-softlab.de> Tested-by:
Christian Kuhn <lolli@schwarzbu.ch> Tested-by:
Andreas Kienast <a.fernandez@scripting-base.de> Reviewed-by:
Andreas Kienast <a.fernandez@scripting-base.de>
-
- Jan 25, 2024
-
-
Benni Mack authored
The only reason why there is TCA for sys_log is that EXT:belog can use Extbase to query records. The change now uses a custom Repository without Extbase while keeping the model architecture, effectively allowing us to remove the TCA entry for sys_log. Resolves: #102930 Releases: main Change-Id: I921124e731a63969825405f8d5e04bb4912ec498 Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/82644 Reviewed-by:
Simon Schaufelberger <simonschaufi+typo3@gmail.com> Reviewed-by:
Christian Kuhn <lolli@schwarzbu.ch> Tested-by:
core-ci <typo3@b13.com> Tested-by:
Simon Schaufelberger <simonschaufi+typo3@gmail.com> Reviewed-by:
Benni Mack <benni@typo3.org> Tested-by:
Benni Mack <benni@typo3.org> Tested-by:
Christian Kuhn <lolli@schwarzbu.ch>
-
Benni Mack authored
A hook in GifBuilder from 2003, when TYPO3 3.8.0 was released, is removed without substitution. This hook has no real benefit anymore, and the referenced extension "julle_gifbconf" does not exist anymore in TER. Resolves: #102931 Releases: main Change-Id: I757fd6f60b2e231523779c703d746380afd99704 Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/82649 Tested-by:
core-ci <typo3@b13.com> Tested-by:
Simon Schaufelberger <simonschaufi+typo3@gmail.com> Reviewed-by:
Benni Mack <benni@typo3.org> Reviewed-by:
Christian Kuhn <lolli@schwarzbu.ch> Reviewed-by:
Guido Schmechel <guido.schmechel@brandung.de> Tested-by:
Christian Kuhn <lolli@schwarzbu.ch> Reviewed-by:
Simon Schaufelberger <simonschaufi+typo3@gmail.com> Tested-by:
Benni Mack <benni@typo3.org>
-
Benni Mack authored
When activating mysql fulltext, the DB tables "index_rel" and "index_words" are not needed. This change makes readability a lot easier, by avoiding many unneeded checks. Resolves: #102928 Releases: main Change-Id: Id6080e00e4caf38d10d1115adda121e68b0cfe4a Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/82647 Reviewed-by:
Jochen Roth <rothjochen@gmail.com> 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> Tested-by:
Jochen Roth <rothjochen@gmail.com> Reviewed-by:
Stefan Bürk <stefan@buerk.tech>
-
Josef Glatz authored
This patch removes superfluous TCA definitions of the column `fe_groups.tx_extbase_type`. Therefore the former existing recordTypes are also removed due to the fact that recordTypes in fe_groups are no longer defined. If you rely on one this DB column you have to implement them via TCA/Overrides in your TYPO3 extension. See also https://docs.typo3.org/c/typo3/cms-core/main/en-us/Changelog/12.0/Breaking-96107-DeprecatedFunctionalityRemoved.html?highlight=frontenduser where the proper extbase model has been removed with TYPO3 12.0. Resolves: #102924 Releases: main Change-Id: Ic1be551f47416377d7db97dbd71e3282dbf7a07c Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/81887 Tested-by:
Torben Hansen <derhansen@gmail.com> Tested-by:
Stefan Bürk <stefan@buerk.tech> Reviewed-by:
Benni Mack <benni@typo3.org> Tested-by:
Christian Kuhn <lolli@schwarzbu.ch> Reviewed-by:
Christian Kuhn <lolli@schwarzbu.ch> Reviewed-by:
Stefan Bürk <stefan@buerk.tech> Tested-by:
core-ci <typo3@b13.com> Reviewed-by:
Torben Hansen <derhansen@gmail.com> Tested-by:
Benni Mack <benni@typo3.org>
-
Andreas Kienast authored
This commit extract the rating calculation of each result into a separate ViewHelper. Resolves: #102925 Releases: main Change-Id: I34114653a4f72f430954778bd11fda2431073323 Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/82645 Tested-by:
Stefan Bürk <stefan@buerk.tech> Tested-by:
Benni Mack <benni@typo3.org> Reviewed-by:
Benni Mack <benni@typo3.org> Reviewed-by:
Stefan Bürk <stefan@buerk.tech> Tested-by:
core-ci <typo3@b13.com>
-
Benni Mack authored
Various typing issues in Indexed Search related to the indexer and repository classes are cleaned up. Resolves: #102926 Releases: main Change-Id: Ibf7b0eb9b52ef2d5cca39e17e3328f2605156c6d Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/82646 Reviewed-by:
Benni Mack <benni@typo3.org> Reviewed-by:
Christian Kuhn <lolli@schwarzbu.ch> Reviewed-by:
Andreas Kienast <a.fernandez@scripting-base.de> Tested-by:
Benni Mack <benni@typo3.org> Tested-by:
Christian Kuhn <lolli@schwarzbu.ch> Tested-by:
Stefan Bürk <stefan@buerk.tech> Reviewed-by:
Stefan Bürk <stefan@buerk.tech> Tested-by:
Andreas Kienast <a.fernandez@scripting-base.de> Tested-by:
core-ci <typo3@b13.com>
-
Peter Kraume authored
The method resolveResourcePaths() is superfluous because the PageRenderer resolves path with EXT: later with getStreamlinedFileName() anyway. Furthermore this patch resolves open_basedir errors. As a plus, the form.css gets a version numbered filename now which mitigates caching issues. Resolves: #98545 Releases: main, 12.4, 11.5 Change-Id: Ie93b6aa817889281c8f96fd272884f03cab3857e Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/82635 Reviewed-by:
Benni Mack <benni@typo3.org> Reviewed-by:
Oliver Hader <oliver.hader@typo3.org> Tested-by:
Oliver Hader <oliver.hader@typo3.org> 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:
Benni Mack <benni@typo3.org>
-
Stefan Bürk authored
The `ExpressionBUilder::QUOTE_*` class constants are unused already with TYPO3 v12 and `Doctrine DBAL 3.x` and do not serve any purpose anymore. This change removes them now to keep the house clean. Resolves: #102919 Related: #102875 Releases: main Change-Id: Idc991625c8ce4799452f098bff675c744d4cb37d Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/82639 Tested-by:
Stefan Bürk <stefan@buerk.tech> Reviewed-by:
Oliver Bartsch <bo@cedev.de> Reviewed-by:
Oliver Klee <typo3-coding@oliverklee.de> Reviewed-by:
Stefan Bürk <stefan@buerk.tech> Tested-by:
Oliver Bartsch <bo@cedev.de> Tested-by:
core-ci <typo3@b13.com> Tested-by:
Oliver Klee <typo3-coding@oliverklee.de>
-
Andreas Kienast authored
This patch removes the static `IndexedSearchUtility::milliseconds()` method, which is used a few times only. Resolves: #102923 Releases: main Change-Id: Icfb8cc1bd01c913f9683310c4bc601100ff1e4d8 Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/82643 Tested-by:
core-ci <typo3@b13.com> 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:
Oliver Bartsch <bo@cedev.de> Tested-by:
Benni Mack <benni@typo3.org> Reviewed-by:
Oliver Bartsch <bo@cedev.de>
-
Benni Mack authored
This change removes various functionality within Indexed Search which was partly kept when migrating the plugin towards Extbase back in TYPO3 v6.2, but serve no real purpose anymore: - CSSsuffix - specialConfiguration - iconRendering - flagRendering This functionality is nowadays represented within the actual View rendering, thus the TypoScript options can be removed, as Fluid is much more powerful than the old marker-based templating approach. In addition, the feature to choose a specific language within the search is removed, as this functionality is not viable in modern sites (example: when searching on a french website, search should not find japanese results). Resolves: #102921 Releases: main Change-Id: I8ff4876f4ad3b8199abb2ff3f0cbf08f382501b7 Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/82642 Reviewed-by:
Georg Ringer <georg.ringer@gmail.com> 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:
Georg Ringer <georg.ringer@gmail.com>
-
Guido Schmechel authored
The `ext:redirects` provides a integrity check command to detect integrity issues of existing redirects. This change persists the integrity state to the redirect records and extends the backend module to make the integrity state of redirects visible by colorizing them in the list. Additionally, a new filter option for the integrity state is now available. Resolves: #99485 Releases: main Change-Id: I03db4472f3e37594e33ab92a617a3787014e157a Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/77285 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>
-
Stefan Bürk authored
With #102875 Doctrine DBAL 4.x has been added which was a task over a longer time. Originally planned to deprecate changes the later decision was to pass Doctrine breaking changes directly. It has been missed to remove the `ExpressionBuilder::trim()` deprecation for the integer TrimMode and the mitigation for it. This change now removes the deprecation and directly allows only the Doctrine DBAL TrimMode enum. [1] https://github.com/doctrine/dbal/blob/4.0.x/UPGRADE.md#bc-break-converted-enum-like-classes-to-enums Resolves: #102916 Related: #102875 Releases: main Change-Id: I21d8395be3ca1ef909b4c1443c48398b580bf807 Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/82636 Reviewed-by:
Nikita Hovratov <nikita.h@live.de> Reviewed-by:
Andreas Kienast <a.fernandez@scripting-base.de> Tested-by:
core-ci <typo3@b13.com> Tested-by:
Benni Mack <benni@typo3.org> Reviewed-by:
Stefan Bürk <stefan@buerk.tech> Tested-by:
Oliver Klee <typo3-coding@oliverklee.de> Reviewed-by:
Benni Mack <benni@typo3.org> Tested-by:
Andreas Kienast <a.fernandez@scripting-base.de> Reviewed-by:
Oliver Klee <typo3-coding@oliverklee.de> Tested-by:
Stefan Bürk <stefan@buerk.tech>
-
Stefan Bürk authored
This change updates phpstan and related libraries to available maximum versions. The new version finds two `array_filter` usages with wrong typeing, which is fixed along the way. Used command(s): > composer require --dev \ "phpstan/phpstan":"^1.10.57" \ "phpstan/phpdoc-parser":"^1.25.0" \ "phpstan/phpstan-phpunit":"^1.3.15" > Build/Scripts/runTests.sh -s phpstan Resolves: #102920 Releases: main, 12.4 Change-Id: Iab6a0a079ff745b5bdbedf9b15a3bf9c7f83c171 Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/82640 Tested-by:
Andreas Kienast <a.fernandez@scripting-base.de> Reviewed-by:
Anja Leichsenring <aleichsenring@ab-softlab.de> Tested-by:
core-ci <typo3@b13.com> Tested-by:
Anja Leichsenring <aleichsenring@ab-softlab.de> Reviewed-by:
Andreas Kienast <a.fernandez@scripting-base.de>
-
Bastien Lutz authored
The ModifyUrlForCanonicalTagEvent is now always dispatched at the end of the generation process, just before the tag is being built. This way, listeners are now able to fully influence the generation of the canonical URL, after the standard functionality, e.g. fetching the URL from page properties, has been executed. Additionally, the Event is now also always dispatched, in case the canonical tag generation is disabled via TypoScript or via page properties. This information is then available using the new getCanonicalGenerationDisabledException() method. Resolves: #99807 Releases: main Change-Id: I3a8d71755149191caaefd3a67e3fc7db15dcbe6d Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/77682 Tested-by:
Benni Mack <benni@typo3.org> Tested-by:
Oliver Bartsch <bo@cedev.de> Tested-by:
Stefan Bürk <stefan@buerk.tech> Reviewed-by:
Oliver Bartsch <bo@cedev.de> Reviewed-by:
Stefan Bürk <stefan@buerk.tech> Tested-by:
core-ci <typo3@b13.com> Reviewed-by:
Benni Mack <benni@typo3.org>
-
- Jan 24, 2024
-
-
Nikita Hovratov authored
It's possible the port is provided as a string. This has to be taken care for before handed over to doctrine/dbal as it is strictly typed and doesn't do type casting on its own. Resolves: #102918 Related: #102875 Releases: main Change-Id: Ib2f65611e6fc924e00387ba27811dc07e3bae598 Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/82637 Tested-by:
Oliver Bartsch <bo@cedev.de> Reviewed-by:
Stefan Bürk <stefan@buerk.tech> Reviewed-by:
Oliver Klee <typo3-coding@oliverklee.de> Tested-by:
Stefan Bürk <stefan@buerk.tech> Tested-by:
core-ci <typo3@b13.com> Reviewed-by:
Oliver Bartsch <bo@cedev.de>
-
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>
-