Over the last couple of years, we’ve been gradually developing our own platform that we use for developing our client’s websites and it’s based on the popular CodeIgniter PHP framework. This post will give you a brief history, some insight into our reasoning behind creating this CodeIgniter CMS, explain what it is and provide a few highlights of the platform.
I joined Shawn at Daylight the summer of 2007. Shortly thereafter it became apparent that in order to make our lives easier, we needed to decide upon a content management system (CMS) for our clients to manage their websites. Luckily, as a PHP developer, there is no shortage of great content management systems to choose from. However, after reviewing many of them, we concluded that our clients would probably need some considerable training to manage their sites. How could we expect our clients to understand the differences between components, extensions, modules, mambots, weblogs, and plugins if we didn’t?
Another problem was that we don’t like to build sites with form fields and WYSIWYG editors but our clients do. We needed a solution that would fit both our needs as developers to easily create customized websites for our clients, and make it dead simple for our clients to manage their site.
Around the same time this was going on, we had recently discovered a relatively new PHP framework on the scene called CodeIgniter. It was fast, had great documentation, and was PHP 4 compatible (which was important at the time). It was also easy and fun to use.
So the question became, how can we keep the power and flexibility of the framework that we enjoy so much and allow clients to manage their websites as simply as possible? Well, FUEL CMS was our answer to that.
Not your Normal CMS…(geek warning)
At it’s core, FUEL is a modular based, CodeIgniter development platform for creating web applications. You can create your models, views and controllers like normal and only use the CMS part when and if you need it. It’s a hybrid of a framework and a CMS.
Without going to far into each one, I’d like to touch upon what I feel are FUEL’s real strengths—it’s library additions, opt-in controller development, modules and inline editing.
We’ve added to the CodeIgniter framework to accommodate how we like to develop which includes such things as extending the core CodeIgniter CI_Model class to give it a plethora of extra functionality including:
- automatic form generating capabilities
- automatic and custom field validation
- customizable record objects (e.g. a custom field $feature->content_formatted would automatically apply your custom formatting)
- automatic magic method creation (e.g. find_one_by_type_and_active(‘orange’, ‘yes’))
Opt-In Controller Development
Yes we did make up that term. It’s what we use to describe the added ability to display view files without the need of a controller. Most of the time, view files only need a few simple variables and don’t seem worthy of their own controller. FUEL maps variables to view files and layouts using a similar method as CodeIgniter routes. As a result, you can create deeper uri paths (e.g. /about/products/fuel) without the need of controller specific _remap methods or routes.
FUEL CMS is also built for expansion through the use of modules. Out of the box, it includes a blog module, an HTML and link validation module, SEO page analysis module and few others we are actively working on.
When editing your site, FUEL allows you to see your changes immediately in context with its inline editing functionality. Any module you create can take advantage of inline editing with a simple helper function call.
Over the next several months, we will be writing more about FUEL CMS and it’s features. We are looking into opening it up for other developers to play with and contribute to so if you are interested, please visit getfuelcms.com and sign up to receive notifications about the project.
BTW… I will be at the Expression Engine CodeIgniter Conference this next week so if you are there, please stop and say hello.