Как визуализировать зону или виджет внутри чередующегося фруктового сада? - PullRequest
2 голосов
/ 16 марта 2012

Я пытаюсь воспроизвести этот макет в саду. Пока что большинство вещей проработано с помощью альтернативы для моего поста (Content-BlogPost.Detail.cshtml). Проблема в том, что созданный мной макет выглядит примерно так:

enter image description here

Мой первый вопрос: имеет ли этот макет смысл? Есть ли лучший способ для достижения этого результата (то есть, отображение архивов в соответствии с содержимым)?

Во-вторых, есть ли способ визуализации зоны (или виджета) из моего запасного? Я попытался сделать @Display(Model.Archives), где Archives - это имя моей зоны, но, очевидно, модель детализации блога не определяет свойство Archives. Я также подумал о том, чтобы вручную вызвать форму архива блога, например

@Display(New.Parts_Blogs_BlogArchives(new { Blog: blog, Archives: ???})

Но я не знаю, как заполнить этот второй аргумент.

Как правильно сделать этот макет в Orchard?

1 Ответ

7 голосов
/ 16 марта 2012

Основная проблема с этим макетом состоит в том, что зона Archives размещается внутри разметки для сообщения блога. Это усложняет рендеринг, но не делает невозможным.

Решением будет визуализация всей зоны макета внутри альтернативы, как вы и сказали. Вы можете отобразить основные зоны макета верхнего уровня из любой фигуры, например так: @Display(Layout.Archives). Layout - это свойство, которое дает вам доступ к основной форме макета.

Я бы сделал это так:

  1. Добавьте зону с именем Archives в файл манифеста Theme.txt (раздел Zones), который будет заполнителем для виджета архивов блога. Убедитесь, что вы не отобразите его в Layout.cshtml файле. Эта зона предназначена исключительно для публикации в блоге (вы также можете указать это под другим именем).
  2. Создайте альтернативу фигуры для записи в блоге, как вы это сделали, и наберите Display(Layout.Archives) в соответствующем месте. Это сделает всю зону внутри разметки поста в блоге.
  3. Поместите виджет архивов блога в зону Архивы.

Теперь при каждом отображении любого сообщения в блоге он также отображает виджет архивов.

...