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

How to add right panel as help content in Silverstripe CMS admin

我们有一个项目需要 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") or/and ->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
  2. 内联的帮助元素
  $fields->addFieldToTab('Root.SomeTab', [
      //...
      new TextField('FirstName', $this->fieldLabel('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. 构建您自己的自定义边栏。

博客模块有一个用于“Post 选项”的自定义侧边栏。您可以复制他们所做的,而不是在那里放置额外的 FormFields,您可以使用 LiteralField 添加任何 HTML 在那里您想要显示您的帮助信息。

我手头没有代码示例,但我想如果您查看博客的源代码,就不难理解他们是如何构建侧边栏的: https://github.com/silverstripe/silverstripe-blog