This is a review of the eZ publish CMS from eZ systems. It's released under the GPL v2 but has optional commerical support, and is written in PHP4. Disclaimer: I work for a company that is a partner with eZ systems and work with the CMS myself.


Only testers going through the whole GnomeWeb/CmsRequirements/CmsTest can add their points. You can add your comments on the evaluations made.

Ranks: 0 Not supported - 1 Partially possible - 2 Possible but complex - 3 Possible and easy










Publish static pages

Publish news

Define friendly URL of a page, including subdirectories

Publish images in a page

Publish attached files in a page

Publish podcasts / screencasts

Integrate aggregated feeds in a page

Pre-publish a page making it available only to users with editing permissions

Customization of forms for different content types (i.e. case studies)

Set feeds for new content

Track and diff of all changes made

Notify that a page has been updated

Revert changes

Display when a page was last updated

Create localizations in the GNOME supported languages

Get language settings from browser

Edit interface strings in all languages

Content as PO files or at least XML import/export

Set links between different versions of the same page

Control version system to detect outdated pages

Visualization of status of translations

Create and edit menus and submenus

Assign pages to menu entires

Stablish relations between pages

Create an automatic sitemap

Assign keywords to pages

Customize homepage to make it look like the mockups

Customize theme to make it look like the mockups

Set different templates for different sections

Search performance (probably to be tested in a big website)

Search results per type of content

Index content in the server not produced by the CMS

Create new accounts and assign permissions

Set permissions policies

Set permissions at a page/section level

Check documentation for help

Activate caching system

Check statistics

Backup database

Upgrade new version

Additional comments:

  • Explain here anything relevant not covered by the table above.


  • robust against attack attempts

eZ publish is being constantly tested for security problems during its development. In case there are security issues in a released version, eZ systems provides security fixes in short time.

  • some features protected by authentication

The eZ publish comes with a built-in access control mechanism that can be used to limit access to content or to certain functions. The access control system is based on the following elements:

  • User
  • User group
  • Policy
  • Role

More information can be found in the official eZ publish documentation: Learn more about eZ publish security related topics:

  • option to communicate over a secure channel (SSL)

On a website, it might be needed to force access over SSL to certain parts of the site. This could for instance be the login page or a page where you view your order information. On the other hand it is often not desired to run SSL on the whole site as this require more bandwidth and CPU resources on the server side. SSL zones defines parts of you website where data must be transmitted encrypted over SSL. More information can be found in the eZ publish feature description:

  • upstream is active releasing security updates

eZ systems is the creator of eZ publish, an Open Source Enterprise Content Management System. It provides high-quality software and total product responsibility. This guarantee future updates, new features and bug fixes. Access to the SVN all the time:


  • friendly URLs

URL translation is supported by default by eZ publish. More information can be found in the official eZ publish documentation:


  • ways to translate standard CMS strings

eZ publish is designed with internationalization in mind, and a complete translation system has been developed to ease the process. There are now many different language packages available for eZ publish. Each package contains information about date, time, number and currency formats used, and the character set used, in addition to the translated strings. Most of the translations are performed by volunteers. The number of translations available is therefore completely dependent on those who are willing to help. More information can be found in the official eZ publish translation page:

eZ systems setup dedicated to translators mailing lists for better communication:

The development language of eZ publish is British English. The files for this translation are included in the distribution. Formatting and internationalization eZ publish comes with template operators for formatting and internationalization.


This operator makes it possible to translate static strings that are defined in various templates. It is typically useful to ensure that the HTML interface is available in several languages in a multi language scenario.


This operator formats/localizes miscellaneous numeric values according to the current locale settings. The value that should be formatted must be input using the input parameter.

  • ways to translate content

New multilingual concepts are described in the specification. This improvements are available since version 3.8 of eZ publish.

  • How far is eZ publish from using/importing/exporting PO files for publishing content in several languages?
    • Translation of the UI is actually done using a variation on Qt's Linguist (which I realise lots of people might not like!). I don't believe there is support in the current version for this.
      • Note that we are talking here about translating content, not the UI strings.
        • Ah - I don't believe it does it at the moment, but I will see if there is a way to do it with an addon or some such.
    • What do you mean by PO? eZ publish supports .ODF OASIS OpenDocument Format used by OO, KOffice. You can use it for import and export as eZ publish extension:

  • preferably show translators what changed and what needs updating

