Content management systems allow website owners to quickly add and change content on their site. From our development point of view, it tends to be easier for us to develop a new site with a CMS because the site then also becomes easier for us to add content ourselves. Over several years we’ve used and tried out a variety of free systems, in particular, Joomla and WordPress and have really loved the functionality they provide.

In the past, we’ve tended to recommend Joomla for sites with numerous pages and WordPress for smaller sites or ones where content needed to be updated in more of a news/blog fashion. The thing that has always felt a little, well, messy with these systems is managing not the main content of each page, but the secondary things on sites – sidebars, decorations, slideshows, footers. We have also felt that managing the content itself has been a back-and-forth process of finding sections in an administration and seeing what changes look like on the site. Administrations often need to be explained to clients, with them perhaps seeming complex and uninviting.

So for us, it felt like a step forward when we tried out Concrete5 and started using it to develop sites. We feel we can now offer a more user-friendly content management system, but we also find developing Concrete5 sites easier and quicker.

The features we love for our clients

There are several features of Concrete5 that make the editing process easy and effective, even for novice users.

Really easy editing of pages

The main task that owners of a website do, above everything else, is make changes to existing pages. Concrete5 handles this task intuitively. Users login to the website, navigate to the page they wish to edit and press an obvious button to start editing the content on the page. Small edits can literally take seconds to do. In this way, most users never need to hunt around an administration and the process feels streamlined.

Adding pages is done in the same fashion, users log in and simply press an add page button. They type in the title of the page, edit the contents and save the page. Also when adding pages the system simplifies the process of including the new pages on the navigation menu. There is no separation between the sitemap and the menus. Once a page is added it is automatically included on the appropriate menu, removing a sometimes complicated step in the process. Pages can be hidden from the menu as well, with a simple check of a checkbox.

Editing different parts of each page

Most modern websites have multiple areas of content on each page, with often two or three columns of information and complicated footers. These areas of a website can often be tricky to edit when they need to be edited in a different part of an administration.

To make this simple Concrete5 uses a system of ‘blocks’. Once the ‘edit’ button is selected the sections of the page which can be edited are highlighted in red. The user then can select the section they wish to edit, left click on the grey box and a drop down option menu will appear. From this menu the user can choose to add text, images and other options, all from the one location.

Fine grained permissions

Concrete5 also includes a multi-user permissions based admin. This means that different login details can be configured to limit which pages and sections of the website certain users can edit. This effectively ‘locks down’ the website editing simplifying the process. This is great if you want someone in your business/organisation to manage one part of the website, but not have full control over an entire site’s content.

Document and image management

Most websites have at least a few documents that need to be maintained. These might be things like product brochures, printable forms, handbooks, posters, etc. There are two things we really like about the way Concrete5 handles site resources. Firstly, users do not need to go into the administration to manage files. While editing content, they can click on a link and use a simple window to either upload a new file or pick an existing file to link to. Secondly, if a user needs to update an existing file, there is a ‘Replace’ option to do that. This can be done in the same step as adding the document link in your content.

The features we love for development

From our point of view there are many things about Concrete5 that we find help to speed up our development and ultimately create a website that is more closely suited to what our clients want. The following notes are for developers who may have used systems such as Joomla, WordPress or Drupal. Although many of the things on our list are able to be managed in other systems, the way that Concrete5 handles them feels efficient and designed around the tasks that developers perform regularly.

Setting up editable areas

Adding new editable areas can be done by simply adding 2 lines of code to the page template file. After hitting refresh the system immediately detects the new area and it is ready to use, no other configuration is required! This means that there is almost no reason to hardcode contents into a site’s design and there is no hunting through an administration to find where you put what.

Page types

Most website have at least two different page layouts, generally one for the homepage and another for inner pages. Beyond that, sometimes pages work well with columns or sidebars and sometimes work well spanning full width to accomodate content. Pages that have news often need to look different from pages that have more static content, and sometimes different areas of the same site need different colour schemes or branding.

When you add a new page in Concrete5, the first decision you are asked to make is what page type you would like to use. This is incredibly powerful in terms of setup, as we as the developers can create a range of page types for the different layouts the site will need. These page types also help to categorise the pages of the site and can be automatically displayed in lists/menus. The icons for the page types can also be created to help the user pick the one they want visually.

Page type defaults

To avoid users having to set up each page with the appropriate blocks each time they add a page, Concrete5 allows you to set default blocks and attributes for each page type. So if for example a news page type has a main content area as well as a sidebar block that automatically displays recent news (in Concrete5 this would be a ‘page list’ block), these items can be added to the default for the news page type. When a user creates a new page of the news page type, these blocks will already be on the page and all they have to do is edit the content.

Custom page attributes

This is a feature that you first wonder what it is for, and then later wonder how you could live without it. Just say you would like a page type to have some extra fields for a user to enter. As an example, it might be that they have a series of products they wish to sell and you have set up a ‘product’ page type. On this page type you could add some custom page attributes such as price, description, a photo of the image, etc. These attributes can then be displayed on the page (and the image automatically thumbnailed), removing the need to manually layout the page. These attributes can be added from within the administration in seconds and easily used in the templates.

Overriding core code

The HTML can be edited safely without interfering with the core Concrete5 code. This means the blocks can be overridden and customised with ease. Yes other systems have this too, but Concrete5 handles this by mirroring the same folder structure as the core, so you simply copy and paste the core file into the same directory name, but one level up. Further to this, if you want to override a block in a few different ways (for example, you might want to display a list of page with authors and timestamps on one page and not on another), you can simply create different templates for that block and easily change between them.

Clean and tidy HTML

The HTML code generated by the default templates is clean, semantic and appropriately marked up with IDs and classes. The code generated by the blocks themselves is simple and free of cruft. Anyone who has had to style up the older versions of Joomla knows why this is so important. Again, because the templates, blocks and core code can all be overridden, it is easy to make changes if need be.

The Scrapbook

We’ve mentioned earlier the concept of blocks; areas of a page that can be edited to have content, images, forms, etc. The blocks can be copied to a site clipboard of sorts, called the scrapbook, and pasted in elsewhere. This is great if you set up a block in a specific configuration and want to add it to a number of pages.

Lots of handy features built into the administration

There are also a number of features built into the administration that just make development easier.

A bookmark icon (otherwise known as a favicon) can be uploaded from within the admin. Simple and efficient.

Most content management systems feature a WYSIWYG editor for editing HTML code. These editors can be customised to add needed buttons/features or remove buttons that aren’t or shouldn’t be used. The Concrete5 developers obviously recognised that developers like to be able to configure the editor (in this case TinyMCE) without having to dig through code, so they built options into the administration. There are a few default options as well as a custom option that allows the developer to easily specify what buttons they would like displayed.

Final words

If you have read this far, you would be able to tell how much we love making sites with Concrete5. If you are looking for a new website, we’re more than happy to show you a demo of Concrete5 and set you up with this system. If you are developer, head on over to the Concrete5 website to check out their videos and documentation.