Хорошо, ребята, в конце концов, у меня все получилось. Это то, что я сделал ниже
Скажем, например, у меня есть 2 плагина, которые называются Партнеры и Свойства.
В плагине Partners я закодировал что-то подобное в моем файле Plugin.php.
плагины \ technobrave \ partners \ Plugin.php
<?php namespace Technobrave\Partners;
use System\Classes\PluginBase;
use Backend;
use Event;
class Plugin extends PluginBase
{
public function registerNavigation()
{
return [
'modules' => [
'label' => 'Modules',
'url' => Backend::url('technobrave/properties/properties'),
'icon' => 'icon-bars',
'permissions' => ['Technobrave.Property.*'],
'sideMenu' => [
'properties' => [
'label' => 'Properties',
'icon' => 'icon-home',
'url' => Backend::url('technobrave/properties/properties'),
'permissions' => ['Technobrave.Property.*']
],
'partner' => [
'label' => 'Partners',
'icon' => 'icon-thumbs-up',
'url' => Backend::url('technobrave/partners/partners'),
'permissions' => ['Technobrave.Partner.*']
],
]
]
];
}
Здесь, как вы можете видеть выше, моя ссылка меню заголовка будет перенаправлена на плагин Свойства в соответствии с моими требованиями, а для меню левой боковой панели моя первая ссылка также будет перенаправлена на Свойства strong > плагин, и следующая ссылка в подменю будет перенаправлена на плагин Партнеры.
Затем я перешел к контроллеру Partners и поместил код примерно так, как показано ниже.
плагины \ technobrave \ partners \ controllers \ Partners.php
<?php namespace Technobrave\Partners\Controllers;
use Backend\Classes\Controller;
use BackendMenu;
class Partners extends Controller
{
public function __construct()
{
parent::__construct();
BackendMenu::setContext('Technobrave.Partners', 'modules', 'partner');
}
}
Здесь, как вы можете видеть, я только что выполнил меню в подключаемом модуле партнеров, чтобы иметь возможность отображать его, когда я нахожусь в списке партнеров, при операции CRUD или где-то еще.
То же самое я сделал для плагина Свойства, чтобы иметь возможность отображать меню в плагине Свойства. Так выглядит мой код.
плагины \ technobrave \ properties \ controllers \ Properties.php
<?php namespace Technobrave\Properties\Controllers;
use Backend\Classes\Controller;
use BackendMenu;
class Properties extends Controller
{
public function __construct() {
parent::__construct();
BackendMenu::setContext('Technobrave.Partners', 'modules', 'properties');
}
}
Здесь в этом коде нужно отметить одну вещь BackendMenu::setContext('Technobrave.Partners', 'modules', 'properties');
Последний аргумент отличается от того, что мы добавили в плагин Partners. BackendMenu::setContext('Technobrave.Partners', 'modules', 'properties');
Используется для установки по умолчанию выбранного меню из списка на левой боковой панели.
Надеюсь это поможет.
person
Mittul At TechnoBrave
schedule
08.08.2017