FOF 3.0 (experimental):

Available option for building your components for Framework On Framework.
This feature is for discovering the tool and learning FOF 3.0
See more here : Framework-On-Framework

Dataset Manager

Introduction of a visualizer to see your datasets snapshots.Dataset Manager The manager allows you to delete the snapshots.

When you choose a sandbox with empty dataset, the manager import the last dataset snapshot, whatever the version, and copy it to the selected empty sandbox.

Improvements : Table files simplified and unified. Toggle function improved. (Now using the save() common function of the model)

Fixed ticket : The modified date and modified fields updated on 'toggle' (10885)

This new version is a core rewrite. It took 10 months to achieve it.

Basicaly, the javascript front interface (Builder) is now coded on a stable framework. I would have loved to use AngularJS for it, but finally I chosen to improve my own framework wich is good enough. It will not be reused for any other project because the idea is to work with AngularJS (or Ember) in future.

Ergonomy : The builder is now faster than ever. Try it and share your user experience reviews

New feature : Clone your projects

New feature : addGroupBy() is now available for using the native GROUP BY sql statement.
Note: in the past, addGroupBy() was used for primary order, and now called addGroupOrder()

New feature : Auto-complete the subnode field when dragging a FK node in forms or filters

Removed feature : custom regex
It is not anymore possible to create custom regular expressions in the builder. For the moment there is no other alternative than coding them manually. In future I will find a way to propose this feature again.
If you have a good generic regex to propose, submit it on the forum and I will study each case and add them to the proposed list.
The reason for this removal is for security.

Important security fix : LFI in classes/file/file.php

Fixed tickets :

  • Brick alias messed with brick label (10883)
  • Field alias convention : refuse number for first char (10884)
  • Unique key statement. Handle the maximum length (1080110614)
  • "Row count not match". Error still can raise, but for other reason. The datas are now mor consistent (10318)
  • Field names conventions (1089710884)
  • Cleaning notices (10895)
  • Controller issue (10583)
  • CSS class property issue (10678)
  • Datetime filter (10637)
  • Rule required for zero value number (10853)
  • Ajax filters availables in menu item (10559)
  • Date custom rule (10329)
  • JDom integrated option (10863)
  • Filter issue (10906)
  • Check out issue (10881)
  • Model not found (10843)

New feature : Introduction of JLayout for rendering HTML segments :

  • Component heading
  • JForm fieldset

New feature : The page header and browser title respond now correctly with the menu parameters.

New feature : Updates (SQL)
The component now support the updates files, based on versions. This has an advantage for us, when the database structure have changed, then just increment the version of the project (in the builder).
At the next generation, the new SQL table structure will be stored and executed from sql/updates/mysql/[VERSION].sql
Example: You want to regenerate a component and change some fields in a table.
Before this version, if you simply update an existing component, the database will not change because tables exists, and because only INSTAll can create tables. So after such update maybe the files want to access to new fields and you crash the program, because the database has not been modified. The solution (before this new small feature) was to uninstall your component, and install it again.
Now you have another option when you have changed a structure.
1. Increase the project version
2. Regenerate
3. Delete manually the tables that have changed
4. Update component, re-installing it on top.

The new structure is generated in a new sql file and will be executed ONLY is version is superior. Every time you do this, those SQL files will stack in your installed component.
Now you can keep it, but you only need to manually delete the tables you want to upgrade.

Cook is not generating the SQL for morphism of the database base on your changes. It would be too complex to achieve. (well, all is possible, but not as a priority)
Be very carefull when you distribute your applications to keep trace of the SQL structure for every version, and to furnish all the sql versions updates with your component.

New feature : Hook

Cook has introduced its own ajax engine in the JS side. Call it, and "Hook" handles it. For the moment this small framework is not used that much, but the first stone has been released and the JSON communications between component and javascript engine hare now handled in a standadisated way, containing all informations of the transaction.

New feature : CSV
The view class contains a helper function to export in CSV. This will be developped more in future. For the moment, you can use it manually in your code.

New feature : "On the edge", the beta versions

For advanced users or for fast problem fixing, you can choose the beta version to generate your component. Choose 'On the edge (beta)', in your project configuration.
Cook choose builder version

