#umbraco
#umbraco
Вопрос:
Мне нужно поддерживать сайт, созданный с использованием umbraco. я полный новичок в umbraco. позвольте мне объяснить мой сценарий. У меня осталось меню, которое используется для перехода на разные страницы. Теперь мне нужно изменить один пункт меню, чтобы перейти на другую страницу. Как это возможно?
Для создания главного меню используется макрос. На главной странице показано, что у нее есть macro DisplayMainMenu. Этот макрос использует меню отображения файла XSLT. Прилагаю код xslt к настоящему:
<div id="main_navigation" class="jqueryslidemenu unitPng">
<ul>
<li><a href="/">Home</a></li>
<xsl:for-each select="$pagesNodeSet">
<xsl:sort select="./@sortOrder" data-type="text" order="ascending"/>
<li>
<a href="{umbraco.library:NiceUrl(./@id)}"><xsl:value-of select="./title"/></a>
<xsl:if test="count(./*[@isDoc and string(umbracoNaviHide) != '1' and string(includeInMainNavigation) = '1']) amp;> 0">
<ul class="sub-menu">
<xsl:for-each select="./*[@isDoc and string(umbracoNaviHide) != '1' and string(includeInMainNavigation) = '1']">
<xsl:sort select="./@sortOrder" data-type="text" order="ascending"/>
<li><a href="{umbraco.library:NiceUrl(./@id)}"><xsl:value-of select="./title"/></a></li>
</xsl:for-each>
</ul>
</xsl:if>
</li>
</xsl:for-each>
</ul>
</div>
Некоторая часть кода не может быть включена из-за некоторых проблем с форматированием.
Комментарии:
1. Здесь недостаточно информации для работы. Как создается это меню? Использует ли он макрос? Если да, можете ли вы опубликовать код макроса (xslt или razor)?
2. Я отредактирую свой пост с помощью кода xslt.
Ответ №1:
Ваш xslt динамически создает меню на основе макета вашего сайта, как определено в разделе содержимого панели мониторинга umbraco. Поэтому вы не можете «изменить пункт меню, чтобы указать на другую страницу» как таковой. Что вы можете сделать, так это изменить структуру сайта, чтобы отразить то, что вы хотите, добавив новые страницы, переместив существующие страницы или удалив ненужные страницы.
Если вы хотите добавить ссылку на статическую страницу, вы можете сделать это, добавив ее в свой xslt выше (таким же образом, как была добавлена ссылка «Home»), но вам нужно будет убедиться, что она находится вне xslt:for-each
цикла, если вы не хотите углубляться в какое-то сложное кодирование xslt.
По сути, приведенный выше код создает неупорядоченный список с первым статически добавленным элементом списка для домашней страницы. Затем выполняется цикл каждой из дочерних страниц и добавление ссылки. Затем для каждой дочерней страницы, если у нее есть видимые дочерние страницы (гарантируя, что они не должны быть скрыты и должны быть включены в основную навигацию с использованием их свойств umbracoNaviHide и includeInMainNavigation), она перебирает каждую из них и отображает ссылку.