0
我有一个用Umbraco构建的网站,它有一个带有几个小部件设置的边栏。我需要设置它,以使其中一个小部件(以XSLT的形式完成)仅显示在某个页面上。我已经看过使用xsl:if test和matches并且无法弄清楚。如何只在Umbraco CMS的某些页面上显示一段模板?
我有一个用Umbraco构建的网站,它有一个带有几个小部件设置的边栏。我需要设置它,以使其中一个小部件(以XSLT的形式完成)仅显示在某个页面上。我已经看过使用xsl:if test和matches并且无法弄清楚。如何只在Umbraco CMS的某些页面上显示一段模板?
你走在正确的轨道上,但养成了包括你已经试过的问题(代码等)的习惯。
快速+肮脏的方法
找出你页面(在内容部分的节点的属性选项卡上找到)的ID,并使用下面的代码:
<xsl:if test="$currentPage/@id = 1234">
<!-- your widget here -->
</xsl:if>
清洁方法
总是试图建立你的代码是可扩展的,例如你可能fin d您希望在未来将该小部件包含在另一个页面中,或者将您的内容从分段部署到生产可能会涉及节点ID在您不知情的情况下发生变化(不经常发生但可能发生)。
属性添加到有问题(我们称之为showMyFancyWidget
)为真/假数据类型的页面,在内容部分轻弹它然后使用下面的代码:
<xsl:if test="$currentPage/showMyFancyWidget = 1">
<!-- your widget here -->
</xsl:if>
此代码将为Umbraco v4.5.1起作用。不太确定v5,但是现在已经停止支持v4.7
那么问题是什么?我看不到一个。 –
问题是标题你可能看不懂? – cstrouse
cstrouse:我可以阅读和阅读标题,这对我没有任何意义 - 你的意思是“一块模板”?我希望这个问题的内容能够澄清 - 但这是不合理的期望。没有指定源XML文档,也没有指定的转换结果。没有任何XSLT代码。没有告诉我们这个“它”是什么,你只能说明你“无法弄清楚”的事实。 –