Using PHP Grid Framework in Joomla

We’ve published a new tutorial on how to integrate PHP Grid Framework with Joomla 3.9.8. It allows using all features of our Data Grid inside Joomla and with much simpler implementations. Steps required to integrate are following:

Step1: Download Free version or Buy package from  our website (if not already done) and move “lib” folder from package in your Joomla root directory, and rename “lib” folder as “phpgrid”.

Step2: Create a new file ‘demo.php‘ inside ‘phpgrid’ folder and copy paste joomla code snippet from here.

Step3: Install Joomla extension “Sourcerer (free version) By RegularLabs” from Here OR download from our Github Repository. No need to buy Pro Version.

Step4: Now after installing this extension, edit the article where you want to display grid and include the demo.php file using sourcerer php syntax:

{source}
<?php require_once JPATH_ROOT.'/phpgrid/demo.php'; ?>
{/source}

Step5: A modifications which will allow PHP Grid to perform ADD and EDIT operations inside of Joomla. Edit Joomla ‘index.php‘ file in root folder and

For Joomla 4, Paste the code below immediately before this line:

// Run the application – All executable code should be triggered through this file
require_once dirname (__ FILE__). ‘/includes/app.php’;

and For Joomla 3 or before, Paste the code before this line:

$app->execute();

This is the code to paste in index.php:

// Joomla will read the REQUEST array and the router gets confused when data grid posts data
// the data is still in the POST array so removing it this does no harm to Grid PHP
if (isset($_POST['id'])){
unset($_REQUEST['id']);
}

Result: Now Save the article and open it in browser, you will get the demo datagrid.

Next Actions: You can create more grid php files (like in step2) by copying code from package demos and include them using sourcerer syntax (step4) on your desired article of Joomla.

Let us know your feedback. If you have any questions, contact our support center.

Active License Subscription customers can get free upgrade using this link.

PS: Special thanks to Doug Lawson for his contribution in this tutorial.

Nov 2018 Release (version 2.6.2)

Welcome to the release of this month. This is a post release update of major build v2.6. In this release which we have made several updates and fixes on last version. Highlights mentioned below.

Highlights:

Demo App: Basic Todo List

Desktop view:

Mobile View:

Columns hide/show with URL parameter

Now you can hide or show certain column based on url parameter (?list1_showcols=id,invdate,note&list1_hidecols=total)

We already have URL based filtering support as explained in this link.

Numeric range autofilter ( >10 <20 )

Autocomplete force selection (combo-box)

If you want to use autocomplete but do not allow new entries and force selection from list (combobox style), then you can set:

$col[“formatoptions”][“force_select”] = true;

Optimized mobile layout

Removed action icons for xs devices and added fullscreen support that gives native app experience.

Notable Fixes & Updates:

– Moved default edit all rows button to toolbar
– Hotkeys added for first grid. a,e,d. (disabled by default, set $opt[“hotkeys”] = true)
– Removed export from readonly
– Performance issues fixed by disabling tooltip from ellipses (slow rendering for large dataset)
– Css fix mobile spacing button & pager bar auto height
– Removed binary data from database.sql & db script constraints
– Removed sortby check to allow complex sort in $opt[“sortname”], sqlsvr fix
– Reformat date after cancel
– Firefox dependent dropdown update
– Fix error msg spacing, promo fix, dialog mobile position fix
– New line fix for sql server limit query regex
– Fix multiselect css
– Fix multicolumn search when searchtype=global
– Optimized url based filters
– BOM character fix for all files

We’re working on couple of demo apps and most wanted pivot table feature which we plan to release in next build.

Next Actions:

Active License Subscription customers can get free upgrade using this link.

 

 

Demo Application: Todo List

To show some basic features of php grid framework, we created a very simple demo of “todo list” and following features are used:

  • Bootstrap 4 + Mobile sidebar filter menu
  • Conditional Formatting
  • Custom delete event callback for soft delete
  • External Search form (date range, text, priority filters)
  • Checkbox with default edit mode
  • Export to Excel

Desktop screen:

Mobile screen:

Next actions:

Basic Authentication for PHP Grid

On some cases, we just want to password protect our page without including the hassle of heavy frameworks (like Laravel, Yii, Symfony etc) and databases. This solution works without any database and have credentials hard-coded in authentication file. You can add or modify accounts by changing php array values. Refer comments inside file for configuration options.

Download basic authentication include file here.
(save it as auth.php)

Step 1) Include “auth.php” file on page which need to be password protected. Include before any output / echo and at start of code. Adjust include path accordingly where you place the file.

Step 2) Configure user/pass by editing auth.php – e.g. ‘username’ => ‘password’. You can also set after logout url. e.g. your login page url.

Result: Now when you access protected page, you will get following login screen. Entering user/password will allow you the access.

To Logout, access same grid page with logout=1 query-string param. e.g. https://example.com/grid.php?logout=1
Feel free to change the appearance by modifying css files and hacking html code.

Download basic authentication include file here.
(save it as auth.php)

New Documentation Site

