Exactly a year ago, we released eZ Platform v2.5 LTS - for which we got some really positive feedback about the version being more stable, extensible and fast to develop with than ever before. Since then, we started our journey to eZ Platform v3 with many ideas in mind.
Version 3 is the next generation of our Digital Experience Platform (DXP). Down the road, it will provide our customers with a more integrated, yet modular platform where content, e-commerce and personalization capabilities can easily be implemented. We shall continue the path of developing a product that can help digital teams deliver projects faster, one that is more extensible, customizable and interoperable.
Today we are very happy to release eZ Platform v3.0, the first release of version 3.
This first release focuses on reducing the technical debt and moving to the latest version of the Symfony framework, both offering a lot of value to developers. We also saw an opportunity to improve the developer experience, mostly to make developers faster. Finally, we decided to make a reality of many ideas we had been discussing with partners and developers. And, as editors are also very important, we took the opportunity to bring significant improvements to the editorial experience.
Let's have a look at eZ Platform v3.0.
Organizations located in multiple countries often have multiple websites, multiple hosting solutions, and multiple software for their online presence. This increases cost, complexity and potential security issues. Centralizing all their websites under the same instance helps them to reduce cost and be more secure as well as benefit from sharing content across sites more quickly and easily. Using eZ Platform, via traditional or Headless content delivery, organizations can respond to multiple challenges: multi-country, multilingual, multi-brand, multichannel, quickly and cost-effectively.
eZ Platform and previously eZ Publish, have always been capable of running several websites and solving such a challenge. However, this always required extra technical configuration work to be done by developers. With Site Factory, website owners can now go to the next level by creating a new site for a new country, a new brand or a new product in just a few clicks, without requiring any help from IT or developers, reducing time to market and increasing productivity.
In eZ Platform v3.0, Site Factory is available out of the box for every enterprise customer. Developers can prepare designs and templates for Site Factory and, as soon the feature is activated, any user with the appropriate rights can create a new site using the administration interface. Just select the design, add a domain name, choose a language et voilà!
We will be adding more features to Site Factory over the next few weeks, such as more granular user permissions, site skeleton, advanced search filters and more.
New Way of Browsing and Managing Content
One of the recurring feedback comments we got on eZ Platform v2.5 was "too many clicks". Every user of eZ Platform wants to create, edit and navigate as fast as possible. The product management team has been listening to these users, conducting interviews and exploring different options with one main objective in mind: how can we make eZ Platform faster to navigate? It led us to re-design of our Universal Discovery Widget as we presented in our earlier winter release blog post.
We have other improvements removing the numbers of clicks:
- The path persistence between interfaces (search, bookmarks and column view)
- Resizable column
- Filtered search
- Custom sort order in columns.
When it comes to navigation, editors also use the sub-items list. We also improved this component and added more columns to the table. This table is now extensible, and we are thankful for the contribution from our partners Contextual Code. There are three new bulk actions available in eZ Platform v3.0, you can now hide, unhide, and add locations to multiple content items. You can find more information on this subject in the sneak peek blog post about the User Interface.
Scheduling of Content and Content Calendar
Often marketers want to schedule content to go live when working on a time-sensitive campaign. Obviously, they also want to schedule the removal of content too. We introduced scheduling of content when we launched eZ Platform v2. With eZ Platform v3.0, editors can now schedule when to hide content items as well. eZ Platform v3.0 also includes a calendar view of all the content items that are planned to be published and those that will be hidden.
This feature was much requested by our Community. Here you can choose two versions of a content item and see highlighted differences between them. For more detail on this feature look at our Sneak Peek blog post from a couple of weeks ago where we covered it in more depth.
eZ Platform has always had a very granular permission system which website owners can use to define roles for every type of user. Webmasters can spend (and waste) a lot of time, for instance: by creating new roles for a new group of editors for a new language added to the website. With eZ Platform v3.0 we are introducing the copy role feature. With a single click the webmaster generates a copy of a role.
In April 2019, we began to migrate eZ Platform to Symfony 4 and Symfony Flex. As many of you know, we have a lot of packages and it took us few weeks to complete the task.
Then, during the eZ Paris Roadshow last year, we had the opportunity to discuss the release process of Symfony with Nicolas Grekas, (Product Manager at SensioLabs and CTO of Blackfire) and how eZ Platform releases can be aligned with it. Last November, SensioLabs released Symfony 5.0. And it became obvious to us that we needed to consider moving to Symfony 5, so today, we are happy to announce that eZ Platform v3.0 is using Symfony 5.
Siteaccess Aware Repository
eZ Platform v3.0 also ships with an important change for the repository layer which improves the user experience on multi-language websites. When you have multiple teams managing different languages of a website, seeing first the language they are responsible for is critical and more efficient. With this new version of eZ Platform, for example, you can define a German administration interface that loads German translation of content items.
You are probably aware that eZ Platform v2 has two different workflows: Flex Workflow and Editorial Workflow. The first one is used when asking for review by another editor or someone else in the team, without enforcing strong validation policy. The editorial workflow defines a stricter workflow with stages and transitions.
For eZ Platform v3.0, we decided to change the name of flex workflow to "Quick Review". It also has been recoded using the same component as the editorial workflow, based on Symfony workflow component. This enables developers to customize it like other regular workflows.
Workflows are also becoming more flexible and customizable than before, for example, developers can define custom actions for transitions in the workflow such as pushing the content to an external service or publishing it.
More Options for Searching
With eZ Platform v3.0, you have access to new criteria for your search. As a developer you have now more options when searching users. For instance, if the user is enabled or searching for a user email. If you want to know more about the search criteria available on eZ Platform v3.0, please check the reference page on eZ Platform developer documentation. eZ Platform also comes with a new sort clause for the search results: random. Developers can use it especially for listing on the frontend. Here is an example:
More Security for User Passwords
Website owners and administrators have more granularity than before when it comes to password security. For instance, you can prevent users from reusing the same password or define the number of days before the password expires. This is available at the field type level directly in the administration interface.
Customize the Buttons of Online Editor
We wanted to provide to developers a platform that they can configure by adding or sometimes removing elements. By default, Online Editor of eZ Platform has multiple buttons. If, for some projects, you don't want editors to see `embedinline` button, just add the following configuration:
You can also define a new order for buttons. For more information, check the documentation page for customizing buttons.
We all want to customize the interface for the users who have access to the administration interface. We are happy to announce that you can now define which field of a content type will be used as a thumbnail. By default, every image field can be defined as a thumbnail. As a developer, you can also extend the platform and provide the support of thumbnail for any field.
Grouping Blocks in Page Builder
Since eZ Platform v2, developers can add custom blocks for page builder. Recently, we saw customer projects with more than 25 custom blocks and a requirement to organize them.
With eZ Platform v3.0, you can group them under categories directly in the yml file by using the following setting `ezplatform_page_fieldtype.blocks.<block_name>.category`.
A New Field Type: Content Query
When developers create a site using eZ Platform, they almost always have to fetch children, siblings, parents and related content items and this is a repetitive task. eZ Platform v3.0 comes with a new field type that will speed up the development of websites making this task way easier: Content Query Field Type. Out of the box, this field has the most common queries. There's no further need to develop custom code for a gallery or a folder containing articles.
Another great addition to eZ Platform v3.0 is twig global variables. Developers can define variables at the project level (siteaccess) that they will be able to use in the templates. No need for an external bundle to do that anymore. It's now part of the product.
If you want to know more about the features above or discover more additional features for developers, please read eZ Platform v3.0 developer sneak peek: API and repository enhancements.
A New REST Documentation Website
eZ Platform can be used in headless projects using our REST API. Developers will be happy to use our new documentation website for REST and we benefit of a two column view (parameters on the left side and response on the right side). We also added search to make it easier to find the endpoint you are looking for.
A major release always comes with deprecations and removal. The most important one is related to SignalSlots. Some of you might have used this custom solution. We decided to simplify it. For the future, developers will use Event Listeners on Symfony and have more flexibility. We also deprecated two old field types: ezprice and ezpage. If you want to know more about deprecations, please check the release notes of eZ Platform v3.0.
Last time round, a few weeks after the release of eZ Platform 2.5, we released eZ Commerce 2.5. With this and eZ Personalization, customers could benefit from all the capabilities expected from a Digital Experience Platform. Earlier this year, eZ Systems acquired the e-commerce software from Silver Solutions, which is used in eZ Commerce. This acquisition will help us fully integrate this component into eZ Platform.
You can expect the next versions of eZ Platform to have the e-commerce and personalization capabilities fully integrated within the platform. Over the next few weeks, we shall concentrate our efforts on commerce components and upgrade them to Symfony 5. We shall also start working on a new API for our recommendation service and build a new interface inside eZ Platform Admin UI.
For now, eZ Platform v3.0 is available:
- On ezplatform.com and via composer updates.
- For customers in their support portal.
- As a trial for partners in the partner portal.
- On eZ Platform Cloud.
To see the full list of our new features, check out our release notes as well as the list of changes on Github for open source and the enterprise edition.
If you have any questions, please feel free to drop us a comment on discuss.ezplatform.com or feel free to reach out to us at firstname.lastname@example.org.