A PHP Class (and a Wordpress Plugin and a Drupal Module) for composing Boxes in a Grid within Pages.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.
classes connection error handling #448 Sep 6, 2018
css #101 widget type input May 17, 2018
fonts authors list working and new icons Oct 8, 2015
js Merge pull request #441 from philippze/issue/440-custom-file-widget-text Sep 6, 2018
scss #101 widget type input May 17, 2018
templates frontend templates refactoring without breaking changes Apr 12, 2017
.gitignore .gitignore update Nov 1, 2016
README.md hooks documentation Jun 5, 2018
config.rb storage fix Jan 12, 2015
grid.php #445 constraint update Apr 9, 2018
license.txt storage fix Jan 12, 2015



A PHP/HTML/JS Framework to build landing pages. This library does not work on it's own - it needs some help from outside.


  • You need to provide db_query() which replaces {...} with PREFIX... and executes the statement

Supported Browsers

  • Chrome
  • Firefox 4.0+
  • Safari
  • IE9+


  • Whatever you want to do, require grid.php and instantiate a new grid_library object.
  • The grid_library object will provide you with everything you need to.


  • getFrontendCSS($absolute) returns the default frontend css path in either absolute or relative paths (relative means relative to grid.php)
  • getEditorJS($language,$absolute) returns an array of js paths to include for the editor to work correctly.
  • getEditorCSS($rtl,$absolute) returns an array of css paths to include for the editor to work correctly.
  • getCKEditorConfig($styles,$formats) returns the rendered js to be provided for the editor in order to configure CKEditor correctly.
  • getEditorHTML(...) returns the HTML for the editor to work properly.
  • getDatabaseSchema() returns the drupal-7-conform scheme of tables needed by grid.
  • install() performs the needed transformations on the tables based on the schema to set everything up.
  • uninstall() undos the transformations install() did.
  • getStyleEditor() returns the editor class for styles.
  • getReuseContainerEditor() returns the editor class for reusable containers.
  • getReuseBoxEditor() returns the editor class for reusable boxes.
  • update() performs needed database updates.


Grid is hookable at several points.


  • will_render_grid fires before grid is rendered. Is first rendering hook.
  • did_render_grid fires after grid was fully rendered. Is last rendering hook.
  • will_render_container fires before a container is rendered but after will_render_grid
  • did_render_container fires after a container was fully rendered but before did_render_grid
  • will_render_slot fires before a slot is rendered but after will_render_container
  • did_render_slot fires after slot was fully rendered but before did_render_container
  • will_render_box fires before a box is rendered but after will_render_slot
  • did_render_box fires after box was fully rendered but before did_render_slot

Data manipulation

  • createGrid fires when new grid was created
  • publishGrid fires when grid revision changes state from draft to publish
  • cloneGrid fires when grid was cloned to new grid
  • *destroyGrid fires before grid will be deleted
  • save_container fires before container stats are persisted
  • delete_container
  • save_slot fires before slot stats are persisted and if box is added to or removed from slot.
  • save_box fires before new data is persisted
  • delete_box fires before box is deleted


GPL v3 - see license.txt


Currently there is only a German documentation available. It includes both documentations for users and developers.