- May 03, 2024
-
-
Andreas Nedbal authored
Newer rollup major versions feature optimizations in build output. The rollup source files are now natively parsed as ESM modules by NodeJS. Earlier rollup versions implicitly transpiled ESM to CJS and allowed a mixture of ESM and CJS imports (both `import` statements and `require()` calls) in one module. With the switch to ESM-only modules we now make use of `createRequire` utility method when node-require resolution is needed for CJS path lookups. Since our main project (Build/) is still in CJS mode by default (for grunt), we apply a sub-project module type overwrite for the Build/rollup/ folder via Build/rollup/package.json to ensure rollup configuration runs in native ESM mode. See https://nodejs.org/docs/latest-v18.x/api/packages.html > Node.js will treat the following as ES modules when passed to node as > the initial input, or when referenced by import statements or import() > expressions: > […] > * Files with a .js extension when the nearest parent package.json file > contains a top-level "type" field with a value of "module". Executed commands: npm install --save-dev \ rollup@^4.17.2 \ @rollup/plugin-commonjs@^25.0.7 \ @rollup/plugin-node-resolve@^15.2.3 \ @rollup/plugin-replace@^5.0.5 npm run build -- exec:rollup Resolves: #103775 Releases: main, 12.4 Change-Id: I6793bd9233b2907ce5ed06d68c7008b349237360 Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/84102 Tested-by:
core-ci <typo3@b13.com> Reviewed-by:
Andreas Kienast <a.fernandez@scripting-base.de> Tested-by:
Andreas Kienast <a.fernandez@scripting-base.de> Tested-by:
Benjamin Franzke <ben@bnf.dev> Reviewed-by:
Benjamin Franzke <ben@bnf.dev>
-
Benjamin Franzke authored
The node version used for building TYPO3 assets is raised to 22.0. See https://nodejs.org/en/blog/announcements/v22-release-announce for further details. Resolves: #103780 Releases: main, 12.4 Change-Id: Ibc5b8c88ca5baedb7ae500adb5ef26a33617df4d Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/84103 Reviewed-by:
Benjamin Franzke <ben@bnf.dev> Reviewed-by:
Benni Mack <benni@typo3.org> Tested-by:
Andreas Kienast <a.fernandez@scripting-base.de> Tested-by:
Benjamin Franzke <ben@bnf.dev> Tested-by:
core-ci <typo3@b13.com> Tested-by:
Benni Mack <benni@typo3.org> Reviewed-by:
Andreas Kienast <a.fernandez@scripting-base.de>
-
- May 02, 2024
-
-
Jasmina Ließmann authored
Since #103670 the "Workspaces" module has a slightly different look. In order to keep the "History/Undo" module visually synchronous, the badges are now displayed in color - depending on the action type. In addition, the label for the action type "add" was changed based on the wording from the "Workspaces" module. Resolves: #103765 Releases: main Change-Id: I7f63fc05fe766db8ee9fd85d12720d247009125f Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/84087 Reviewed-by:
Jörg Bösche <typo3@joergboesche.de> Tested-by:
Jasmina Ließmann <minapokhalo+typo3@gmail.com> Reviewed-by:
Oliver Hader <oliver.hader@typo3.org> Reviewed-by:
Chris Müller <typo3@brotkrueml.dev> Tested-by:
Chris Müller <typo3@brotkrueml.dev> Tested-by:
Oliver Hader <oliver.hader@typo3.org> Reviewed-by:
Jasmina Ließmann <minapokhalo+typo3@gmail.com> Tested-by:
core-ci <typo3@b13.com>
-
Oliver Hader authored
When using integer types when calling the fallowing method like `ImageProcessingInstructions::fromCropScaleValues(.., .., '500m', 0)`, a PHP type error for `str_contains` is issued. Resolves: #103781 Releases: main Change-Id: Ib36f8584f2a90d999a02dc2ea70249371b312461 Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/84108 Reviewed-by:
Benjamin Franzke <ben@bnf.dev> Reviewed-by:
Andreas Kienast <a.fernandez@scripting-base.de> Tested-by:
core-ci <typo3@b13.com> Tested-by:
Benjamin Franzke <ben@bnf.dev> Tested-by:
Andreas Kienast <a.fernandez@scripting-base.de>
-
Frank Naegler authored
This patch addresses two key accessibility issues in the recycler module: it adds a caption element to the table for better context and provides labels for dropdown icons used in multi-selection, ensuring screen reader compatibility. Resolves: #103764 Releases: main, 12.4 Change-Id: Ia8b839cbc438396c8438969087d225c37a479bcf Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/84085 Tested-by:
Benjamin Franzke <ben@bnf.dev> Tested-by:
Benjamin Kott <benjamin.kott@outlook.com> Tested-by:
core-ci <typo3@b13.com> Reviewed-by:
Benjamin Kott <benjamin.kott@outlook.com> Reviewed-by:
Benjamin Franzke <ben@bnf.dev>
-
Willi Wehmeier authored
The clear-input button now has a proper title and additionally an aria-label to guide visually impaired users. The button isn't read out by screenreaders when navigating the site linearly (due to tabindex="-1") but when hold-pressing the button with the mouse pointer, a screenreader will search for a human readable label. We therefore add an aria-label attribute. The title attribute is added for sighted users but will be ignored by screenreaders since it's value equals the value of the aria-label attribute. Resolves: #103417 Releases: main, 12.4 Change-Id: I4cbbe5200476a7d84ef1d675911ddd51f5899e87 Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/83501 Tested-by:
Michael Telgkamp <michael.telgkamp@mindscreen.de> Tested-by:
core-ci <typo3@b13.com> Reviewed-by:
Michael Telgkamp <michael.telgkamp@mindscreen.de> Reviewed-by:
Benjamin Franzke <ben@bnf.dev> Tested-by:
Frank Nägler <frank.naegler@typo3.com> Reviewed-by:
Frank Nägler <frank.naegler@typo3.com> Tested-by:
Benjamin Franzke <ben@bnf.dev>
-
Chris Müller authored
With the introduction of site sets also a console command was made available which lists all available site sets. Knowing this command makes it easier for integrators to set the dependencies. Resolves: #103771 Related: #103437 Releases: main Change-Id: I86e45c1a63fc3ddc5aaf8a2b1b72da7b24febe08 Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/84098 Tested-by:
Oliver Klee <typo3-coding@oliverklee.de> Tested-by:
Georg Ringer <georg.ringer@gmail.com> Reviewed-by:
Garvin Hicking <gh@faktor-e.de> Reviewed-by:
Oliver Klee <typo3-coding@oliverklee.de> Tested-by:
Benjamin Franzke <ben@bnf.dev> Tested-by:
Garvin Hicking <gh@faktor-e.de> Reviewed-by:
Benjamin Franzke <ben@bnf.dev> Reviewed-by:
Georg Ringer <georg.ringer@gmail.com> Tested-by:
core-ci <typo3@b13.com>
-
- May 01, 2024
-
-
Oliver Hader authored
The new factory method `HashValue::hash('test')` creates the hash from the raw payload `'test'`. This is a simpler shortcut for using `HashValue::create(hash('sha256', 'test', true))`. Resolves: #103772 Releases: main, 12.4 Change-Id: Id201e166eeabc856b8d8dc498cc73cde8d5eb801 Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/84100 Tested-by:
core-ci <typo3@b13.com> Reviewed-by:
Benni Mack <benni@typo3.org> Tested-by:
Georg Ringer <georg.ringer@gmail.com> Reviewed-by:
Georg Ringer <georg.ringer@gmail.com> Tested-by:
Benni Mack <benni@typo3.org> Reviewed-by:
Markus Klein <markus.klein@typo3.org>
-
- Apr 30, 2024
-
-
Torben Hansen authored
The frontend login extension currently validates a given redirect URL by ensuring, that the URL is either relative or the host is known to TYPO3. In some scenarios, it might however be useful to allow a redirect URL, which does not match the existing rules. This change adds the `ModifyRedirectUrlValidationResultEvent` PSR-14 event, allowing developers to implement custom validation logic for the redirect URL. Resolves: #103019 Releases: main Change-Id: I81b387f23e90adbaf4a586c9108766275f5e1273 Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/82763 Tested-by:
core-ci <typo3@b13.com> Reviewed-by:
Simon Schaufelberger <simonschaufi+typo3@gmail.com> Tested-by:
Simon Schaufelberger <simonschaufi+typo3@gmail.com> Reviewed-by:
Guido Schmechel <guido.schmechel@brandung.de> Tested-by:
Georg Ringer <georg.ringer@gmail.com> Reviewed-by:
Georg Ringer <georg.ringer@gmail.com> Reviewed-by:
Jörg Bösche <typo3@joergboesche.de> Reviewed-by:
Nikita Hovratov <nikita.h@live.de>
-
Stephan Bauer authored
An error was previously shown and is now removed if no backend type is selected. Releases: main, 12.4, 11.5 Resolves: #103766 Change-Id: Ia83552de40abffb880244e8b0eb0f4c28f0e6637 Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/84095 Tested-by:
core-ci <typo3@b13.com> Tested-by:
Benjamin Franzke <ben@bnf.dev> Reviewed-by:
Benni Mack <benni@typo3.org> Reviewed-by:
Benjamin Franzke <ben@bnf.dev> Tested-by:
Benni Mack <benni@typo3.org>
-
Oliver Bartsch authored
The EXT:styleguide extension currently provides two ways of frontend rendering. The "old" way using a `sys_template` record and the "new" way, using site sets. To not only test the new site sets feature, but also the new PAGEVIEW cObject is the corresponding TypoScript now using the PAGEVIEW for page rendering. This one hand is the best practice and on the other hand also allows to test both ways: FLUIDTEMPLATE and PAGEVIEW in one extension. Required structural changes also showcase what has to be done when migrating extensions to site sets and PAGEVIEW. Resolves: #103733 Releases: main Change-Id: I71bb28a6e6d39b1232d5283e548044b421d3b5c9 Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/84037 Reviewed-by:
Benni Mack <benni@typo3.org> Reviewed-by:
Benjamin Franzke <ben@bnf.dev> Tested-by:
Benni Mack <benni@typo3.org> Reviewed-by:
Jörg Bösche <typo3@joergboesche.de> Tested-by:
core-ci <typo3@b13.com> Tested-by:
Benjamin Franzke <ben@bnf.dev>
-
Frank Naegler authored
This patch adjusts the flash message and notifications elements by removing the h4 tag to prevent incorrect header flow throughout the content structure, allowing for better flexibility based on different use cases. Resolves: #103762 Releases: main, 12.4 Change-Id: Ide330150145d5c4965410fbf61973ef682bb96b0 Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/84082 Reviewed-by:
Benjamin Franzke <ben@bnf.dev> Tested-by:
Benjamin Kott <benjamin.kott@outlook.com> Tested-by:
Georg Ringer <georg.ringer@gmail.com> Reviewed-by:
Benjamin Kott <benjamin.kott@outlook.com> Reviewed-by:
Georg Ringer <georg.ringer@gmail.com> Tested-by:
Benjamin Franzke <ben@bnf.dev> Tested-by:
core-ci <typo3@b13.com>
-
Frank Naegler authored
This patch adjusts the infobox/callout element by removing the h4 tag to prevent incorrect ordering in the content structure, allowing for better flexibility based on different use cases. Resolves: #103761 Releases: main, 12.4 Change-Id: I2556ea0df0e55ffcdf752c9c0574b843ffea44ff Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/84081 Reviewed-by:
Benjamin Franzke <ben@bnf.dev> Reviewed-by:
Georg Ringer <georg.ringer@gmail.com> Tested-by:
core-ci <typo3@b13.com> Tested-by:
Georg Ringer <georg.ringer@gmail.com> Tested-by:
Benjamin Franzke <ben@bnf.dev> Tested-by:
Benjamin Kott <benjamin.kott@outlook.com> Reviewed-by:
Benjamin Kott <benjamin.kott@outlook.com>
-
Frank Naegler authored
This patch enhances the accessibility of the link validator module by ensuring proper relationships between table headers and content cells. Resolves: #103763 Releases: main, 12.4 Change-Id: Icef43369761f88705b491f3661252cc9a4b7ac0a Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/84083 Tested-by:
Benjamin Kott <benjamin.kott@outlook.com> Tested-by:
Benjamin Franzke <ben@bnf.dev> Reviewed-by:
Benjamin Kott <benjamin.kott@outlook.com> Reviewed-by:
Benjamin Franzke <ben@bnf.dev> Tested-by:
core-ci <typo3@b13.com>
-
- Apr 29, 2024
-
-
Jasmina Ließmann authored
The title of the linked page was missing a hover style, which is now ensured with this patch. An appropriate link title is also added. Resolves: #103715 Releases: main, 12.4 Change-Id: I4ec60ef43fd7ced6cdc5ede88445931a37e12c3a Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/84011 Tested-by:
core-ci <typo3@b13.com> Tested-by:
Jasmina Ließmann <minapokhalo+typo3@gmail.com> Reviewed-by:
Stefan Bürk <stefan@buerk.tech> Tested-by:
Christian Kuhn <lolli@schwarzbu.ch> Tested-by:
Stefan Bürk <stefan@buerk.tech> Reviewed-by:
Christian Kuhn <lolli@schwarzbu.ch> Reviewed-by:
Jasmina Ließmann <minapokhalo+typo3@gmail.com>
-
Christian Kuhn authored
tl;dr: This patch switches from using RelationHandler to ReferenceIndex in (mostly) frontend request related RootlineUtility. It is the first patch actively using ReferenceIndex in frontend and has the potential to significantly reduce database query load on not-yet-cached pages in frontend, while creating better results at the same time. The patch obsoletes $GLOBALS['TYPO3_CONF_VARS']['FE']['addRootLineFields']. This is just the tip of the iceberg from a refactoring chain that has been prepared over a period of about three years already. The long story: Rendering times of complex pages in the frontend in general scale linearly with the number of executed database queries (plus some offset), if no extension needs extensive calculation on the PHP side, even if the database is server-side local and not a remote instance, which adds additional TCP round-trip times per query. With thousands of queries being triggered by RootlineUtility, this area is the most promising code path to optimize when response times of not-fully-cached pages should be reduced. RootlineUtility is *the* main performance bottleneck in non-trivial TYPO3 instance frontend rendering: When rendering menus, each single entry needs to know its page row details and its path in the rootline, using RootlineUtility. This can quickly lead to thousands of DB queries with bigger instances on cold caches, catapulting the rendering times from milliseconds to seconds. This is worse when dealing with language overlays and workspaces. RootlineUtility does two main things: It first resolves the rootline of the given pages-uid. This is an expensive operation since it needs a query per page level. We'll change this towards a recursive query soon. Afterwards, it resolves some relations attached to the pages. This is - in default instances - at least the 'media' field. This is done using class RelationHandler per single field in question, which fires at least one query per page row and per field. As such, beside the expensive rootline determination itself, we also have an expensive operation to resolve relations of each pages row. Resolving relations attached to pages in a more performant way is what this patch is about. The list of relations being resolved can be extended using $GLOBALS['TYPO3_CONF_VARS']['FE']['addRootLineFields']. By default, only field 'media' is resolved, resulting in one additional query per resolved page row. Instances tend to add more relations to pages, and when adding these to 'addRootLineFields', they trigger additional RelationHandler queries by RootlineUtility. Also, RootlineUtility *ignores* 'addRootLineFields' when resolving relations when requesting non-default (sys_language_uid != 0) pages, and simply resolves *all* possible relation fields. This includes 'category' and probably some of the TCA fields ext:seo adds to pages TCA. RelationHandler needs *at least* one query per field, more with localizations and even more when rendering a workspaces preview. This situation makes relation resolving of page rows in RootlineUtility more expensive than resolving the rootline itself. One option would be to skip resolving page relations in RootlineUtility, but that wouldn't help us much when instances actually need this data (which is likely). A better solution is to supply relations within pages in a more performant way, ready for TypoScript and extensions to use. The patch switches from using RelationHandler within RootlineUtility to query the ReferenceIndex instead: sys_refindex contains all fields relevant for frontend since #103748. It allows querying *all* relations of *all* page fields with just *one* query. This allows us to remove 'addRootLineFields' by just always resolving all relations with close to no overhead, and turns into an advantage for integrators: One detail less to take care of. The patch establishes a nifty - but very well indexed - query within RootlineUtility to fetch relations. With 'categories' (an MM foreign relation) being attached to pages by default, it is a UNION query of two SELECT queries, with their result being sorted out in a rather effective result handling loop. The patch comes with a todo list within RootlineUtility, but in general, the result list is *better* than the result of the previous single field based RelationHandler solution. This is verified by the previously establish test data sets: * hidden, starttime, endtime are resolved. * Workspace deleted placeholder rows are removed automatically. There are a couple of details we may want to improve with further v13 patches, but in general, this new approach should work well already. Future: * This patch is a base to unlock a series of further performance related changes: When CTE's on RootlineUtility are established, it will allow fetching relations of not only one page, but of multiple pages with one query. Combined with a couple of other changes, the query load in frontend will ultimately collapse. * The patch is the base for ReferenceIndex usage in the frontend: We can potentially remove the doomed DatabaseQueryProcessor and other shenanigans for tt_content within the frontend rendering chain by always providing "correct" relation information automatically without overhead. Other pending patches are already preparing a central place taking care of tt_content for its relations to be resolved in a similar effective way. * Resolving relations of all fields attached to page rows voids the 'parent count' values of these fields. Those are a different de-normalization of relations "if it's not 0, we have some". With RootlineUtility dropping 'addRootLineFields' and always resolving relations, we can finally start dropping these 'count' fields, can release DataHandler from updating these fields, and can remove them from DB altogether. Numbers: There was a recent blog post by Julian [1] looking at query load of bigger menus. With measurements for this patch, we confirm the general numbers Julian came up with in his test setup. Thank to the published test setup at [2], we ported it to TYPO3 v13, and slightly extended it to measure query load when all pages are localized, and we're performing a request to a non-default language. * The main query count on a "cold" instance calling default language does *not* change with this patch. The reason is, default TYPO3 includes only 'media' as relation that has a 'foreign_field' in RootlineUtility, which leads to only one query, which is now substituted by the new refindex query. The advantage of the new solution provided by the patch is to resolve *all* relation with the same query load. * When calling a localized page, the query load is at ~10200 queries on a non-cached-page frontend request. This shrinks to ~7900 with the patch being applied. That's a reduction of 1/5 by this patch, with further options up our sleeves. [1] https://www.in2code.de/aktuelles/menue-vergleich-der-techniken/ [2] https://github.com/julianhofmann/typo3-menu-comparison Resolves: #103752 Related: #103748 Related: #103735 Related: #103710 Related: #103680 Related: #103599 Related: #103598 Change-Id: Ic7e152366dc2d4312ca55035c364db9ac02fabee Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/83729 Tested-by:
Anja Leichsenring <aleichsenring@ab-softlab.de> Tested-by:
André Buchmann <andy.schliesser@gmail.com> Reviewed-by:
Anja Leichsenring <aleichsenring@ab-softlab.de> Tested-by:
Benni Mack <benni@typo3.org> Tested-by:
Stefan Bürk <stefan@buerk.tech> Reviewed-by:
André Buchmann <andy.schliesser@gmail.com> Reviewed-by:
Benni Mack <benni@typo3.org> Reviewed-by:
Stefan Bürk <stefan@buerk.tech> Reviewed-by:
Christian Kuhn <lolli@schwarzbu.ch> Tested-by:
core-ci <typo3@b13.com> Tested-by:
Christian Kuhn <lolli@schwarzbu.ch>
-
- Apr 28, 2024
-
-
Torben Hansen authored
When an editor uses the suggest wizard, undefined array key warnings can occur, when certain array keys have not been defined. This change adds fallbacks for undefined array keys using the null coalescing operator. Additionally, the function `currentBackendUserMayAccessTable` is now covered with unit tests. Resolves: #103721 Releases: main, 12.4 Change-Id: I2b1a8af0883f7d34dde38f6f838df080f34ea87c Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/84074 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:
Stefan Bürk <stefan@buerk.tech> Reviewed-by:
Stefan Bürk <stefan@buerk.tech>
-
Chris Müller authored
Resolves: #103755 Related: #103675 Releases: main Change-Id: Ic94dc6bbff56f09233fec1b7cda42091d07dad2f Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/84077 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
With the update of Bootstrap to v5.3, the implementation of progress bars has changed for accessibility reasons [1]. This commit updates all usages of progress bars to the new markup. [1] https://getbootstrap.com/docs/5.3/migration/#progress-bars Resolves: #103718 Releases: main, 12.4 Change-Id: I208e3561b4943e382caa09e23e75d350bd702a6a Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/84014 Tested-by:
Benjamin Franzke <ben@bnf.dev> Tested-by:
Andreas Kienast <a.fernandez@scripting-base.de> Reviewed-by:
Benjamin Franzke <ben@bnf.dev> Tested-by:
Andreas Nedbal <andy@pixelde.su> Reviewed-by:
Andreas Kienast <a.fernandez@scripting-base.de> Tested-by:
core-ci <typo3@b13.com> Reviewed-by:
Andreas Nedbal <andy@pixelde.su>
-
Torben Hansen authored
3 todos in Extbase refer to aligning classes or functionality closer to the Flow framework. Those todos have been added 11 years ago with #47251. Since there are no plans to align Extbase closer to the Flow Framework functionality, the todos can safely be removed. Resolves: #103753 Releases: main Change-Id: I9e81c0f3c27a4e690587f7f6a50a21376ba8ca2e Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/84076 Reviewed-by:
Nikita Hovratov <nikita.h@live.de> Tested-by:
Nikita Hovratov <nikita.h@live.de> Tested-by:
core-ci <typo3@b13.com> Tested-by:
Oliver Klee <typo3-coding@oliverklee.de> Reviewed-by:
Oliver Klee <typo3-coding@oliverklee.de>
-
Christian Kuhn authored
ReferenceIndex (table sys_refindex) has two main jobs: * It registers "soft" relations, for instance when a bodytext sets a link in its text string. Similar things are done for relations in anonymous flex form strings. * It is a registry of DB relations attached to TCA based table records. This patch is about the DB relation part of refindex. When a TCA record needs to know all its database relations attached to it, it can either ask the (clumsy) RelationHandler for relations of each field, which then queries the foreign table for relations, OR it could ask the refindex for all relations with a single query. It is possible to do this for multiple records in one query. Refindex has significant test coverage within DataHandler: With over a thousand functional tests validating the refindex, we can be confident in the accuracy of the functionality. This coverage has been in place and continuously improved since TYPO3 v11. This de-normalized nature of having a single table that tracks all TCA DB relations of all TCA tables is a powerful structure that allows us to query relations in a performant way. This is currently only leveraged in a couple of places in the backend, though. Integrating refindex within the frontend is promising to alleviate the query load on not-yet-cached pages, though: There are various places that tend to hammer the database with hundreds or thousand of queries to look up relations, RootlineUtility in particular is very demanding. Refindex however does not carry relation details important in the frontend: It does not know about hidden, starttime and endtime restrictions applied to single relations. The patch changes this by adding a series of columns to sys_refindex, and adapts class ReferenceIndex to take care of them. Adding fields to sys_refindex has one drawback: Primary key 'hash' is a hash of all columns. Adding columns invalidates all existing hashes, refindex needs to be rebuild. This is why the patch is so huge: All tests checking refindex integrity need new rows. It also means instances need to update refindex. The patch dedicates an Important.rst to this. With forcing a full re-index for everyone, the patch takes the opportunity to use xxh128 over md5 for the hash, which is a significantly quicker hash algorithm with good collision protection, and with the same length of 128 bit (128 bit = 16 bytes = 16 hex numbers = 32 chars). The patch also adds more fine grained table column and index definitions: Two changed indexes are designed to help queries having the typical query signature, and queries can be crafted to use large parts of the combined indexes. Another detail is that 'endtime' defaults to a high value: When a casual endtime-aware TCA record has no endtime set, it's column value is 0. This requires an OR in the query. refindex de-normalizes this to a high value instead, to always query rows with a "greater than now" where clause. The patch reveals a bug within MM when resorting rows. A single functional test is disabled for now. The situation will be fixed with another patch. sys_refindex contains columns for the "left" / "local" side, and columns for the "right" / "foreign" side. Foreign side columns are prefixed with "ref_". A quick rundown of sys_refindex table columns: hash: primaray key, xxh128 hash of the other column values tablename & ref_table: names of the involved tables. tablename is "_STRING" when dealing with a softref row. recuid & ref_uid: uids of the involved table rows. field & (new)ref_field: names of the involved table fields. sorting & ref_sorting: keep relations in a deterministic order. (new)hidden & (new)ref_hidden: int '1' if the table is TCA hidden aware and the row is hidden. (new)starttime & (new)ref_starttime: starttime timestamp of the row if the table is TCA starttime aware and a value is set, else '0'. (new)endtime & (new)ref_endtime: endtime timestamp of the row if the table is TCA endtime aware and a value is set, else 2^31-1 (year 2038) since postgres 32-bit int is always signed. Could be extended later. workspace: calculated workspace-uid this refindex row is relevant in. With MM relations, there can be rows with workspace-uid 0 on one side and workspace-uid 1 on the other side, with the sys_refindex row being valid for workspace-uid 1. (new)t3ver_state & (new)ref_t3ver_state: workspace versionState value of the table row, default int 0. Used to filter especially deleted placeholder rows (int 2). flexpointer, softref_key, softref_id, ref_string: softref and flex form path details fields. Resolves: #103748 Related: #103735 Related: #103680 Related: #103655 Releases: main Change-Id: I276eef06da4bbe5bd51d90fc850e27ebe6ff2130 Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/84050 Tested-by:
Christian Kuhn <lolli@schwarzbu.ch> Reviewed-by:
Anja Leichsenring <aleichsenring@ab-softlab.de> Tested-by:
Anja Leichsenring <aleichsenring@ab-softlab.de> Tested-by:
Stefan Bürk <stefan@buerk.tech> Reviewed-by:
Stefan Bürk <stefan@buerk.tech> Tested-by:
core-ci <typo3@b13.com> Reviewed-by:
Christian Kuhn <lolli@schwarzbu.ch>
-
- Apr 27, 2024
-
-
Christian Kuhn authored
A missing additional orderBy() in RelationHandler leads to the situation that different DB vendor may return relations in different order, *if* the MM table "local sorting" value isn't unique. Patch for issue #103735 added an according `@todo` for this scenario in RelationHandler already. The import CSV test set of RootlineUtilityTest from issue #103680 is a victim here since the category MM rows have no proper unique sorting on the local side. The patch fixes the import CSV to have proper sorting values. Resolves: #103747 Related: #103735 Related: #103680 Releases: main Change-Id: I5b37ae7445d5517fcde255e77ba8279800534d17 Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/84051 Tested-by:
Christian Kuhn <lolli@schwarzbu.ch> Tested-by:
Stefan Bürk <stefan@buerk.tech> Tested-by:
Andreas Nedbal <andy@pixelde.su> Tested-by:
core-ci <typo3@b13.com> Reviewed-by:
Andreas Nedbal <andy@pixelde.su> Reviewed-by:
Christian Kuhn <lolli@schwarzbu.ch> Reviewed-by:
Stefan Bürk <stefan@buerk.tech>
-
Christian Kuhn authored
All DataScenarios tests import a single CSV as DB base state to operate on. Single action tests verify in tearDown() the reference index is clean (an update changes nothing). This means the imported CSV must come with a clean refindex in the first place. The verifyCleanReferenceIndex() tests check this explicitely. The patch changes verifyCleanReferenceIndex() tests to actually run the reference index updater in non-test mode, to then assert the DB state with the initially imported CSV again: If the reference index updater changed something, the test fails. This change simplifies management of the refindex part of the import CSV, since the assert now output all broken rows in detail. This should make it more easy to change details of the imported base set. Resolves: #103746 Related: #103744 Related: #103742 Releases: main Change-Id: I60233e390fba32cfe877004c8d2d6dd5fdc2f34c Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/84049 Tested-by:
André Buchmann <andy.schliesser@gmail.com> Tested-by:
core-ci <typo3@b13.com> Reviewed-by:
André Buchmann <andy.schliesser@gmail.com> Tested-by:
Christian Kuhn <lolli@schwarzbu.ch> Reviewed-by:
Christian Kuhn <lolli@schwarzbu.ch>
-
Christian Kuhn authored
Similar to #103742, the patch extracts tests dealing with localization actions to an own scenario setup. "Regular" tests now import exactly one CSV per test, and don't mix up things with multiple imports anymore, which simplifies overview and test management. Resolves: #103744 Related: #103742 Related: #103734 Releases: main Change-Id: I393e901d0d065a5b7ca6ce9d894874676c77737c Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/84047 Tested-by:
core-ci <typo3@b13.com> Reviewed-by:
Anja Leichsenring <aleichsenring@ab-softlab.de> Tested-by:
André Buchmann <andy.schliesser@gmail.com> Tested-by:
Christian Kuhn <lolli@schwarzbu.ch> Reviewed-by:
André Buchmann <andy.schliesser@gmail.com> Reviewed-by:
Christian Kuhn <lolli@schwarzbu.ch> Tested-by:
Anja Leichsenring <aleichsenring@ab-softlab.de>
-
Jasmina Ließmann authored
With #103737 a new locallang key for the configuration heading was introduced, but it contains a typo. The patch now fixes this. Resolves: #103743 Related: #103737 Releases: main, 12.4 Change-Id: I5bcf5d2b792e1312daf813ec5d3347068d5ecbf2 Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/84046 Reviewed-by:
Oliver Klee <typo3-coding@oliverklee.de> Reviewed-by:
Christian Kuhn <lolli@schwarzbu.ch> Reviewed-by:
Torben Hansen <derhansen@gmail.com> Tested-by:
Jasmina Ließmann <minapokhalo+typo3@gmail.com> Reviewed-by:
Jasmina Ließmann <minapokhalo+typo3@gmail.com> Tested-by:
Christian Kuhn <lolli@schwarzbu.ch> Tested-by:
core-ci <typo3@b13.com> Tested-by:
Torben Hansen <derhansen@gmail.com>
-
Jasmina Ließmann authored
In the "Localization overview" view, an incorrect title was displayed when hovering over a page icon. This was caused by both an incorrect and duplicate title attribute. This patch fixes this behavior. Resolves: #103739 Related: #102472 Releases: main, 12.4 Change-Id: Ibb2ce64d0313c24c6d1e3f1e6b5fc6f55b172622 Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/84044 Reviewed-by:
Garvin Hicking <gh@faktor-e.de> Reviewed-by:
Christian Kuhn <lolli@schwarzbu.ch> Tested-by:
Christian Kuhn <lolli@schwarzbu.ch> Tested-by:
Garvin Hicking <gh@faktor-e.de> Tested-by:
Jasmina Ließmann <minapokhalo+typo3@gmail.com> Tested-by:
core-ci <typo3@b13.com> Reviewed-by:
Jasmina Ließmann <minapokhalo+typo3@gmail.com>
-
Jasmina Ließmann authored
If there are no records or the filter/search does not return a result, an information is now displayed in the "Log" backend module. Resolves: #103738 Releases: main, 12.4 Change-Id: I388e1e4db0885a143d3a626cd35199728b5c395b Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/84043 Reviewed-by:
Garvin Hicking <gh@faktor-e.de> Tested-by:
core-ci <typo3@b13.com> Tested-by:
Christian Kuhn <lolli@schwarzbu.ch> Reviewed-by:
Christian Kuhn <lolli@schwarzbu.ch> Reviewed-by:
Jasmina Ließmann <minapokhalo+typo3@gmail.com> Tested-by:
Garvin Hicking <gh@faktor-e.de> Tested-by:
Jasmina Ließmann <minapokhalo+typo3@gmail.com>
-
Jasmina Ließmann authored
Resolves: #103736 Releases: main, 12.4 Change-Id: Ia93d67fc49fd9b7a123494928a4360515fc76cb3 Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/84041 Tested-by:
Christian Kuhn <lolli@schwarzbu.ch> Reviewed-by:
Christian Kuhn <lolli@schwarzbu.ch> Tested-by:
core-ci <typo3@b13.com> Reviewed-by:
Garvin Hicking <gh@faktor-e.de> Tested-by:
Garvin Hicking <gh@faktor-e.de> Tested-by:
Jasmina Ließmann <minapokhalo+typo3@gmail.com> Reviewed-by:
Jasmina Ließmann <minapokhalo+typo3@gmail.com>
-
Christian Kuhn authored
To further streamline the DataHandler/DataScenarios tests, the 'Regular' 'free mode' tests are extracted to an own scenario setup. This avoids importing multiple fixture files and separates the complex mix in 'Regular'. Resolves: #103742 Related: #103734 Releases: main Change-Id: I723c7f582910f3072fbbdcb3d7493f0eaf44e368 Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/84045 Tested-by:
André Buchmann <andy.schliesser@gmail.com> Reviewed-by:
André Buchmann <andy.schliesser@gmail.com> Tested-by:
core-ci <typo3@b13.com> Tested-by:
Oliver Klee <typo3-coding@oliverklee.de> Tested-by:
Anja Leichsenring <aleichsenring@ab-softlab.de> Reviewed-by:
Anja Leichsenring <aleichsenring@ab-softlab.de>
-
Jasmina Ließmann authored
As in the backend module "Configuration", search results can be displayed as badges next to the search input field. When the search input field is displayed with a label instead of placeholder text, the badge was displayed out of place. This patch aligns the badge to the search input field. In addition, the search field now takes up full width for small breakpoints. Resolves: #103716 Releases: main Change-Id: I322b4ab4c62823fa6dcf9d00fc30bc8671c57f09 Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/84013 Reviewed-by:
Garvin Hicking <gh@faktor-e.de> Tested-by:
Georg Ringer <georg.ringer@gmail.com> Tested-by:
Christian Kuhn <lolli@schwarzbu.ch> Tested-by:
core-ci <typo3@b13.com> Reviewed-by:
Georg Ringer <georg.ringer@gmail.com> Reviewed-by:
Christian Kuhn <lolli@schwarzbu.ch> Tested-by:
Garvin Hicking <gh@faktor-e.de>
-
André Buchmann authored
Tests in DataScenarios/Regular for the DataHandler are based on invalid source data. There are translated content elements on pages that have no translations. It's not possible to translate content elements without having a page translation first in the backend. A lot of the tests use workarounds and create those missing page translations first. The tests should be based on valid source data in order to check the pages and handling of the content. There is now a dedicated csv file containing tt_content and their related pages records to run tests with translations. For this reason, all tests that do not include a page translation process themselves import the default translations via a separate csv file. Accordingly, the tests localizePage*, localizeAndCopyPage*, localizeNestedPages* and movePageLocalized* do not import the default translations. It is also ensured that no content translation exist in the source data without a corresponding page translation. Resolves: #103734 Releases: main Change-Id: I9475c8e4fee53b1925a0d8bc4f33acd58dd29aa4 Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/83632 Tested-by:
Eric Harrer <info@eric-harrer.de> Reviewed-by:
Christian Kuhn <lolli@schwarzbu.ch> Reviewed-by:
Eric Harrer <info@eric-harrer.de> Tested-by:
Christian Kuhn <lolli@schwarzbu.ch> Tested-by:
core-ci <typo3@b13.com> Tested-by:
Oliver Klee <typo3-coding@oliverklee.de>
-
- Apr 26, 2024
-
-
Jasmina Ließmann authored
Resolves: #103737 Releases: main, 12.4 Change-Id: I83278a84037a4fe46b85a8570b7ff345eabeb0a0 Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/84042 Tested-by:
Simon Schaufelberger <simonschaufi+typo3@gmail.com> Reviewed-by:
Christian Kuhn <lolli@schwarzbu.ch> Tested-by:
Christian Kuhn <lolli@schwarzbu.ch> Tested-by:
core-ci <typo3@b13.com> Reviewed-by:
Jasmina Ließmann <minapokhalo+typo3@gmail.com> Tested-by:
Jasmina Ließmann <minapokhalo+typo3@gmail.com> Reviewed-by:
Simon Schaufelberger <simonschaufi+typo3@gmail.com>
-
Christian Kuhn authored
This is a relatively small add-on to RelationHandler when it reads MM relations initiated through start() in readMM(). In general, relations found by the read API are written to $this->itemArray, can be read from there, or further processed. readMM() of course queries the according MM table to find relations. Those MM rows typically have - next to local and foreign "uid" - the foreign table field "fieldname" the relation is attached to, plus both local and foreign sorting values. The patch adds these three to $this->itemArray items, next to existing "tablename" and "uid". This allows us to suppress a useless query to the MM table in consuming code, where sorting fields and foreign fieldname can be important to know - which is the case with an upcoming patch. The patch also cleans up some other details to make the code a bit better readable. Note RelationHandler and its pair class PlainDataResolver in general suffer from these problems: * Both always receive table-uids only and often need to fetch the full record, even though calling code often has the record at hand already. * The result never includes full relation rows but only uids, even if the full row is fetched in various scenarios. * Sorting out invalid workspace records needs additional queries. Together with the messy and hard to understand code including a long list of public properties, the very unfortunate main API start(), and some structural performance issues, a rewrite of RelationHandler and PlainDataResolver becomes more and more pressing. If done right, this would unblock a series of powerful performance improvements for instance in DataHandler. Resolves: #103735 Releases: main Change-Id: I7f793c27b3703cc3ce8bc2213d81d05e676c8823 Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/84040 Reviewed-by:
Stefan Bürk <stefan@buerk.tech> Tested-by:
Garvin Hicking <gh@faktor-e.de> Tested-by:
Nikita Hovratov <nikita.h@live.de> Reviewed-by:
Christian Kuhn <lolli@schwarzbu.ch> Tested-by:
Christian Kuhn <lolli@schwarzbu.ch> Tested-by:
Stefan Bürk <stefan@buerk.tech> Reviewed-by:
Garvin Hicking <gh@faktor-e.de> Tested-by:
core-ci <typo3@b13.com> Reviewed-by:
Nikita Hovratov <nikita.h@live.de>
-
Stefan Bürk authored
Database field default values for TEXT, BLOB and JSON fields has been added with #103578 and default value normalization fixed with #103610 also including a direct bugfix for the reported and contributed `PostgreSQLSchemaManager` in Doctrine DBAL [1]. The Doctrine DBAL Team released `4.0.2` containing this bugfix, which has been ensured with #103729 and is now removed again to clean up the Core code base. [1] https://github.com/doctrine/dbal/pull/6358 Resolves: #103730 Related: #103729 Related: #103610 Related: #103578 Releases: main Change-Id: I77d8f595a18d648ddf14ddba98156f4cc337dd9f Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/84025 Reviewed-by:
Anja Leichsenring <aleichsenring@ab-softlab.de> Tested-by:
Stefan Bürk <stefan@buerk.tech> Tested-by:
Anja Leichsenring <aleichsenring@ab-softlab.de> Reviewed-by:
Christian Kuhn <lolli@schwarzbu.ch> Tested-by:
Christian Kuhn <lolli@schwarzbu.ch> Reviewed-by:
Stefan Bürk <stefan@buerk.tech> Tested-by:
core-ci <typo3@b13.com>
-
Stefan Bürk authored
Doctrine DBAL released a new bugfix version [1] of the `doctrine/dbal` package, including a required bugfix for TYPO3 v13 [2]. This change upgrades to `4.0.2` to ensure that the bugfix [2] is included and all changes from `3.8.1` up to `3.8.4`[3][4][5]. Used command(s): > \ composer req --no-update --no-install \ -d typo3/sysext/redirects \ "doctrine/dbal":"^4.0.2" ; \ composer req --no-update --no-install \ -d typo3/sysext/core \ "doctrine/dbal":"^4.0.2" ; \ composer req --no-update --no-install \ -d typo3/sysext/install \ "doctrine/dbal":"^4.0.2" ; \ composer req \ "doctrine/dbal":"^4.0.2" Note: The intermediate fix in our extended Platform classes will be removed with a follow up commit. [1] https://github.com/doctrine/dbal/releases/tag/4.0.2 [2] https://github.com/doctrine/dbal/pull/6358 [3] https://github.com/doctrine/dbal/releases/tag/3.8.4 [4] https://github.com/doctrine/dbal/releases/tag/3.8.3 [5] https://github.com/do...
-
Benjamin Kott authored
Both extensions core and linkvalidator do not ship css files. PostCSS cannot find any files to process here. Resolves: #103731 Releases: main, 12.4 Change-Id: Ibdfcecb4dd813b04e89bab5d2fcfe3a55b0bf4b4 Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/84033 Reviewed-by:
Andreas Kienast <a.fernandez@scripting-base.de> Reviewed-by:
Benni Mack <benni@typo3.org> Tested-by:
core-ci <typo3@b13.com> Tested-by:
Benjamin Franzke <ben@bnf.dev> Reviewed-by:
Benjamin Franzke <ben@bnf.dev> Tested-by:
Andreas Kienast <a.fernandez@scripting-base.de> Tested-by:
Benni Mack <benni@typo3.org>
-
Anja Leichsenring authored
With #103523 site sets for ext:styleguide were introduced and the page tree generator received an option to create a frontend demo section using the shipped set. Now the click on this button will actually respect the user's wish and create the site using the set and not create a sys_template record. Resolves: #103732 Related: #103523 Releases: main Change-Id: I1560150c24f643a9ac1b7aefe3d7b0fbe109d62e Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/84034 Reviewed-by:
Andreas Kienast <a.fernandez@scripting-base.de> Tested-by:
Andreas Kienast <a.fernandez@scripting-base.de> Tested-by:
Benjamin Franzke <ben@bnf.dev> Reviewed-by:
Benjamin Franzke <ben@bnf.dev> Tested-by:
core-ci <typo3@b13.com>
-
Benjamin Kott authored
We're enhancing our backend by introducing a refined system for shadows. The default and strong shadows remain for simple components, while tooltips, flyouts, dialogs, and windows have dedicated ones. This streamlines shadow definitions across elements, ensuring consistency. Shadows support both light and dark modes for visibility across all settings. Resolves: #103726 Releases: main Change-Id: Id02122a9f48833df03e28613642499b63c339b45 Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/84019 Tested-by:
Benjamin Franzke <ben@bnf.dev> Reviewed-by:
Benjamin Franzke <ben@bnf.dev> Reviewed-by:
Benjamin Kott <benjamin.kott@outlook.com> Tested-by:
Andreas Kienast <a.fernandez@scripting-base.de> Tested-by:
Benjamin Kott <benjamin.kott@outlook.com> Reviewed-by:
Andreas Kienast <a.fernandez@scripting-base.de> Tested-by:
core-ci <typo3@b13.com>
-
Benjamin Franzke authored
Provide a new (default) EXT:styleguide frontend generator that uses site set infrastructure provided by #103437, #103439 and #103522. The old sys_template-root based renderer is preserved and tested independently Resolves: #103034 Related: #103437 Related: #103439 Related: #103522 Releases: main Change-Id: I53c986d7a47c8c2687b2a240410f9d4130fbae4b Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/83696 Tested-by:
core-ci <typo3@b13.com> Tested-by:
Benjamin Franzke <ben@bnf.dev> Tested-by:
Benni Mack <benni@typo3.org> Reviewed-by:
Benni Mack <benni@typo3.org> Tested-by:
Stefan Bürk <stefan@buerk.tech> Reviewed-by:
Stefan Bürk <stefan@buerk.tech> Reviewed-by:
Benjamin Franzke <ben@bnf.dev>
-
- Apr 25, 2024
-
-
Willi Wehmeier authored
The modal form to rename a file needs a proper label for the filename input field. Resolves: #103724 Releases: main, 12.4 Change-Id: I29018d288ced1de6001d38b841ef37a1231f7394 Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/84021 Reviewed-by:
Andreas Kienast <a.fernandez@scripting-base.de> Reviewed-by:
Garvin Hicking <gh@faktor-e.de> Tested-by:
Garvin Hicking <gh@faktor-e.de> Tested-by:
core-ci <typo3@b13.com> Reviewed-by:
Oliver Bartsch <bo@cedev.de> Tested-by:
Andreas Kienast <a.fernandez@scripting-base.de> Tested-by:
Oliver Bartsch <bo@cedev.de>
-