In case you've missed it, you are looking at an older version of the website. Checkout our latest version, we promise you will love it 😍

Change Logs

v 1.6.3

  • #38: Bug fix: required_fields doesn't work for relation_n_n fields
  • #465: Translation for Spanish Uruguay by @mlopezcoria
  • #468: Remove PHP 7.3 warnings
  • #469: datatables theme - update table fails after delete
  • #470: Update Polish translation by @tikky

v 1.6.2

  • #442: Searching in grid with value 0 is not working
  • #458: Updated Lithuanian language by @dgvirtual
  • #463: Updated Spanish language by @CarlosPinedaT
  • Security fix

v 1.6.1

  • #441 Adding clone functionality - contribution from @portapipe

v 1.6.0

  • #211: Bug if use where clause and try to "search all" the fields
  • #432: Bootstrap Theme issues with filtering when we are using set_relation with multiple fields
  • #353: Adding callback_read_field function
  • #433: Preview click with fancybox to work the same across all the themes

v 1.5.9

  • #420: set_relation with brackets is causing ambiguous column name when the field name exists at the basic table
  • #413: Unexpected error when there are non english chars and a datetime field as column
  • #406: Export button to work without the need of a popup window or new tab
  • Clean-up redundant JavaScript load if it is not required.
  • Remove Export as a flash plugin for security reasons and instead add a download link

v 1.5.8

  • #382: Adding custom error message for set_rules()
  • Two new language strings for the multiple delete confirmation
  • #388: Chosen select have 100% width at flexigrid theme

v 1.5.7

  • #331 - Have a configurable XSS clean option to prevent XSS attacks
  • #370 - A faster way to calculate the totals

v 1.5.6

  • Unset bootstrap with more CSS unsets
  • Languages updates (Portuguese, Italian, Spanish)
  • #367 - Missing translation for Search {column_name}

v 1.5.5

  • Add Croatian language - translated by: Siniša Dragičević Martinčić
  • Small CSS fixes: Datetime and date picker was overflowing in some languages
  • Removing uniform.js

v 1.5.4

  • Changes for compatibility without the need of jQuery Migrate.

v 1.5.3

  • #141 - Max length for decimal numbers (pull request from @dodge107)
  • #335 - Unable to locate the model you have specified: grocery_crud_model (pull request: #336 from @P8H)

v 1.5.2

  • Add Lithuanian language - translated by
  • Fix compatibility issues with Codeigniter 3
  • Add "More" lang string for the datagrid listing

v 1.5.1

  • #290 - Added functionality to define upload file types per field (pull request from @syrys)
  • #305 - Update french.php and add translation for date format (pull request from @bvrignaud)
  • New function unset_bootstrap that removes JS and CSS of the new bootstrap theme

v 1.5.0

  • #211 - Bug if use where clause.
  • #197 - Properly sanitise filenames for uploads.
  • #237 - Set Timepicker to 24 hour format.
  • #294 - Javascript bug with set_subject().
  • Add a new method unset_view that is just an alias to unset_read method.
  • Multiple delete fields for flexibility for future themes.
  • Fixing the bug of jquery form plugin with returning the textarea as required.
  • Add $subject_plural as a second parameter to the set_subject method.
  • Multiple search fields for flexibility for future themes:
    • Multiple simple search
    • Multiple relation search
    • Multiple relation_n_n search
  • More configuration preferences
    • Setting environment (e.g. production)
    • Setting default theme (e.g. datatables)
  • Add 2 new functions:
    • unset_read_fields
    • set_read_fields

v 1.4.1

  • #231 - Read page not showing relations.
  • #233 - File upload uniqueid not unique.

v 1.4.0

  • #170 - Problem with more than one date inputs at the dialog.
  • #148 - New theme twitter-bootstrap [BETA]
  • #150 - Optimising the SELECT statement for counting rows.
  • #144 - Unique fields as new functionality for unique fields in the database.
  • #129 - Small bug uploading images.
  • #142 - Extras doesn't work properly when the field doesn't exist in the database
  • #158 - New method name set_crud_url_path. This method is useful when the path is not specified correctly.
  • #163 - Custom field type label for true_false. Like hidden, enum and set.
  • Noty Jquery Plugin to load when you delete a record.
  • Upgrading Jquery to Jquery 1.10.2
  • Multiple grids in one page.
  • New language: Catalan.
  • Add "view" as new action.
  • Small bug fixes:
    • #165 - add_action "url_has_http" issue
    • #166 - Improved file upload error handling
    • #167 - add_action method in Twitter_Bootstrap theme, doesn't update the dropdown properly

v 1.3.3

  • #102 - Unsigned field type bug.
  • #103 - Multiple columns search filtering at datatables.
  • #113 - Relation n_n missing when unset field.
  • Adding languages: Bengali, Slovak, Korean.
  • Stop supporting Codeigniter version 2.1.1 with ugly workarounds.
  • Use fancybox for previewing the thumbnails at the list page.
  • Transliteration characters for uploaded files.
  • Updating jQuery Plugins and third party add-ons:
    • Updating jQuery to version 1.8.2
    • jQuery UI Library to v1.9.0.
    • Timepicker Addon for jQuery UI Datepicker to v1.0.5.
    • jQuery UI Multiselect and adding localisation files for it.
    • jQuery Numeric plugin to v1.3.1.
    • jQuery Chosen plugin to v0.9.8.
    • Updating CKEditor to v3.6.5 with minimum setup.
    • Updating TinyMCE to v3.5.7.

