Как визуализировать зону или виджет из альтернативы Orchard?

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

введите здесь описание изображения

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

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

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

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

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


person Ragesh    schedule 16.03.2012    source источник


Ответы (1)


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

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

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

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

Теперь каждый раз при отображении любого поста в блоге будет также отображаться виджет архивов.

person Piotr Szmyd    schedule 16.03.2012
comment
Потрясающий. Где я могу узнать все эти вещи об Орчарде? Чем глубже я погружаюсь, тем большему предстоит научиться. :) - person Ragesh; 16.03.2012
comment
Документы и практический опыт - лучший способ пойти :) - person Piotr Szmyd; 16.03.2012
comment
Взгляните на код существующих модулей, которые делают интересные вещи. - person Bertrand Le Roy; 16.03.2012