madmatt / silverstripe-nestedcheckboxsetfield
Adds a level of nesting to a CheckboxSetField using a has_many/has_one relationship
Installs: 526
Dependents: 0
Suggesters: 0
Security: 0
Stars: 1
Watchers: 4
Forks: 3
Open Issues: 7
Type:silverstripe-module
Requires
This package is auto-updated.
Last update: 2024-11-15 09:26:01 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'
);
}