Fix : Ajax file upload in modal views. This is also a new feature, considerating it uses a new ajax file uploader

Fix : Required fields for ajax combos.


Important Security Fix

If your component is using indirect file access, you need to upgrade urgently your component.
The concerned files to uprade are :

  • helpers/helper.php
  • classes/file/file.php

New Features :

Download your files as well as dataset with « Embed dataset » config.

JLoader new release.

  • The namespacing is now working correctly. (Joomla fix)
  • Debug tool :
  • Fork file footer is now simplified in 2 lines.

See full explaination in docs : Loader

New functions:

N:M helpers
You can now easier build your N:M and N:1 links. Documentation is coming.

Ajax Node
Ajax new functions and defined standards for transaction handling. Documentation to come.

Is now handling automatically in which case to render the toolbar.
Fix the missing toolbar in back-end modals layouts.

Cleaning & Fixes:

  • REST standard : Only ‘POST’ requests can change the filters permanent vars.
  • Many various issues as usual...

New features

JDom as pluginConfiguration JDom plugin Joomla

Use only one instance of JDom per website.
Reuse all JDom features in any components and modules.

Note : if you want to integrate JDom inside your extension (legacy way), you must choose 'integrated' in the JDom property of the project configuration.

Open Source under MIT licence :

You can contribute to JDom on github :

Auto-install extensions

A new folder (extensions) in your component is containing the extensions to install after you component installation acomplished. 


  • FK empty lists and filters
  • Cleaned various fatals removed and warnings
  • Some language strings at installation
  • JDom : jQuery UI assets (not loaded anymore from component)
  • joomla.javascript.js : removed call

New feature


Is a new fuction in your View super class to render easily a JForms fieldset.


  • JForms id and names properties for suffixed special fields in form groups

New Features :

propagate-accessPropagate accesses.

Propagate accesses from a foreign table to a curent table.
For example when a category is not accessible, the items of this category will not be loaded.

This is a security potection it applies directly on the SQL query.
As usual in Cook, this feature does not have any FK level limit restrictions.

Accesses are :

  • Viewlevel access
  • Published states
  • Authoring




Improved UI rendering and JDom

Bootstrap Jooma buttons radio


Bootstrap Fly images


And much more : Ajax filters,UI fixes, grid booleans and Bootstrap task buttons.

Includes the last jQuery versions : jQuery : v1.10.2 - jQuery UI : v1.10.3 (Drag/Drop, Sortables)

IconsIcomoon icons JoomlaBootstrap glyphicon icons Joomla

'icomoon' and 'gliphicons' libs are not compatibles because they use the same 'icon-' prefix.

JDom is reimplementating them with different prefix. ('icomoon-*' ; 'glyphicon-*')

Still you can use 'icon-*' at your own risk, but Joomla native backend templates are using different libraries for 'icon-*'




Grouped task buttons in gridsBootstrap btn-group group buttons

Task icons in grid are now grouped together in a Bootstrap btn-group in one table cell.

Still you can display the task in separated buttons :

Grid Properties > Layout > Tasks in grid : Individual buttons



Removed "Num' column.Joomla grid num column pagination

Column displaying the item number in the grid has been removed. 
If you want to use it, click on the option in the grid properties. Tab 'Layout'.


Grid Properties > Layout > Show Num# 


Grid checkbox visibility : canSelect()

This function in the list model is testing if the user can select items or not. The result is used to show or hide the checkboxes in grid.



Check your forks :

Model > prepareQuery() Improved, and not always compatible with Cook 2.5.x

  1. In your forks : search for 'addJoin('
  2. Add  around table names when missing (can raise an issue when you are using propagation accesses)


JDom have been highly improved.

  1. Check you do not have JDom namespace error in your pages.
  2. If you have errors, regenerate your component and see the new way.

When modules are calling your components. If you run multiple JDom instances.

  1. Replace dom.php in all your existing components. (because first found is loaded)



 Fixes :

  • SECURITY : index.html files was missing when upload 'rename' property value is including sub folders. ex: {ID} {RAND}.{MIMEXT}
  • populateObject() JSON decoding fixed
  • Fix when multiples searches was created on the same layout.
  • Can apply correctly CSS class names on elements. Easier templating.
  • Ajax filters rendering
  • FK Ajax combo fix when instancied alone without group. (simple select)
  • JADMINISTRATOR removed in front title of the pages.
  • Some files was missing for tiny project (when no back-end layout).
  • 'Defaulting' wizard improved behaviors. (Undefault other items, (eventualy distinct groups), directly in the model, by security)
  • Defaults layouts issues fixed. (Could happen before some collisions in the builder after deleting the first collection layout created)



