2015-12-02 2 views
2

У меня есть таксономический термин, который я использую для отображения ряда связанных типов контента на моем сайте (Продукты, записи в блогах и т. Д.).Rendering CollectionItems для нескольких зон

Я создал Alternate для отображения Term, но коллекция ContentItems содержит несколько типов контента (записи в блогах, продукты и т. Д.).

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

В настоящее время я повторяю сборку ContentItems и фильтрацию по ContentType, но можно ли использовать Placement.info для отображения деталей в нескольких зонах?

Или еще лучше контролировать, какие ContentTypes в коллекции ContentItems должны отображаться, в каких зонах?

Извините за многословные вопросы - обращайтесь, если он нуждается в дальнейшем объяснении

+0

Это будет сложно с поисковым вызовом. Я думаю, что прогнозы могут быть вашей безопасной ставкой – devqon

+0

@devqon Можно ли передавать параметры в прогнозы? Итак, добавьте BlogPosts в качестве проекционного виджета, а затем отфильтруйте контент на основе таксономического термина? 'Звучит как хорошая идея! :) – ed13

+0

Да, вы можете использовать маркеры в проекциях, чтобы вы могли получить «текущий идентификатор Term Id», а затем фильтровать типы контента определенного типа и текущего термина. Тогда вы можете разместить эти разные виджеты, где хотите – devqon

ответ

0

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

<Match ContentType="BlogPost"> 
    <Match Path="/MyTaxonomy/*"> 
    <Match DisplayType="Summary"> 
     <Place Parts_Title_Summary="/RelatedBlogs:1"/> 
    </Match> 
    </Match> 
</Match> 

Примечание к /, что означает, что он помещается в глобальную зону (Layout.cshtml). В этом файле добавить:

@if (Model.RelatedBlogs != null) 
{ 
    @Zone(Model.RelatedBlogs) 
} 

Это оставит позади <li> в коллекции ContentItems. Моя работа создает TermPart- [MyTaxonomy] Term.cshtml и оставляет его пустым, но это работает только в том случае, если вы не оставляете никаких элементов контента позади.

В качестве примечания, я добавил в Match Path, не тестируя его так, надеюсь, что это работает. Перед добавлением пути сопоставления я столкнулся с проблемой, когда заголовок блога отправляется в эту зону всякий раз, когда отображается сводка блога.

+0

Мне бы хотелось услышать, если у вас возникнут проблемы с этим или какие-либо улучшения. Я использую этот метод в своем текущем проекте, но не полностью его реализовал. – wentz

+0

Я забыл добавить, что место размещения должно находиться в глобальной зоне, поэтому я отредактировал свой ответ. – wentz

+0

Спасибо @wentz Я дам вам попытку и дам вам знать. У вас было это работать с пейджингой? – ed13

 Смежные вопросы

  • Нет связанных вопросов^_^