Full CMS in 12 steps – is this the best CMS…ever?

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):

  1. Create a folder – ‘foo’
  2. Create a file – description.txt and save it under ‘foo’
    1. First line: “Foo Theme”
    2. Second line: “A description of Foo Theme”
  3. 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’
  4. Copy CSS, JavaScript and image files under ‘foo’ into their respective directories
  5. 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'); ?>" />
  6. Do the same for images – but use
    $this->getThemePath()

    instead of the normal src path

  7. Replace the title in the header with:
    < ?= Loader::element('header_required'); ?>
  8. 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); ?>
  9. Take a screenshot of the image – save it as a 120×90 thumbnail.png file under ‘foo’
  10. Upload ‘foo’ into the root/themes directory where you installed concrete5
  11. Activate the template from the concrete dashboard
  12. 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:

<ul id="left_navigation"><li><a href="/">Home</a></li></ul>

My stylesheet rule was:

#left_nav { list-style-type:none; }

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)

About Jon Trelfa

I live in Detroit, Mi.
This entry was posted in Code and tagged . Bookmark the permalink.

Leave a Reply

Your email address will not be published. Required fields are marked *

*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>