Contao news

Read the official Contao announcements.

Contao 4.12.0 is available

by Leo Feyer – Announcements

Contao version 4.12.0 is available. The release includes new features such as extended locale IDs, a guests group, an improved Markdown element, centralized JSON+LD management, support for Twig templates and Symfony 5.3, and more.

Extended locale IDs

From now on all available locale IDs can be used as language in the page structure, for example de_Latn_CH@currency=EUR or similar in addition to de and de_CH. This allows multilingual websites to be adapted even better to the different target groups.

To match this, there is also a new security voter that can check the group membership.

Resources: #2305, #3124

Guests group

Previously, pages, articles, and content elements could only be shared with either specific member groups or guests. The new guests group also allows sharing with specific member groups and guests now.

Resources: #3088

Markdown content element

The Markdown content element now supports an extended syntax that can be used to create tables, for example. In addition, the Markdown can now be read from a file as an alternative to entering it via a text field.

Resources: #3055

Input fields in the file manager

The input fields in the file manager can now be limited per user group, so editors e.g. only have access to the metadata.

Resources: #3103

License information

An input field for license information has been added to the file metadata. The license information is output in the JSON+LD data in the front end and can be evaluated by services such as Google.

Resources: #3076

Confirm password

The "Confirm password" field has been removed and was replaced with a "Show password" toggle in the back end which shows the password in plain text if required. For security reasons, this only works for new passwords and not for passwords that are already stored in the database.

Resources: #3052

Website search

The website search has been optimized once again and now does not need a cache anymore. Therefore the maintenance job "Purge the search result cache" has been removed.

Resources: #3080

Intl for languages and countries

Instead of maintaining separate lists for languages and countries, we will use the Symfony Intl component in the future. This also supports more language codes than our previous implementation.

Resources: #3138

MySQL strict mode

If MySQL is not running in the so-called "strict mode", data can be truncated when saving and data integrity is no longer guaranteed. For this reason, the Contao install tool now warns when strict mode is not enabled.

Resources: #3175


Thanks to Moritz' tireless efforts, it is now possible to use Twig templates in Contao and also to override Contao templates with Twig templates.

Merging the two template engines is very complex, so we decided to mark the feature as @experimental for now. Our BC promise does not apply to experimental features, which means that the API can still change at any time!

Experimental features are a good way to make new features testable for everyone while being flexible to unexpected problems.

Resources: #2988

Centralized JSON+LD management

All metadata such as information or the configuration for the crawler are output as JSON+LD data in Contao 4.12 and no longer as inline attributes in the HTML source code.

Resources: #2962, #2801, #3119, #3155, #3167

Response context

The response context ist a new way to adjust the metadata of the response, e.g. to overwrite the page title or the meta description.

Resources: #2975, Docs

web folder

The web folder that has to be defined as document root in Contao has been called public in Symfony for a long time. As of version 4.12, Contao supports both names, although the Contao Manager still uses web.

Resources: #3084

And a lot more

An overview of further changes can be found in the changelog.

Symfony compatibility

Contao 4.12 is compatible with Symfony 4.4 and Symfony 5.2+.

Also see: Tickets | Version comparison | Changelog

Show all news


Add a comment

What is the sum of 1 and 2?