Новый пункт меню

Подскажите пожалуйста как добавить новый пункт меню

Посмотрел шаблон, а там хук внутри цикла перебирающего массив меню )) Значит, надо в этот массив добавить свой пункт перехватив постом мод нужного контроллера и добавить примерно такое:

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”

Ключ я свой написал. Единственный вариант на ум приходит приоритет у модуля изменить.

тоже вариант. ну, главное, цель обнаружена)) дальше проще

Александр, а как сделать этот пункт активным?

В каком смысле?

sidemenu

<?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];

1

Я так понял вот так устанавливается актив
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');
    }
}
2 лайка

Спасибо большое!!!