在Silverstripe中,如果右键单击Sitetree中的某个页面,您就可以复制单个页面或页面及其所有子项。
我们发现,用户偶尔会复制包含大量儿童的网页,并希望通过删除“此页面和子页面”来防止这种情况发生。选项或仅限制为管理员用户。
如何实现这一目标?
答案 0 :(得分:3)
查看SilverStripe 3.4中的code in 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
<强> mysite的/ _config / config.yml 强>
LeftAndMain:
extra_requirements_css:
- 'mysite/css/cms.css'
答案 1 :(得分: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();
}