2

我有一条免责声明消息,我只希望在所查看的页面尚未翻译成为该站点选择的语言时才可见。

我正在为免责声明消息使用静态文本 Web 部件,并尝试根据页面的文化 {%cmscontext.currentdocumentculture.culturecode%} 设置其可见性,而不等于所选的视图文化 {%currentculture%}。

我试过:{%cmscontext.currentdocumentculture.culturecode|(notequals){(1)%currentculture%(1)}%}

但是,无论选择什么文化,这都是正确的。有任何想法吗?

4

1 回答 1

0

取决于您使用的 Kentico 版本

如果您使用的是 5.5+,则可以选择使用嵌套宏。这是 Martin Hejtmanek 的一段话:

如果您使用过一些更复杂的宏,您就会知道可以使用如下内容:

{%DocumentName|(equals)Home|(truevalue){?param?}%} 但你不能在 5.0 中做这样的事情:

{%DocumentName|(equals)Home|(truevalue){%param%}%}

区别在于宏的类型。出于性能原因(更快的处理),我们不允许嵌套相同类型的宏,因此我们可以使宏正则表达式尽可能简单。

在 5.5 中,有一个选项可以解决这个问题。我们提供使用耦合括号来允许嵌套相同类型的宏,一个例子最好地说明了这一点:

{%DocumentName|(equals)Home|(truevalue){(1)%param%(1)}%}

你所做的是你可以在宏括号和类型字符之间放一个数字,这样你就可以更容易地看到表达式的结尾在哪里,也可以让引擎正确地看到它。这个数字没有任何信息价值,它只是一个检测匹配的数字。它可以是任何非负整数。

因此,以前,您可以嵌套不同类型的宏 - 例如:您可以在 Expression 宏中嵌套 Path 宏。但现在在 5.5 版中,您可以嵌套相同类型的宏。

干杯,兰斯

于 2011-06-19T11:44:38.803 回答