Макрос меню Umbraco, создающий дубликаты

#firefox #xslt #macros #umbraco

#firefox #xslt #макросы #umbraco

Вопрос:

У меня возникли проблемы с макросом меню в Umbraco..

Мой макрос возвращает ul с элементами li, по одному для каждой страницы.

 <xsl:output method="xml" omit-xml-declaration="yes" />
<xsl:param name="currentPage"/>
<xsl:variable name="level" select="1"/>
<xsl:template match="/">

<ul>
<xsl:for-each select="$currentPage/ancestor-or-self::* [@isDoc and @level=$level]/* [@isDoc and string(umbracoNaviHide) != '1']">
  <li>
    <a href="{umbraco.library:NiceUrl(@id)}">
      <xsl:if test="$currentPage/ancestor-or-self::*/@id = current()/@id">
        <xsl:attribute name="class">selected</xsl:attribute>
      </xsl:if>
      <xsl:value-of select="@nodeName"/>
    </a>
  </li>
</xsl:for-each>
</ul>
</xsl:template>
  

Проблема, с которой я столкнулся, заключается в том, что две страницы дублируются, хотя у меня есть только по одной из них, и ссылки на них работают и указывают на одну и ту же страницу.

У меня также есть другая проблема, и она заключается в том, что последний элемент li не помещен, но только в Firefox … Chrome и Safari работают нормально…

Есть идеи?

Комментарии:

1. Привет, Бек, есть ли шанс, что ты сможешь опубликовать свою правку в качестве ответа, чтобы было очевидно, что на вопрос действительно был дан ответ, и чтобы помочь людям в будущем. 🙂

Ответ №1:

Решение было раздражающе простым, просто «переиздать весь сайт», и все проблемы остались в прошлом. Я предполагаю, что некоторые вещи застряли в кэше…

Комментарии:

1. Привет, Бек, можешь ли ты принять свой собственный ответ. Для получения дополнительной информации, XSLT запускается с файлом umbraco.config, который представляет собой кэш XML-файла в каталоге ~/App_Data. Иногда этот кэш требует «принудительного» обновления с использованием опции «Опубликовать весь сайт».