Plone 为什么class=';主动';脱光衣服,有办法吗?

Plone 为什么class=';主动';脱光衣服,有办法吗?,plone,diazo,Plone,Diazo,我试图做的是替换内容端的标题结构,进行一些剧烈的结构更改,以便一次性将整个标题移动到主题端 我的问题是,我无法将列表项上的“选定”类替换为“活动”。本例中的globalnav有三层,不同的层有不同的结构,所以一次性发布有点大。其基本思想是: <xsl:variable name="globalnav" css:select="#portal-globalnav"/> <replace css:content="#portal-header">

我试图做的是替换内容端的标题结构,进行一些剧烈的结构更改,以便一次性将整个标题移动到主题端

我的问题是,我无法将列表项上的“选定”类替换为“活动”。本例中的globalnav有三层,不同的层有不同的结构,所以一次性发布有点大。其基本思想是:

    <xsl:variable name="globalnav" css:select="#portal-globalnav"/>
    <replace css:content="#portal-header">
        <ul id="borked-nav">
          <xsl:for-each select="$globalnav/li">
            <li>
              <xsl:if test="./@class = 'selected'">
                <xsl:attribute name="class">active</xsl:attribute>
              </xsl:if>
              <xsl:apply-templates select="./*"/>
            </li>
          </xsl:for-each>
        </ul>
    </replace>

  • 忙碌的
例如,工作原理是:

<xsl:variable name="globalnav" css:select="#portal-globalnav"/>
<replace css:content="#portal-header">
    <ul id="borked-nav">
      <xsl:for-each select="$globalnav/li">
        <li>
          <xsl:if test="./@class = 'selected'">
             <xsl:attribute name="class">super-active</xsl:attribute>
          </xsl:if>
          <xsl:apply-templates select="./*"/>
        </li>
      </xsl:for-each>
    </ul>
</replace>

  • 超活跃
什么不起作用(结果class=“真的”):

active真的很活跃吗
或者在主题面板中定义$active,并尝试使用jbot或实际更改模板以激活该类(我尝试只添加“selected active really”,因此“selected active really”作为jbot模板中的类将生成一个“selected really”类)

我不能在一个简单的设置中复制它,所以我将在下面发布完整的代码。有人知道为什么它会被剥离吗?我的规则中没有任何地方使用“活动”。下面的代码段包含rules.xml中定义的变量

<replace css:content="#portal-header">
 <div id="header">
  <div class="top-bar">
    <div class="menu-button">
      <span class="icon"></span>
    </div>
    <a class="logo" href="{$logo/@href}" accesskey="{$logo/@accesskey}" title="{$logo/@title}" ></a>
    <span class="search-button">
      <span class="label">Zoeken...</span><span class="icon"></span>
    </span>
  </div>
  <div class="menu-wrapper">
    <div class="menu">
      <ul class="main-level">
        <xsl:for-each select="$globalnav/li">
          <li class="{@class}">
            <xsl:comment>
              <xsl:if test="@class = 'selected'">
                <xsl:attribute name="class">super-active</xsl:attribute>
              </xsl:if>
            </xsl:comment>
            <xsl:apply-templates select="./a"/>
            <xsl:if test="./ul">
              <div class="mega-menu level-1">
                <div class="menu-left-wrapper">
                  <h2>Onderwerpen</h2>
                  <ul class="sub-level-1">
                    <xsl:for-each select="./ul/li">
                      <li class="{@class}">
                        <xsl:comment>
                          <xsl:if test="@class = 'selected'">
                            <xsl:attribute name="class">super-active</xsl:attribute>
                          </xsl:if>
                        </xsl:comment>
                        <xsl:apply-templates select="./a"/>
                        <xsl:if test="./ul">
                          <div class="mega-menu">
                            <h2>Artikelen binnen onderwerp</h2>
                            <ul class="sub-level-2">
                              <xsl:for-each select="./ul/li">
                                <li>
                                  <xsl:if test="@class = 'selected'">
                                    <xsl:attribute name="class">active</xsl:attribute>
                                  </xsl:if>
                                  <xsl:apply-templates select="./a"/>
                                </li>
                              </xsl:for-each>
                            </ul>
                          </div>
                        </xsl:if>
                      </li>
                    </xsl:for-each>
                  </ul>
                </div>
              </div>
            </xsl:if>
          </li>
        </xsl:for-each>
        <xsl:if test="$articles">
          <li class="light">
            <a class="" href="#">Snel naar<span class="arrow"></span></a>
            <div class="mega-menu level-1">
              <div class="menu-left-wrapper">
                <h2><xsl:apply-templates select="$articles-heading"/></h2>
                <xsl:apply-templates select="$articles"/>
              </div>
            </div>
          </li>
        </xsl:if>
      </ul>
    </div>

    <xsl:if test="$helpdesks or $products">
      <div class="sidebar">
        <div class="content">
          <xsl:if test="$helpdesks">
            <h2><xsl:apply-templates select="$helpdesks-heading"/></h2>
            <div class="buttons">
              <xsl:for-each select="$helpdesks/li/a">
                <a href="{./@href}" class="button phone"><xsl:apply-templates select="./*"/></a>
              </xsl:for-each>
            </div>
          </xsl:if>
          <xsl:if test="$products">
            <h2><xsl:apply-templates select="$products-heading"/></h2>
            <xsl:apply-templates select="$products"/>
          </xsl:if>
        </div>
      </div>
    </xsl:if>

    <div class="top-menu">
      <xsl:apply-templates select="$siteactions"/>
    </div>
  </div>

  <div class="search">
    <span class="search-button">
      <span class="label">Zoeken...</span><span class="icon"></span>
    </span>
    <div class="search-wrapper">
      <form id="search-form" action="{$searchform/@action}">
        <div class="form-item">
          <div class="content">
            <input type="text" name="{$searchfield/@name}" id="keyword"/>
            <span class="border"></span>
          </div>
        </div>
        <input type="submit" value="Zoek" class="submit"/>
        <span class="submit-button"><span class="label">Zoeken</span><span class="icon"></span></span>
        <span class="close-button"><span class="icon"></span></span>
      </form>
    </div>
  </div>
 </div>

