Доброго времени суток
Можете посоветовать, как изменить запрос для вызова меню?
вот у меня страница
http://otto.aveas.ru/clinic/scientific-advisory-branch/polyclinic/ - около заголовка дублируется подразделы "Научно-консультативное отделение" и заголовок самого раздела (так хотят)
Я вызываю эти подразделы меню вот таким запросом
<xsl:template match="result" mode="menu-title">
<div class="menu_title">
<xsl:apply-templates select="document(concat('udata://content/menu/notemplate/0/', /result/parents/page[position() = 2]/@id))" mode="menu-items" />
</div>
</xsl:template>
Заголовок таким:
<xsl:variable name="h1_id" select="document(concat('upage://', page/@parentId, .//property/value/page/@id))" />
<h1>
<xsl:value-of select="$h1_id//property[@name = 'h1']/value" />
</h1>
Но вот на этой странице (и подобных разделов у которых нет подразделов)
http://otto.aveas.ru/about/official-info/ - так же около заголовка почему-то вызываются все пункты главного меню. И на таких страницах возникла сложность с заголовком, т.к. получается должен быть не "О нас", а "Официальная информация".
<xsl:apply-templates select="document(concat('udata://content/menu/notemplate/0/', /result/parents/page[position() = 2]/@id))" mode="menu-items" />
при этом id страницы внутри которой мы будем искать страницы для меню мы получаем через запрос
/result/parents/page[position() = 2]/@id
и если на этой странице http://otto.aveas.ru/clinic/scientific-advisory-branch/polyclinic/ у нас есть значение по такому адресу, то на странице http://otto.aveas.ru/about/official-info/ такого значения, и в макрос передается 0, а это озачает что мы хотим получить меню от корня сайта (что вы и получаете)
- Либо делайте проверку на то, есть ли значение по адресу
/result/parents/page[position() = 2]/@id
- Либо вызывайте меню родительского раздела передавая атрибут родителя текущей страницы
<xsl:apply-templates select="document(concat('udata://content/menu/notemplate/0/', /result/page/@parentId))" mode="menu-items" />
Аа...
- Либо вызывайте меню родительского раздела передавая атрибут родителя текущей страницы
[code]<xsl:apply-templates select="document(concat('udata://content/menu/notemplate/0/', /result/page/@parentId))" mode="menu-items" />
[/quote]
Хм... второй вариант мне более понятен =)
- Либо делайте проверку на то, есть ли значение по адресу
/result/parents/page[position() = 2]/@id
А как должен выглядит синтаксис проверки?
Хм... второй вариант мне более понятен =)
- Либо делайте проверку на то, есть ли значение по адресу
/result/parents/page[position() = 2]/@id
А как должен выглядит синтаксис проверки?
выглядеть как-то так
<xsl:if test="/result/parents/page[position() = 2]/@id">...</xsl:if>
но у вас же не на всех страницах подойдет такое выражение, для каких-то страниц вам потребуются выражения типа /result/parents/page[position() = 1]/@id или /result/parents/page[position() = 3]/@id
Так что, первый вариант правильнее (если я правильно понимаю вашу задачу выводить меню относительно родительской страницы отсчитывая от текущей страницы)
Возникла проблема:
На старом сайте работает вывод заголовка (в данном случае "Советы") http://ott.cv65275.tmweb.ru/science/council/learned-council/
Перенесли на другой хостинг сперва все работало, а сейчас заметила, что заголовок не выводится...
http://dev.ott.ru/science/council/learned-council/
А тут работает http://dev.ott.ru/science/research-work/
Вот такой xsl:
<div class="title-h1">
<a href="#" class="back" data-tool="Вернуться"></a>
<xsl:variable name="h1_id" select="document(concat('upage://', page/@parentId, .//property/value/page/@id))" />
<h1>
<xsl:value-of select="$h1_id//property[@name = 'h1']/value" />
</h1>
</div>
Скрин структуры, если нужен