我最近继承了一个“接近”完成的Umbraco版本,我们的一个内容编辑器遇到了这个问题。CMS有一个宏,用于显示用户帐户登录的链接,只有一个复选框可在前端显示或隐藏此宏。
但是,无论用户做出哪种选择,块都会始终显示在页面上。
我对Umbraco完全陌生,所以对我好一点。我的前任已经为Macro编写了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>
发布于 2012-10-11 23:07:36
看起来您正在尝试从某个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>https://stackoverflow.com/questions/12841932
复制相似问题