Sulu 1.1

After half a year of development and approximately 200 pull request on GitHub we are proud to present the 1.1 release of our content management platform Sulu. The most visible change is a big redesign, which will be covered in a separate blog post. This particular one will concentrate on new features and technical improvements.

Smart content data provider

One of our most powerful feature is smart content and it received a big refactoring. The logic is now split among different data providers which makes it easy to use this content type not only with pages but also with other data in Sulu. Adding your own data provider is also simple in order to enable your own entities to be aggregated.

Sulu comes prepackaged with a few data providers. In addition to the access to the content of a webspace there are also data providers for contacts, accounts and the media bundles. You can now aggregate this data using tags, categories and a few more options.

For more information about the enhanced smart content check out our documentation.

Contact selection

The "contact selection" content type is a great feature which enables the editor to access the data from the Sulu contact module. It works similar to the media selection: Klick the blue button and use the overlay to manually assign contacts to the current page.

Security

The object based security has now been included into the user interface. Here are a few examples:

In the media budle only files and collections are visible for which the user has sufficient permissions.

The content navigation of a webspace also adapts to the users security settings. It shows a "pencil" icon when the user is allowed to edit the page and an "eye" icon for view-only permissions. With no permissions the page is still visible in the content navigation because it might be possible that the user is still allowed to edit or view sub pages of the page.

Furthermore the UI only shows options to delete or move entities if the user has the corresponding permissions. 

A bigger refactoring was necessary to make the search security-compliant. First of all entities which are secured on an object-basis had to be removed from the search results. Additionally it should not be possible for users to retrieve pages in the search from webspaces for which they have no permissions. To make this possible the search indexes were splitted for each webspace so that the results are only searched in the available indexes for the users. As a nice side effect this speeds up the website search as well since the indexes are smaller now.

Media

The media bundle now offers system collections that allow developers to store files which can be identified by a simple key. Sulu already uses that feature for contact images, organization logos or preview images of videos or audio files. For the latter the file edit overlay offers a new tab in which a preview image can be uploaded.

Speaking of videos: Sulu can now automatically generate images from uploaded videos as preview images. It is still possible for users to edit this manually if they are not satisfied by the result.

System collections might also be useful for your own application: E.g. you can use it to enable document uploads which the system can automatically store to the Sulu media management. There is also a cookbook entry in our documenation that explains how to make use of these system collections in custom applications.

Another addition to the media bundle is a dedicated copyright info filed which is useful when working with files which are restricted by certain licences.

Client-side development

A part of the interface redesign was a comprehensive refactoring of the frontend architecture. We introduced javascript services which are simple RequireJS modules (e.g. there is a service to save, load and edit contacts). The big advantage here is that we can avoid nesting different components which also require to communicate via events. With the new services calling these methods got a lot easier.

There are also new hooks making it easier for frontend developers to extend the Sulu administration especially when working with events, templates, options or translations. Just have a look at the AdminBundle documentation for instructions how to make use of these new hooks.

Lots of bugfixes

Just by having a look at our huge changelog you can imagine that we did not work exclusively on new features. There are also lots of bugs fixed which we encountered during development and usage in production. Just a few examples: 

– Copying pages containing shadow languages caused a bug in the URL handling so that the shadow pages were not accesible online. 

– When using data from the excerpt tab or when using categories the system might have used the wrong language.

– The URL handling and furthermore the handling of content types in general unveiled some problems so there was also a small refactoring there.

– The user locking had no effect on the system permissions.

– The asterisk can now be used in the list/table search.

– The performance was improved in many places.

And much, much more…

Now go for it!

You hopefully enjoy Sulu 1.1 as much as we do. We put a lot of time, effort and love into this update and believe that it makes it a better content management platform for you projects.

You can download Sulu 1.1 here.