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.
1. Test
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
Task |
Greg |
Jeff |
Joachim |
Quim |
? |
? |
? |
Comments |
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.
2. Security
- 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: http://ez.no/doc/ez_publish/technical_manual/3_8/concepts_and_basics/access_control Learn more about eZ publish security related topics: http://ez.no/products/ez_publish/info/key_features/security
- 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: http://pubsvn.ez.no/nextgen/stable/3.8/doc/features/3.8/ssl_zones.txt
- 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: http://pubsvn.ez.no/
3. URLs
- friendly URLs
URL translation is supported by default by eZ publish. More information can be found in the official eZ publish documentation: http://ez.no/doc/ez_publish/technical_manual/3_8/concepts_and_basics/url_translation
4. I18N
- 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: http://ez.no/community/translations
eZ systems setup dedicated to translators mailing lists for better communication: http://lists.ez.no/mailman/listinfo/translations
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. http://ez.no/doc/ez_publish/technical_manual/3_8/reference/template_operators/formatting_and_internationalization
i18n
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. http://ez.no/doc/ez_publish/technical_manual/3_8/reference/template_operators/formatting_and_internationalization/i18n
l10n
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. http://ez.no/doc/ez_publish/technical_manual/3_8/reference/template_operators/formatting_and_internationalization/l10n
- ways to translate content
New multilingual concepts are described in the specification. http://ez.no/community/developer/specs/improved_multi_language_in_ez_publish_rev_2 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.
- Note that we are talking here about translating content, not the UI strings.
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: http://ez.no/community/contribs/import_export/oasis_open_document_extension
- 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.
- 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.
5. Authoring
- 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: http://ez.no/products/ez_publish/info/web_publishing_functionality See User manual and learn more about eZ publish content management: http://ez.no/doc/ez_publish/user_manual/3_8/daily_tasks
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: http://ez.no/doc/ez_publish/technical_manual/3_8/reference/workflow_events/wait_until_date
- 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 ( http://ez.no/doc/ez_publish/user_manual/3_8/the_administration_interface/the_object_edit_interface/version_management ) or with content diff ( http://ez.no/community/developer/specs/content_version_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 ( http://ez.no/community/developer/specs/content_version_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. http://ez.no/doc/ez_publish/technical_manual/3_8/concepts_and_basics/content_management/the_content_object
- 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: http://www.fsfe.org/en/news/fsfe_to_microsoft_stop_complaining_and_start_complying Licence name is displayed below the content object.
6. Markup
- 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:
http://www.vzt.no/ XHTML 1.0 Transitional http://ez.no/ XHTML 1.0 Transitional http://www.aipex.com.au/ XHTML 1.0 Transitional http://www.serwatka.net/ 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: http://www.ez.no http://www.falcon-accessoires.nl/ http://www.aipex.com.au/ http://www.phonzo.com/
7. Navigation
- 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: http://ez.no/doc/ez_publish/technical_manual/3_8/concepts_and_basics/content_management/the_content_node_tree
- 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.
8. Feeds
- 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: http://ez.no/doc/ez_publish/technical_manual/3_8/features/notifications peferably shall integrate external feeds (e.g. from gnomefiles.org) 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.
9. Theming
- 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: http://ez.no/doc/ez_publish/technical_manual/3_8/templates/template_basics
10. Expertise
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. http://ez.no/community/forum 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: http://ez.no/doc/ez_publish/technical_manual/3_8/installation/upgrading
- fix (add missing features or critical updates not yet released by upstream)
Sources are available in the public SVN repository which is daily updated. http://pubsvn.ez.no 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. http://lists.ez.no/mailman/listinfo/sdk-public
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. http://lists.ez.no/mailman/listinfo/sdk-svn
Or use RSS feeds available on the ez.no.
- Ez Publish has been used by the Gnome community during GUADEC-ES II and GUADEC-ES III, it was easy to run out of the box, the template api is really useful.
11. Search
- 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.
http://ez.no/doc/ez_publish/technical_manual/3_8/features/search_engine
Possible use eZ publish with Lucence http://ez.no/community/contribs/applications/lucene_java_search_plugin
- perhaps keywords assigned to pages?
This can be easily archive with keyword datatype.
12. Backup
- 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. http://ez.no/community/articles/clustering_in_ez_publish_3_8 http://pubsvn.ez.no/nextgen/stable/3.8/doc/features/3.8/clustering.txt
13. More information
Flash demos - http://ez.no/products/ez_publish/demo/flash_demos
eZ publish Community - http://ez.no/community
eZ publish books for self learning - http://ez.no/products/books
eZ publish Contributions - http://ez.no/community/contribs
eZ publish Online Documentation - http://ez.no/doc
eZ publish Tutorial for beginners - http://ez.no/products/ez_publish/documentation/building_an_ez_publish_site
eZ publish References - http://ez.no/customers
eZ publish Case studies - http://ez.no/customers/case_studies