有人可以告诉我如何从Cogworks Flexible Navigation中排除文档类型吗?
如何允许从导航中排除数组或文档类型列表?
注意:我不想使用" umbracoNaviHide"因为我想要排除文档类型,我不想在我的文档类型中添加一个true / false复选框,然后手动检查它们。
Cogworks - 灵活导航:http://our.umbraco.org/projects/website-utilities/cogworks-flexible-navigation
答案 0 :(得分:1)
这取决于您使用的是Razor版本还是XSLT版本。对于XSLT,您可以在XSLT文件中的nodeIterator模板上的“match”属性中添加*[name()!='MyDoctypeAlias' or name()!='MyOtherDoctypeAlias']
。
对于Razor版本,在nodeIterator帮助器中,我将定义如下:
List<string> listOfDoctypesToExclude = new List<string>() { "MyDoctypeAlias", "MyOtherDoctypeAlias" };
if (!listOfDoctypesToExclude.Contains(currentNode.NodeTypeAlias) {
// continue with render
}
答案 1 :(得分:0)
我发现这可以作为捷径,但我仍然喜欢创建一个数组或排除文档类型列表。
首先隐藏祖先选择状态:
<!--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>