2014-09-24 2 views
0

У меня есть небольшая проблема со скрытием определенного пункта меню при входе в Umbraco/XSLT.Скрыть пункт меню при входе в систему с Umbraco/XSLT

У меня есть этот кусок XSLT, который выводит пункты меню

<li> 
    <a href="{$url}" class="{$class}">  
     <xsl:if test="$currentPage/ancestor-or-self::*/@id = ./@id"> 
      <xsl:attribute name="class">active</xsl:attribute> 
      <xsl:if test="$node/@level = 3"> 
       <i class="{$iconClass}"></i> 
      </xsl:if> 
     </xsl:if> 
     <xsl:value-of select="$node/@nodeName" />   
    </a> 
    <xsl:if test="$active"> 
     <xsl:call-template name="list"> 
      <xsl:with-param name="parent" select="$node" /> 
     </xsl:call-template>  
    </xsl:if> 
</li> 

То, что я хочу, чтобы иметь возможность Exlude пункты меню, которые имеют истинно в свойстве «hideAtLogin», при входе в систему.

Я попытался с

<xsl:if test="umbraco.library:IsLoggedOn = 'false' and hideAtLogin = ''"> 
... 
</xsl:if> 

Но это не работает ...

когда hideAtLogin не выбран (= ложь), элемент должен быть показан вне зависимости от входа или нет.

ответ

0

Понял работать с

<xsl:if test="not(umbraco.library:IsLoggedOn()) or (umbraco.library:IsLoggedOn() and hideAtLogin != 1)"> 
... 
</xsl:if> 
0

Только 2 предложения:
Вы уже пытались изменить

<xsl:if test="umbraco.library:IsLoggedOn = 'false' ..">..</xsl:if> 

в

<xsl:if test="umbraco.library:IsLoggedOn() = false() ..">..</xsl:if> 

и в случае, если это еще не будет работать, это может быть проблема сервера, как указано здесь для кого-то с аналогичной проблемой?

Umbraco.Library.IsLoggedOn() does not work from XSLT

Проблема была, что сессия не была доступна по XSLT из-за конфигурации сервера и web.config должен быть отрегулирован.

Смежные вопросы