- Home
- About
- Conversations
- Tips
- Amazon MP3: DRM-free music
- iTunes Plus tips!
- Ogg in iTunes
- Show hidden files (.htaccess) in OS X
- Convert FLAC to MP3, WAV, or AIFF to play in iTunes on Mac OS X
- Convert WMA to MP3
- Swap left Alt and Ctrl keys in Windows
- Boot Camp: Delete, Right-Click, Middle-Click
- Creating nice aliases
- CSS generated content special characters
- Default Application in OS X
- Enso (Windows Quicksilver)
- Import Gmail contacts to Mail
- Install RAM: MacBook Pro
- iPhoto: Deleting aliased pictures
- Using Keyboards with Your Mac + the Microsoft Natural 4000
- Aurora - iTunes Alarm Clock
- Delete keys on Macs
- Projects
- Boost and XCode
- Code
- Contact
- create content
Demands of the Ideal: The Perfect CMS
Submitted by alanhogan on August 1, 2006 - 11:36am.
Conversation | PHP | Web Design | Caching | CMS | Drupal | Programming
There are a lot of content-management systems out there, but none that I have found has been able to do all that I want it to do. (Note: I wrote this article a year ago, but did not publish it, thinking it incomplete. Well, the need is still real, so I am publishing it!)
- Driving principles:
-
- It's my site. I want total control.
- It should be easy to use.
- Smart server-side caching
- For all users who are not logged in, just generate the page one time and cache the output. After a set period of time and also after changes to the site, dump the cache.
- Powerful yet simple skinning
- It's my site. I want to be able to control every character output to the browser. The ideal CMS would provide concise documentation to let me know how to make a powerful template, how to change the output of forms, etc.
- Smart client-side caching
-
Drupal's absolute worst offense is setting immediate cache expiration dates for the admin pages. When creating or editing content, if you (like I did) click a link that will explain the input format, it opens in the same window. Hit "back" and all your changes are gone. There should be two layers of protection here: On navigating away from an unsaved form, you should get a JavaScript
confirm()dialog box warning you that your changes may be lost. Secondly, there is no reason the page has to expire so soon anyway. Those global quick expiration times just force your server to do more work.Of course, all pages, unless I say so, should probably just cache on my machine anyway. It reduces stress on my server and speeds up the operation of the
Back
button. - Hierarchical structure
-
I should be able to say “The page ‘hacks’ is under the page ‘CSS’” and let the CMS automatically:
- Position it appropriately in the menu
- Assign it the URL “/css/hacks”
- Place it in the RSS feed for the CSS section of my site
- Consider it related to other articles under ‘CSS’”
- Tag the article with “CSS” and “web design”
- Generate breadcrumbs navigation (if so desired)
- Page types
- It's only logical that pages should fall into different categories, or "page types." Some pages should allow users post comments, for example, while error pages should clearly not. (Neither should they have page hit counters.) The site admin should be able add and modify these page types.
- Highly configurable input formats
- If I want to be able to allow users' comments to link to
Wikipedia articles by using
[[Article]]syntax, or evenwikipedia[Article]syntax, I should be able to let them, without reading manuals for days to figure out the grisly innards of my CMS. - Semantic, expandable WYSIWYG
- You know what? After I allow my cool syntax for linking to Wikipedia, I'll want users posting comments to know that. It should be easy to add a button to a WYSIWYG text editor to let them link to Wikipedia with my syntax. Furthermore, I hate WYSIWYG editors that only have one Italic or Bold option. Dammit, this is 2006, and I'll never be able to write for A List Apart if I don't use <strong>, <em>, <var>, and <cite> where semantically appropriate.
- Automatic, default Unicode support
- It should also automatically convert Microsoft's nonstandard, moronic “smart quotes” characters (which often show up ?like this,? as question marks or hollow blocks, on the web) into the appropriate real Unicode/ISO characters.
- Fabulous Comment Support
- Allows users to reply to other comments
- But the admin can turn this off
- Allows the admin's comments to be visually distinguished from normal comments
- Optionally ties in with third-party comment services
or standards
- Gravatar
- CoComment
- Whatever
- Spam Control, ideally expandable, but should be strong right from the get-go.
- Control which pages can accept comments
- Per-page
- By page type (e.g. not on error pages, but on articles)
- By time (e.g. pages newer than 3 months)
- Pingbacks & Trackbacks
- Allows users to reply to other comments
(Demands of the Ideal
is a reference to The Wild Duck by Henrik Ibsen.)
Page Outdated! Comments disabled!
As do many people using Drupal to power their website, I get a lot of comment spam, and Drupal's spam filter is horrible! So I have permanently disabled comments on old.alanhogan.com. Try the new version of this page (which may not exist, but should if this page actually has content besides a list of other articles).
Consider using my contact form to get in touch. And remember that AlanHogan.com is live and old.alanhogan.com is here as a backup only, and a stopgap measure because some AlanHogan.com functionality is not implemented yet.
Sponsored by
To advertise here, contact me.




The Ideal Admin section
The ideal admin section would not use the same theme as the main site, and would perhaps even use a nearly completely separate code base. (See this tale of woe).
Furthermore, as Mike suggests, the admin section would attempt to allow as much pluggability or “bridging” as possible; that is, allow as much interoperablity with other tools and systems (e.g. image gallery, bulletin board, dedicated blogging system...) as possible. For example, they could share the same users & details such as login information.
Alan J. Hogan