To some, their own flavor of CMS would be considered the “best” – but I’ve used a *couple* of CMS’s in the past. Here’s a list of systems I’ve been using from just the past couple of years (in no particular order)
- Joomla
- Expression Engine
- Ektron
- CMS Made Simple
- Drupal
I had considered trying Plone, Silverstripe, and possibly MODx for a couple of projects. I say had considered because of my recent discovery of concrete5. All I can say is…WOW!
It took me all of 1/2 hour to get a functioning CMS in place from an existing template – and another couple of hours to tweak the CSS (concrete has a way of putting it’s own spin on things like auto-nav – but I’ll get to that later)
Here are the 12 steps I took to get the page from template to CMS (some steps are more complex than others – but you get the idea):
- Create a folder – ‘foo’
- Create a file – description.txt and save it under ‘foo’
- First line: “Foo Theme”
- Second line: “A description of Foo Theme”
- Grab my template page (I create all of my templates as static HTML first when I develop a new website) – copy it as ‘default.php’ under ‘foo’
- Copy CSS, JavaScript and image files under ‘foo’ into their respective directories
- Replace css href attributes to something like this:
<link rel="stylesheet" type="text/css" href="./css/foo.css" />
to
<link rel="stylesheet" type="text/css" href="<?php echo $this->getStylesheet('css/foo.css'); ?>" /> - Do the same for images – but use
$this->getThemePath()
instead of the normal src path
- Replace the title in the header with:
< ?= Loader::element('header_required'); ?>
- Here’s the fun part – put code similar to the following in all the places where you would want “editable” content (or possibly navigation or ad space, etc):
<?php $left_nav = new Area('Left Nav'); $left_nav->display($c); ?>
- Take a screenshot of the image – save it as a 120×90 thumbnail.png file under ‘foo’
- Upload ‘foo’ into the root/themes directory where you installed concrete5
- Activate the template from the concrete dashboard
- Done – you will now see your template in a fully functional CMS!
There’s a bunch of odd things that I adjusted after the fact – but probably could have been avoided if I had planned better. For example, take this snippet of HTML code:
My stylesheet rule was:
When I told concrete that the id of my navigation was ‘left_navigation’, it applied the id to a surrounding div rather than the ul. Not a huge deal, but something that I needed to fix nonetheless.
There are a TON of ways to create custom content, custom data blocks, and well..pretty much anything. It’s my new CMS of choice (other than wordpress for blogging, of course)










