Open Source Content Management friendly to CSS design- In search of the Holy Grail
I’ve been hired to do a facelift on a site that’s currently set up on the Mambo 4.5.2 version Open Source Content Management System. The code the script generates is . . . well, the word that pops to mind is HORRIFYING.
All good website designers are scrambling to learn how to convert tables to css design and have the css code be the be-all and end-all to defining how the site looks. Tables, though they’re not obsolete, are relegated to their originally intended use. They’re for tabular data. Period. No more tables for layout, let’s convert that table to a css layout, please! I’ve been working on honing those skills for over a year now and have achieved a fairly high level of proficiency, and don’t care to look back. CSS design is not only a lot more fun and versatile, it’s so much less BLOATED, and so much more search engine friendly! Not only that but the css/xhtml combo is meant to bring sites into the future and allow them to be viewed on nontraditional devices that we haven’t even dreamed about yet. People will not just be surfing the web using a traditional computer, oh no. So we need to write that code in such a way that our websites won’t be obsolete in another two years. I worked hard to learn to do that. Really hard. Now if google code would validate . . . but that’s another story.
So you can imagine my dismay upon looking at the code generated by Mambo 4.5.2 and the client’s originally chosen cms template, and finding a mess of tables. Not only that, there was html 4.01 code mixed in on a document that was declared to be xhtml 1.0 transitional. Some tags were all caps, the rest were lower case. What a mess! And the css code wasn’t much better- there was a whole stylesheet gone 404. It’s amazing the site works at all.
In hopes I’d find an answer, I looked for a forum on which to ask questions and opened a whole different can of worms- Mambo? Joomla!? What gives? This Open Source CMS seems to have hit a major fork in the road.
I finally, after wading through a mess of thrashing argument, weirdness, bitterness, hesaid-shesaid kinda stuff, and legalese about the split, found a forum on the Joomla! site that was somewhat active, though maybe a bit jumbled and unsettled. So I went ahead and posted a query on the forum, asking to be pointed toward a template that was entirely xhtml/css designed so I’d have a place to start. The community on this forum, I must say, are friendly, and wonderfully responsive, a really nice bunch of people who seem to take to heart the spirit of open source design and development. It was only a half hour or so and I was steered to a css based template that, when I opened the files, didn’t have a table in sight. Oh joy! Oh bliss! Well, there’s a demo of this template up, so I decided to peek at how it looks, since, being a web designer myself, I love to see other people’s website designs. It’s fabulous! Now let’s look at the source code . . . ACK! Where in HELL did those tables come from???
The simple answer is- if they’re not in the template then they’re being generated by the core code. Hoping this is NOT the case I posed a second question in my original thread on the forum. Again, the helpful and friendly community came through with a fast answer, though it was NOT the answer I wanted. “Yes, the core code in the current release does generate tables. And the majority of the third-party add-on components generate tables too. The good news is that although tables are used, the core does generate valid XHTML 1.0 output.” Good news? Good news to whom? Yes, the use of tables will technically validate BUT if the use of them goes against the intent for their use, which is to use them for tabular data only, then isn’t that an invalid use of tables?
Though I appreciated the quick and friendly response, that line, “core does generate valid xhtml 1.0 output” sounded a bit like the poor guy was repeating the “party line” re the code generated by this open source CMS. I can damn near guarantee I’m not the first one who has questioned this. I find it a shame.
The other part of that phrase- that the CORE generates valid output, made me look more closely at the code generated on my client’s site. The invalid html 4.0 code was being generated by tiny-mce, one of those third-party add-on components mentioned, causing a coding abortion of such maximal proportion it is truly amazing the site is visible at all . . . *sigh*
So now I have a dilemma. I can tailor for and plug in a graphics set to code that I wouldn’t wish on my worst enemy, thereby completing my assignment in a way that I feel would not be in the best interest of my client, but would complete the terms of my contract. Or I can educate this really nice client and try to bring him up to date, which I can actually do using a great and proven script, with less work for me, while giving him a MUCH better and more functional site that he can update himself, and which will be xhtml/css compliant, will load more quickly, will be search engine friendlier, and will overall work for him a lot better- even though those weren’t the original job specs. How can I do this? By putting his site on WordPress, which is more than adequate for his modest CMS needs.
I do have a wish too. I wish the Joomla! CMS development team would bring their open source content management into the 21st century and give more control to website designers through the templating system. Though I have absolutely no wish to use that CMS script now if I don’t have to, if it were to be brought into a form where someone like me could generate nice clean and truly compliant code with it, I’d gladly participate again in this very pleasant and generous open source CMS community.








