我有一个NewsholderPage和NewsPage。 NewsPages是NewsholderPage的子页面。 我需要某个组的用户能够创建NewsPages,但不能编辑NewsholderPage。 如果我将以下代码放入NewsholderPage ...
public function canEdit($member = null){
if(permission::check('SUPERUSER')){
return true;
}
return false;
}
...然后一个非管理员无法编辑NewsholderPage,但也会得到一个禁止"禁止"消息,当他试图创建一个NewsPage作为NewsholderPage的子。 允许创建子页面的最佳方法是什么,而不允许编辑父页面?
答案 0 :(得分:3)
您想要覆盖NewsholderPage上的canAddChildren
方法,以返回默认值以外的其他内容(只是$this->canEdit()
)。要恢复默认行为,您可以使用以下内容:
public function canAddChildren($member = null) {
// Call SiteTree::canEdit rather than NewsholderPage::canEdit
return parent::canEdit($member);
}