Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    text
    copied!<p>I figured out what I need to do what I want. The key line being:</p> <pre><code>&lt;xsl:variable name="visibleChidren" select="node[data[@alias='showInMenu'] = 1 and (@level = 2 or descendant-or-self::*[generate-id($currentPage) = generate-id(.)] or preceding-sibling::*[generate-id($currentPage) = generate-id(.)] or following-sibling::*[generate-id($currentPage) = generate-id(.)] or parent::*[generate-id($currentPage) = generate-id(.)])]" /&gt; </code></pre> <p>From the entire xslt:</p> <pre><code>&lt;!DOCTYPE xsl:stylesheet [ &lt;!ENTITY nbsp "&amp;#x00A0;"&gt; ]&gt; &lt;xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:msxml="urn:schemas-microsoft-com:xslt" xmlns:umbraco.library="urn:umbraco.library" xmlns:Exslt.ExsltCommon="urn:Exslt.ExsltCommon" xmlns:Exslt.ExsltDatesAndTimes="urn:Exslt.ExsltDatesAndTimes" xmlns:Exslt.ExsltMath="urn:Exslt.ExsltMath" xmlns:Exslt.ExsltRegularExpressions="urn:Exslt.ExsltRegularExpressions" xmlns:Exslt.ExsltStrings="urn:Exslt.ExsltStrings" xmlns:Exslt.ExsltSets="urn:Exslt.ExsltSets" xmlns:tagsLib="urn:tagsLib" xmlns:urlLib="urn:urlLib" exclude-result-prefixes="msxml umbraco.library Exslt.ExsltCommon Exslt.ExsltDatesAndTimes Exslt.ExsltMath Exslt.ExsltRegularExpressions Exslt.ExsltStrings Exslt.ExsltSets tagsLib urlLib "&gt; &lt;xsl:output method="xml" omit-xml-declaration="yes"/&gt; &lt;xsl:param name="currentPage"/&gt; &lt;xsl:variable name="currentLevel" select="$currentPage/@level" /&gt; &lt;xsl:template match="/"&gt; &lt;div id="kb-categories"&gt; &lt;h3&gt;Categories&lt;/h3&gt; &lt;xsl:apply-templates mode="list" select="$currentPage/ancestor-or-self::node [@nodeTypeAlias = 'kbHomepage']" /&gt; &lt;/div&gt; &lt;/xsl:template&gt; &lt;!-- matches anything with &lt;node&gt; children and makes a list out of them --&gt; &lt;xsl:template match="node" mode="list"&gt; &lt;!-- select only sub-nodes that have 'showInMenu' = 1 --&gt; &lt;xsl:variable name="visibleChidren" select="node[data[@alias='showInMenu'] = 1 and (@level = 2 or descendant-or-self::*[generate-id($currentPage) = generate-id(.)] or preceding-sibling::*[generate-id($currentPage) = generate-id(.)] or following-sibling::*[generate-id($currentPage) = generate-id(.)] or parent::*[generate-id($currentPage) = generate-id(.)])]" /&gt; &lt;xsl:if test="$visibleChidren"&gt; &lt;ul&gt; &lt;xsl:apply-templates mode="item" select="$visibleChidren" /&gt; &lt;/ul&gt; &lt;/xsl:if&gt; &lt;/xsl:template&gt; &lt;xsl:template match="node" mode="item"&gt; &lt;li&gt; &lt;a href="/kb{umbraco.library:NiceUrl(@id)}"&gt; &lt;xsl:value-of select="@nodeName"/&gt; &lt;/a&gt; &lt;xsl:apply-templates mode="list" select="." /&gt; &lt;/li&gt; &lt;/xsl:template&gt; &lt;/xsl:stylesheet&gt; </code></pre>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload