在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?