If you have ever needed to make a fairly involved website, something with more than just a few static pages, or one that can be easily updated with a variety of content, you will no doubt have been pointed towards a content management system (CMS) such as Drupal, Joomla, phpNuke, MoveableType or even Wordpress. While these are all excellent functional scripts, they do have at least one fairly serious drawback, they require you to learn how they work and then play by their rules. In some cases learning the control paradigms of the CMS itself is nothing short of learning a new language, even if you are already familiar with the usual web mainstays of PHP, JavaScript, MySQL and xhtml. What is more once you have invested the time necessary to operate the back-end of the CMS, enough to make anything meaningful, you will be isolated from the real code of your web pages by layers of templating that can only be used for that specific CMS. If you are lucky you will still have access to the style sheets, so you can tweak the look of the thing, but your design must fit within the usual; header, columns, and footer, scheme. If you want to make a horizontal scrolling site, or do something equally creative you will need to hack the core to some extent.

MODx is an interesting alternative that has been gaining ground on the major players in the CMS field, that doesn’t lock you into it’s own paradigm. In fact if you are already familiar with the basics of PHP, xhtml and JavaScript, MODx feels like a framework that actually helps you get the best out of what you already know, you could simply use it to help you write better, more organised code, the developers even call it a content management framework (CMF) rather than a CMS, to emphasise this point, but there is a lot more to MODx than that. Of course there is a fairly steep learning curve to using MODx, but what you learn won’t tie you in to its own paradigm, instead it will encourage you to write better, cleaner, more object oriented code, that will still be relevant in other contexts.

You can engage with MODx as deeply as you wish. For the novice, MODx provides most of the features you are likely to need for an ambitious website, or it will read an existing website and convert it to a useable MODx site within a few clicks. As an intermediate beginner MODx will clarify how code works, free you from template dependency and make you feel more adventurous, as you understand more you will realise the power that it puts at your fingertips. Experienced website developers can use MODx to move to a level beyond the need for a CMS at all, and use it as the core for their own code. If you are that well experienced then most likely you will already be using it.

The code of MODx has a degree of elegance that marks it out as something special almost the moment that you start delving into it. For a start, designers wont feel like the whole thing was written with programming in mind, it is possible to get complete access to just the aesthetic elements of the site, without messing up any serious functionality. No standards have been compromised to get MODx’s functionality working, so the designer won’t be forced to tweak code at all. Coders seem to appreciate the way that functional elements can be altered or replaced within MODx discretely, without having a knock on effect to the rest of the site. The users have been considered too, all of them, whether developer, designer, content editor, administrator, moderator or just web user. MODx has a back-end that can be completely customised with as many levels of access as you wish, it also has a front-end editor for back-end users with the same access levels, and of course it has front-end that can be configured with permissions for moderation and any level of memberships, etc. This means you can develop an entire website for someone using the full back-end control, hand it over to the client with a less intimidating, fully customised back-end complete with an even more simplified back-end for the less knowledgeable administrative staff who administer the site. Meanwhile the site’s moderators can be given front-end editing permissions, trusted users can be given a bit less control, while the entire site can be viewed by members, unregistered guests can be limited to specified content – or indeed any scheme that you can imagine.

The interface of MODx is entirely browser based, including the initial installation (once it has been uploaded to the server), which is scripted very well with feedback and is well documented. MODx can be installed on even modest shared hosting services where it works well, but of course a dedicated server is always best for high traffic and future upgradeability.

The code MODx uses is clean PHP, it is standards compliant, unless you get sloppy of course, and it allows any Ajax library or technique to be used. MODx is preconfigured with several JavaScript libraries already including; jQuery, Mootools, ExtJS and Prototype, it can even be used as a Flash CMS. The flexible API allows core behaviour to be over-ridden easily, without hacks, so you maintain upgrade paths.

MODx can automaticaly generate easy to configure friendly URLs for Search Engine Optimization (SEO) and has the option to generate Strict SEO URLs. Whatever you need to achieve for your website can probably be achieved by using the plug-in system provided with a basic installation, There are a growing number of third party plug-ins that have been written for MODx, 563 to be precise, many of these are for fairly obscure purposes because the core plug-ins serve most needs, it is also quite straightforward to write your own from existing code used widely on the web.

The following is an incomplete list of some of the capabilities of the basic plug-ins:

  • Scriptable css menus from unordered lists, hover zones, accordions etc.
  • Automatic menu compilation.
  • Breadcrumbs.
  • Tags.
  • Rich text editors, TinyMCE, FCKeditor, Textile, Markdown and widgEditors.
  • Blogging.
  • Image management.
  • Galleries.
  • Generation of custom content types such as XML, PDF, Excel or Word documents.
  • RSS feeds.
  • File management.
  • Captcha.