This can be done using the workflow system.

  • How far is eZ publish from having a revision control system showing to translators what changed in the original English pages and what needs updating in the translations?
    • The content diff function highlights what has been changed in a similar way to MediaWiki or maybe the "track changes" feature on OpenOffice.

  • preferably get language settings from browser (Accept-Language) and session (cookies)

This can be solved by small add-on to eZ publish. System can check user browser language then automatically load page in the correct language.

  • have URLs to translated pages, so they can be directly referenced

This is supported out-of-box.


  • a comfortable framework for editing content

eZ publish gives you control over your content. Create, handle, sort and store documents, files and images. Publish them in the format, channel or media you prefer. All administration of eZ publish is done through an intuitive web interface. No installations on your pc are needed. Access to the administration interface is managed by a powerful role-based access control system giving you the right to read, edit, publish content etc. The system has no limitations to the amount of content or the number of users in the system except that a great deal of traffic would require more hardware. eZ publish can also be set up so that you can edit content directly from the user site and not have to use the admin interface at all. You can learn more about eZ publish web publishing here: See User manual and learn more about eZ publish content management:

Online Editor is bundled with eZ publish.

  • "draft" content, which is already managed in the system, but not yet published

Available in eZ publish out-of-box.

  • translators can do their job before content appears to the public

Translators can work on drafts or on hidden objects.

  • pre-edit text to be published at a specific date and time

This is available out-of-box. Content object can be published or unpublished on specific date and time. When object is unpublished it is removed from the content tree (move to trash). eZ publish gives also possible to hide object on specific date and time instead of remove it. This means that object is still available in the content tree but it not accessible from public site.

  • perhaps automatically publish on a specific date and time

Available in eZ publish out-of-box. More information can be found in the official eZ publish documentation:

  • track who has rights to edit a page

Administrors can check roles and polices and see to whom they are applied to.

  • track who did edit a page

This can be done either with version management ( ) or with content diff ( )

  • I think we should default to anyone being able to edit a page. Logging in is already an obstacle. MurrayCumming.

eZ publish allow Anonymous users (not logged in) to manage the content (edit/create/remove and more).

  • track exactly what was changed. For instance, like a diff.

This can be done with content diff ( )

  • can display when a page was last updated

Every object in the eZ publish contains information about publish and modified date. It is Unix time stamp format which can be easily formatted to human readable form with l10n template operator.

  • perhaps change management, so older version of a page can be recalled

Available in eZ publish out-of-box.

  • copyright and licensing information can be displayed on the pages

This can be easily solved with eZ publish object related object datatype or just place licence information directly in the templates. Each licence type can be separated content object which can be easily edited. Proposed licence class example datatypes: 1.Licence Name [Text line] 2.Licence Description [XML block] 3.HTML Blurb [Text block] Implementation example: Licence name is displayed below the content object.


  • the served html should be accessible
    • with a wide range of browsers (desktop and mobile)
    • for people with disabilities
  • the markup should primarily capture content structure not representation
    • (i.e. "heading" versus "big bold font")

eZ publish follows open standards. XML: content is stored in XML RSS: XML content syndication is supported via XML WebDAV: Manage your images and files via the WebDAV interface LDAP: synchronise your user database with eZ publish via LDAP SOAP: eZ publish has a SOAP library for import and exports following this webservices standard OpenOffice.orgXML File Format: for import and export of documents. W3C: eZ publish is designed to follow the W3C standards Browser independent: eZ publish is browser independent, IE, Opera, Mozilla are some of the supported browsers XHTML eZ publish has standard templates that uses XHTML 1, but may be configured to use any kind of XML based mark-up language when custom templates are made.

Some examples: XHTML 1.0 Transitional XHTML 1.0 Transitional XHTML 1.0 Transitional XHTML 1.0 Strict XML XML is used in eZ publish many areas. There are output formats in XML like: XHTML, RSS, WebDAV and OASIS OpenDocument format. XML is also used internally in eZ publish to store content and structures. Using XML internally to store content structures enables easy transformation to other formats. CSS eZ publish uses CSS 1 and 2 to apply presentational styles to the XHTML structural content. A developer may make and apply styles in any way to an eZ publish site, only limited by what current browsers support.

Some examples of sites build with eZ publish that comply to CSS standards according to W3C CSS validator:

  • support hierarchical URLs (subdirs)

