TYPO3 Version 10.1 - On the High Seas

Categories: Development, TYPO3 CMS Created by Michael Schams
TYPO3 version 10.1 is the second sprint release on the way to the LTS-version (long-term support) in 2020.

Today, we released the second sprint release of the TYPO3 v10 series, and we are thrilled to announce the availability of TYPO3 version 10.1. The new release received more than 250 Git commits (reviewed, tested and approved source code changes) since its predecessor version 10.0 published 10 weeks ago. Although backend users won't see many obvious changes or major new functions as such, TYPO3 version 10.1 received a number of improvements under the hood.

Let’s pick a few outstanding aspects as examples what integrators, administrators, and developers can expect from the new version.

Key changes and improvements

Default site configuration

A few steps are required to set up a new TYPO3 site from scratch. In TYPO3 version 10.1 we simplified the process a little: when a new page is created on the root level a standard site configuration is automatically generated with it. One fewer step is required in setting up your next project and one less hurdle for new users of TYPO3!

Detect conflicting redirects

The Redirects backend module was introduced with TYPO3 v9 and lets site administrators add and configure redirects. The source path can be an arbitrary name or it can be represented as a regular expression. This provides great functionality but what if a redirect has the same name as a page URL? Configuration mistakes like this happen and TYPO3 now offers a simple solution to detect conflicting redirects: a CLI command that shows a list of clashes (if any exist). This command can also be configured as a scheduler task, and the results are shown in the backend under “SYSTEM ➜ Reports”.

Slug updates and redirects

Supporting backend users in their daily work and making TYPO3 as robust and user-friendly as possible has always been very high on our list. Sometimes it is necessary to change the URL path of a page (the so-called “slug”) and backend users can easily do that in TYPO3 if they have the appropriate access permissions. However, such an action usually results in a “page not found” error if a visitor to the site tries to access a page using the old slug. TYPO3 version 10.1 now features an intelligent solution: It automatically updates the relevant slugs for all sub-pages and can create redirects from the old to the new URL. Backend users are informed about these actions and can easily roll back the changes with a click of a button.

Cache presets

As an enterprise content management system, TYPO3 is well-known and popular for powering very large websites and applications without problems. But also small to medium-sized web projects running on shared hosting environments use TYPO3 for various reasons. Two of these are performance and the option to fine-tune almost every aspect of an installation.

TYPO3’s caching framework uses the database as the storage for caching by default. However, various tests show that this is under certain circumstances, not the perfect and most performant configuration. Depending on the environment and hosting setup, a cache stored in the file system is faster. Integrators and administrators can now configure the storage type for caches.

File upload default action

Integrators will embrace this new feature and backend users will love it for sure: the default action when backend users upload files is now configurable! In previous TYPO3 versions, the default is “Skip this file” if backend users try to upload a file that already exists. This is, of course, the safest option, but TYPO3 v10.1 allows you to re-configure it, making the file upload functionality more flexible and user-friendly. Available options are “replace”, “rename”, and “cancel”.

Custom file processors

Developers will be ecstatic about another new feature regarding file uploads. You can now register your own file processors. If you don’t have a clue what purpose this could have, think about any operation you could apply on a file that is uploaded by a backend user! Here are some use cases: add watermarks to images, compress uploaded files to a ZIP archive, store a copy of a cropped image, transfer uploaded files to a second storage location, etc.

We can't wait to see the first extensions that implement a custom file processor and make use of this feature!

Backend notifications

“Notifications” are an essential element of the user interface. These are small boxes that sometimes pop up in the top right corner of the TYPO3 backend and inform the user about certain events. This could be a notification about a process that successfully finished, a warning that something occurred unexpectedly, or a fatal error to inform the user that he/she is really in trouble now.

Wouldn’t it be awesome if these notifications would feature buttons the user can click? Good news: as a matter of fact, developers can now implement actions to execute JavaScript functions.

However, keep in mind that notifications usually disappear automatically after a few seconds, so think carefully how users may interact with these components before you implement buttons in backend notifications.

Cache dependency injection

Caching has been an important success factor and that’s why we are not getting tired improving this component in TYPO3 whenever, wherever we can. Symfony’s Service Container was introduced in TYPO3 version 10.0 and this allows us now to inject cache objects directly rather than using the CacheManager.

In other words: the TYPO3 core now provides all core caches as dependency injection services and extension developers are encouraged to leverage this pattern from now on. To do this, add your cache service to the file “Configuration/Services.yaml” and dependency injection takes care of passing the cache to your class constructor. Since TYPO3 version 10.1 developers don’t need to use the “CacheManager” anymore.

Does this sound complicated? In fact, it is not: have a look at the documentation which also shows some code examples.

Clean-up work

Just like any other TYPO3 release, we streamlined some functions and cleaned up some old code fragments in TYPO3 version 10.1 too. Among other things, this includes the well-known “jumpToUrl()” JavaScript function (which has been marked as “deprecated”) and a few JavaScript variables that will be removed in TYPO3 v11.

We also made some internal changes to the “RecordHistory” class and added two new events that are dispatched when records are rolled back. This allows developers to access and manipulate data, before and after a record history entry is reverted.

Do you still use the legacy XML format for your language files? To put it briefly and painlessly — migrate all your XML files to the XLIFF standard now! XLIFF was introduced with TYPO3 version 4.6 (almost 8 years ago!) and is the recommended format for language files since then. Using XML for language files has been classified as deprecated in TYPO3 version 10.1 and will no longer be supported in the near future. If you need a tool to converting XML language file, give the extension EXT:ew_llxml2xliff by Sebastian Fischer a try.

Strengthen the security

Every improvement that strengthens the security of a website and that protects the privacy of its users is important, no matter if the change is big or small. From now on, all external links processed by TypoLink show the tag attribute rel="noopener noreferrer" by default.

While the first value “noopener” instructs browsers to open the link and block access to the document that contains the link, the second value “noreferrer” instructs browsers not send any data about the origin in the “Referer:” HTTP header.

Read more about these link types at developer.mozilla.org.

Download

TYPO3 can be installed in various ways. For example the traditional way by using the source package at get.typo3.org or the modern way by setting up a project using composer, to name just two. Further details can be found at get.typo3.org/version/10.

What's next

To learn more about the new features, changes and improvements of TYPO3 version 10.1, have a look at the TYPO3 What’s New Slides or the detailed technical change log.

The next release on our road to the LTS version of TYPO3 v10 will be version 10.2, currently scheduled to be released in December 2019. You can find the release agenda in the TYPO3 Roadmap.

Until then, we would like to encourage you to check out TYPO3 version 10.1, embrace the new features and improvements, share your thoughts, and report issues. There are also some exciting development initiatives, where you can get involved to shape the future of TYPO3.