Whilst working on client projects we often find useful bits of information out. Where possible we blog about that information to pass on our knowledge. Below are some of our most recent entries.
Our standard RadiantCMS setup
Following on from our blog post about why we use RadiantCMS, we thought it might be worthwhile us mentioning which extensions we use in our standard setup.
One of our biggest gripes with a lot of CMS systems is that the templates etc cannot be placed into source control very easily. The very thought of having everything tied up in a database with no source control frightens the life out of us. Fortunately the file_system extension solves that problem. You can export and import layouts, snippets and pages with a simple command line call.
rake db:to_fs rake fs:to_db
We'll explain later how we've created a few RadiantCMS command line aliases to string together a few calls to make our development process very smooth.
This is a simple extension that adds form mail capability to pages. We use this on all our standard contact forms.
All sites always need an asset manager area. The paperclipped extension, adds this functionality. With this customisable extension your site administrators can easily upload assets and then drag and drop them into their pages.
The Drag Order extension adds a drag and drop interface to the page tree structure.
There are loads of text editing filters available however we find the most popular one with our clients is the CKEditor filter. This filter is still a work in progress and there are a number of things we've noticed that could be improved, but these are more technical issues and don't affect our clients.
PageFactory and PageParts
These two extensions are our latest to the fold. We found them whilst watching radiantcasts episode 11. We immediately saw the benefits of both extensions working together.
PageParts allows us to setup custom fields for different page parts. This means we can set file upload fields, date picker fields etc. The extension is also very customisable so we can write our own parts. This extension has certainly reduced the need for us to write custom extensions for things like Events and News etc.
The PageFactory extension is a small DSL that allows use to setup page templates, such as a News template, which when selected produces a page with all the relevant page parts attached, the correct layout selected, and the correct page type selected. Basically it means we don't have to worry about content editors setting up their individual content pages incorrectly.
Navigation Tags is an extension which provides a simple means of displaying the page structure found in the admin tool as a navigation tree structure on the public facing site. The extension comes armed with a number of useful tag attributes, such as "except" and "only" so you can tweak the output of the navigation structure as required.
All clients like to preview their changes to content first. The page preview extension provides a simple tools for doing this.
Our RadiantCMS aliases
As we have used RadiantCMS more and more we've managed to improve our development workflow. Our main aim for these aliases has been to improve how we get our layout, snippet and page code during the development process into RadiantCMS for testing. Below are some of the aliases we have setup.
#radiantcms alias radimport="rake fs:to_db && radrestart" alias radexport="rake db:to_fs" alias radrestart="asset_build && rm -r tmp/cache && restart" alias radextensions="rake db:migrate:extensions RAILS_ENV=production" #rebuild the js assets alias asset_build="r asset:packager:build_all" #restarting passenger alias restart="touch tmp/restart.txt"
Some of you may look at our list of extensions above and wonder why RadiantCMS doesn't have them built in as other system do. You may even see this as a massive weakness, however we see it as a strength. This lack of functionality out of the box means you can tweak just about anything to make RadiantCMS work as you want. It also means that if you don't like how one extension works you can either write your own or drop in a different extension. For example if you don't like how Paperclipped works then you could use a different asset management extension such as MediaMaid.
The lack of functionality from a basic RadiantCMS is not limiting, but empowering to the developers, and once you have a set of extensions you are happy with you can put them into a standard build that works for you.Tweet