Etomite CMS
October 20th, 2004I caught word of a new CMS out in the wild and, of course, despite my reservations, I couldn't resist giving it a test drive.
I'm pleased to say that "Etomite":http://etomite.org/ is fairly decent. It is certainly one of the more thought out CMSes available today. The code seems to be fairly neat and clean. It has a fairly rich set of features and those features are confined to a single area of expertise: managing content. It provides a usable template engine and features rich text editing and clean URLs.
It doesn't quite cut it for me, however. Like I said, it's a decent clean product, but that doesn't make it useful if it doesn't meet your needs.
The first problem I have is that, instead of using "Smarty":http://smarty.php.net/ or "PHPSavant":http://phpsavant.com/ as its template engine, Etomite reinvents the wheel. Of course, reinventing the wheel means throwing away all the innovation that has come with years of development on projects like these. The template engine isn't nearly as featureful or extendable as its more mature competetion.
Secondly, extensible functionality is provided by a feature called "snippets". These "snippets" are small chunks of PHP code, stored in the database, and executed when a template tag corresponding to it is seen. In theory, this is a decent, innovative way to go about the process. However, documentation isn't too liberal in regard to snippet creation. As best as I can tell, it is executed procedurally, reaping some benefit from the objects in its namespace. The biggest obstacle here is that the snippets are required to output HTML. This means that, despite all the templating available within the application, these templates are not called upon to render the data retrieved by the snippets. So any given snippet will always produce HTML in the same manner. Altering that output requires editing the snippet itself.
The API doesn't seem to be very featureful either. What it does do, it does well. However, more advanced operations — gathering a list of recently updated documents, for instance — require manual calls to the database server and will surely suffer from complications through software upgrades.
Finally, the URL aliasing features providing "pretty URLs" are a bit… incomplete. They work, but, they don't account for their context within the site itself. For instance, if I have a document aliased as "doc" in a folder aliased as "folder" it would make sense that the URL to that document would be me.com/folder/doc. But it isn't. It's just me.com/doc. A little hackery here and there can make it work the more obvious way… but that's not quite ideal.
All in all, it seems to be a decent product. If you're just looking to maintain mostly static pages with a consistent look-and-feel with little trouble, it might be the package for you.


















