Contao news

Read the official Contao announcements.

Contao 2.11.beta1 is available

by Leo Feyer – Announcements

Contao version 2.11.beta1 is available. Please do not use beta versions for productional websites! Download the release to check whether your website or custom extension needs adaptation.

Multilingual website URLs

Although not required, Google recommends to identify the page language in the page URL. So far, this could be accomplished in Contao by using different subdomains (en.domain.tld and de.domain.tld). Alternatively, the language code can be submitted as the first URL parameter (domain.tld/en/welcome.html and domain.tld/de/welcome.html), which is e.g. the preferred way on Contao now supports both variants (you can activate the latter in the back end settings).

The new feature also includes a language switcher, which automatically finds related pages based on their alias. Note that you have to use the same alias for all related pages for the language switcher to work!

Finally, we have removed the "page language" setting from regular pages in the context of this change. The page language is now determined by the language of its root page.

Global style sheet variables

Global style sheet variables can now also be defined in the theme settings in addition to the style sheet header. Variables in the style sheet header override those from the theme settings.

Improved FAQ module

The FAQ module now has a back end permission system just like the news and calendar module. Access can be restricted on user and group level. Also, there is a new front end module which outputs all questions and answers on a single page instead of using a separate list and reader page.

News archive and reader on the same page

In the news archive module settings, you can now link to a news reader module to render a single article if the items parameter is set. In this case, the news archive is automatically hidden, so you can display both modules on the same page and generate more logical URLs.

/* OLD */
news.html // News archive
news-reader.html // Empty page
news-reader/items/james-wilson.html // News article "james-wilson"

/* NEW */
news.html // News archive
news/items/james-wilson.html // News article "james-wilson"

Disabling the CSS framework

Instead of removing $this->framework from the page template to disable the CSS framework, you can now disable it in the page layout settings. This allows us to add the system/contao.css file to the Combiner and reduce the number of external scripts.

Modified request token system

The request token system, which has been added in version 2.10, has been changed from a "one token per request" approach to a "one token per session" approach. Although this decreases the security of the token system, it improves the usability of the website insofar as you can now e.g. resubmit forms without running into the "invalid token" warning.

Contao safe mode

Not to be confused with the Safe Mode Hack, a new safe operating mode has been added to Contao, in which only the core modules are loaded. During a Live Update, Contao automatically activates the safe mode to prevent incompatible third-party extensions from blowing the application. After you have checked and/or updated all third-party extensions, you can reactivate the normal mode in the back end settings.

Autogenerated local configuration files

From version 2.11, Contao will generate the local configurations files automatically and redirect to the install tool if they do not exist. In case your are updating your installation from the SVN, take special care because the update will remove the existing files!

Adding system messages

There is a new hook called getSystemMessages, which you can use to add custom messages to the back end start page. Also, there are a couple of new methods to add one-time notifications:

$this->addErrorMessage()        // Adds an error message
$this->addConfirmationMessage() // Adds a confirmation message
$this->addNewMessage() // Adds a new message (something is marked as new)
$this->addInfoMessage() // Adds an info message
$this->addRawMessage() // Adds a preformatted message

One-time notifications are stored in the session and are automatically purged once they have been shown.

Insert tag changes

There is a new insert tag called {{page}}, which allows you to access all page parameters. It replaces the deprecated {{env::page_*}}, {{env::parent_*}} and {{env::main_*}} insert tags.

Autumn cleaning

A lot of minor things have been changed, fixed and improved. E.g. the old one-column form layout has been removed, all plugins have been updated and the back end select menus are now looking the same in all browsers. Large select menus are now searchable thanks to the chosen script by Patrick Filler, Jules Janssen and Jonnathan Soares. Also, Contao now supports sending CSS background images in newsletters as embedded images.

Website root pages are required

The support for websites without a website root page has been removed, meaning you will not be able to create regular pages in the top-level anymore. Using a website root page has been recommended ever since and has a lot of advantages like being able to define global access permissions or a global cache time.

Find out what has been done

Get an overview of all changes in the ticket system or the changelog.

Download the release from

Show all news


Add a comment

Please add 1 and 5.