有没有办法比较Kentico中的两个宏?

时间:2011-06-01 15:08:33

标签: macros content-management-system culture kentico

我有一个免责声明消息,我只希望在正在查看的页面没有被翻译成为网站选择的语言时可见。

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

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

但无论选择何种文化,这都会成为现实。有什么想法吗?

1 个答案:

答案 0 :(得分:0)

depends on what version of Kentico you are using

如果您使用的是5.5+,you have the option to use Nested Macros。以下是Martin Hejtmanek对此的引用:

  

如果你使用了一些更复杂的宏,你知道你可以使用这样的东西:

     

{%DocumentName |(等于)主页|?(truevalue){PARAM}%}   但是你不能在5.0中做这样的事情:

     

{%DocumentName |(等于)首页|(truevalue){%PARAM%}%}

     

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

     

使用5.5,可以选择解决此问题。我们提供使用耦合括号来允许嵌套相同类型的宏,一个例子最好地解释了:

     

{%DocumentName |(等于)首页|(truevalue){(1)%PARAM%(1)}%}

     

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

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

干杯, 兰斯