问题描述
我们有一个项目,某些用户需要CMS的帮助,以帮助指导他们完成各种复杂的过程。这将用于各种ModelAdmin
屏幕。
理想情况下,我们需要屏幕帮助,并且想知道我们是否可以使用CMS /pages/
部分中使用的正确的“预览”面板功能。
+-----------+------------+--------------+
| Left | Middle | Right |
+-----------+------------+--------------+
| Side Menu | ModelAdmin | Help Content |
+-----------+------------+--------------+
为了使事情变得简单,我们希望帮助内容来自CMS SiteTree
本身:https://example.com/help/
是否可以通过这种方式使用预览面板功能?
谢谢。
解决方法
您所指的右侧面板可能是SilverStripeNavigator
处理的分屏页面预览内容。几年前,我一直在玩这个游戏,但是发现它与CMS / SiteTree紧密结合在一起,可以用于自定义内容。
但是这里有一些您可以做什么的想法:
- 使用
->setDescription("hello world")
或/和->seRightTitle("hello world")
向FormFields添加额外的信息,例如:
$fields->addFieldToTab('Root.Main',[
(new TextField('MyFieldName',$this->fieldLabel('MyFieldName')))
->setDescription('Some help text here')
]);
- 您可以通过在“标签”中分组并添加标题来改善管理员的可用性
$fields->addFieldToTab('Root.SomeTab',[
//...
new HeaderField('MyHeader','Personal Details of this account'),new TextField('FirstName',$this->fieldLabel('FirstName')),//...
]);
- 添加与
LiteralField
内联的帮助元素
$fields->addFieldToTab('Root.SomeTab',[
//...
new TextField('FirstName',new LiteralField('MyLiteralField','<p class="message info">A help description here with any HTML you want. Styled what ever way you want</p>');
//...
]);
- 构建自己的自定义侧边栏。
博客模块具有用于“发布选项”的自定义边栏。您可以复制他们所做的事情,而不必在其中放置多余的FormField,而可以使用LiteralField
在其中添加要显示帮助信息的任何HTML。
我手头上没有代码示例,但是我可以想象,如果您看一下博客的源代码,那么弄清楚他们如何构建侧边栏将不难:{{ 3}}