Recently I was going to help a friend turn their small business website into a CMS-driven one, and I quite thoroughly explored OpenSourceCMS.com looking for a system that would meet the requirements.
Said requirements were roughly
- Really, really simple UI, suitable for people who are confused by too many buttons
- WYSIWYG editing
- Good markup
- Nice URLs
- Some sort of image/media management, however rudimentary
To be honest, while I think the OpenSourceCMS site is a wonderful resource, I was disappointed with the quality of the featured systems. Just about all of them failed to meet the criteria - most of them were overly complex, the rest had no functionality..
One that looked promising was Translucid from Pantha.net. It was a big plus that it had built-in support for multiple languages. The UI looked simple. This was the one I eventually suggested to my friend and it is currently powering a test version of their new site.
While setting up the test site however, I came across several annoying issues. Should the Translucid team come across this, I hope they will make use of this friendly criticism to improve their software:
- English strings in template files ("Home", "Search"). I consider this a severe bug, given that localization is meant to be one of Translucid's strengths.
- The test site running on DreamHost hardly worked at all out of the box, all URLs on site were 404. The reason was the way their PHP-as-CGI setup messes with the entries in the
$_SERVERarray. I had to do this at the top of the main PHP library to fix it:
$_REQUEST ['SCRIPT_NAME'] = $_REQUEST ['REDIRECT_URL'];. Though very annoying I think it's more DreamHost's than Translucid's fault. Why can't DreamHost's PHP-CGI script clean up the environment variables itself?
- Source contained lots of <a onfocus="blur()"> - this is a usability issue because this onfocus prevents keyboard navigation to links, for example in Opera.
- URL encode/decode problems - national characters like æ do not work in URLs and file names, due to the way the URL rewrite instructions work. This is very nearly a showstopper..
- "Breadcrumb" links list doesn't work - always says "You are here: Homepage" and seems to be hardcoded that way - is breadcrumb not implemented at all?
- Does not default to custom URLs - this may be my misunderstanding, but I thought that if you type in a custom URL in the corresponding box, links to that page would use this URL. Doesn't seem to happen. These URLs seem not to work - is that box just meant to give a printable URL output in the page or something?
- Navigation design not reflected in URLs. If I make "News 2008" a child page of "News" I expect to see URLs like "/news/news2008". Why not?
- No date-driven content option. I know it's a CMS and not a blog system, but date-paginated content is sooo convenient for news and such.
- Calls stripslashes without checking if magic quotes is on. This is a bad, bad habit PHP programmers get into due to the bad, bad PHP feature called magic quotes. Just check if magic quotes are enabled so that you don't strip backslashes that are an intended part of the content.
- No 404 pages. Automated URL-based search feature is cool, sure, but it breaks 404. Any URL you make up will return something. Could the system at least say 404 if the custom search found nothing?
- Can not handle query string in URL correctly (breaks stats etc.). Again a problem due to the Apache URL rewrite technique: any query strings will be interpreted as a "magic" URL-based search. This means that using for example Google Analytics to track campaigns is harder.
- Incompatible with PHP's session.use_trans_sid - really same point as above: any query string arguments (like a session ID if PHP doesn't know yet if you support cookies) will break the URLs.
- Junk in installation. Files like "about.html" with information about Translucid and its associated graphics to not belong in my website's root folder.
So there, I think those were all the issues I noticed.