Редактировать меню на сайте umbraco - PullRequest
1 голос
/ 01 ноября 2011

Мне нужно поддержать сайт, созданный с использованием umbraco. Я новичок в Умбрако. позвольте мне объяснить мой сценарий. Я оставил меню, которое используется для перехода на разные страницы. Теперь мне нужно изменить один пункт меню, чтобы перейти на другую страницу. Как это возможно?

Используется макрос для создания главного меню. Главная страница показывает, что у нее есть макрос DisplayMainMenu. Этот макрос использует XSLT-файл DisplayMainMenu. Прилагаю код 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']) &gt; 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 Ответ

1 голос
/ 02 ноября 2011

Ваш xslt динамически создает меню на основе макета вашего сайта, как это определено в разделе содержимого панели мониторинга umbraco. Поэтому вы не можете «изменить пункт меню, чтобы он указывал на другую страницу» как таковой. Что вы можете сделать, так это изменить структуру своего сайта, отражая то, что вы хотите, добавляя новые страницы, перемещая существующие страницы или удаляя ненужные страницы.

Если вы хотите добавить статическую ссылку на страницу, вы можете сделать это, добавив ее в свой xslt выше (так же, как была добавлена ​​ссылка 'Home'), но вам нужно убедиться, что она находится за пределами xslt:for-each цикл, если вы не хотите углубляться в сложное кодирование xslt.

По сути, вышеприведенный код создает неупорядоченный список со статически добавленным первым элементом списка для домашней страницы. Затем он зацикливает каждую из дочерних страниц и добавляет ссылку. Затем для каждой дочерней страницы, если у нее есть видимые дочерние страницы (гарантируя, что они не должны быть скрытыми и должны быть включены в основную навигацию с использованием их свойств umbracoNaviHide и includeInMainNavigation), он циклически перебирает каждую из них и отображает ссылку.

...