Kentico8 - Показать / скрыть веб-часть или трансформацию в зависимости от пути

На нашем сайте у нас есть логотип сверху. Я хочу следующее:

Если путь к веб-сайту начинается с: 'www.website.com/books', логотип должен быть 'books.png'. Если путь к веб-сайту начинается с что-то еще, это должен быть logo.png.

Логотип загружается в веб-часть повторителя. Я могу настроить видимость веб-части books.png следующим образом:

{%NodeAliasPath.StartsWith("/books/")#%}

Что работает. Логотип появляется, если я захожу, скажем, на сайты website.com/books и Website.com/books/harry-potter, но мне нужен обычный логотип на любом другом сайте.

  • Сначала я попытался сделать какой-то оператор If в преобразовании самого повторителя. Таким образом, мне понадобится только одна веб-часть, которая меняет содержимое в зависимости от пути. Но похоже, что Kentico не разрешает операторы If внутри трансформации. Я все еще предпочитаю такой вариант, так как он кажется мне более чистым.

  • Другой вариант: я делаю два повторителя, один с обычным logo.png, а другой с books.png. Но как мне скрыть logo.png, если путь начинается с /books?

  • Или, если у кого-то есть другое решение этой проблемы, дайте мне знать :)

Спасибо.


person Timbob    schedule 16.08.2016    source источник


Ответы (1)


Самый простой вариант — просто иметь 2 повторителя или веб-части для этого, чтобы их было легко увидеть на вкладке «Дизайн».

Ваш макрос видимости для /books должен быть:

{% CurrentDocument.NodeAliasPath.ToLower().Contains("/books") %}

А для другой веб-части вы должны ввести:

{% !CurrentDocument.NodeAliasPath.ToLower().Contains("/books") %}
person Brenden Kehren    schedule 16.08.2016
comment
Вы хотите StartsWith, а не содержит. - person speciesUnknown; 06.01.2018