Closed Xmk closed 7 years ago
вот скрин (меню правда другое, но суть та же) https://yadi.sk/i/oi4CASMp3FJEcr
пока временно решил так:
в компоненте nav
переписал эту строку вот так:
{$items = ( $hookItems ) ? array_merge($items, $hookItems) : $items}
в хуках все:
return array_merge($aParams['items'], $aResult);
заменил на
return $aResult;
круто! правда хочется без лишних движений - то бишь мержей в функциях. просто отдал массив элементов и не паришься.
Можно делать и без передачи входного по ссылке, но тогда нельзя будет изменить меню, можно будет только добавить новый элемент в конец/начало
При добавлении новых элементов единожды дублируется исходный элемент меню (у меня он один, так что может и всё меню). сейчас проверю на чистой лс, отпишусь
но тогда нельзя будет изменить меню
По хорошему бы менеджер завести менюшек, и управлять ими в админке.
При добавлении новых элементов единожды дублируется исходный элемент меню (у меня он один, так что может и всё меню).
отбой, это я свой костыльный мерж в nav убрать забыл
а как ты смотришь на добавление обработчика хуков по регулярке?
например:
$this->AddHookPreg('/^template_nav_(.+)$/i', 'NavPreg');
Так я смогу перехватывать все менюшки, что есть на сайте и выводить в визуальном виде для редактирования + соответственно подменять их. Без регулярки не так интересно - можно сделать редактирование только заранее прописанных мной менюшек.
можешь запилить пул-реквест
Столкнулся с таким багом
Есть хук
{hook run="nav_{$hook}" assign='hookItems' params=$hookParams items=$items array=true}
Добавляем новые элементы так:
array_merge($aParams['items'], $aResult);
как в плагине page напримерНа примере главного меню. Есть меню: Блоги, Пользователи
добавляет элемент плагин_#1 - Страницы На выходе получается Блоги, Пользователи, Страницы
добавляет элемент плагин_#2 - Рисунки На выходе получается Блоги, Пользователи, Страницы, Блоги, Пользователи, Рисунки
добавляет элемент плагин_#3 - Звуки На выходе получается: Блоги, Пользователи, Страницы, Блоги, Пользователи, Рисунки, Блоги, Пользователи, Звуки
каждый плагин у нас возвращает мерж исходного меню + свои пункты. А потом smarty_function_hook мержит их вместе