I have been developing websites using the MODx content management system (CMS) for several years. It’s a great system, and though it’s very powerful, and has a supportive online community, I’ve always thought that the documentation could be improved. That’s why I was pleased to see the brand new book from Packt Publishing, MODx Web Development. I believe this is the very first published book about MODx. This bodes well; in my experience, it seems that all the best CMS systems eventually have books written about them – it’s an indication that the system has graduated, in a sense, and is here to stay. By comparison, Drupal is possibly the most powerful open-source CMS system, and it sports a half-a-dozen published books or more.
This type of book tends to be directed at a particular type of audience. Sometimes a book will be highly techie, written for programmers who love to look at many pages of code and think about things like polymorphism and hash tables. You also have books that are geared more to the visual designer, someone who concentrates on the look-and-feel of a site, and may be deeply in love with Photoshop. I fall between those two extremes, often working with elements of both. CSS is probably what I enjoy doing the most, but I end up working on just about all elements of a site. This book’s intro section does a nice job of describing who might benefit from using MODx and why, describing various types of content systems. The author shows a continuum from a hardcore programming development type of system to one that is maybe less geek-oriented but easy to use. I agree with the author that MODx is pretty easy to use, so it’s closer to that end of the spectrum, yet it does offer development features for those who want to build plugins and other applications of their own. IMO this author writes very well – he takes just the right tone, making it usable by newbies, but showing just enough technical minutiae for those that are interested.
After helping you decide if MODx might be for you, it goes on to show the basics. How to install it, how to configure it, how to make documents, how to do templating, user-level authorization, and so on. I know this stuff very well, so I skimmed here, although it’s interesting that they show how to set up MODx on your own computer using XAMPP, essentially your own small web server. I have never used MODx this way, but it’s a valid way to do testing before trying it out on a live site. I would also say that this section is easy enough to understand for someone new to the system. That’s important, because for a system to grow, it will need new adherents, and if the bar is too high, newbies will be discouraged. For instance, in my own case, I tried Drupal three different times, and only after the third try was I able to “get it” with the help of an excellent book and some particulary helpful Drupal forum people. IMO, the bar for getting into MODx isn’t nearly as high, Drupal’s great power notwithstanding.
Even if you know a subject well, it’s great to learn something new. I was vaguely aware of Doc Manager, but I’ve never used it. As it happens, I could have saved myself some time on a project last month if I’d known more about it; it allows batch updates of pages, templates, etc. Another item is PHx, which gives you special tags that can be used for conditional display of items in a template. If that didn’t mean anything to you, don’t worry – you can use MODx without ever touching that. It gives a great tutorial on how to use it. It also gives a very good demo about WebLoginPE, a mod of a stock MODx log-in app, something else I’ve seen but not delved into. Rather than being just a log-in app, it offers various helpful ways to manager users.
Ditto is the app that allows you to aggregate and display your content in all kinds of ways. It’s very flexible, but sometimes tricky to get working. I use it very often, and it’s so feature-laden that it can be tricky. I’ve certainly gotten very annoyed with it many times. The book does present some pretty good demos on what to do with it and how. By contrast, the MODx Ditto developer finally made a screencast about how to set up certain things in Ditto. But as I watched it, he mumbled, moved very quickly, and even if you slowed down or stopped the video, there were things that were too grainy to see, zoomed in or not. So it didn’t help me. That’s how many geeks roll – they go at the speed of thought, unconcerned with whether mere mortals can follow them. Remind you of anyone? It was kind of like having John McLaughlin say, “OK, here are all the chords to this tune”, and then he plays 62 complex guitar chords in about 12 seconds. Sure, he’s showing you, but you’re more confused by the time he’s done. That’s another reason why having a book like this is important.
MODx developer documentation on their website is limited. You can find the API list and figure things out fairly well. But that’s about it, other than searching through forum posts trying to find what you’re looking to do. Yes, there are how-to’s, but they’re often for older versions of MODx, incomplete, or oops, they forgot to tell you something critical that you’re just “supposed to know”. This book has some nice information about writing snippets, plugins, and modules. It doesn’t go into huge depth, but gives some great guidelines that I could have used a long time ago.
Lest I sound very critical, I should say that there are quite a few very helpful people on the MODx forum, so that is a recourse for those seeking help. As a rule, younger open-source systems frequently lack documentation. People are mainly busy building features and fixing bugs. Each system has its zealous adherents who will not brook any criticism of their precious system. My approach is to use the right tool for the right job, and each has strengths and weaknesses. For me, MODx is often the right tool, yet Wordpress may be considerably better for something else, for instance.
Authors vary a great deal, some are more geared to a high-level overview. This author clearly understands code very well, giving lots of nice development ideas to help you get under the hood if you want to do that. It’s also quite clear that he has worked with a whole lot of different systems and languages. This also helps avoid the provinciality that results from only knowing one system. I was also pleased to see that two of the most experience MODx developers were involved in an advisory role before the book was published.
MODx is extremely strong in templating; I have never found a system that beats it. I think designers should take note – MODx is tailor-made for incorporating HTML/CSS templates! Templates consist of HTML with template tags, which you will see in other systems. However, theirs are extremely easy to use, and there is a secret weapon, Template Variables, which will allow you to get all kinds of things onto a group of pages or a single page, HTML code, database output, images, PHP code, CSS, and that’s only a sample. Wordpress also has an excellent templating system, but there you’re often dealing with many, many template files – in MODx some sites might only require two, homepage and “everything else”, or even just one. Also, in Wordpress (which I like very much, incidentally) you often need to use bits of PHP in your templates, and not everyone is comfy doing that.
Wayfinder, the MODx menu application, is extremely good. Sometimes I’m asked to make menus that are horrifically complex – with some analysis and good CSS, Wayfinder has come through every single time. I’ve been asked to make some menus that were so bizarre, crazy, and unusable, that I’ve advised the client against it. They generally want it anyway, and Wayfinder can do it, even if under protest!
Like MODx templating, this is the best app of its kind that I’ve seen in a CMS. A recent example was when I was asked to make a drop-up menu. Yes, I’m serious, drop-down is popular, but drop-up is sometimes requested for certain purposes and designs. I was able to meld together a very fancy Stu Nicholls drop-up CSS menu scheme into MODx – it took some work, as the cascade complexity was enormous, and the client asked for changes. But it all worked before too long. The book provides a very nice intro to Wayfinder.
Were there any negative things about the book? Not really, from where I’m sitting. I probably would have added a lot of jokes, but that’s just me. I’m very impressed with it. This is just what MODx needs. I look forward to seeing points of view from other types of users, such as MODx newbies, visual designers, and hardcore coders. My compliments to the author!