2014-06-25 50 views
1

我有一个NewsholderPage和NewsPage。 NewsPages是NewsholderPage的子页面。 我需要某个组的用户能够创建NewsPages,但不能编辑NewsholderPage。 如果我把下面的代码放到NewsholderPage ...银条禁止编辑页面,但允许创建子页面

public function canEdit($member = null){ 
    if(permission::check('SUPERUSER')){ 
     return true; 
    } 
    return false; 
} 

...然后没有管理员不能编辑NewsholderPage也得到了“禁止”消息,当他试图建立一个NewsPage作为NewsholderPage的孩子。 允许创建子页面,但不允许编辑父页面的最佳方式是什么?

回答

3

您需要覆盖NewsholderPage上的canAddChildren方法以返回默认值(仅为$this->canEdit())以外的值。要恢复默认行为,您可以使用类似以下内容:

public function canAddChildren($member = null) { 
    // Call SiteTree::canEdit rather than NewsholderPage::canEdit 
    return parent::canEdit($member); 
} 
相关问题