MODx is an open source content management system (CMS) written in PHP, ready for use on any platform that supports PHP. Although the project describes itself as a "Content Management Framework," MODx functions superbly out of the box as a CMS as well. The project is current at version 0.9.2, but don't let that deter you from using it. MODx is an excellent example of an open source project in a pre-version 1 status that's ready to be used.
The MODx team makes it very clear how MODx is different from typical PHP CMSes. Instead of using a complex templating system, requiring a three-column (or fixed-width) layout, or forcing the templates to be filled with complex PHP code, MODx's template system works by adding a few pertinent tags to a standard XHTML document. This is a welcome departure from the usual CMS template systems, as it allows the Web site designer much more control and flexibility over the layout.
Even better, by using standard XHTML instead of a mush of HTML, inline CSS, and other typical template methods, the final HTML produced by MODx is as clean and pure as the designer creates it. This gives a MODx site a major advantage in terms of browser compatibility and search engine optimization.
MODx also uses modern AJAX techniques. For those who are skeptical about AJAX, note that the AJAX usage is on the backend to ease management, and it's done in a reasonable way. The front end of the site uses only as much AJAX as you want it to. I generally feel that AJAX adds little to a Web site, but I was pleasantly surprised at the limited, pertinent, and error-free use of it in MODx's management system.
Getting and Installing MODx
You can download MODx from the MODx Web site. From the moment I downloaded the package, MODx was delightful to use. Unlike many OSS projects that use gzip + tar to create a tgz file, the MODx team chose to use the standard ZIP format, which Windows as well as UNIX users can use.
Sadly, the ZIP file did not contain any installation information or documentation; you must have a Web browser open and pointed to the MODx Web site for installation instructions. That being said, installation is extremely easy. The most difficult part of the installation was performing the permissions changes for a UNIX system, which can be done in most FTP clients or through the UNIX shell (ssh/telnet/rlogin etc.). If a MySQL database is not made in advance, the installer is nice enough to create it for you, assuming that your database login has the proper permissions.
Unfortunately, there was a slight mistake in the documentation, which the installer noticed. An empty file was missing. Creating or uploading an empty file and setting the permissions on it rectified the problem. Otherwise, installation of the system and initial configure was smooth as silk. The only post-installation task is a suggestion to remove the installation directory from the server after installation. Figure A shows the MODx home page.
Figure A |
![]() |
Managing MODx
Managing MODx is extremely simple, especially compared to many of the alternatives out there. The interface (Figure B) is fairly intuitive and "just works" as expected. However, I did find a few minor mistakes in the administration system. For example, the secondary toolbar updated to the wrong information for certain items. There were a few other minor annoyances as well. For instance, the site administration page used for choosing the root document, error pages, and so on, referred to those pages by their internal ID number as opposed to letting you select them from a document tree.
Figure B |
![]() |
Another slight issue is that although the administration system has a very good, nearly WYSIWYG editor, it doesn't take into account your stylesheet so it's not truly WYSIWYG. And even though there are two modes for editing things (raw source and WYSIWYG), you can switch only from raw source to WYSIWYG; once in WYSIWYG mode, you need to either save or cancel your changes to get back to the raw source mode. The WYSIWYG editor does have a Source function that lets you edit the raw source, but it would be nice if there were a bit more consistency in this system.
The one feature that did not seem to work as promised was the search engine-friendly URLs. The problem could definitely be traced back to the .htaccess file that was provided with MODx and not a problem with the MODx system itself. When the rewrite rules that .htaccess should have been applying were manually used, MODx worked correctly. Due to the nature of the particular server I used for this review, the problem was most likely with the server and not MODx.
None of these minor bugs could be considered showstoppers. The administration works as expected, with no errors. One thing that was especially welcome was that the absence of any confusing terminology used in the system. Nearly everything in the administration had a quick help link right next to it or explanatory text to help the user understand the choices available to them. Although you must go to the MODx Web site to access the documentation, the documentation is top notch.
MODx's ease of use is greatly enhanced by the project's laser beam focus on its goals. Instead of trying to put together a "one size fits all" CMS system that can do blogging, e-commerce, forums, social networking, and many other functions, MODx concentrates on the basics. It does have a blogging system, but it's treated as just another form of the CMS system, as opposed to an entirely different entity. Because the system is so basic, Web designers are free to concentrate on writing quality XHTML code to make the site look great, be usable, accessible to handicapped users, and optimized for search engines, instead of struggling with complicated template systems.
MODx also has outstanding tools for the management of
Going forward
The MODx team does not seem to be resting on its laurels, either. The roadmap for the project contains many items directly related to its core mission. Chief among these is the ability to export an entire site to static HTML. This is a much needed feature for many sites. Although MODx (as well as many other CMS systems) has caching capabilities, the ability to export the entire site can provide even more performance increases (because the CMS doesn't need to determine whether the page is already cached). It's also especially useful for load balancing purposes.
The project's roadmap includes additional features such as a repository for modules, improved module installation, document versioning, and a recycling bin. Many of these features are already present in other CMSes, but the MODx team seems to be careful about adding any functionality that does not help it fulfill the vision of an easy-to-design, search engine-friendly CMS system.
Conclusion
MODx's functionality is clearly targeted toward those looking to put together a great looking, search engine-friendly Web site. It has extremely advanced tools for managing metadata and offers numerous options for search engine-friendly URLs. MODx is excellent for a site focused on content, whether it's a traditional site with a "tree" navigation, a blog/news site, or a corporate Web site.
Although it lacks features that most other PHP-based CMSes have, such as forums, shopping carts, and a plethora of modules, the focus on content creation and ease of Web site design more than makes up for what's missing. In my experience, most CMSes seem to put less emphasis on basic functionality in favor of a comprehensive feature list. MODx turns this upside down and does a top flight job with basic functionality, while leaving the door open to third-party developers to build in additional features.
If you're looking to put together a site that is nearly 100 percent content--and you don't want to have to maintain the menus, navigation,





