Есть ли способ сравнить два макроса в Kentico? - PullRequest
2 голосов
/ 01 июня 2011

У меня есть сообщение об отказе от ответственности, которое я хочу видеть только тогда, когда просматриваемая страница не была переведена на язык, выбранный для сайта.

Я использую статическую текстовую веб-часть для сообщения об отказе от ответственности и пытаюсь настроить ее видимость на основе культуры страницы {% cmscontext.currentdocumentculture.culturecode%}, не равной выбранной культуре представления {% currentculture%}.

Я пытался: {% cmscontext.currentdocumentculture.culturecode | (notequals) {(1)% currentculture% (1)}%}

Но это решается как истинное, независимо от того, какая культура была выбрана. Есть идеи?

1 Ответ

0 голосов
/ 19 июня 2011

Это зависит от того, какую версию Kentico вы используете .

Если вы используете 5.5+, , у вас есть возможность использовать Nested Macros .Вот цитата Мартина Хейтманека об этом:

Если вы работали с более сложными макросами, вы знаете, что можете использовать что-то вроде этого:

{% DocumentName | (равно)Home | (truevalue) {? Param?}%} Но вы не можете сделать что-то подобное в 5.0:

{% DocumentName | (равно) Home | (truevalue) {% param%}%}

Разница заключается в типе макросов.По соображениям производительности (более быстрая обработка) мы не разрешали вложение макросов одного и того же типа, поэтому мы можем сделать регулярное выражение макросов максимально простым.

В версии 5.5 есть возможность решить эту проблему.Мы предлагаем использовать связанные скобки, чтобы разрешить вложение макросов одного и того же типа, пример объясняет это лучше всего:

{% DocumentName | (равно) Home | (truevalue) {(1)% param% (1)}%}

Что вы делаете, вы можете поместить число между скобкой макроса и символом типа, чтобы вам было легче увидеть, где находится конец вашего выражения, а также возможность обработчикувидеть это правильно.Число не имеет никакого информационного значения, это просто число, чтобы обнаружить совпадение.Это может быть любое неотрицательное целое число.

Итак, ранее вы могли вкладывать макросы разных типов - например: вы могли бы вкладывать макрос Path в макрос Expression.Но теперь в версии 5.5 вы можете вкладывать макросы того же типа.

Cheers, Lance

...