September 4th, 2005 at 6:39 am
The soon-to-be-released Joomla! will offer patTemplating to solve most of these issues to bring this CMS into where it needs to be.
Chuck
September 4th, 2005 at 8:21 am
What needs to be fixed first are the browsers (IE, FF, Opera, etc.). Although most of the abuse about non-compliance gets heaped on IE, the others also have their own little “quirks.” Until the browsers can be trusted to provide the same rendering for a given set of CSS, web site designers will continue using tables, since output controlled by tables is much more predictable across browsers. This is especially true of commercial sites that must cater to the lowest common denominator, i.e., many versions, different brands of browser.
Its true that IE is probably the worst offender, but its also true that IE is not going away, no matter what the FF zealots say…so in my opinion, it will be a long time until the “Holy Grail” is found…
September 4th, 2005 at 9:07 am
HarryB, though I too think browsers can be better, all the layout problems have been fixed and the bugs have been squashed. Tables are no longer necessary if you take the time to learn how not to use them. I just wish that mambo/joomla hadn’t taken away my choice.
September 4th, 2005 at 10:38 am
Bugs have not been squashed…they have been “masked” by clever uses of CSS and knowledge of the vagaries of specific browsers. I know you can work around most inconsistencies, but one should not have to. What happens when IE7 fixes some but probably not all deviations from W3 spec?? Especially if one fix is to the all important !important
I believe Mambo’s/Joomla’s (or at least Joomla’s) future direction is to make tables go away, but that’s probably a few more releases down the road before this becomes stable.
September 4th, 2005 at 11:59 am
If getting rid of the table code can be easily done by hacking core (which it can) then why can’t core changes be made now? It’s already a stable working hack, which I just found out, and would use if it were my own site I was using this on. Saying it will be a few releases before those changes to core release become stable just makes no sense.
BTW, I remember the hacks I used to use when we only had tables for layout. What’s changed there? Hacks are hacks. We’ll probably always have to use them as long as there are browser makers who are trying to reinvent the wheel and win market share. And the IE hacks can always be fed via conditional comments to each IE browser (thank The Big Kahuha!)
September 5th, 2005 at 8:54 am
Something just occurred to me, HarryB. You seem so anti-”hack” and so loath to use css tableless layouts for that reason. Don’t you realize that the use of tables for layout WAS A HACK? Kind of ironic, huh?
September 5th, 2005 at 9:41 am
Stability..what I was referring to was the “new” Mambo/Joomla templating system using patTemplate that will solve a lot of the existing design/data separation issues and allow tableless design. Take a look at the Joomla [url=http://www.joomla.org/content/view/14/28/]roadmap[/url]
CSS/Tables/Hacks…you are preaching to the choir here. I am a believer…just my personal rants about stuff in general
September 5th, 2005 at 10:05 am
I will take a look. I’m sure LOVING the friendly community at Joomla, and the discussion, both there and here, sure has been fun!
I am curious as to why the Joomla developers chose to develop their own templating system instead of using the well-proven and thought out smarty templating engine. I, personally, love working with Smarty, though I know people who have problems with it. I’ve found though, that most problems with Smarty Templating are caused by the php developers who don’t know how to feed designers like me the right bite size pieces in Smarty Code. If the developer does his/her end properly, my end is a breeze.
November 9th, 2005 at 12:08 pm
BJ, I totally agree. I have one major site up in Mambo 4.5.1. It is time for a redesign and it really isn’t possible to get to where we want to go with the junkie tables that Mambo pushes out in core and in modules.
I could manage to cut all the tables out of the frontend.html files but that won’t take you very far on its own.
But we can’t cut and run as we have done so much work customising each section of the install that it would cost the client thousands to lose all that work carefully making everything hum (especially in terms of SE friendliness, which was a real problem in Mambo until my programmer and I cut into it with very sharp knives, as well as using one of the commercial solutions).
As I run several Wordpress based sites and/or integrate Wordpress into SSI driven sites as the CMS part, I would say that is a much better solution unless your client wants a lot of the Mambo modules and has really deep pockets.
Most Mambo sites just look like Mambo sites - because of the damn tables. When heavily modded, Mambo can just manage to look like a hooker tarted up in different outfits for the client.
Those guys have to get on the tableless version fast. I don’t see why they can’t have a button in the back to switch on and off tableless for those who just can’t bear to move into 2005 for a few more years.