Спасибо за ответ! Идея с setOption/getOption — по-моему то, что надо. Сейчас попробую. Я уже хотел написать функцию расширения со статической переменной, но я не знаю, как долго сохраняется такая функция в памяти, т.к. если она удаляется сразу после отработки, то статическая переменная теряет смысл.
Видимо, я слишком туманно обрисовал задачу: В верхнем меню вынесены разделы, и при переходе по какому-то из них слева появляется меню раздела, у каждого свое, причем оно может быть 2-х уровневым.
Я сделал эти меню дочерними к элементам верхнего меню, а левое генерируется примерно как
{processor action=«getdata» params=«parent=`{field name=id}`»}
Все бы ничего, но при переходе по этому меню текущий документ меняется и меню слева исчезает, хотя посетитель по-прежнему остается в том же разделе.
И я решил просто создать в шаблоне переменную, в которую при формировании верхнего меню (во вложенном файле row.tpl) будет прописываться id документа верхнего меню с классом active.
Сейчас я просто перенес весь код в основной шаблон (все вертится в одном файле), но не нравится мне это решение, модульное построение как-то больше доверия внушает.