I've long been a fan of creating non-blog sites using WordPress and pushing it's content management abilities to its maximum. However, I'm about to develop a site that could involve at least a hundred pages. This has been one of the issues I've had with WordPress when used as a CMS – it's "page management" could be better. I'm really not sure why they don't – but Pages should have categories too. If for no other reason to make it easier to navigate the backend. I mean, imagine this upcoming project – if the site has 100 pages – that's a LOT of pages to sort through in WordPress. While you can do a search for the page you want to modify – that's still kind of a painful way to do it. It would be great if you could either collapse/expand the "parent" pages – ie if 20 pages are under a parent page – hide those "children" pages in the admin – and let me drill down parent to child to child etc to find the page I need (instead of paging through 1 by 1 of ALL the pages listed in the site). AND OR – if the pages are categorized – then let me filter the view by category.
If/when WordPress gets those features – I'll have no problem recommending WordPress as the CMS for a project like I have. But since that is not currently the case, I went in search for something that was a "true" CMS.
The first thing I tried was Silver Stripe. Which, while it was pretty nice, it just didn't have enough features to make it a real contender. Maybe for small sites that don't require that much…? But even so, I would still probably go with WordPress in a case like that because even if a feature isn't useful now, it may be needed in the future.
Then I decided to take a look at Joomla. Having used WordPress so much over the last few years, I've definitely been spoiled with how easy it is to install. Something went wrong with my first install (apparently you CAN NOT HAVE the configuration file uploaded or the whole thing will break) – so I actually had to completely wipe everything and start over.
To try and quickly get my head around how Joomla works, I ran out and bought Joomla!: Visual QuickStart Guide (I LOVE those series of books. I don't think they've ever let me down) I read through a good portion of the book. It was helpful in getting me to understand the basic workflow of Joomla (which, by the way, I think is totally annoying – but I'll get on that in a minute) and I also signed up with Lynda.com and watched almost all the videos they had for Joomla too.
So first I'll tell what I like about Joomla (it's a short list) – I really like that you can create a "publisher" user that can edit an article without ever touching the backend. That is really cool. Especially since, every time I do a new WordPress install and customization for a client, I have to spend an hour or two training them how to use it. (I'm going to get smart eventually and create a personalized video like the ones on Lynda.com that I can just reuse and point my clients to). If they don't have to touch a "back end" system – that is very nice!
Joomla's page (article) organization is more like how I wish WordPress would be. You create sections – and sections have categories – and when you create an article – you assign it a section – which gives you the options of which categories to assign based on the section you chose. While this is also used on the front end (you can create a page that shows all articles of a section or a section/category) – this is also useful for sorting through tons of articles in the backend. All you have to do use filters so that just the articles you're interested in dealing with show up.
I'm trying to think of more things that I like about Joomla – but I think thats it. If I can remember more, I'll add it here later.
NOW… what I don't like. (Get comfortable. this is going to take awhile).
Joomla's work flow just totally bugs me and the template system is annoying.
First the work flow. You create "modules" that live on your pages. Modules might be menu items, banners, a sidebar picture, a login box, a poll, anything that you might want to have show up on more than one page. When you create an "article" – this doesn't really create a "page". In Joomla – pages are only created when you create a "menu item". So first – you create a menu – then you add menu items. For all intents and purposes – a menu item = a page. The best way to work in Joomla is to create all your content first – THEN create your menus/menu items – and THEN create the rest of your modules. The reason I say this, is because if you don't – you need to go back in and edit your modules to show up on new pages. (This is if you haven't indicated a module to "always" show up).
So let's say I have a site that has several sections. In the "about our company" section – you want to have a picture on the side. But in the "our products" section – in that same spot you want to have a DIFFERENT picture in the side. Well create a module – name it "about our company sidebar image" – hopefully you already created all the content for this section and added it to a menu – you select the pages you want to have this sidebar show up on and you're done. But lets say the next day you add a new page to the about us section… you create the "article" – you add it in as a new menu item in your menu… look at the page. No about us sidebar. You have to GO BACK in and edit the module and make it show up on the page.
Contrast this with WordPress: In WordPress, I'd probably create an "about us page" template that had all the things I want to show up around any "about us" page. Every time I create a new page for this section, to have all the "about us page" stuff I want on there – I just select the "about us page template" from the dropdown list. That is just WAY easier.
Now this whole thing about needing to manually add an article as a menu item in order for it to show up in the nav pretty much kills one of the main reasons I liked Joomla. I don't want my clients needing to log in to see the backend. I had a hard time understanding it – they will be completely stumped. But unless we create a PAGE/MENU ITEM that does nothing but automatically list articles – those articles will not automatically show up anywhere in the site. (The only way to automatically list stuff is to create a page that does this – in the content area). So if my client wants to add a new "about us" page – he'll have to log into the backend add it as a menu item to a menu, then ALSO go and add the modules needed for that page. (And then he'll probably call me to complain that it's either not working and/or a pain in the neck- could I please do it instead – which totally defeats the purpose of giving them a CMS. The idea is to set it up so they can basically manage the site themselves, only asking for my help if something goes terribly wrong, if they need a new feature, or a new design).
Now the templates. OMG. So I complained about WordPress spitting out HTML I didn't want… Wow. I had no idea how bad BAD could be. I really hope WordPress doesn't continue to move in that direction – because Joomla is all over the "HTML vomit" and it's bad. Bad, not just because it makes it difficult to customize, but also in the sense that tables are used liberally where they shouldn't be.
Now you CAN override some of this. You can make sure you set up your menus to use "lists" which will create a nice simple unordered list for your menu. And by overriding the com_content, you can get more control over the HTML vomit. I still contend that you have more control in a WordPress template than this. As well – those menus? I wanted to have some extra code wrapped around the menu for styling purposes and I needed to install this extension to do it. That created all kinds of headaches – because one of the "menu items" was an alias to a page that already existed on another menu (and to avoid duplicated content issues – you have to create it as an alias and not a new "page") and this could not get translated to that custom menu module the extension uses… (Are you totally confused yet?)
You can also create multiple templates that you can assign to specific pages – however I also find this process easier in WordPress. Partially because you have to do a separate install for each template page. Joomla's template system is based on ONE page structure – whereas with WordPress – each template (in the same theme) can be as different as you want or need.
So I'm back to the idea of using WordPress for this project. I can only hope that they'll work on the admin for the page area – or that a plugin will come out that will help. But for both myself and for my client, I think they'll have a much easier time navigating WordPress than they will Joomla.
Joomla does have a strong and loyal following. I am interested in hearing people's experience with it. If you use Joomla, have you tried using WordPress? Am I "missing something" that is the cause for all the issues I'm having with Joomla?
Updated: FYI – if you like the categories for pages idea in WordPress – go and give it a few stars here.
Updated: Well I did find one thing that will be helpful on this 100+page project – this plugin: PageMash which will let you drag and drop the order of the pages, as well as drag pages under another to make it a child page AND the pièce de résistance: You can expand/collapse the parent/child pages to hide/show them. PageMash makes it's own admin page to do all this – it would have been nice if it could have done it to the main (page-listing) admin page, but I'll take what I can get!