Подскажите пожалуйста как добавить новый пункт меню
Посмотрел шаблон, а там хук внутри цикла перебирающего массив меню )) Значит, надо в этот массив добавить свой пункт перехватив постом мод нужного контроллера и добавить примерно такое:
Registry::set('navigation.dynamic.sections', array (
'A' => array (
'title' => 'название_пункта_меню',
'href' => 'products.manage?status=A',
),
)
Не тестировал!
если версия карта мультик, можно подглядеть тут:
app/addons/vendor_data_premoderation/controllers/backend/products.post.php
Спасибо! Добавил. А подскажите еще, мой пункт идет первым, как сделать чтобы он был последним?
Хм… тут надо экспериментировать )) попробуйте ключ в массиве задать не “A”, а “XXX”
Ключ я свой написал. Единственный вариант на ум приходит приоритет у модуля изменить.
тоже вариант. ну, главное, цель обнаружена)) дальше проще
Александр, а как сделать этот пункт активным?
В каком смысле?
<?php
use Tygh\Registry;
defined('BOOTSTRAP') or die('Access denied');
if ($mode == 'manage') {
$dynamic_sections = Registry::ifGet('navigation.dynamic.sections', []);
$dynamic_sections['products.manage.A'] = [
'title' => 'bugaga',
'href' => 'products.manage?status=Z',
];
Registry::set('navigation.dynamic.sections', $dynamic_sections);
}
return [CONTROLLER_STATUS_OK];
Я так понял вот так устанавливается актив
Registry::set(‘navigation.dynamic.active_section’, $active_section);
Я посмотрел есть в модуле параметр статус,
Registry::set(‘navigation.dynamic.active_section’, ‘products.manage.’ . $status);
Что писать в $active_section, если я не знаю какие параметры в get могут быть?
а какой линк у нового пункта меню?
products.manage?joint_purchases=1
но дело в том, что другой модуль проверяет параметры и если существует joint_purchases, он добавляет другие get параметры. Всегда по разному. (в зависимости от информации в сессии.)
Тогда надо с чего-то такого начинать:
if ($mode == 'manage') {
$dynamic_sections = Registry::ifGet('navigation.dynamic.sections', []);
$dynamic_sections['products.manage.my_item'] = [
'title' => 'Мой хитрый список',
'href' => 'products.manage?joint_purchases=1',
];
Registry::set('navigation.dynamic.sections', $dynamic_sections);
$joint_purchases = $_REQUEST['joint_purchases'] ?? false;
if ($joint_purchases) {
Registry::set('navigation.dynamic.active_section', 'products.manage.my_item');
}
}
Спасибо большое!!!