Salador |
|
||||
---|---|---|---|---|---|
Возникла ситуация добавить пункты меню из плагина. Вот так выглядит тег в шаблоне:
в плагине текст в меню добавляется вот так:
но проблема в том, что если я добавляю ещё один плагин и в нем хочу вставить пункт меню, то он заменяет другие, а не добавляет. Также мне нужно было чтобы на главной странице каждый плагин добавлял свой блок. Решил я это так - в файл system/cotemplate.php после public function assign добавил почти аналогичную функцию :
где просто добавил точки перед равно. Теперь данные в теги можно добавлять
Это можно было решить штатными средствами по другому? |
Macik |
|
||||
---|---|---|---|---|---|
Метод `assign` подразумевает присвоение заданному тегу определенного значения. И естественно при повторном вызове переопределяет его. Это штатное поведение шаблонизатора. Теперь о том, что можно сделать — Вариант 1. Расширить за счет доп. тегов (если число доп.плагинов конечно):
После чего в каждом плагине вызывать ф-ю присвоения для «своего тега»:
Вариант 2. В основном плагине, который генерирует меню, перед вызовом метода присвоения (`assign`) вставить вызов хука, например:
А остальные плагины (точнее ту их часть, которая генерит свое дополнение для меню) вызывать по указанному хуку, и в коде делать расширение переменной `$text_menu` :
https://github.com/macik
правильный хостинг — https://goo.gl/fjCa1F |