Umbraco xslt навигационный запрос - PullRequest
0 голосов
/ 17 января 2012

Немного борюсь с моим макросом навигации Umbraco xslt. У меня работает верхний уровень, но теперь я понимаю, что мне нужен второй уровень, а также для каждого верхнего уровня, чтобы иметь уникальный класс (и выбранный класс, где это уместно). Может кто-нибудь мне помочь?

Это то, что я имею до сих пор:

<xsl:variable name="level" select="1"/>    
<xsl:template match="/">    
<ul id="section_navigation">
<xsl:for-each select="umbraco.library:GetXmlNodeById('1137')/ancestor-or-self::* [@level=$level]/* [@isDoc and string(umbracoNaviHide) != '1']">
  <li>
    <a href="{umbraco.library:NiceUrl(@id)}">
      <xsl:value-of select="@nodeName"/>
    </a>
    <xsl:if test="count(./child::*[@isDoc and string(umbracoNaviHide) != '1']) &gt; 0">
      <div class="sub">
        <ul>
          <xsl:for-each select="./child::*[@isDoc and string(umbracoNaviHide) != '1']">
            <li>
              <a href="{umbraco.library:NiceUrl(@id)}">
                <xsl:value-of select="@nodeName"/>
              </a>
            </li>
          </xsl:for-each>
        </ul>
      </div>
    </xsl:if>
  </li>
</xsl:for-each>
</ul>    
</xsl:template>

и вот результат, который я ищу:

<ul id="section_navigation">
        <li class="pal"><a href="/Pal">Pal</a></li>
        <li class="memo"><a href="/memo">Memo</a>
            <div class="sub">
                <ul>
                    <li><a href="/memo/latest">Latest</a></li>
                    <li><a href="/memo/history">History</a></li>>
                </ul>
            </div>
        </li>
        <li class="questions"><a href="/questions">Questions</a></li>
        <li class="office"><a href="/office">Office</a></li>
        <li class="mail"><a href="/mail">Mail</a>
            <div class="sub">
                <ul>
                    <li><a href="/mail/mailbox">MailBox</a></li><li><a href="/mail/new-message">New Message</a></li>
                </ul>
            </div>
        </li>
        <li class="jobs"><a href="/jobs">jobs</a>
            <div class="sub">
                <ul>
                    <li><a href="/jobs/all">All</a></li>
                    <li><a href="/jobs/magazine">Magazine</a></li>
                </ul>
            </div>
        </li>
    </ul>

Не уверен, что подраздел в div class = "sub" правильный. Возможно, если я добавлю выбранный класс в родительский LI, хотя это может сработать.

Я подумал, что для класса LI я мог бы использовать имя страницы и попробовать что-то вроде <li class="{@Name}">, но безуспешно. Любые идеи там тоже будут оценены.

Дайте мне знать, будет ли полезна дополнительная информация.

Большое спасибо

1 Ответ

1 голос
/ 17 января 2012

Вы можете попробовать следующий пакет Umbraco:

http://our.umbraco.org/projects/website-utilities/cogworks-flexible-navigation

Вы можете просмотреть его XSLT, чтобы увидеть, как он работает, или просто использовать его из коробки (ядумаю, что он будет отвечать вашим потребностям).

С точки зрения вашего первоначального вопроса, звучит так, как будто вам нужна некоторая справочная информация о самом Umbraco.

Лучшее место для этого - Umbraco wiki

...