PHPackages                             i-lateral/silverstripe-fancy-form-scaffolder - 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. [Admin Panels](/categories/admin)
4. /
5. i-lateral/silverstripe-fancy-form-scaffolder

ActiveSilverstripe-vendormodule[Admin Panels](/categories/admin)

i-lateral/silverstripe-fancy-form-scaffolder
============================================

Allows you to defined CMS form structure via config.yml

1.0.3(4y ago)0624BSD-3-ClausePHP

Since May 21Pushed 4y ago3 watchersCompare

[ Source](https://github.com/i-lateral/silverstripe-fancy-form-scaffolder)[ Packagist](https://packagist.org/packages/i-lateral/silverstripe-fancy-form-scaffolder)[ Docs](https://github.com/i-lateral/silverstripe-fancy-form-scaffolder)[ RSS](/packages/i-lateral-silverstripe-fancy-form-scaffolder/feed)WikiDiscussions 1 Synced 1mo ago

READMEChangelogDependencies (2)Versions (5)Used By (0)

SilverStripe Fancy Form Scaffolder
==================================

[](#silverstripe-fancy-form-scaffolder)

The standard CMS Form Scaffolder does a good job of automatically creating forms to edit records in the SilverStripe admin, but if you want to create complex form layouts (adding fields to field groups, composite fields, custom tabs, etc) then you will have to spend a lot of time editing `getCMSFields`.

This module allows scaffolding of complex form layouts in the SilverStripe CMS via YML config. You can defined tabs, field types, field groupings and assotiations via some arrays in configuration.

Installing
----------

[](#installing)

You can install via composer:

```
composer require i-lateral/silverstripe-fancy-form-scaffolder

```

Usage
-----

[](#usage)

Once installed, simply add a `cms_fields` config variable to your `DataObject` and `FormScaffolder` will build all CMS forms (loaded using Form Scaffolding) for that object using the FormScaffolder.

### Example Config

[](#example-config)

```
class Product extends DataObject
{
    private static $db = [
        'Name' => 'Varchar',
        'StockID' => 'Varchar',
        'Description' => 'HTMLText',
        'Price' => 'Currency',
        'ItemsPerCarton' => 'Int'
    ];

    private static $has_one = [
        'Supplier' => Factory::class
    ];

    private static $many_many = [
        'Categories' => Category::class
    ];

    private static $cms_fields = [
        'Root.Main' => [
            'fields' => [
                'ProductDetails' => 'h2',
                'Title/StockID' => [
                    'type' => \SilverStripe\Forms\FieldGroup::class,
                    'fields' => [
                        'Title',
                        'StockID'
                    ]
                ],
                'Description',
                'Price/Cartons' => [
                    'type' => 'SilverStripe\Forms\CompositeField',
                    'fields' => [
                        'BasePrice',
                        'ItemsPerCarton',
                        'SupplierID'
                    ]
                ]
            ]
        ],
        'Root.Components' => [
            'fields' => [
                'Additions'
            ]
        ]
    ];
}

```

Calling field methods on construction
-------------------------------------

[](#calling-field-methods-on-construction)

You can also call field methods when the scaffolder constructs/retrieves the field.

This can be usefull for performing tasks, such as changing a field title or defining a number of columns on a CompositeField. You can do this using the following example:

```
'Title/StockID' => [
    'type' => \SilverStripe\Forms\CompositeField::class,
    'fields' => [
        'Title',
        'StockID'
    ],
    'methods' => [
        'setTitle' => '',
        'setColumnCount' => 2
    ]
]

```

###  Health Score

28

—

LowBetter than 54% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity13

Limited adoption so far

Community8

Small or concentrated contributor base

Maturity59

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

Every ~96 days

Total

5

Last Release

1796d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/c7d4998767cb41bf0048a65158559384fbab33751b26c996d6367019c68c4f8b?d=identicon)[DFT](/maintainers/DFT)

---

Top Contributors

[![mlewis-everley](https://avatars.githubusercontent.com/u/687143?v=4)](https://github.com/mlewis-everley "mlewis-everley (8 commits)")

---

Tags

scaffoldsilverstripeadminForms

### Embed Badge

![Health badge](/badges/i-lateral-silverstripe-fancy-form-scaffolder/health.svg)

```
[![Health](https://phpackages.com/badges/i-lateral-silverstripe-fancy-form-scaffolder/health.svg)](https://phpackages.com/packages/i-lateral-silverstripe-fancy-form-scaffolder)
```

###  Alternatives

[silverstripe/admin

SilverStripe admin interface

262.6M325](/packages/silverstripe-admin)[mediabeast/flat-admin

Custom CSS theme for SilverStripe 3 Admin Interface

304.9k](/packages/mediabeast-flat-admin)[praxisnetau/silverstripe-moderno-admin

A SilverStripe module to give the CMS a more modern, flat appearance.

224.4k](/packages/praxisnetau-silverstripe-moderno-admin)

PHPackages © 2026

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