2011-06-01 103 views
2

我有一個免責聲明消息,我只希望在查看的頁面未翻譯成爲網站選擇的語言時可見。有沒有辦法比較Kentico中的兩個宏?

我正在使用靜態文本webpart作爲免責聲明消息,並嘗試根據頁面的文化{%cmscontext.currentdocumentculture.culturecode%}設置其可見性,並不等於所選視圖文化{%currentculture%}。

我想:{%cmscontext.currentdocumentculture.culturecode |(notequals){(1)%的CurrentCulture%(1)}%}

但這解析爲真,不管選擇了什麼樣的文化。有任何想法嗎?

回答

0

depends on what version of Kentico you are using

如果您使用的是5.5+,you have the option to use Nested Macros。下面是從馬丁Hejtmanek關於它的報價:

如果你有一些更復雜的宏的工作,你知道,你可以使用這樣的事情:

{%DocumentName |(等於)首頁|(truevalue) %} 但你不能做在5.0這樣的事情{PARAM?}:

{%DocumentName |(等於)首頁|(truevalue){%PARAM%}%}

的區別在於類型的宏。出於性能原因(更快的處理),我們不允許嵌套相同類型的宏,因此我們可以儘可能簡化宏正則表達式。

隨着5.5,有一個選項來解決這個問題。我們提供了使用耦合括號來允許嵌套相同類型的宏,一個例子最好地解釋了這個:

{%DocumentName |(等於)主頁|(truevalue){(1)%參數%(1) }

你要做的是,你可以在宏括號和類型字符之間加上一個數字,這樣可以更容易地看到表達式的末尾在哪裏,也可以讓引擎正確地看到它。該號碼沒有任何信息值,它只是一個檢測匹配的數字。它可以是任何非負整數。

因此,您可以嵌套不同類型的宏 - 例如:您可以在表達式宏中嵌套一個Path宏。但是現在在版本5.5中,您可以嵌套相同類型的宏。

乾杯, 蘭斯

+0

感謝您的迴應蘭斯。我在我的例子中實際上使用了一個嵌套宏,但是我最近從Kentico得到了我的答案。顯然,你不能使用equals或notequals來比較兩個宏,因爲這些宏的解決太遲了。 – 2011-06-20 13:25:07

相關問題