Как я могу параметризовать шаблон Umbraco? - PullRequest
0 голосов
/ 23 марта 2011

У меня есть сайт Umbraco

... с различными типами документов, например ::100100

  • страница
  • публикации
  • событие
  • Новости

... и различные шаблоны, например ::

  • дом
  • содержание
  • содержание с перечислением
  • контент со встроенным носителем (например, видео на YouTube)

В шаблоне у меня есть несколько дополнительных макросов / виджетов. Например, иногда на странице с шаблоном «content» отображается виджет «search site», а иногда - нет. Будет ли конкретный виджет отображаться на определенной странице, будет контролировать администратор CMS (который не является разработчиком).

Добавление шаблона для каждой комбинации виджетов не вариант: если шаблон «контента» имеет дополнительные виджеты W1, W2, W3, то мне в конечном итоге понадобится создать шаблон для каждого члена powerset тех виджеты - т.е. мне придется умножить количество шаблонов, которые у меня есть, на 8 (2 ^ n) только для 3 дополнительных виджетов (для реального сайта будет более 3 дополнительных виджетов).

Так что я хотел бы включать и выключать отображение виджетов, основываясь на параметре, заданном пользователем в бэкэнде Umbraco. Фактическое включение и выключение очень простое - я просто добавлю оператор "if (widgetX_is_turned_on)" в свой пользовательский элемент управления.

Но, насколько я могу судить, я могу добавлять свойства только к типам документов, а не к шаблонам. Я бы предпочел не добавлять свойство для переключения каждого виджета в мой корневой тип документа, потому что многие из этих переключателей / свойств в конечном итоге ничего не сделают, если шаблон, связанный с документом, не разрешает определенный виджет. Например, если я создаю «страницу» документа с именем «Пример страницы» с типом документа «содержимое», то переключение / свойство «Отображать виджет сайта поиска» ничего не будет делать, если шаблон «содержимое» фактически не разрешает отображение виджета "поиск по сайту".

Существует ли аккуратный и аккуратный способ параметризации шаблона, чтобы я мог включать и выключать макросы / виджеты для отдельных документов?

1 Ответ

1 голос
/ 23 марта 2011

По сути, вы создаете отдельные типы документов для ваших виджетов, а затем связываете их с вашим контентом.Вы даже можете наследовать виджеты от родительских документов, если виджет не был выбран для текущей страницы.

Хорошее объяснение этой концепции можно найти в этом блоге: http://blog.hendyracher.co.uk/sidebar-widgets-with-umbraco-v4/

...