The content node tree is a hierarchical organization of the objects. Each leaf in the tree is a node (also known as a location). Each node refers to one object. The usual case is that an object is referenced by only one node. Because of the node-encapsulation of objects, any type of content object can be placed anywhere in the tree. At the minimum, the tree consists of one node, called the root node. The identification number of the root node is 1. The root node is a virtual node, it does not encapsulate an actual object. A node that is directly below the root node is called a top level node (the top level nodes are described in the next section). The depth and width of the tree is virtually unlimited.

More information about the content node tree can be found in the official eZ publish documentation:

  • support hierarchical navigation (submenus)

This is available out-of-box. Menus and submenus are available.

  • preferably have a site map

This is available out-of-box. Sitemap can be generated base on the actual content structure. eZ publish comes with module “content/view/sitemap/<node_id>” which is template base and can be easily tune to the site specific needs. By default sitemap is generated to second level. It is available in both public site and in the administration interface.


  • shall provide feeds (RSS, Atom, etc)

Both RSS exports 1.0 and 2.0 are available out-of-box.

  • news (for visitors)

Both RSS exports 1.0 and 2.0 are available out-of-box.

  • site updates (for content authors)

This can be done either by feeds (RSS 1.0 or 2.0) or by notification system. eZ publish has a built-in notification system that allows users to be informed about miscellaneous events that occur. It is possible to be notified when objects are updated or published, when workflows are executed and so on. There are two built-in types of notifications: Subtree notifications Collaboration notifications More information about notifications can be found in the official eZ publish documentation: peferably shall integrate external feeds (e.g. from This can be done either by built-in eZ publish RSS import feature or via ezrss template operator. The import feature creates content objects base on the source in the eZ publish installation. eZRSSFeed template operator can be use to display latest news from many sources e.g on the home page. It does not create content objects in the database.


  • shall be themeable to adopt the gnome look

eZ publish uses templates as the fundamental unit of site design. A template is basically a custom HTML file that describes how some particular type of content should be visualized. A template file always ends with a ".tpl" extension. Actual HTML code in the built-in/default templates follow the XHTML 1.0 Transitional specification. In addition to standard HTML syntax, a template consists of eZ publish specific code. The eZ publish specific code makes it possible to extract information from the system and to solve common programmatic issues like for example conditional branching, looping, etc. All eZ publish specific code must be placed inside a set of curly brackets, "{" and "}".

Using templates eZ publish can be easily adopted to the design proposes.

More about eZ publish templates can be found in the official eZ publish documentation:


There should be enough expertise in our community to:

  • select (know the CMS enough to assert it meets our reqs)

You can get answers on almost all question using eZ publish Community forums. eZ systems crew is supporting forums with answers as well. There are possibilities use professional support by eZ systems.

  • install (the whole stack, includng RDBMS)

Using Debian “apt-get” it very simple to setup whole stack ready for eZ publish.

  • manage (keep updated and secure, without breaking it)

If eZ publish is used correctly, then upgrades should be very easy. This means that if you have not tampered with the kernel files, changed the database, the default settings and/or templates, everything should be okay. You can learn more about upgrades from the documentation:

  • fix (add missing features or critical updates not yet released by upstream)

Sources are available in the public SVN repository which is daily updated. All critical updates can be easily implement by applying the patches. You can subscribe to the different mailing lists and stay up-to-date:

sdk-public: This list is used for discussions about eZ publish development. If you want to contribute or if you want to discuss anything related to eZ publish development this list is for you.

sdk-svn: This list is used for svn-commit messages. Every time something is changed in the repository a mail with the repository diff and commit log is sent to sdk-svn. There is a lot of traffic in this list. It is intended for core developers who need to know about all changes.

Or use RSS feeds available on the

  • full text search

The system comes with a built-in search engine which integrates tightly with the content structure. It is capable of indexing everything that is inputted through the native content model.

Possible use eZ publish with Lucence

  • perhaps keywords assigned to pages?

This can be easily archive with keyword datatype.


  • it should be easy to make backups

It is very easy to do backups. It is enough to dump data from database (mysqldump for MySQL) and copy eZ publish folder.

  • it should be easy to restore backups

Just import database dump and restore eZ publish directory, that's all.

  • perhaps a replicate server in case the main one goes down?

It is possible to set Master and Slave database in eZ publish setup. The slave servers can be use for fail-over. Useful for environments that require high availability.

  • perhaps clustering?

eZ publish 3.8 has full support for cluster environments.

More information

GnomeWeb/CmsRequirements/eZpublishEval (last edited 2008-02-03 14:47:45 by localhost)