v 1.3.2

  • #98 - Add more field types.
    • Dropdown field type.
    • Multiselect field type.
  • #101 - Size of a request header field exceeds server limit for datatables.
  • #97 - Add new method and functionality - unset_jquery_ui
  • #46 - Supporting IE7.
  • #95 - Export and print doesn't remove the html tags.

v 1.3.1

  • Updating "Export","Print" and "Minimise/Maximise" lang strings
  • Renewing to the latest tinymce version
  • Jquery version 1.8.1
  • Fixing small bugs

v 1.3

  • #73 - Jquery version 1.8.0
  • #88 - Where clause in set_relation_n_n.
  • #87 - Templating system to the set_relation_n_n method.
  • #82 - Have a thumbnail after uploading an image.
  • Adding Czech Language.
  • Internationalisation for datepicker ui and datetime picker.
  • #86 - Print functionality to both flexigrid and datatables theme.
  • #85 - Export functionality to both flexigrid and datatables theme.
  • Print functionality to datatables theme.
  • Having CKEditor as the default texteditor for grocery CRUD.
  • Adding Markitup texteditor. Really useful editor for developers.
  • #68 - set_relation doesn't work as expected when the third field (title name) is the same on two or more set_relation methods.
  • #80 - method order_by doesn't work correctly on datatables theme.
  • More configuration values:
    • Choose text-editor between 'ckeditor','tinymce' or 'markitup'.
    • Choose text-editor type between 'minimal' or 'full'.
    • Character limiter at the columns of the list page.

v 1.2.3

  • Compatible with Codeigniter version 2.1.1
  • Adding Hungarian language.
  • Adding new method: field_type. For now it is just an alias to the change_field_type method.
  • #49 - Adding new method: set_primary_key.
  • #27 - Adding value to enum and set of the change_field_type method.
  • #44 - Changing the date format at the list table. For example the 10 Jan 2003 has to be 10/01/2003.
  • #56 - Field type true_false now uses default value.
  • #42 - Insert ids to all the inputs for easy Javascript changes.
  • Bug fixes:
    • #30 - Change field type doesn't work if the field is not at the table.
    • #38 - required_field doesn't work for relation_n_n fields.

