在Silverstripe中删除“复制此页面和子页面”的功能

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

在这里输入图像描述

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

这怎么能实现?


在SilverStripe 3.4中查看cms/javascript/CMSMain.Tree.js中的代码看起来并不像现在有办法切断它。

我们的一个选择是向CMS添加一些CSS以隐藏每个人的菜单项:

mysite的/ CSS / cms.css

#vakata-contextmenu a[rel="duplicate"] + ul > li:last-child {
    display: none;
}

为了启用cms.css文件,我们config.yml添加到我们的config.yml

mysite的/ _config / config.yml

LeftAndMain:
  extra_requirements_css:
    - 'mysite/css/cms.css'

将以下代码添加到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();
}
链接地址: http://www.djcxy.com/p/36045.html

上一篇: Remove 'Duplicate this page and subpages' functionality in Silverstripe

下一篇: Code Splitting / Preloading Content while user is browsing?