Hello All,
I recently joined the ModX community and have read over all of the posts pertaining to finding the perfect CMS and is ModX the right CMS for that
particular person, etc. Well, I share many of the same frustrations.
Basically, I have spent the last six months in search of the perfect CMS for me. Any CMS that claims to be a "one size fits all" CMS isn’t going to work for me.
I have tried just about all of the top CMS platforms from Open Source to commercial - .NET to PHP. I finally came to the realization that there comes a time when an individual has to compromise and go with the closest CMS that best fits their own goals and objectives.
I am an ex .NET developer and SEO marketing professional. While in search of the right CMS, I have had to take the time to learn PHP/Apache/MySQL and a different proprietary middle layer for each CMS. To be completely honest, I no longer enjoy development nor do I have a passion for it. I consider myself an entrepeneur and use development as a "necessary" tool in order to make a living. That’s the bottom line. I understand that if I want power and flexibility, I have no choice but to get my hands dirty.
With that said, here is a small list of what I am looking for in a CMS. The following list of features isn’t something I am willing to compromise on:
1. Large Community Base/Good Documentation - This is a good indication that the CMS will be around for a long time and help is readily available. I do not want to waste my time learning a CMS if it’s not going to be around in the future.
2. XHTML 1.0 Strict and CSS 2.1 Compliant Core - I do not want any raw output to contain any deprecated elements, tables, etc. The reason I mention the word "core" is because I don’t expect all third party modules/components/add-ons to pass a specific specification. However, for the future, I think more attention needs to be focused on making sure that all third party extensions fit a specific set of criteria. This applies to every CMS platform.
3. SEO Friendly Architecture - This ties in closely with point #2 above. I need a CMS that does not contain any bloat code. What I mean by this is, if I’m not using a module, there is no need to include the associates code/files for it. I also do not want any inline javascript or CSS included in the source output. I like to have my content as close to the top of the source as possible and do not need any inline content preventing me from doing this. Source content ordering is very important to me.
4. Low Overhead with Good Caching - Any CMS that claims to be all things to all people comes with a huge price in overhead. I can’t have a CMS that is going to utilize unnecessary server resources whether it be unnecessary queries or extension initialization. File compression and page caching are also very important.
5. Template & Extension Output Overriding - If need be, I want to have the ability to override the output of the core and any additional third party components, without breaking the functionality or hacking the core code.
6. Practical Business Model Architecture - One purpose of a CMS is to eliminate a lot of the tedious coding and having to understand the inner workings of the core. Afterall, That’s the purpose of object oriented design. Seamless integration and abstraction. If a CMS has a middle layer that is just as complex to learn as it’s core, then we have problems.
Modx Shortcomings?
===========================================================================
I have installed and tried out ModX for about three days. I know that’s not a long time to give it an honest chance but I can’t take anymore time and dig into a CMS only to find out that it won’t work for me. So, here are some of the things that I did not like about ModX based on my first impression. Please correct me if I am wrong.
[b]Requirement - 2. XHTML 1.0 Strict and CSS 2.1 Compliant Core[/b]
The demo site I am running for Modx and many of the pages on the modxcms.com site do not validate based on the this specification. The doctype declaration for the modxcms.com site is 1.0 Strict. This concerns me.
Is there a way around this or am I missing something?
Requirement - 3. SEO Friendly Architecture
I noticed that Modx uses several inline javascript blocks. Especially when Ajax controls and web forms are present. This includes the main modxcms.com site as well when I view the source.
Is there a way to have Modx put the code in external JS files automatically or even manually?
Requirement - 6. Practical Business Model Architecture
I have read the Modx documentation and still don’t have a full understanding between all of the Modx types and when to use which and where. For instance, there are template variables, chunks, resource place holders, snippets, modules, ad-ons, etc..... Honestly, it’s quite confusing and I can understand why a person would be intimidated (even an experienced developer) at first glance.
Is there any place I can get a clear definition on when to use these types and where?
One last question. Is there a way I can create my own form fields or forms and associate them to different categories? I am basically creating a classifieds site and need the ability to do this.
What it comes down to for me is, ModX is the last CMS I am going to take the time to learn because my ongoing search has become counter productive. I would have been better off just developing the site from scratch using .NET
I do appreciate any feedback.
Regarding XHTML validity, it’s completely up to you as the designer. The MODx sample content may not validate, but you really would want to start fresh anyway and not use the sample pages. The templates would then be 100% custom, and if you write the valid XHTML, it’ll be valid. Does that make sense? The only thing that could be an exception is if TinyMCE, the rich text editor for the manager, doesn’t generate valid XHTML, but I believe it does. Can somebody verify that?
The SEO issue you mentioned is kind of the same thing. You would write the JS yourself and do it however you prefer.
I’ll let the more experienced MODx users cover the rest.
I'm learning more about MODx all the time and loving it.
-
☆ A M B ☆
- 2,213 Posts
You have full control over the output of everything with MODx including the code output. It’s very easy to have valid xHTML, heck all of my sites validate as Transitional or Strict.
You can have all CSS/JS externalized, granted some snippets contain/add JS to the document, but with a little tweaking you can resolve those problems as well.
MODx is very SEO friendly and with items such as (
http://modxcms.com/extras/package/272) it’s hard not to get and/or automate most of the output for SEO.
As for a quick language breakdown:
Templates - HTML with placeholders for content
Chunks - HTML code that’s frequently reused
Snippets - PHP code typically used to run stuff. (Wayfinder, eform come to mind)
Plugins - PHP code that’s run automatically for items such as TinyMCE
Modules - PHP code to do stuff in the manager such as Database editors
If you want a good resource to look over and get a better feel for how things work check out:
http://codingpad.maryspad.com/2009/03/28/building-a-website-with-modx-for-newbies-part-1-introduction/
-
MODX Staff
- 12,272 Posts
You can build whatever you’d like in MODx. For Evo, many people use an Add-on called eForm. For Revo, there’s FormIt. With MODx you should find it to be very flexible and you should be able to have 100% control, and the ability to override pretty much any behavior you want through plugins and without hacking the core, thus preserving your upgrade path. For SEO purposes, I don’t think you’ll find a better platform (just make sure to use TVs for any meta descriptions or other meta content, and not the built in stuff that’s turned off by default now).
Ryan Thrash, MODX Co-Founder
Follow me on Twitter at @rthrash or catch my occasional unofficial thoughts at thrash.me
#2 and 3 - All depends on your own code. If you write compliant code you’re golden. SEO is easy to implement the basic internal structure in MOdx.
6 - Figuring out how it all ties in together is tricky at first but relatively easy compared to Drupal or other CMS.
I chose Modx because it allows total freedom to create whatever is needed. Not stuck by any template design requirements, ajax pages results in faster second page load times. Overall Modx is a great choice! Wouldn’t go back to any other system...
After reading through the resources and tutorials everyone suggested, I finally decided to go with ModX. Here are just a few of the reasons why:
If I could sum it up with one equation, Modx to me is: CMF + CCK(Content Construction Kit) = A very powerful/fast/flexible/SEO Friendly/extensible WADP (Web Application Development Platform) I love the fact that CCK functionality is part of/built on the Modx core framework. I could have added "cross" platform in there as well.
In order to try and achieve the same type of flexibility with other platforms, I had to learn many third party CCKs and they all had one or more of the
following problems:
1. Don’t conform to framework coding standards
2. Lack support/documentation/small user base.
3. Resource hogs - Extraneous HTML Output, difficult to override, terrible relational DB design structure including inefficient SQl statements and unnecessary requests, etc.
4. Lack frequent bug fixing and updating/versioning. Any slight upgrade to the CMS core framework and these CCKs are useless.
Another really awesome Modx feature is the fact that I see members of the core team actively participating in the forums. Not only that but fast response times. That is extremely hard to find.
Suggestions (For what it’s worth)
==================================
1. Visual Framework Model - I do think it would be a good idea to put together some sort of visual model of how the different Modx layers interact and
include the scope of the different tags along with their reference counter parts, whether they’re input in the back end, config files, etc. This would
definitely eliminate a lot of the questions that new users may have when comparing platforms.
2. Platform Conversion Guide - Create a Modx conversion guide which would include a list of terminology for people coming from other platforms and provide the Modx equivalent. eg.
Drupal Joomla Modx
================================================================================
Regions (example syntax) Module Positions (example syntax) Chunks (example syntax)
etc.......
3. Updated/New Snippets - The main thing, IMHO, that Modx lacks is a larger, updated third party snippets library. Many existing snippets are outdated
and I don’t see many new snippets being added. This is somewhat surprising to me with such a large user base. Also - Most snippets built for Evolution do/will not work with Revolution, is this correct?
Thanks again!
-
☆ A M B ☆
- 2,213 Posts
The majority of the resources written for 0.9.5.x and newer work with Evolution. Heck some of the older ones also work depending on they do and if their function has been removed in newer releases.
There is a difference between Evolution and Revolution so most items need to be rewritten for Revolution. It was rewritten from the ground up and as such there is plenty of new stuff. You can install the Revo add-ons in the manager tho which is rather nice.
-
☆ A M B ☆
- 2,213 Posts
Revolution is still in beta so they have yet to optimize things and there are still bugs. If you find those bugs they would love to know about them tho!
It’s not ready for production use yet so evolution is your best bet unless you like cutting edge and don’t mind fixing things.