Daniel Rotter
Core Developer – Sulu GmbH
Core developer and support guru. Passionate traveler and soccer player.

Sulu 2.0.0-RC1 released

After months of hard work and countless hours of planning, development, testing and refactoring, we are stoked to announce the first release candidate of Sulu 2.0! All features from the 1.x series haven been ported and are ready to be tested. We hope many of you take the chance to dive into the completely reworked sytem and test the hell out of it. We are really appreciating any feedback.

In this blog post I will focus on the new features included in this release, leaving out the bugfixes that are also part of it.

Display options in MediaSelection

The MediaSelection field type got the display options functionaliy, which was still missing. The buttons on the right side of the header allow to define the position of an image relative to the content (left, right, top, bottom, ...).

Since this option has to be implemented also in the corresponding twig template, we have decided to not show any display options at all by default. This is different to the 1.6 series, where the display options had to be explicitly deactivated if you wouldn't need them, and we hope this minimizes the installation complexity. 

Documents tab in Contacts and Accounts forms

Contacts and Accounts got a documents tab, allowing to assign specific files to them. This is connected to Sulu's media section, meaning all documents managed there can be assigned.

Configurable config request

Sulu starts with a request to receive some configuration. This is required to parameterize the application, e.g. by indicating the URLs of certain endpoints or which options are available in a dropdown. Until now these values have been hardcoded in our AdminBundle. This is not good in terms of concern separation and doesn't allow to add custom configurations for 3rd party bundles. This has now been fixed by introducing the optional getConfigKey and getConfig functions in the Admin class.

List for page versions

If Sulu is used in combination with Jackrabbit, content editors are able to create a new version of a page each time it is published. This information was not visible in Sulu 2.0 yet, but now it is also available. You can find this feature in the settings tab, where all page versions are listed, and can also be restored. Restoring creates a new draft of the page, without messing with the currently published content.

Keywords for categories

Keywords can now be additionaly assigned to categories. This is e.g. useful if you want to build up synonyms for certain terms. The keywords have been moved to a separate tab in the UI instead of being shown in the same form, which makes using them more logical.

Audience Targeting

The audience targeting is probably one of Sulu's most advanced features. It makes it possible to display dedicated content to different group of visitors. This is made by defining some target groups with rules in Sulu and then assign pages, media or snippets to these users. The smart content will then figure out which content is dedicated to a visitor and automatically displays it.

With this relase the UI for creating these target groups has been added, so you can now start to use this feature again.


Sulu comes with a search function built into the core, which can now be accessed by the search navigation item. It behaves similar to the 1.6 release, but it does not group the search results by type anymore, as that could lead to visually confusing situations (e.g. certain content types like images would always be on top of the search result, even if another result would be much more relevant).

Permission Tab for pages

We have also added the permission tab to pages so the permission can be set for any user role.

Overlay for editing user profile

We also added a feature that has not been available in Sulu 1.6. If you click the user name or the avatar in the navigation an overlay opens, where the user can update their personal information, including first name, last name, username, email, password and the language of the system.

In 1.6 this was only possible with access to the system's Contacts section. The new implementation enables every user do this!