2017-04-12 52 views
0

我想更改OctoberCMS後端菜單組織。 例如: 我想從Rainlab插件靜態頁面 - 菜單的側邊欄移動到OctoberCMS CMS SideBar,或者可以將Rainlab插件靜態頁面 - 菜單添加到主菜單。OctoberCMS更改後端菜單組織

回答

2

你可以使用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'); 
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

但願這不是太令人費解,並幫助你。