PHPackages                             rusproj/free-jqgrid-configurator - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. rusproj/free-jqgrid-configurator

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

rusproj/free-jqgrid-configurator
================================

Backend helper to apply free jqGrid capabilities on your site.

v1.0.0(6y ago)01.2kMITPHPPHP &gt;=7.1

Since Oct 8Pushed 5y ago1 watchersCompare

[ Source](https://github.com/SergeySSmirnov/free-jqgrid-configurator)[ Packagist](https://packagist.org/packages/rusproj/free-jqgrid-configurator)[ RSS](/packages/rusproj-free-jqgrid-configurator/feed)WikiDiscussions master Synced 2d ago

READMEChangelogDependencies (1)Versions (3)Used By (0)

Free JqGrid Configurator v. 2.0.1
=================================

[](#free-jqgrid-configurator-v-201)

Is a simple configurator utility that allows creating a FreeJqGrid config in a simple way.
All capabilities are commented on.

Note: not all available capabilities of the Free JqGrid are presented here.

Example to define config at the PHP code
----------------------------------------

[](#example-to-define-config-at-the-php-code)

```
// If needed you can create a Navigator config to define config of the standard or custom buttons

$_navButtons = NavigatorButtons::createInstance();
$_navButtons
    ->setEnableAddButton(false)->setAddConfig($_navButtons->getAddConfig()->setAddIcon('fa fa-plus'))
    ->setEnableEditButton(false)->setEditConfig($_navButtons->getEditConfig()->setEditIcon('fa fa-pencil'))
    ->setEnableDelButton(true)->setDelConfig($_navButtons->getDelConfig()->setDelIcon('fa fa-trash'))
    ->setRefreshConfig($_navButtons->getRefreshConfig()->setRefreshIcon('fa fa-refresh'))
    ->setEnableViewButton(false)->setViewConfig($_navButtons->getViewConfig()->setViewIcon('fa fa-eye'))
    ->setSearchConfig($_navButtons
        ->getSearchConfig()
        ->setSearchIcon('fa fa-search')
        ->setMultipleSearch(true)
        ->setModal(true)
        ->setWidth(700)
        ->setLeft(500)
        ->setSearchOnEnter(true)
        ->setTemplatesNames(array_keys($this->filterTemplates))
        ->setTemplatesFilters(array_values($this->filterTemplates))
    )
    ->addCustomButton(SeparatorConfig::createInstance())
    ->addCustomButton(CustomButtonConfig::createInstance('showColumnChooser', 'Show column chooser', 'fa fa-columns'));

// And of course you must define a main FreeGqGrid config

$_jqGridConfig = JqGrid::createInstance()
    ->setGuiStyle('bootstrap')
    ->setSortName('id')
    ->setSortOrder('desc')
    ->setSortable(true)
    ->setShowHeaderTitles(true)
    ->setRowNum(20)
    ->setUrl('http://rusproj.space/data')
    ->setAfterInsertRowEventHandler('colorizeStatus')
    ->setOnDblClickRowEventHandler('gotoField')
    ->setLoadErrorEventHandler('notifyUserAboutAjaxError')
    ->setNavigatorButtons($_navButtons) // NavButtons config
    ->setPager('#jqGridPager')
    ->setColModels([
            ColumnDefinition::columnText('id', '#', 120, 'right')
                ->setFormatter('showlink')
                ->setFormatOptions(ColumnDefinition::formatOptionsShowLink('backend.php', '', '&a=view'))
                ->setClasses('info-link'),
            ColumnDefinition::columnDate('addedDate', 'Date/Time', 120, 'right', 'Y-m-d H:i:s', 'd.m.Y')
                ->setIsSearchable(false),
            ColumnDefinition::columnText('client', 'Client', 250, 'left'),
            ColumnDefinition::columnText('clientCity', 'City', 200, 'left'),
            ColumnDefinition::columnCheckbox('largeOrder', 'Is large order', 50, 'center', [0 => 'Small', 1 => 'Large']),
            ColumnDefinition::columnSelect('status', 'Status', OrderStatusEnum::getShortNamesList(), 150)
                ->setClasses('item-status'),
            ColumnDefinition::columnCheckbox('invoice', 'Invoice')
                ->setIsSearchable(false)
                ->setIsSortable(false)
    ]);

// And now to get config you can call only one method

$_config = $_jqGridConfig->getConfig();

// What next? You can do with this config anything. For example, serialize into JSON and send it or print it into the output

echo json_encode($_config);

// Or you an do this

echo ...
echo /* Attach needed JS and CSS somewhere */ '';
echo ...
echo '';
echo '$(document).ready(function () { initJqGrid(' . json_encode($_config) . '); }); ';
echo ...
```

And init JS code can be like this or better :)
----------------------------------------------

[](#and-init-js-code-can-be-like-this-or-better-)

```
function initJqGrid(cfg) {
    let initJqGridEventHandlers = function(cfg) { // Converter strings into functions
        Object.keys(cfg).forEach(function(key) {
            if (key.startsWith('__eventHandler__')) {
                if (window.hasOwnProperty(cfg[key])) {
                    cfg[key.substr(16)] = window[cfg[key]];
                }
                delete cfg[key];
            } else if (typeof cfg[key] === 'object') {
                initJqGridEventHandlers(cfg[key]);
            }
        });
    };

    initJqGridEventHandlers(cfg);

    let navbarDefined = typeof cfg['__navigatorButtons'] !== 'undefined';
    let navbarConfig = { };

    if (navbarDefined) {
        navbarConfig = cfg['__navigatorButtons'];
        delete cfg['__navigatorButtons'];
    }

    let $jqGrid = $('#jqGridTable');
    $jqGrid.jqGrid(cfg);

    if (navbarDefined) {
        let getBtnConfig = function(paramName) {
            let btnCfg = typeof navbarConfig[paramName] === 'undefined' ? { } : navbarConfig[paramName];
            delete navbarConfig[paramName];
            return btnCfg;
        };

        let customButtons = getBtnConfig('__customButtons');

        $jqGrid.navGrid(cfg.pager, navbarConfig, getBtnConfig('__editButtonConfig'), getBtnConfig('__addButtonConfig'), getBtnConfig('__delButtonConfig'), getBtnConfig('__searchButtonConfig'), getBtnConfig('__viewButtonConfig')); // Initialize navGrid

        if (customButtons.length) { // Initialize custom buttons
            customButtons.forEach(function(btnParams) {
                if (typeof btnParams['sepclass']  !== 'undefined') {
                    $jqGrid.navSeparatorAdd(cfg.pager, btnParams);
                } else {
                    $jqGrid.navButtonAdd(cfg.pager, btnParams);
                }
            });
        }
    }
};
```

Now that's all.

###  Health Score

26

—

LowBetter than 43% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity14

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity54

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Unknown

Total

1

Last Release

2408d ago

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/13985997?v=4)[Sergei Smirnov](/maintainers/SergeiSmirnov)[@SergeiSmirnov](https://github.com/SergeiSmirnov)

---

Top Contributors

[![SergeySSmirnov](https://avatars.githubusercontent.com/u/2841700?v=4)](https://github.com/SergeySSmirnov "SergeySSmirnov (49 commits)")

---

Tags

kohanakohana modulekohana module JQuery Grid

### Embed Badge

![Health badge](/badges/rusproj-free-jqgrid-configurator/health.svg)

```
[![Health](https://phpackages.com/badges/rusproj-free-jqgrid-configurator/health.svg)](https://phpackages.com/packages/rusproj-free-jqgrid-configurator)
```

###  Alternatives

[bmidget/kohana-formo

Formo is a form module for Kohana 3 that lets you work with forms as objects

1328.4k](/packages/bmidget-kohana-formo)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