v 1.2.2

  • Adding Dutch language.
  • Adding a new method "unset_back_to_list". Unsets everything that has to do with buttons or links with go back to list message.
  • #28 - Change the hardcoded JavaScripts and CSS with variables.
  • #25 - Adding a new method "unset_list". Unsets the first list and the ajax_list and gives an exception error for the user that tries to access it.
  • Adding a new button/feature "save and go back to list". When a user press the button "save and go back to list" it is automatically redirect you to the list page when a successful save is done.
  • Adding the default_per_page at the config file. This specifies the first visit per page that a user should see at the list page. For example 25 rows per page.
  • #13 - The list search and ordering is not working with the n-n relation columns.
  • Small bug fixes:
    • #20 - Pressing tab and enter after adding a date or a datetime field it clears the date.
    • #21 - By default the texteditor transform the utf8 to html entities.
    • #22 - Doesn't recognise that a tinyint 1 or int 1 can just take a numeric value more than 1.
    • #23 - When we use $crud->where() method it doesn't work as expected with the flexigrid search.


  • #18 - Returning $this to all the callbacks methods.
  • "set" type doesn't work properly.


  • Adding languages: Afrikaans, Danish, Japanese, Romanian.
  • Adding 3 new methods. unset_fields, unset_add_fields and unset_edit_fields.
  • Renewing Javascripts: tinymce.
  • Issue #14 - In firefox browser if you add more than one textarea. Only the last textarea works properly.
  • Issue #16 - Flexigrid's Search string get garbled with multibyte string.
  • Adding the "set" field type.
  • Adding the "readonly" field type.
  • Adding lang strings: "set_relation_title", "list_record", "form_inactive", "form_active";


  • Adding languages: Arabic, Chinese, European Portuguese, German , Persian, Polish, Indonesian, Turkish, Ukrainian and Vietnamese.
  • Adding date format to the auto date fields. The format can be dd/mm/yyyy or mm/dd/yyyy or the old-one yyyy-mm-dd.
  • Adding date-time format to the auto date-time fields. The format is chosen by the default date format (uk-date , us-date or sql-date).
  • Adding a new uploader. Works with the most common browsers. Internet Explorer 8+, Mozilla Firefox, Google Chrome, Opera, Safari.
  • Changing the interface of the form inputs. Now all the text inputs looks like bootstrap's inputs.
  • Adding a where clause at the 4th argument to the simple set_relation method.
  • Adding order by clause at the 5th argument to the simple set_relation method.
  • Adding 3 new callbcaks, callback_upload, callback_before_upload, callback_after_upload.
  • BUG fix - unset_jquery function now works properly.
  • BUG fix #9 (The form's clear functionality don't work properly after the insert).
    • callback_escape_insert to callback_insert
    • callback_escape_update to callback_update
    • callback_escape_delete to callback_delete
    • grocery_Model to grocery_CRUD_Model
    • grocery_Field_Types to grocery_CRUD_Field_Types
    • grocery_Form_validation to grocery_CRUD_Form_validation
    • grocery_Layout to grocery_CRUD_Layout
    • grocery_States to grocery_CRUD_States


  • Add new jquery version 1.7.1
  • Changing the drop-down list of the set_relation. Now the drop-down list has unique design for all the browsers, is searchable and also can be empty.
  • Changing the layout or relation n-n (only without the ordering field). The new one, is much more user friendly and easier to handle lot of data.
  • Adding languages: Italian, Russian.
  • Small BUG fixes:
    - Auto-recognize enum fields for CI 2.1
    - Don't print " " if a value is empty, is useless
    - Smal but important CSS Fixes.
    - #7 set_relation BUG conflict when a field name appears twice.
  • Manipulating NULL data. Automatically add NULL to a NULL-able field when it's empty.


  • Multilingual functionality, adding languages: Bulgarian, French, Portuguese, Spanish, Thai.
  • Fixing issue #3, replace mysql_escape_string() with str_replace. This function has been DEPRECATED as of PHP 5.3.0.
  • Fixing issue #5, set_relation with multiple fields don't work with NULL-able fields.
  • Fixing issue #6, unique_hash issue (not unique when having same method name in 2 diff. controllers).
  • Changing license. Grocery CRUD is released with dual licensing, using the GPL v3 and the MIT license. For more about the licenses read : Grocery CRUD licence.


  • New feature: Multilingual functionallity.
  • Remember the search text and the field name at the list that user had insert.
  • Method set_relation - New feature to add more than one fields to the title of the related table.
  • Adding Timestamp as an automatic date and time field.
  • Change the business logic of adding js and css files. This is really useful for a FUTURE feature with multiple tables in the same view.
  • A temporary solution for the search for All that have a relation_n_n.
  • Small Bug fix - adding tinyint as a type to autogenerate the true_false type (active-inactive) for tinyint at CI 2.1
  • Fixing issue #1 - flexigrid width was always 960px. Now has always 100% width.


  • Bug Fix - When you have unset edit and unset delete in your actions and also you have insert one or more add_action, the column Actions disappeared.
  • Adding a new field type named "password". This is a simple transformation of the field input from text to password and it hides the password from the list grid.
  • Changing state name insert and update to... "insert" and "update" and not "add" and "edit" that was till this revision.
  • Fully compatible with codeigniter 2.1 - Changing the library of CI_Form_Validation and adding it into the library of grocery CRUD for stability.


  • Changing the functionality of the private method _theme_view. Now it's not dependent with the Loader of codeigniter.So every template controller, HMVC, e.t.c. can work well with grocery CRUD now.
  • Changing the library core and make it more minimal and more powerful.
  • New method unset_jquery. Very useful, if you already have the jquery library at your basic template.This is good to avoid jquery conflicts.
  • BUG fix. No more conflicts between flexigrid tables. There was a cookie conflict between different lists.
  • BUG fix. The set relation now works if you add the same table name twice.
  • Renaming the folder public to assets.
  • Grocery CRUD is now ready to be a spark.
  • Changing the functionality and the javascript of the uploader. There is no need to have $config['enable_query_strings'] set to true anymore.


  • Renaming the label "Tools" to "Actions".
  • Creation of new field type : "hidden" to add hidden fields. You can also add a value to the hidden field.
  • Updating Javascripts: datatables, file_uploader.
  • Disable sorting of the row "Actions" on datatables theme and fix the actions hover on paging that didn't work.
  • Adding new feature/function add_action. Adds icons and urls for custom "actions".
  • Adding .htaccess files to the views of themes for security reasons.


  • Bug Fix - Datetime picker now works fine to an empty input. It also works fine to the add operation.
  • When the edit and the delete is unset then disappear the column Tools.
  • The default library/model is not in a third party but has been moved in the main codeigniter foldering for better functionality and to use it in both CI 1.7.x and CI 2.0.x .
  • Delete the grocery Exceptions Library. Everyone can create his own exception library. It was just an example.
  • Add new jquery version 1.6.2 and renewing some plugins.
  • Remove php short tags.
  • No direct script access allowed on the views.
  • Renaming function set_relation_1_n to set_relation_n_n. The functionality has not change.
  • Removing the libraries MY_Output.php and MY_Loader.php from the core folder.
  • Removing the folder template. The template was just an example and confused lot of people.
  • Fully compatible with Codeigniter versions 1.7.x , 2.0.0 - 2.0.3.
  • Creation of new field type : "invisible". Very useful if you use callbacks.