madmatt/silverstripe-nestedcheckboxsetfield

通过使用 has_many/has_one 关系,为 CheckboxSetField 添加嵌套层级

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

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'
);

}