1

Cogworksフレキシブルナビゲーションからドキュメントタイプを除外する方法を教えてもらえますか?

ドキュメントタイプの配列またはリストをナビゲーションから除外するにはどうすればよいですか?

注:ドキュメントタイプを除外したいので、「umbracoNaviHide」を使用したくありません。ドキュメントタイプにtrue / falseチェックボックスを追加して、すべてを手動でチェックしたくありません。

Cogworks-柔軟なナビゲーション: http: //our.umbraco.org/projects/website-utilities/cogworks-flexible-navigation

関連記事:Umbracoxsltナビゲーションクエリ

4

2 に答える 2

1

これは、RazorバージョンとXSLTバージョンのどちらを使用しているかによって異なります。XSLTの場合*[name()!='MyDoctypeAlias' or name()!='MyOtherDoctypeAlias']、XSLTファイルのnodeIteratorテンプレートの「match」属性にを追加します。

Razorバージョンの場合、nodeIteratorヘルパー内で、次のように定義します。

List<string> listOfDoctypesToExclude = new List<string>() { "MyDoctypeAlias", "MyOtherDoctypeAlias" };
if (!listOfDoctypesToExclude.Contains(currentNode.NodeTypeAlias) {
  // continue with render
}
于 2012-10-17T23:37:47.317 に答える
0

これはショートカットとしてはうまく機能することがわかりましたが、除外されたドキュメントタイプの配列またはリストを何らかの方法で作成したいと思います。

最初にancestorSelected状態を非表示にします。

<!--Is the node a branch? i.e. are there children and is it in the colletion of ancestor nodes -->
    <xsl:variable name="isBranch">
      <xsl:choose>
        <xsl:when test="$currentPage/ancestor-or-self::*[@isDoc][@id = $currentNodeID]/child::*[@isDoc][name() != 'MyDoctypeAlias']">1</xsl:when>
      </xsl:choose>
    </xsl:variable>

次に、子ノード(hasChildren)を非表示にします。

<xsl:variable name="hasChildren">
      <xsl:choose>
        <xsl:when test="./*[@isDoc][name() != 'MyDoctypeAlias']">1</xsl:when>
      </xsl:choose>
    </xsl:variable>
于 2012-10-18T02:34:14.293 に答える