A bit of MODx CMS criticism
Today I am going to talk about MODx CMS again. Now, the first post on this topic covered my first impressions of this product. And now I have something else to say.
This time I am going to go a bit deeper into minuses of MODx. Why? Well, all the pluses are available on the official website and I do not see the reason for repeating those. This post does not in anyway mean that MODx is a bad product! It just has some bad sides that I would find very useful to read about before starting to build a website based on this system. This post is healthy citicism and maybe a precaution for those wondering what can't you do with MODx.
1. Documentation
One of the most important minuses I have noted about MODx and anything related to documentation. Well, it is horrible. That concernes practically eveything. MODx heavily relies on customization by adding such things as chunks, snippets, plugins and modules. Not only the documentation of the MODx core system is horrible (and can be shown as agood example of how to not write documentation) but this practice also concerns anything starting from snippet usage to writing your own MODx components.
Now, I undertand that MODx did not even hit version 1.0 yet, but this (boring) part of any project is crucial to its success as the will to start using any framework-like product mostly depends on the features offered (50%) and documentation (50%). This is obvious and I do not understand why the MODx team is not concerned about this.
In the end I found myself googling such things as "wayfinder placeholders" and "ditto parameters" every now and then, since I keep forgetting those details. In addition to that all the documentation is done in different formats and designs, which is very annoying.
As a solution it would be not so hard to make some kind of a public documentation repository available to the MODx contributors with unified rules about documenting their code. Some kind of MSDN for MODx (not that complex of course).
Or as for now (e.g. until the 1.0 release) there should be at least a unified refence on all bundled MODx components!
2. Administrating area (manager) customization
At the moment the admin zone of MODx is pretty much monolithic. It cannot be changed fundamentally. And this is a major drawback, since admin zone is a vast part of the website itself. You cannot hide all of the stuff here and then, you cannot make it look too user-friendly after all (yes, I know about roles, groups etc. - it is far from ideal). Adding new custom functionality to the admin area can be done through modules, though the only place you can actually add this functionality is to the "Modules" menu (I get the logic, but I do not get why is there such a limit?).
The admin area must be fully customizable. Every single piece of it. Without editing the core MODx files.
* Many MODx people can, of course, say that there is MODx Revolution (which looks very promising), but at this point I will not discuss anything connected to it as the latest alpha was very buggy (right from the start) and unusable.
3. Templating engine
As already said in the previous post about MODx, the templating engine is quite far from being perfect. It has most of the necessary features, but far from Smarty by its functionality. I, personally, lack logical constucts ({if}). BUT! The behaviour of the templating engine can be changed. You can hook into the output event and modify the output as you wish (e.g. implementing as {if} would be quite easy, in fact, I have done it already as I cannot live without it and I do ot know how people use MODx without it - this simple plugin will be available as soon as I have time to make it look pretty).
Again, there is NO way you can mimic Smarty {if} with snippets - they simply work on a different level of MODx.
Conclusion
To conclude... Well, MODx is still pretty solid CMS system, which offeres a lot of features and works as a charm if configured and used corectly. Its disadvantage in the documentation area is, obviously, an effect of its open-source nature. The templating engine problems can be solved by creating a plugin (although it is quite strange to me that Smarty-like features are not present in MODx). Therefore, the only major problem at the moment is the manager customization. This problem is promised to be fixed when Revolution hits the ground but from what I've seen in the latest alpha it won't be a reliable product in near future. Therefore - modules are the only way to affect the admin area without going inside the core files of MODx.
March 11th, 2010 - 10:18
True, customization of the manager in MODx can only be done with the managermanager plugin ( http://bit.ly/bjHaZK ) , which in fact is nothing more than some jquery dom manipulation, which i think works, but is not as solid as having full access to the generation of the administrative backend.
About the templating engine: this was one of the main reasons for me to get started with MODx. You actually can have {if then} conditionals if you install PHx ( http://bit.ly/dBg1t7 docs: http://bit.ly/csGgva ). PHx is very extensible: just create phx:functioname snippets with any kind of logic in it, then use it [*longtitle:functioname*]
October 5th, 2011 - 09:04
I will not make the statement that True refinement seeks simplicity. or possibly The Soviet Union would remain a one-party nation even if an opposition party were permitted-because everyone would join that party.