如何在制作模块时在 Silverstripe 中添加导航项?

How to add a navigation item in Silverstripe while making a module?

我正在尝试为 Silverstripe 构建一个 plugin/module,我正在尝试了解如何在 CMS 管理面板中添加菜单项。

这是我要添加新导航项并将其附加到视图的地方。

我浏览了 API 并找到了 SilverStripeNavigatorItem.html 这个页面,但我不确定如何使用它。

我正在使用 Silverstripe 官方文档提供的 silverstripe-module 模块框架。

如何在管理面板中添加此导航项并在管理面板中为其附加视图?

要创建一个完全自定义的管理屏幕,我们可以创建一个扩展 LeftAndMain.

的 class

app/src/Admin/TestAdmin.php

<?php

use SilverStripe\Admin\LeftAndMain;

class TestAdmin extends LeftAndMain
{
    private static $url_segment = 'test';
    private static $menu_title = 'Test';
    private static $menu_priority = 100;
    private static $menu_icon = 'public/images/treeicons/test.png';

}

$menu_priority 允许我们设置菜单项相对于其他菜单项的顺序。这是可选的。

$menu_icon 允许我们为菜单项设置自定义图标。这是可选的。

然后我们使用以下内容创建一个 TestAdmin_EditForm.ss 模板:

app/templates/Includes/TestAdmin_EditForm.ss

<div class="toolbar toolbar--north cms-content-header vertical-align-items">
    <div class="cms-content-header-info flexbox-area-grow vertical-align-items">
        <% include SilverStripe\Admin\BackLink_Button %>
        <% with $Controller %>
            <% include SilverStripe\Admin\CMSBreadcrumbs %>
        <% end_with %>
    </div>
</div>

<div class="panel panel--padded panel--scrollable flexbox-area-grow cms-panel-padded">
    <h1>Hello</h1>
</div>