Добрый вечер,
Не подскажете, как определить атрибут (напр., id) самого верхнего родительского узла текущей страницы? Имеется в виду, той, которая инициирует вызов xsl шаблона.
Спасибо.
so I drift down... in my steep-sided un-reality...
Загвоздка в том, что дополнительное меню состоит не из приличных страниц, а липовых "внешних" ссылок на верхние страницы разных разделов. Входящих, конечно, в разные меню. Тем не менее, хотелось бы его подсвечивать соответственным образом при посещении одного из этих разделов... Пока выкрутилась, сделав три разных xsl шаблона, а не один универсальный, но это же криво
so I drift down... in my steep-sided un-reality...
Прочитала, понятно. Ниже я приведу xml-код (рабочего шаблона еще нет, простой вывод меню), но сначала попробую еще раз объяснить, в чем собственно сложность.
Вот сайт (для примера)
Там есть обыкновенное деревянное меню (если конечно не считать, что их два в двух языковых частях - это можно решить разными сайтами).
И кроме основного имеется дополнительное горизонтальное меню, куда выведены крупно 5 страниц - About us, Benefits, Donate, Events Calendar, Contact us.
Как правильно реализовать такую задачу с точки зрения HostCMS?
Я создаю кроме основного "дополнительное меню", где делаю 5 страниц, и присваиваю им внешние ссылки, ведущие на их близнецов основного меню.
И все работает хорошо, кроме одного - когда я захожу на страницу Benefits, мне надо подсветить не только пункт основного меню benefits, но и кнопку дополнительного меню benefits. А она на самом деле принадлежит совсем другому меню, имеет другой id и т. д. Это конечно решается, ну, хаком. Но ведь задача тривиальная и частая, и она наверное имеет какое-то правильное логичное решение, управляемое не только из xsl-шаблонов, но и контент-менеджером?
Про атрибуты самого верхнего родителя текущей страницы я спрашивала в той связи, что у меня существовало решение для другой системы, исполненное с помощью этих данных. С самим вопросом это не связано...
Нет, я думаю не надо ничего дублировать. Могу посоветовать Вам оставить только одно меню, и все узлы структуры отнести к этому меню(т.е. меню "дополнительное меню" не потребуется). Затем добавить дополнительное свойство для узлов структуры, например под названием "Горизонтальное меню". И узлам, которые необходимо показывать в горизонтальном верхнем меню, проставить значение этого доп. свойства как "1", а остальным узлам можно оставить все без изменений. Затем можно подготовить 2 XSL-шаблона для меню(в принципе, можно использовать только один), в один из которых потребуется добавить проверку значения доп. свойства "Горизонтальное меню" для каждого узла и в зависимости от результатов этой проверки показывать или нет данный узел структуры. Во втором XSL-шаблоне можно реализовать показ всей структуры.
Т.е. у Вас в макете(или шаблоне страницы) метод показа структуры сайта будет вызываться дважды(для горизонтального и вертикального меню), причем ID меню будет одним и тем же, а XSL-шаблоны - разные.