PHPackages                             lekoala/ss-gridfield-utils - 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. lekoala/ss-gridfield-utils

ActiveSilverstripe-vendormodule[Utility &amp; Helpers](/categories/utility)

lekoala/ss-gridfield-utils
==========================

A collection of GridField components that you can use with any GridField, including Editable Rows and amy more

1.0.0(1y ago)1449↓50%MITPHPPHP ^7.4 || ^8

Since Nov 28Pushed 1y ago1 watchersCompare

[ Source](https://github.com/lekoala/ss-gridfield-utils)[ Packagist](https://packagist.org/packages/lekoala/ss-gridfield-utils)[ RSS](/packages/lekoala-ss-gridfield-utils/feed)WikiDiscussions master Synced 1mo ago

READMEChangelog (1)Dependencies (6)Versions (2)Used By (0)

GridField Utilities
===================

[](#gridfield-utilities)

This module includes a subset of [GridField Utilities](https://github.com/milkyway-multimedia/ss-gridfield-utils) for SilverStripe 4 and 5.

Includes the following (note they all live in the namespace LeKoala\\GridFieldUtils):

- [AddNewInlineExtended](docs/en/AddNewInlineExtended.md): A more complex version of GridFieldAddNewInlineButton, allowing you to set custom fields, rather than copying GridFieldEditableColumns (defaults to this behaviour)
- [EditableRow](docs/en/EditableRow.md): adds an expandable form to each row in the GridField, allowing you to edit records directly from the GridField.
- [HasOneSelector](docs/en/HasOneSelector.md): Allow you to select a has one relation from the current GridField
- [AddExistingPicker](docs/en/AddExistingPicker.md): Works exactly like the one in gridfieldextensions, except it allows you to add more before closing the window - allowing for a faster workflow (requires silverstripe-australia/gridfieldextensions)

### Caveats

[](#caveats)

- A deep nested EditableRow will be very slow, since it has many request handlers to access, but not much I can do about this behaviour...

Examples
--------

[](#examples)

### HasOneSelector

[](#hasoneselector)

```
$grid = new GridField('Tags', 'Tags', $this->Tags(), new GridFieldConfig);
$grid->getConfig()->addComponent($component = new HasOneSelector('MainTag', 'Select main tag'));
// Configure any public property...
$component->showResetButton = true;
```

### AddNewInlineExtended

[](#addnewinlineextended)

```
$grid->getConfig()->addComponent(GridFieldButtonRow::create('before'))
    ->addComponent(GridFieldToolbarHeader::create())
    ->addComponent(GridFieldTitleHeader::create())
    ->addComponent(GridFieldEditableColumns::create())
    ->addComponent(GridFieldDeleteAction::create())
    ->addComponent(AddNewInlineExtended::create())
```

### EditableRow

[](#editablerow)

```
$grid = new GridField('Tags', 'Tags', $this->Tags(), GridFieldConfig_RecordEditor::create());
$grid->getConfig()->addComponent($component = new EditableRow());
```

### AddExistingPicker

[](#addexistingpicker)

```
$grid = new GridField('Tags', 'Tags', $this->Tags(), GridFieldConfig_RelationEditor::create());
$grid->getConfig()->addComponent($component = new AddExistingPicker());
// instead of...
// $grid->getConfig()->addComponent($component = new GridFieldAddExistingSearchButton());
$fields->addFieldToTab('Root.Main', $grid);
```

Requirements
------------

[](#requirements)

- [silverstripe/framework](https://github.com/silverstripe/framework)
- [symbiote/silverstripe-gridfieldextensions](https://github.com/symbiote/silverstripe-gridfieldextensions)

Credits
-------

[](#credits)

- [milkyway-multimedia](https://github.com/milkyway-multimedia): Original code
- [ajshort](https://github.com/ajshort "ajshort on Github"): He did most of the coding of GridFieldExtensions, which I borrowed for the more complex versions in this module
- [silverstripe-australia](https://github.com/silverstripe-australia "silverstripe-australia on Github"): They now look after the GridFieldExtensions module, and have done some updates which I have probably borrowed

License
-------

[](#license)

- MIT

###  Health Score

28

—

LowBetter than 54% of packages

Maintenance38

Infrequent updates — may be unmaintained

Popularity18

Limited adoption so far

Community9

Small or concentrated contributor base

Maturity38

Early-stage or recently created project

 Bus Factor1

Top contributor holds 62.5% 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

536d ago

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/250762?v=4)[Thomas Portelange](/maintainers/lekoala)[@lekoala](https://github.com/lekoala)

---

Top Contributors

[![lekoala](https://avatars.githubusercontent.com/u/250762?v=4)](https://github.com/lekoala "lekoala (5 commits)")[![mellm0](https://avatars.githubusercontent.com/u/229937?v=4)](https://github.com/mellm0 "mellm0 (3 commits)")

---

Tags

silverstripeutilitiesgridfield

###  Code Quality

TestsPHPUnit

Code StylePHP\_CodeSniffer

### Embed Badge

![Health badge](/badges/lekoala-ss-gridfield-utils/health.svg)

```
[![Health](https://phpackages.com/badges/lekoala-ss-gridfield-utils/health.svg)](https://phpackages.com/packages/lekoala-ss-gridfield-utils)
```

###  Alternatives

[symbiote/silverstripe-gridfieldextensions

A collection of useful grid field components

971.8M235](/packages/symbiote-silverstripe-gridfieldextensions)[undefinedoffset/sortablegridfield

Adds drag and drop functionality to Silverstripe's GridField

941.2M50](/packages/undefinedoffset-sortablegridfield)[unclecheese/betterbuttons

Adds new form actions and buttons to GridField detail form for usability enhancements.

85544.9k19](/packages/unclecheese-betterbuttons)[milkyway-multimedia/ss-gridfield-utils

A collection of GridField components that you can use with any GridField, including Editable Rows and amy more

207.3k2](/packages/milkyway-multimedia-ss-gridfield-utils)[briceburg/silverstripe-pickerfield

GridField based management of has\_one , has\_many , and many\_many relationship selection

2541.2k1](/packages/briceburg-silverstripe-pickerfield)[webbuilders-group/silverstripe-frontendgridfield

Wraps gridfield adding support for using it on the front-end.

2029.8k1](/packages/webbuilders-group-silverstripe-frontendgridfield)

PHPackages © 2026

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