删除Silverstripe中的"复制此页面和子页面"功能

jam*_*ckp 7 javascript php silverstripe

在Silverstripe中,如果右键单击Sitetree中的页面,则可以复制单个页面或页面及其所有子项.

在此输入图像描述

我们发现用户偶尔会复制包含大量子项的网页,并希望通过删除"此页面和子页面"选项或仅将其限制为管理员用户来阻止此操作.

怎么能实现这一目标?

jam*_*ckp 0

将以下代码添加到 page.php 可防止非管理员用户复制页面和子页面。菜单项仍然可见,这不是最理想的,但作为快速解决方案已经足够好了。

public function duplicateWithChildren() {
    if(!Permission::check('ADMIN')) {
        throw new ValidationException("You must be logged in as an Admin to duplicate a page and subpages");
    }
    return parent::duplicateWithChildren();
}
Run Code Online (Sandbox Code Playgroud)