The greatest strength of MODx is that you can easily create a new variable for any purpose whatsoever, assign it a MySQL table and use PHP to reference that variable and process it in any way you choose, this means that you could potentially have a different page style for every surname that visits, or pull a relevant twitter feed for every 15th word that someone types in.

As you might be able to gather by now, I am a convert to MODx after many years of experience of the more popular CMS scripts, which, even though I no longer use them, have left a legacy of expecting a CMS to need to be hacked. MODx is the antidote to all that, it allows you to concentrate on the look, feel and functionality of your site, not the tool you use to build it. If I had to make one criticism of MODx it would be with the official documentation, it is sketchy for the beginner, though it gets a little better for developers, but poor documentation is a common problem with most open source applications, it seems that most effort goes into the code, while the documentation suffers, but MODx is not the worst offender by any means. The saving grace with the lack of documentation is that MODx is really well supported by a friendly responsive users forum and many other dedicated websites.

If you haven’t yet heard of MODx, try it out for yourself and you will understand why its popularity is fast growing amongst serious web developers.

MODx is free open source software licensed under the GPL, it does not display any advertising. MODx can be downloaded from the projects website at: http://MODxcms.com/

A bit of history

The MODx CMS project began in 2004 as a mashup of DocVars for Etomite and a web user add-on under Raymond Irving and Ryan Thrash.
In 2005 MODx became a fork of Etomite under Raymond Irving and Jason Coward. In 2007, Raymond Irving left the project.
In 2008 Shaun McCormick joined the project leadership team and MODx users created a new logo and branding for the project.

Two versions of MODx exist as of the 4th of September 2009:
The widely distributed 'MODx Evolution 1.0.0' released on: July 31st, 2009
A beta version of the new 'MODx Revolution 2.0.0-beta-3' dated: July 23rd, 2009, which uses new core code.
The release version of 'MODx Revolution 2.0.0-RC-1' is expected to be in late summer 2009.

System requirements:

Supported Operating Systems

  • Linux x86, x86-64
  • Mac OS X
  • Windows XP, Server

Supported Web Servers

  • Apache 1.3.x - 2.2.x (uses htaccess for Friendly URLs by default)
  • IIS 6.0
  • lighttpd
  • Zeus
  • nginx

PHP Compatibility

  • 4.3.11 and above
  • Required extensions:
    • mod_rewrite (for friendly URLs/.htaccess)
    • GD lib (required for captcha and file browser)
    • Freetype (required for captcha)
  • Safe_mode off
  • Register_globals off
  • Memory_limit 32MB or more

MySQL Database Requirements

  • MySQL 4.1.20 or newer, with the following permissions:
    • SELECT, INSERT, UPDATE, DELETE are required for normal operation.
    • CREATE, ALTER, INDEX, DROP are required for installation/upgrades and potentially for various add-ons (DROP may not actually be required for upgrades, but it potentially could be used)
    • CREATE DATABASE will allow new installs to create the database for you with the proper charset/collation.
    • CREATE TEMPORARY TABLES may be used my some 3rd party add-ons
  • excludes version 5.0.51
  • InnoDB storage engine
  • MyISAM storage engine

Supported Browsers for System Management

  • Microsoft Internet Explorer 7 and above
  • Mozilla Firefox 3.0 and above
  • Apple Safari 3.1.2 and above

Further reading

Thanks to revolution for further reading ideas.

Should MODx really deserve to last?

MODx Evolution restricts you to 5000 resources (mind you - that is not necessarily webpages)

MODx Revolution is a nightmare to work and buggy (can't even get a clean MODx install ... you got to be lucky if you do, so if you do, its not the norm)


MODx support? - MODx documentation?
... where is it?

... nothing but a repetitive self-praise on what is all possible (you can read the same over and over on dozens of pages all spread around the net

... never an in-depth explanation on "HOW TO" (and if there is an attempt, then it is merely a surface cover)

... FREE ARROGANT core developers and other community members who wonder why you ask anyway? Don't you know it and if not, what do you want here? (sorry to interrupt your private club of arrogant losers)
... overall coding? Another self-praise. Of course, everything and everyone is the best (least on the internet) Aren't we so lucky to have this thing. In the real world we barely would make it through an apprenticeship. But here we are, in cyberspace. Here we have our own rules and everyone is allowed to be pretentious and arrogant. Hey, what do you want ... it's all free. No one asks you to join or worse, believe me!

Thanks for the message, MODx!

Surely, if you would be so good as you proclaim, why don't you make it a premium CMS and sell it for money? Or are you scared only a few would then use it because the real developers know what kinda stuff MODx is?

Log in or register to write something here or to contact authors.