Another update for all, we just launched our new documentation section to improve usability and better understanding of our product (PHP Grid Framework). The new documentation site is categorized in content sections on left with a search box on top right. There is also a live chat / email message box on bottom right. To go to parent website use main site link on top.

The most impressive feature is ‘quick search’ which is super fast (powered by lunr-js) and fetch results from every section of documentation in no time.

Share you feedback and improvement suggestions as well.
Happy coding.

Announcing PHP Grid Framework v2.6

Welcome to the release of PHP Grid Framework v2.6. There are a number of significant updates in this version that we hope you will like, some of the key highlights mentioned below.

Highlights:

Overall User Interface Enhancement, Font-awesome Icons, Shaded border, Tooltips

Optimized for mobile devices

Automatic hiding of columns on small device breakpoints

Enhanced Excel Style navigation, just like Google Sheets & MS Excel with no saving delay.

Added Tooltips where required. Added ellipses (…) for long content.

Lookup search, Numeric Range search, Global search

Lookup edit type

and it will result following searchable lookup dropdown.

Exporting single row (e.g. Sales receipts)

Predefined Search Templates

URL based grid filtering (filters permalink)

Directly Open Add Form, instead of grid

Read-only preset of grid (e.g. Reports) + Dark-One theme

Optimized Database drivers supported
db

And finally, great experience on modern browsers.
Browsers

 

Notable Fixes & Updates:

  • Selecting specific field to map on imported CSV file
  • Updated Excel export library included
  • Updated PDF export library included
  • Updated Database Abstraction library included
  • Important Security Fixes (XSS, SQL injection)
  • Added set_titles function to override titles
  • Added rowheight property to increase row space
  • Security: File upload File Extension Filtering
  • Excel mode: On enter move down or next
  • Replaced CKeditor with Trumbowyg editor due to licensing limits
  • Auto remove uploaded image on close and cancel dialog
  • Excel view: Textarea shift enter for new line
  • Around 200 fixes and updates.

Last but certainly not least, a big Thank You! to our customers who helped to make our product even better.

Next Actions:

Active License Subscription customers can get free upgrade using this link.

 

 

Global Search feature

Hello,

We recently added global search feature in PHP Grid Framework that allows to search your term in all searchable fields of grid. It will save time and quickly filter your data.

Since v2.5+, you can enable this feature by setting:

$g = new jqgrid();
...
$opt["globalsearch"] = true;
...
$g->set_options($opt);

Active license customers can request upgrade using this link.
To purchase license, you can visit this link.

Happy Coding …

TreeGrid – Hierarchical Data Display

Hello,

We’ve updated a demo that support displaying parent-child relational data in form of tree grid. It is done by simple configuration on PHP Grid Framework where you define the parent and child fields of same table. For example in following example, EmployeeId is ID field and ReportsTo is Parent Relation field that makes this tree grid. This framework already support variety of database connections e.g. SQL Server, Oracle, DB2, Postgres, Mysql etc so you can have this Tree-grid in all supported databases.

Database Table:

Tree Grid Sample:

Next Actions:

Licensed customers can request free upgrade using update link.
To purchase license, you can visit this link.

Laravel Datagrid Guide

Following is the guide to integrate PHP DataGrid with Laravel.

Step1: Folder placements in Laravel.

There are 2 main folders in PHP Grid Framework package archive. You need to:

Copy the contents of lib/inc folder —> Laravel/app/Classes/phpgrid
Copy the contents of lib/js folder —> Laravel/js/phpgrid

laravel_step1_1

The ‘app/Classes’ folder does not exist by default in laravel. You may create it for 3rd party class libraries.
Create another folder inside it with name ‘phpgrid’ and move all contents of ‘lib/inc’ in it. Final result will look like this:

laravel_step1_2

In similar way, copy the files from lib/js to laravel/public/js/phpgrid. Final result should look like following:

laravel_step1_3

Step2: Setting Controller code.

Here we included our library and rest code looks same as in our demos. Note the ” before class name while instantiating object. Finally we passed the output of render() function to view with a variable name ‘phpgrid_output’.

For demo purpose, we modified ‘laravel/app/Http/Controllers/WelcomeController.php’

Step2: Setting View code.

In view code, we included the JS/CSS files from the ‘js’ folder which we copied in step1.1
We also included a meta tag for ‘csrf-token‘, that is required by laravel for POST operations.

And using blade template variable output, we pushed the grid output in our desired place in html.
We also added a javascript code to pass CSRF-TOKEN in header request of ajax calls.


For demo purpose, we slightly modified ‘laravel/resources/views/welcome.blade.php’

Step3: Setting Routes

The Last step in this tutorial is to set the routes to our controller. We will use both GET and POST routes as our grid uses both methods.

Note: PHP Grid Framework does not utilize ORM model layer of Laravel. It uses it’s own backend libraries.

Result: Editable Datagrid for Laravel 5.5!

Download all files to kick-start Laravel 5.5 with PHP Grid Framework.

Note: Demo comes with non-commercial / evaluation version of php grid framework. You can buy commercial license from this link.