madmatt/silverstripe-nestedcheckboxsetfield

Adds a level of nesting to a CheckboxSetField using a has_many/has_one relationship

dev-master 2013-07-18 05:16 UTC

This package is auto-updated.

Last update: 2021-04-15 02:24:40 UTC


README

This adds an extra level to a CheckboxSetField, which provides some structure to a large dataset.

Example Usage

The below will produce a set of nested fields where each Tag (which is selectable) sits under a Tag Category (just a heading, not selectable).

class Page extends SiteTree { static $many_many = array( 'PageTags' => 'Tag' );

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

    $fields->insertBefore(
        NestedCheckboxSetField::create('PageTags', 'Page Tags')
            ->setRootClass('TagCategory')
            ->setRootTitle('Title')
            ->setChildRelation('Tags')
            ->setChildTitle('Title'),
        'Content'
    );
}

}

class Tag extends DataObject { static $db = array( 'Title' => 'Varchar(100)' );

static $has_one = array(
    'Category' => 'TagCategory'
);

}

class TagCategory extends DataObject { static $db = array( 'Title' => 'Varchar(100)' );

static $has_many = array(
    'Tags' => 'Tag'
);

}