如何在Silverstripe CMS管理员中添加右侧面板作为帮助内容

问题描述

我们有一个项目,某些用户需要CMS的帮助,以帮助指导他们完成各种复杂的过程。这将用于各种ModelAdmin屏幕。

理想情况下,我们需要屏幕帮助,并且想知道我们是否可以使用CMS /pages/部分中使用的正确的“预览”面板功能

+-----------+------------+--------------+
|   Left    |   Middle   |    Right     |
+-----------+------------+--------------+
| Side Menu | ModelAdmin | Help Content |
+-----------+------------+--------------+

为了使事情变得简单,我们希望帮助内容来自CMS SiteTree本身:https://example.com/help/

是否可以通过这种方式使用预览面板功能

谢谢。

解决方法

您所指的右侧面板可能是SilverStripeNavigator处理的分屏页面预览内容。几年前,我一直在玩这个游戏,但是发现它与CMS / SiteTree紧密结合在一起,可以用于自定义内容。

但是这里有一些您可以做什么的想法:

  1. 使用->setDescription("hello world")或/和->seRightTitle("hello world")向FormFields添加额外的信息,例如:
  $fields->addFieldToTab('Root.Main',[
      (new TextField('MyFieldName',$this->fieldLabel('MyFieldName')))
          ->setDescription('Some help text here')
  ]);
  1. 您可以通过在“标签”中分组并添加标题来改善管理员的可用性
  $fields->addFieldToTab('Root.SomeTab',[
      //...
      new HeaderField('MyHeader','Personal Details of this account'),new TextField('FirstName',$this->fieldLabel('FirstName')),//...
  ]);
  1. 添加与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>');
      //...
  ]);
  1. 构建自己的自定义侧边栏。

博客模块具有用于“发布选项”的自定义边栏。您可以复制他们所做的事情,而不必在其中放置多余的FormField,而可以使用LiteralField在其中添加要显示帮助信息的任何HTML。

enter image description here

我手头上没有代码示例,但是我可以想象,如果您看一下博客的源代码,那么弄清楚他们如何构建侧边栏将不难:{{ 3}}