У меня уже есть жесткий код в файле скина, используя меню dnn:, которое выбирает определенные узлы, но похоже, что идентификатор должен создать несколько дополнительных скинов, чтобы дифференцировать NodeSelectors между элементами rootMenu (4 из них).Узлы динамического отображения и их дочерние элементы DNN
Есть ли способ, используя тот же файл скина на любой заданной странице, который я могу определить, в каком элементе rootMenu я нахожусь, петля через его первый уровень дочерних страниц в виде вкладок, а перечисление их детей в расширяемой части аккордеона как это происходит?
Uhh ... чем проще, тем лучше.
Использование
<ddr:MENU menustyle="Accordion" runat="server" /></dnn:MENU>
и это Accordian.XSLT показали обещание, но расширение не работало.
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
\t <xsl:output method="html"/>
\t <xsl:param name="ControlID" />
\t <xsl:param name="Options" />
\t <xsl:param name="CSSClass" />
<xsl:template match="/*">
<xsl:apply-templates select="root" />
</xsl:template>
<xsl:template match="root/node">
\t \t <xsl:if test="@breadcrumb = 1 and count(descendant::node) > 0">
\t \t \t <script type="text/javascript">
\t jQuery(function($) {
\t var options = { initialIndex: -1 };
\t $.extend(options, { <xsl:apply-templates select="node" mode="breadcrumb" /> }, <xsl:value-of select="$Options" />);
\t \t \t \t \t $("#<xsl:value-of select="$ControlID" />").tabs(".toolsaccordion div.pane", options);
\t \t \t \t });
\t \t \t </script>
\t \t \t <div id="{$ControlID}" class="toolsaccordion">
\t \t \t \t <xsl:apply-templates select="node" />
\t \t \t </div>
\t \t </xsl:if>
</xsl:template>
<xsl:template match="node" mode="breadcrumb">
<xsl:if test="@breadcrumb = 1">initialIndex: <xsl:value-of select="position() - 1" /></xsl:if>
</xsl:template>
\t <xsl:template match="node">
\t \t <h3>
\t \t \t
\t \t \t \t <xsl:value-of select="@text" />
\t \t \t
\t \t </h3>
\t \t <div class="pane">
\t \t \t <xsl:apply-templates select="node" mode="sub">
\t \t \t \t <xsl:with-param name="level" select="0" />
\t \t \t </xsl:apply-templates>
\t \t </div>
\t </xsl:template>
\t <xsl:template match="node" mode="sub">
\t \t <xsl:param name="level" />
\t \t <xsl:choose>
\t \t \t <xsl:when test="@enabled = 0">
\t \t \t \t <div>
\t \t \t \t \t <xsl:call-template name="indent">
\t \t \t \t \t \t <xsl:with-param name="level" select="$level" />
\t \t \t \t \t </xsl:call-template>
\t \t \t \t \t <xsl:value-of select="@text" />
\t \t \t \t </div>
\t \t \t </xsl:when>
\t \t \t <xsl:otherwise>
\t \t \t \t <a style="display:block" href="{@url}">
\t \t \t \t \t <xsl:call-template name="indent">
\t \t \t \t \t \t <xsl:with-param name="level" select="$level" />
\t \t \t \t \t </xsl:call-template>
\t \t \t \t \t <xsl:value-of select="@text" />
\t \t \t \t </a>
\t \t \t </xsl:otherwise>
\t \t </xsl:choose>
\t \t <xsl:apply-templates select="node" mode="sub">
\t \t \t <xsl:with-param name="level" select="$level + 1" />
\t \t </xsl:apply-templates>
\t </xsl:template>
\t <xsl:template name="indent">
\t \t <xsl:param name="level" />
\t \t <xsl:if test="$level > 0">
\t \t \t   <xsl:call-template name="indent">
\t \t \t \t <xsl:with-param name="level" select="$level - 1" />
\t \t \t </xsl:call-template>
\t \t </xsl:if>
\t </xsl:template>
</xsl:stylesheet>
Here is the menudef.xml
<? xml version = "1.0"
encoding = "utf-8" ?>
<manifest>
<template> Accordion.xslt < /template>
<scripts>
<script jsObject="jQuery"/>
< script jsObject = "jQuery.tools.tabs" > http: //www.itdraws.com/js/flowplayer.org-1.1.2-jquery.tools.min.js</script>
< /scripts>
<stylesheets>
<stylesheet>[MANIFEST]/tabs - accordion.css < /stylesheet>
</stylesheets >
<defaultClientOptions>
< clientOption name = "tabs"
type = "string"
value = "h3"/>
< clientOption name = "effect"
type = "string"
value = "slide"/>
< clientOption name = "event"
type = "string"
value = "onclick"/>
< /defaultClientOptions>
</manifest >
Это, безусловно, возможно, я посмотрю, не могу ли я найти код примера для этого. –
, что было бы супер великим Крисом, спасибо! – GomezJr
, по крайней мере, я бы рассмотрел условный код, который пишет/не пишет блоки кода меню. – GomezJr