This review follows on from my previous article, which outlined the criteria I applied to many of the main open source CMSs to determine their suitability for a developer. Exponent is a neat CMS which has a far better interface for novice users (out of the box) than any of the other systems reviewed here. Although it is relatively immature compared to many of the other big open source CMSs, it is gathering momentum and worth watching.
Homepage: http://www.exponentcms.org/
Version evaluated: 0.95
License: GPL
Platform: PHP + MySQL (no exotic dependencies, so should run on standard web space)
Commercial support: as it is produced by a commercial company (OIC Group, Inc.), you could potentially use them for support (e.g. to do custom programming on your behalf); other companies also provide commercial support (S-Media)
Example sites: I was unable to find any production sites, as the system has still not reached full release
As I mentioned above, the Exponent CMS interface is the main thing which makes it stand out. It makes complex tasks such as content reuse and insertion of graphics simple, via uncluttered graphical interfaces. At the same time, it has a clean architecture which makes addition of new functionality straightforward for developers.
One possible advantage of Exponent for some users is that it is under development by a commercial company. This means that a rough roadmap of forthcoming features is available on the website, and that commercial support for the product may eventually be available.
Exponent would suit provision of a simple content managed website for non-technical users. It can be locked down comprehensively, meaning you can have a great deal of control over which pages are editable. The WYSIWYG editor works well, and means even non-technical users can make edits. You may need to provide some training if you expect them to use the more advanced features described below (e.g. allowing users to add new pages or reuse content between modules).
Installation of Exponent is very simple indeed: it merely requires access to a MySQL database, and a valid user and password for that database. The installation is driven through the web interface, and is careful to prompt the user about database access issues and file permission issues (if found).
Once it is up and running, Exponent shines in the quality of the interface for content editing. This includes features such as:
From an administrator perspective, the following features are of note:
It is slightly lacking in the following areas:
Additional modules/extensions are available from the Exponent CMS SourceForge site. However, these are limited in scope; there are also few community extensions (all of the current ones have been developed by the commercial company who developed the software). I did try installing one of these extensions, but was unable to get it to work properly.
However, despite the immaturity of the product, it has already engendered a lot of developer activity on SourceForge (as I write, it is in the top 10 most active projects there). So before too long I would expect to see a rash of new modules appearing.
The templates are based on the Smarty template engine, which is very powerful and flexible. However, because of the way they are designed, they are spread across several files, which makes them harder to follow than simpler template systems (like Drupal's). Although, when I tried editing the templates and CSS files, it wasn't too hard to make substantial changes or make sense of the structure.
It's worth mentioning that the default templates are based around HTML 4 (which is a fairly old standard), and use table layout. This may make them unacceptable from an accessibility perspective, and you may have to write your own templates if you need to adhere to a different standard.
The code is logically laid out, and simple enough to make your own changes to. Code from external projects (e.g. HTMLArea and Smarty) is maintained separately from the core code base, so it should be possible to upgrade these parts separately if desired.
Internally, the code is well-documented and logically arranged. For example, individual subsystems (such as SMTP functionality, session handling, or user account management) are organised into separate files, which means it is relatively easy to find the section of code you want if you need to make changes.
One interesting feature of the code is the pains taken to ensure compatibility across different versions of PHP. The distribution includes code from the PHP distribution, and provides function definitions for functions which may not be present in older versions of PHP. This is a sign of good attention to detail.
Free developer documentation is relatively sparse at the moment. There is a developer/beta tester website which may provide more documentation for developers.
Related articles: