限制CMS用户创建3级子页面的最简单,最方便的方法是什么?
我已在class Page
public function canHaveChild() {
//Get SiteTree column value ParentID of this record
$parentID = DataObject::get("SiteTree", "WHERE ID = '$this->ID'")->ParentID;
//If parentID = 0, this is a root page, so it can have a childpage
if($parentID == 0) {
$this->allowed_children = array("Page", "BasicPage", "FormPage");
} else {
$this->allowed_children = false;
}
}
使用此功能,我仍然可以在树下创建子页面,因此它不会更改allowed_children
答案 0 :(得分:4)
您可以覆盖SilverStripe的allowedChildren
功能。
class Page extends SiteTree
{
public function allowedChildren()
{
if($this->Level(3))
return [];
return ['Page', 'BasicPage', 'FormPage'];
}
}
使用此功能,您无需设置$allowed_children
属性。