2016-03-07 2 views
1

Я пытаюсь использовать Placement.info вместо перезаписи полного шаблона контента, и мне нужно, чтобы часть (Parts_Title) отображалась в зоне содержимого и в зоне заголовка. Я думал, что у меня есть два места с тем, что Part в файле Placement.info будет делать трюк, но кажется, что последний выигрывает.Duplicate the orchard part

Есть ли способ сделать это? Я использую сад 1.9.1.0

Редактировать 2016-03-16 следующий ответ Александра:

Там что-то я должен делать неправильно; У меня есть тип контента, созданный на панели управления (без кода) под названием OffreEmploi. Я использую Content-OffreEmploi.cshtml в качестве альтернативы. Вот код:

@using Orchard.ContentManagement.Utilities; 
@Display(Model.Header); 
@Display(Model.Content); 
@Display(Model.LocalZoneName); 

и вот мой placement.info

<Match ContentType="OffreEmploi">  
    <Place Fields_DateTime-DateDebut="Header:2"/> 
    <Place Fields_Common_Text-Duree="Header:3"/> 
    <Place Fields_Common_Text-Localisation="Header:4"/> 
    <Place Fields_Boolean-Temporaire="Header:5"/> 
    <Place Fields_DateTime-DateExpiration="Header:6"/> 
    <Place Parts_Common_Metadata="-"/>  
    <Place Fields_Common_Text-TexteIntroduction="Content:1"/>   
    <Place Parts_Title="Header:1" /> 
    <Place Parts_Common_Body="Content:3" /> 
    <Place Parts_Title="LocalZoneName:1" /> 
    </Match> 

часть Parts_Title предоставляется только в конце (в LocalZoneName)

ответ

1

Placement.info позволяет указать одного место, чтобы поместить свою часть В этом причина того, что вы видите - последняя запись выигрывает (LocalZoneName:1). И вот здесь находится контент вашей части - LocalZoneName.

Что Александр был на самом деле указывает и то, что обычное решение этой проблемы (не редкость) сценарий использовать отдельную, уникальную зону поставить свою роль в, и сделать что зона несколько раз, т.е. .:

@using Orchard.ContentManagement.Utilities; 
@Display(Model.LocalZoneName); 
@Display(Model.Header); 

@Display(Model.LocalZoneName); 
@Display(Model.Content); 

Это сделает вашу LocalZoneName (который теперь containes части названия), которая будет предоставляться в два раза - до Header и Content зон.

2

Вы не можете это сделать используя только placement.info. Лучшим способом отображения части контента в два раза является использование специальной локальной зоны для этой части контента:

  1. Создать альтернативный вариант для Контента. Отображение зоны дважды в этом альтернативном с помощью @Display(Model.LocalZoneName)
  2. Используйте, что локальная зона в placement.info оказывать свою часть внутри него Parts_Title="LocalZoneName:1"
Смежные вопросы