FUEL CMS 1.3 Released


FUEL CMS 1.3 has been in development for over 6 months and provides quite a few improvements and bug fixes. A few of these deserve more than a bullet point in the release notes though:

MySQLi Driver is Now Default

As of PHP 5.5.0 the mysql functions have been deprecated in favor of the mysqli functions. The default driver in the fuel/application/config/database.php file is now mysqli.

Module Post Pages

The most exciting new feature in 1.3 is the Fuel_posts library which adds blog-like functionality to simple modules. This means you can automatically add list, category, tag, archive, detail and search result pages to any module!

New Field Types

With this release comes two new field types added to the core—embedded_list and select2.

Embedded List

The embedded_list field type allows you to simply embed a module’s list view in your form. You can customize which columns can be displayed, what actions to perform on each row including Edit, View, Delete, pass custom create parameters and more. Below is an example of what it could look like in a module model’s form_fields method:

...
if (!empty($values['customer_id']))
{
	$where['customer_id'] = $values['customer_id'];

	$fields['embedded_list_example'] = array(
		'type' => 'embedded_list',
		'create_button_label' => 'Create Example',
		'display_label'     => FALSE,
		'module'            => 'example',
		'tooltip_char_limit' => array('note' => 50),
		'cols' => array('name', 'note', 'published'),
		'actions' => array('edit', 'view', 'delete'),
		'create_url_params' => $where,
		'method_params' => array(
			'where' => $where
			),
		)
	);
}

Select2

Form_builder already provides the “multi” and “select” field types to handle selection of single or multiple entities. However, often if you have a long list of items you want the ability to type to quickly filter that list. The Select2 jQuery plugin provides that ability (among some other features) and we’ve added it as the select2 field type. Below is an example of a way to use it to select multiple tags (note the ‘multiple’ => TRUE to get the tag-like functionality from select2).

$fields['toggler_example'] = array(type => select2= model=array(FUEL_FOLDER => 'fuel_tags_model'), 'multiple' => TRUE);

Twig Integration

The Dwoo templating library has proven to be a worthy companion for FUEL CMS. However, that library is now deprecated in favor of the more advanced and popular Twig template library. We’ve rewritten the templating library to allow developers to choose which they want to work with and have provided a simple class interface if developers want to integrate something else entirely. You can even specify down to the layout level using the layout’s new parser property. The configuration for the templating has moved from the parser config file to fuel/application/config/MY_fuel.php and note that the “{” and “}” are still the default parsing delimiters but can be changed to “{{”, “}}” per Twig’s default. The default parsing setting is still Dwoo but you can expect that default to change in the future. The documentation provides more details.

Model Helper Classes

Models are at the heart of all simple modules and sometimes their complexity needs to be simplified. To help with this, 1.3 introduces several custom model classes that can be used to break out more complicated model logic such as list items, form fields validation and related items.

Social Class

FUEL CMS 1.3 has added a Social class and a related social_helper to help with generating social sharing links and open graph meta tags

List Filtering

One of the more complicated parts of a simple module is creating advanced filtering for the list view. To help with this, several improvements were made to list filtering including a new optional collapsible filtering area. Additionally, you can now pass an array of values to filter on for multi selects, and you also have the ability to use having SQL conditions for those situations where you can’t use a normal where condition. Perhaps most important though is that there is now better documentation.

Javascript Loading

One last improvement to mention has to do with the loading of Javascript. Before 1.3, repeatable fields with block fields in particular would load the same javascript files multiple times which would drastically slow down editing. This has been optimized so that it only loads files that haven’t been loaded already. You’ll see massive speed improvements with page load times when editing module content in the CMS.

Upgrade Instructions

The vast majority of 1.3 changes to the codebase happened in the fuel/modules/fuel folder. However, there were a few changes that happened in the fuel/application/ folder as well. Our recommended method for upgrading is to use GIT and add the FUEL GitHub repo as a remote. Create a branch from your existing repo, merge FUEL’s master branch into that, resolve any conflicts (there will most likely be some in your fuel/application/config files) and then test before merging back into your own master branch.

CodeIgniter 3.0?

Many of you may have noticed that CodeIgniter itself had a major update recently. That did not make this release but it will be coming.

Comments have been closed.


  Back to Top