I've got the content side of things sorted out, but I want to change the way the site looks. Where are the templates?
The term 'themes' is used in concrete5 when talking about collections of files to change the way a concrete5 website looks. A theme will have some CSS, perhaps some Javascript and a collection of Page Types. You can either look at creating your own theme (which is really quite easy), or installing a pre-made one. Themes can be applied in the Dashboard.
In Joomla I would sometimes override the way something worked by by using Output Overrides. I could override the way pages and modules would output their HTML. Can I do that with concrete5?
Yes, nearly everything in concrete5 can be overridden. Blocks in particular can be overridden, and you can even create different 'block templates' for your site for you to select from when editing blocks.
Joomla's approach is to allow you to override component output or module output by putting files in an html folder of your template. Joomla has templates, then component output as well as module output.
With concrete5, you either edit the page types in your custom theme (to change the overall structure of pages), or override blocks by placing override files in top level folders. Once you've worked out the trick to overrides, it's quite easy, but you'll want to read up about it.
What about other common features in Joomla, things like user management, global configuration?
You'll find these kind of features in concrete5's Dashboard. User management is very straightforward, and you'll have user groups like in Joomla.
Most global settings can be found through the System and Settings area of the Dashboard. In terms of a raw configuration file, in Joomla you would edit a file 'configuration.php'. The equivalent configuration file in concrete5 is found at
/config/site.php'. It is not often that you would need to edit concrete5's config file, if ever.
Like Joomla, concrete5 has an extensive permissions system where you can set up users and groups with different levels of access to pages and editing controls.
So what's in Concrete5 that isn't in Joomla?
There are many features in concrete5 that don't really have equivalents in Joomla, but here are some of the bigger features to check out.
Form blocks
These blocks allow you to quickly create custom email forms. They can be used to create contact forms, questionnaires, etc. Joomla normally relies on extensions to create such elements.
Versioning
Built into concrete5 is versioning. Every time you make a change to a page and publish it, the previous version of the page is recorded - your content, your blocks, everything.
So if you make a change (or someone else makes a change....) and it needs to be reverted, concrete5 can quickly and easily roll a page back to a previous version. Files in the File Manager are versioned too.
Area Layouts
Just say you have a page on your site where you'd like to use a few columns to present your information, but your theme doesn't have the kind of layout available as a Page Type... you can split editable areas into multiple areas using the 'Add Layout' feature when editing pages.
The Composer
Earlier I mentioned Page Types. Well normally these are for things like news items or blog posts, and you want to always place the new pages in a particular spot.
The Composer is a concrete5 feature that allows you to create and use a simple form that automatically picks a page type and location for a new page, presenting you with the fields you need to complete.
There are many blog plugins for Joomla, but the composer in concrete5 allows you use any of your page types. If you've used a blogged system like Wordpress before, the Composer will be quite familiar.
Page attributes
Each page in concrete5 has the standard properties of a title, a path (the alias), an owner and a publish date, but a page can also have additional custom attributes. These attributes store additional information about a page, sort of like metadata.
Page attributes can be used to do things like change the title of a page, mark a page to be excluded from search results or to be excluded from a being shown in Navigation.
Wait, you've really just described Article Parameters, the Advanced Parameters and Article Metadata..
Yes, these are quite similar, both Parameters in Joomla and Attributes in concrete5 are used to mark pages with extra information.
However, concrete5's attributes are more flexible - you can actually create your own page attributes, things like extra pieces of text, dates, or even references to files in the File Manager. This is incredibly useful if you're wanting to customise your site.
What if I want to add some more functionality to my new site? In Joomla I'd normally go hunting across the web for modules, components and plugins (or collectively Extensions). So how do I find and add Extensions?
Although there's nothing to prevent you creating and installing your own add-ons, you'll find nearly all of them on the official concrete5 marketplace. From within concrete5 itself you can hook into the marketplace and directly install packages. There are both free and commercial packages, with all being tested before being made available. Unlike Joomla, you don't have to install components separately - a single package might contain multiple blocks, extra dashboard pages and page types for example.
Also unlike Joomla, updates and support for packages are all managed through the one site (you're on it now), with the forum being an additional resource to help answer questions.
What about updating, for bug fixes and security?
More recent versions of Joomla feature updating of the core from within the administration. Concrete5 has the same kind of updating facility built into its Dashboard. Concrete5 will automatically check if there is a new version available when you log in and offer to update the system for you. Any installed add-ons are also checked for new versions in the marketplace and these can be updated automatically too.
You can also update concrete5 manually if you prefer. Patching Joomla has traditionally required you to overwrite a bunch of files and folders from a patch zip. Concrete5 is easier to update manually - you simply replace the core /concrete folder with a new one and visit a special page on your site to trigger the upgrade. Much tidier.
So if all these things are covered, does this mean that concrete5 can be used to develop the same kind of websites I normally would have developed with Joomla?
Absolutely, concrete5 can create the same kind of site structures, layouts and interactions. It's also fair to say that concrete5 is more flexible 'out of the box' than Joomla, and if you're a developer you can extend and customise concrete5 just as much. Give it a go.
by Ryan Hewitt