Full Throttle: Rapid Development with CodeIgniter and FUEL CMS
In the last two installations of my CMS review articles, I had focused on CMSs such as ImpressPages and CouchCMS that catered primarily to designers or end users, that is, folks who are not developers. In order to have a balance of power, we shall now shift our attention towards a Content Management System that is entirely meant for web developers and coders. In the following article, I will be taking a closer look at FUEL CMS, a modular-based framework and Content Management System.
Introduction to FUEL CMS
Here is how FUEL CMS describes itself:
“It’s developed on the popular CodeIgniter PHP web framework and allows you to create your models, views and controllers like normal and only use the CMS part when and if you need it.”
Basically, FUEL CMS is a flexible and developer-friendly CMS that comes with an Apache 2 license. Among other things, it features WYSIWYG editors — not one, but two. You can choose between CKEditor and markItUp!.
You can implement site-wide validation, create custom modules, associate variables, and so on. Its code library features module capabilities, menu builders and other objects; we shall return to the code library and other details later in this article. Also, for your clients, FUEL CMS offers inline editing, cron jobs, support for third-party applications, and several other features.
Using FUEL CMS
Sadly, there is no automated installer as of now. I will try to enumerate the basic steps that you need to follow in order to get FUEL CMS up and running on your server (I am assuming that you are comfortable setting up CodeIgniter websites).
- In order to install FUEL CMS, first download the package, and then upload it on your server in a web-accessible folder. However, ensure that /data_backup, /install and /crons folders are inaccessible. The default .htaccess file has them marked as inaccessible, so you need not worry much.
- Next, just navigate to index.php file, and follow the instructions. You do not necessarily need to have .htaccess enabled, but as already mentioned in the above step, the CMS does use it to prevent access to certain folders and enable mod_rewrite.
- Speaking of mod_rewrite, you do not actually need the mod_rewrite module for Apache, albeit it is the recommended way of using FUEL CMS. You will need to alter the .htaccess file to the proper RewriteBase directory (generally the root directory of your installation).
- Just in case you do not have mod_rewrite enabled, navigate to /application/config.php and locate $config['index_page'] and then change it to index.php (it should be blank by default).
- Create your database, and then install it by running the /install/fuel_schema.sql file.
- Next, configure your database settings at /application/config/database.php
Once done, you will also need to make your /cache and /assets/images folders writable. Once again, these steps are just pointers, and you should ideally refer to the official documentation when in doubt. Also, note that certain modules may need their own SQL files to run.
After you are done with the installation, it is time to use FUEL CMS. The interface itself is nothing to talk about: it can probably use a facelift, but it works well in its current shape and form, and whatever gets the job done, gets the job done. So there is not much to complain to discuss here. Your admin panel is divided into sections and sub-sections to help you manage your website easily.
The admin panel and its sections are self-explanatory, so we shall simply move on to certain terms and concepts that are associated with FUEL CMS. Basically, website management in FUEL CMS revolves around Pages, Layouts, Modules and Blocks.
- Pages: Pages are formed when you combine layouts with variable data. A page in FUEL CMS has additional properties too, such as a location (URL), status (published or not), and cache settings, etc.
- Layouts: As is obvious, a layout determines what variables can be used with reference to a specific page.
- Modules: Modules can be simple pointers or complex apps that can have properties of their own.
- Blocks: Blocks are just reusable elements that can be used across pages (say, footer and header).
FUEL CMS also comes with certain security tweaks that you can use to your advantage. For instance, you can use dev_password to specify a dev password and protect your website from unauthorized viewers, or num_logins_before_lock to limit multiple failed login attempts. All such settings can be specified in the FUEL configuration. Certain modules have their own security settings.
FUEL CMS has a rather well-organized User Guide and Documentation. It is spread across multiple sections, much like a text-book. If you are looking for support, the documentation is the apex resource. Beyond that, the forums are full of activity as well. Thus, FUEL CMS scores full points in terms of docs and resources.
In terms of localization, FUEL CMS is currently available only in English. However, it does have potential for localization, and you can make full use of this very potential. Beyond that, FUEL CMS comes with multiple other bells and whistles, such as Markdown Helper, for instance.
Analysis And Verdict
FUEL CMS is not a big enterprise like Drupal or WordPress. The parent firm, Daylight Studio, is not Automattic or Acquia either. My guess is that they probably have to strike a balance between development of FUEL CMS and other client-work. Yet, this does not mean that FUEL CMS suffers from lack of attention; it is just that the CMS is not an all-encompassing solution like the big names out there. Over time, as FUEL CMS gains more popularity, it will be able to attract more and more coders and developers. However, all said and done, it will probably never become the de facto standard for web development (of course, in order to be called successful, it doesn’t have to become the de facto standard either).
So, should you use FUEL CMS? The answer is simple.
If you are a developer who intends to work with CodeIgniter framework and are looking for a ready to customize CMS, you should definitely check out FUEL CMS. If, on the other hand, you are not so comfortable with code, FUEL CMS is probably not the solution for you.
Have you ever used or are planning to use FUEL CMS? Share your experiences and thoughts with us in the comments below!
Sufyan bin Uzayr writes for various magazine and blogs, and is the author of "Sufism: A Brief History". He blogs about technology, Linux and open source, mobile, web design and development, typography, and Content Management Systems at Code Carbon. You can learn more about him, follow him on Twitter or friend him on Facebook and Google+.