pixelpoems/silverstripe-grouped-tabs

Silverstripe module that allows grouped tabs for ModelAdmins.

Maintainers

Package info

github.com/pixelpoems/silverstripe-grouped-tabs

Language:Scheme

Type:silverstripe-vendormodule

pkg:composer/pixelpoems/silverstripe-grouped-tabs

Statistics

Installs: 9

Dependents: 0

Suggesters: 0

Stars: 0

Open Issues: 0

2.0.0 2026-04-17 15:03 UTC

This package is auto-updated.

Last update: 2026-04-17 15:08:20 UTC


README

stability-beta Silverstripe module that allows grouped tabs for ModelAdmins.

Requirements

  • Silverstripe CMS ^6.0

For CMS 5 use Tag ^1

Installation

composer require pixelpoems/silverstripe-grouped-tabs

Usage

GroupedModelAdmin

<?php
namespace App\Admins;

use Pixelpoems\GroupedTabs\Admins\GroupedModelAdmin;

class MyAdmin extends GroupedModelAdmin
{
    private static string $url_segment = 'myadmin';

    private static string $menu_title = 'MyAdmin';

    private static array $managed_models = [
        DataObject1::class,
        DataObject2::class,
        DataObject3::class,
        'project' => [
            'title' => 'Project',
            'dataClasses' => [
                ProjectDataObject1::class,
                ProjectDataObject2::class,
                ProjectDataObject3::class,
                ProjectDataObject4::class,
            ]
        ],
        DataObject4::class,
        DataObject5::class,
        DataObject6::class,
        DataObject7::class,
        'grouped' => [
            'title' => 'Grouped',
            'dataClasses' => [
                GroupedDataObject1::class,
                GroupedDataObject2::class,
            ]
        ],
    ];
}

In the translation ymls you can add the title of the grouped like this:

en:
  App\Admins\MyAdmin:
    project: 'Project'
    grouped: 'Grouped'

GroupedModelAdmin

    public function getCMSFields(): FieldList
    {
        $fields = parent::getCMSFields();

        $fields->addFieldToTab('Root', GroupedTab::create('Additional', 'Additional'));
        $fields->addFieldsToTab('Root.Additional.AdditonalTab1', [
            TextField::create('ABC', _t(self::class . '.ABC', 'ABC')),
        ]);
        $fields->addFieldsToTab('Root.Additional.AdditonalTab2', [
            TextField::create('ABC2', _t(self::class . '.ABC2', 'ABC2')),
            HTMLEditorField::create('Content2', _t(self::class . '.Content', 'Content'))
        ]);

        return $fields;
    }

Display

The Grouping looks like this in the CMS: grouped-modeladmin.png

Reporting Issues

Please create an issue for any bugs you've found, or features you're missing.