New Features

  • Ability to filter on current user when creating a menu item




  • Current search text value is now always displayed.
  • Some added tasks in item Layout. Delete, Publish, Unpublish, Trash and Archive (even when Joomla is not really designed for that.)
  • Refresh page after edit form in modal.
  • Followers Itemid fixed for better SEF
  • Modal picker for user list


  • Boolean filters
  • Can rename item alias in table (2.5 issue)
  • Fixed dates format issue with unix timestamps
  • Range filters on date with unix timestamps
  • Range filters labels
  • Modal pickers improved

Joomla Cook Modal picker

CHECK YOUR FORKS (when you are using Unix timestamps)

  • All your modal_grid.php files in tmpl files (Back end)
  • helpers/dates function getUnixTimestamp()
  • All your models using unix timestamp in filters - save() function.
  • JDom new :
  • Changed : classes/form/field/modal.php

For this upgrade, your application may not have been affected, only fixed. So almost impossible that this upgrade damage your forks. But if you want to take advantage of this fix form this version, you may apply the changes to your forked files.

ACL rewrite:


13 functions has been rewriten in classes/model/item.php :

  • canAccess()
  • canAdmin()
  • canCheck()
  • canCreate()
  • canDelete()
  • canEdit()
  • canEditDefault()
  • canEditState()
  • canView()
  • isAccessible()
  • isAuthor()
  • isCheckedIn()
  • isPublished()
  • isVisible()

1 function in classes/model/list.php

  • isAdmin()

In models

  • prepareQuery() in item models
  • prepareQuery() in list models


If you have forked one of these functions, please check if everything is still working as expected.


New Feature

Download your dataset alone in SQL


  • view.html.php : displayXxxx()

Error handling little bit improved.
Model is not anymore raising bocking error when item is not found. The view does it and when the model is instancied somewhere else, the error is not blocking.

Fixes :

  • Joomla fields FK fix, when showing wrong key
  • Accesslevel field
  • JDom : html.form.input.clock
  • helpers/loader.php (Model not found for third tables in some cases)
  • Regex improvements


  • Fatal : "Task not found" issue
  • DS constant fixed when used in menu item.
  • Layout languages strings in CPanel
  • Toolbar icons sizes in J!2.5 and under
  • UI Boolean radio for J!2.5 and under (bootstrap support)
  • Data Restore issue when Email datatype is used

New Feature

JForms is now Forkable. Big Thanks to Tomaselli.
(Others XML still are not Forkable for the moment)


  • JDom : editor in full width (100%)
  • Deprecated : Model : addGroupBy replaced by addGroupOrder
  • FK Ajax Group in form fixed (missing dependencies : ckajax.php)
  • Redirection fixed (modal layout)
  • Menu item fixed (modal layout)
  • Creation Date in manifest
  • "undefined constant DS" fixed in Menu Item Modal
  • Save() problem fixed in classes/controller (using J!2.5 or under)

New Feature

Filter a list directly from a menu item

When you create a menu item to a list, you can choose to filter on a predefined value. (Modal picker)
For instance, you can filter on a category if category is a foreign key of your table.
This feature works for unlimited deep of foreign key.
Simply instance a filter on the concerned list. If you do not physicaly want this filter on the table, then delete it from your view and template file.

You can always filter directly by url.
ex: index.php?option=......&filter_category=4


  • Ajax context fixed for fk user (when using ajax and third tables)
  • ACL fix in sandbox
  • Colorpicker CSS fix. (JDom) (thanks to lander083077)
  • Database table with component prefix. (2.5 beta issue)
  • Builder fix : getData() on non object
  • Improvements in Modals pickers
  • Modal picker improved. (still to improve)
  • Tasks renamed (last Joomla fashion)
    Saves becomes Save & Close
    Apply becomes Save
Scroll to top