Forums / National / Russian / Тех. поддержка / Добавление данных в теги шаблона.

Macik
#42914 2017-06-21 19:13

Метод `assign` подразумевает присвоение заданному тегу определенного значения. И естественно при повторном вызове переопределяет его. Это штатное поведение шаблонизатора. 
Если у вас есть плагин (строку из которого вы привели `$t->assign('MENU_GENERAL',$text_menu);`), то по логике он, и только он определяет, что должно быть в меню.

Теперь о том, что можно сделать —

Вариант 1. Расширить за счет доп. тегов (если число доп.плагинов конечно): 

<ul class="nav">    
{MENU_GENERAL}  
{MENU_ADDITION_PLUG1}  
{MENU_ADDITION_PLUG2}  
...
</ul>

После чего в каждом плагине вызывать ф-ю присвоения для «своего тега»:
 

$t->assign('MENU_ADDITION_PLUG1', $some_menu_items);

 

Вариант 2. В основном плагине, который генерирует меню, перед вызовом метода присвоения (`assign`) вставить вызов хука, например:

/* === Hook === */
foreach (cot_getextplugins('menu.assign.first') as $pl)
{
	include $pl;
}
/* ===== */

$t->assign('MENU_GENERAL',$text_menu);

А остальные плагины (точнее ту их часть, которая генерит свое дополнение для меню) вызывать по указанному хуку, и в коде делать расширение переменной `$text_menu` : 

$text_menu .= '<тут код дополнительных пунктов меню>';
 
https://github.com/macik
правильный хостинг — https://goo.gl/fjCa1F