madmatt / silverstripe-nestedcheckboxsetfield
通过使用 has_many/has_one 关系,为 CheckboxSetField 添加嵌套层级
dev-master
2013-07-18 05:16 UTC
Requires
This package is auto-updated.
Last update: 2024-09-15 09:06:23 UTC
README
此扩展为 CheckboxSetField 添加额外层级,为大型数据集提供结构。
示例用法
以下代码将生成一组嵌套字段,每个可选择的标签(Tag)都位于一个标签类别(Tag Category,仅为标题,不可选择)之下。
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'
);
}