2

我最近继承了一个“几乎”完成的 Umbraco 版本,我们的一个内容编辑器遇到了这个问题。CMS 有一个宏,用于显示用户帐户登录的链接,在前端使用单个复选框来显示或隐藏此宏。

但是,无论用户做出何种选择,该块始终显示在页面上。

我对 Umbraco 完全陌生,所以请善待。我的前任为宏编写了 xslt 文件,如下所示。我的第一个想法是 $currentPage/showAccountLogin 是错误的,但我不知道是什么方式。

<xsl:param name="currentPage"/>

<xsl:template match="/">

<xsl:if test="$currentPage/showAccountLogin=true()">
<div class="related-content">
  <h3>Login to your account</h3>
  <ul><li>Access your account or retrieve<br />your login details<br /><a href="#">Go to your account <img src="/images/external.gif" alt="External Link (Opens in new window)" /></a></li></ul>
</div>

4

1 回答 1

1

看起来您正在尝试调用宏以从某个 XSLT 中返回 true 或 false?那是行不通的,因为您在那里使用的语法是用于检查页面级变量。

$currentPage/showAccountLogin

上面查找名为“showAccountLogin”的页面级属性,它不会运行别名为“ShowAccountLogin”的宏。无论如何,您发布的代码看起来不像是登录代码。如果您想了解有关如何使用 Umbraco 编写登录代码的更多信息,请查看本教程:Umbraco Membership Templates

如果您只想检查用户是否登录,可以在 XSLT 中调用 Umbrcao 库方法,如下所示:

<xsl:if test="umbraco.library:IsLoggedOn() = true()">
  I'M LOGGED IN!!!
</xsl:if>
于 2012-10-11T15:07:35.877 回答