What's New in FUEL 1.0
The upcoming FUEL CMS 1.0 release (currently still in beta) provides a ton of new features and improvements. Although the 1.0 User Guide covers most of these improvements, I want to highlight my favorite 10 new features in 1.0.
1. The FUEL Object
FUEL CMS 1.0 provides a powerful object oriented structure allowing you to easily access FUEL functionality that was previously hidden inside controller methods. There is a fuel object set on the main CI super object (controller object accessed using the get_instance() function). This object allows access to your FUEL configuration as well as attaches other new useful FUEL objects. A few examples are $fuel->admin, $fuel->assets and $fuel->modules.
2. Custom Field Types With Form_builder
In 1.0, the Form_builder class received a substantial overhaul. You can now create reusable field types to expand form options with your models. Additionally, you can now do the following:
- Add fieldsets and tabs
- Have better control of what field types are used with each model field through representatives
- Add pre_process and post_process functions for a field type
- Associate data parameters to a form field which will then become data attributes on the form element (e.g. $fields[‘my_field’][‘data’] = array(‘id’ = ‘test’) becomes data-id=“test”)
My favorite new field types are the new template field type, which allows you to create repeatable form field sets easily, and the new block field type, which allows you to associate layout fields specific to blocks.
3. Model Relationships
Models can now easily associate with each other with the new has_many and belongs_to model properties. These associations don’t even require any extra lookup tables. They automatically generate the necessary form fields in the CMS to make the relationships, as well as readily provide the related information when accessing the objects for display in your views.
4. Improved Inline Editing
5. Code Generation
Writing the same code over and over again is a hassle. FUEL 1.0 provides a command line tool to help you generate starter files for your models, simple modules and advanced modules to help you get up and running fast. Below are some examples:
// generate a model and an associated placeholder table in the database php index.php fuel/generate/model examples // generates multiple models at once php index.php fuel/generate/model examples:examples2 // generate a simple module named examples including the model and table php index.php fuel/generate/simple examples // generate an advanced module named examples php index.php fuel/generate/advanced examples
Advanced modules can now provide their own installers that can be run via command line after they’ve been downloaded and placed in the fuel/modules folder. This makes creating permissions and database changes a snap. For example, this is how you would install the blog module:
php index.php fuel/installer/install blog
7. Migration Support
FUEL 1.0 leverages the CodeIgniter Migration class so you can easily make database changes by accessing fuel/migrate/latest. You can couple this migration functionality with the new webhook_romote_ip FUEL configuration parameter, which allows you to do things like run GIT post commit hooks that access a remote server securely.
8. Inline Editing Toolbar Tools
Advanced modules now can add their own tools to be run in the current context of a page. For example, the new Validate Module allows you to run HTML validation and link checking while viewing the site. Similarly, the Page Analysis module allows you to run an SEO page analysis while on the actual page.
9. New Libraries and Helpers
We’ve added several new libraries and helper functions as well as made several improvements to existing ones including:
- A Curl class has support for multiple simultaneous CURL connections.
- A scraper_helper—the Curl library’s close cousin
- A simple way to get RSS feed data with none other then the simplepie_helper
- A session_helper
- Several additions to the MY_url_helper like the link_target and last_url functions
- Several functions and improvements to the fuel_helper including the new fuel_form and fuel_page functions
- An Inspection class that we use to help generate a lot of API documentation automatically—which leads us to the last one…
10. Auto-Generated API Docs and Improved User Guide
Creating documenation in FUEL CMS 1.0 is now much easier thanks to the new user guide module and help from the new Inspection Class. In your advanced modules, you can now create a views/_docs/index.php file and it will automatically display in the modules section of the user guide. Additionally, there are new user guide helpers to automatically generate a table of contents, configuration documentation and more. You can download the user guide module to see for yourself.
The new user guide also has these improvements:
- The ability to auto generate documentation on library and helper files
- The ability to associate examples to generated documentation
- A keyboard shortcut of Shift+Space to toggle the Table of Contents
- A reorganized table of contents
- Many more examples
- Fixed typos (added some too I’m sure)
- Toggling of methods/functions to display more information at once
A few other noteworthy improvements that didn’t quite make the top 10 but are worth mentioning:
- Login As another User: Under the users module, there is now a “LOGIN AS” link next to the user name that allows super admins to login as another user. This feature is perfect for super admins when setting up permissions and testing out access for other users—kudos goes to Jonathan for this.
- A Cleaner Application Folder: 1.0 has cleaned up the application directory quite a bit. You’ll find that the libraries and helpers have been moved out of the application directory. This is helpful when doing updates because FUEL code won’t be mixed in with your application code. Updates can be as easy as just replacing the fuel/modules/fuel folder in most cases.
- Updated UI: Inspired by this post a while back, we decided to give FUEL CMS a much needed fresh coat of paint. More to come on that front.
It’s Your Turn
Fuel 1.0 is a substantial improvement over it’s predecessor. We feel that it is an amazing tool for web developers, especially those who love to work in frameworks like CodeIgniter. That said, we are still putting on some finishing touches and don’t have an official launch date yet but know we are working hard on it. Now it’s your turn to check it out and get involved in the growing FUEL community! Be sure to report any issues or ask for help on our Forums. You can download additional modules from the daylightstudio GitHub page. To stay up to date on the latest FUEL CMS news, follow us on Twitter or signup for our newsletter in the footer of this page. Stay tuned…