</replace>

佐肯。。。
  • 超活跃 昂德尔彭
    • 超活跃 Artikelen binnen onderwerp
      • 忙碌的
佐肯。。。 佐肯
现在,我将其更改为仅处理全球导航,然后将李的移动到主题中,如下所示:

<replace css:content="#portal-globalnav a">
  <a><xsl:copy-of select="./@*|./*|./text()"/><span class="arrow"></span></a>
</replace>

<replace css:content="#portal-globalnav li.selected">
  <li class="active"><xsl:apply-templates select="./*"/></li>
</replace>

<replace css:content="#portal-globalnav .submenu">
  <div class="mega-menu level-1">
    <div class="menu-left-wrapper">
      <h2>Onderwerpen</h2>
      <ul class="sub-level-1"><xsl:apply-templates select="./*"/></ul>
    </div>
  </div>
</replace>

<replace css:content="#portal-globalnav .submenu .submenu ">
  <div class="mega-menu">
    <h2>Artikelen binnen onderwerp</h2>
    <ul class="sub-level-2"><xsl:apply-templates select="./*"/></ul>
  </div>
</replace>

  • 昂德尔彭
      Artikelen binnen onderwerp

        我已经与设计/前端团队商议,不要在静态html中使用“主动”类,它仍然会被剥离。

        这个解决方案更被动一些。这对我有用。希望我正确理解了你的问题,这会对你有所帮助。 大多数情况下,查看属性是否包含值更安全

        <replace css:content="#portal-globalnav">
            <ul id="borked-nav">
                <xsl:for-each css:select="#portal-globalnav > li">
                    <xsl:variable name="class" select="./@class" />
                    <li>
                        <xsl:if test="contains(@class, 'selected')">
                            <xsl:attribute name="class">active</xsl:attribute>
                        </xsl:if>
                        <xsl:copy-of select="./*"/>
                    </li>
                </xsl:for-each>
            </ul>
         </replace>
        
        
        
        • 忙碌的
        我看到您在replace标记中重写了很多标记。您是否想过实际更改模板,而不是动态地执行所有这些操作


        这非常有效,但最好保持规则集严密,因为它没有模板引擎那么快。

        这种方法效率低下,因为在替换中,您可以使用“.”在选择中引用#portal globalnav。但在我的例子中,它仍然剥离“活动”,我曾尝试更改模板(使用jbot),但它仍然被剥离。即使我在页脚中使用class=“active”,也不要在globalnav或页眉区域的任何地方使用。我还注释掉了所有与页眉无关的其他规则,以排除那里发生的任何事情,仍然没有“active”。我知道,但我想这样写,因为它更具可读性。这听起来很神秘。所以不管你怎么做,整个网站上的“活动”这个词都会被删除?我应该检查一下,到目前为止我一直在关注类属性。“活动”作为一个类在某些时候会被绊倒,在全球导航中,我一直没有找到公同分母。
        <replace css:content="#portal-globalnav">
            <ul id="borked-nav">
                <xsl:for-each css:select="#portal-globalnav > li">
                    <xsl:variable name="class" select="./@class" />
                    <li>
                        <xsl:if test="contains(@class, 'selected')">
                            <xsl:attribute name="class">active</xsl:attribute>
                        </xsl:if>
                        <xsl:copy-of select="./*"/>
                    </li>
                </xsl:for-each>
            </ul>
         </replace>