OctoberCMS改变后端菜单组织

时间:2017-04-12 07:29:49

标签: menu backend octobercms

我想更改OctoberCMS后端菜单组织。 例: 我想从Rainlab Plugin Static Pages - Menus的侧边栏移动到OctoberCMS CMS SideBar,或者可以将Rainlab Plugin Static Pages - Menus添加到主菜单。

2 个答案:

答案 0 :(得分:1)

您可以使用registerNavigation函数在plugin.php文件中执行此操作。例如,此代码定义顶部菜单和侧边栏菜单:

return [
        'title' => [
            'label' => 'title',
            'url' => Backend::url('...'),
            'icon' => 'icon-cube',
            'permissions' => ['access.*'],
            'order' => 501,

            'sideMenu' => [
                'title' => [
                    'label' => '....',
                    'url' => Backend::url('....'),
                    'icon' => 'icon-slack',
                    'permissions' => ['access'],
                    'order' => 500,
                ],

同样在您的控制器中,您必须定义:

BackendMenu::setContext('Author.Plugin Name', 'plugin', 'model');

答案 1 :(得分:0)

我知道这可能是非常明显的,但我仍然会说它只是为了确定。如果您正在考虑更改您没有创作的插件提供的后端菜单项的外观或位置,请不要自行对这些文件进行任何更改。每次更新该插件时,您都会丢失所有此类自定义更改。

更好的想法是创建自己的插件,使用第三方插件作为依赖项,然后对此新插件进行必要的更改。

示例案例:您希望更改RainLab.User插件后端菜单项的显示。

创建一个新插件并根据需要命名。例如:Acme.UserExtension。 现在在这个新插件的plugin.php文件中,您可以添加对RainLab.User插件的依赖,然后隐藏它的菜单项,如下所示:

public $require = ['RainLab.User'];

public function boot()
{
    /** Add a side-menu item */
    Event::listen('backend.menu.extendItems', function($manager) {
        $manager->addSideMenuItem('RainLab.User', 'user', [
            'payments' => [
                'label' => '...'
            ]
        ]);
    });

    /** Add a custom main-menu item */
    Event::listen('backend.menu.extendItems', function($manager) {
        $manager->addMainMenuItem('Acme.UserExtension', 'user');
    });

    /** Remove the original main-menu item */
    Event::listen('backend.menu.extendItems', function($manager) {
        $manager->removeMainMenuItem('RainLab.User', 'user');
    });

}

如您所见,您可以完全删除您不拥有的插件的菜单项。您可以像上面所示扩展它,只需使用registerNavigation()方法来执行此扩展插件所需的操作。您可能必须从原始父插件复制一些您想要保留的菜单项,但现在您可以添加自己的一些菜单项或删除您不需要的项。

有关如何执行此操作的详细信息,请访问:> http://octobercms.com/docs/plugin/extending#extending-backend-menu

希望这不是太复杂并且帮助你。