Я создаю сайт Orchard с темой, созданной художником-графиком, который ничего не знает об Orchard. Подключить это довольно просто, однако то, как он его построил, предлагало конечному пользователю несколько различных вариантов, которые я пытаюсь воспроизвести, желательно без создания специального модуля. Он построил шаблон так, что включил четыре разных типа макета: 50/50, 33/67, 67/33 и 100% (этот вариант работает благодаря Model.Content).
Пример графического представления:
50/50
=================================================================================
| | |
| <Left bar with HTML content> | <Right bar with HTML content> |
| | |
=================================================================================
33/67
=================================================================================
| | |
| <Small Left w/HTML> | <Large Right w/HTML> |
| | |
=================================================================================
(и так далее..)
Основываясь на том, что я могу сказать, в Orchard есть способы создания различных типов контента с опцией «Body» (поэтому у меня может быть редактор HTML), но я не могу понять, как создать один из них с двумя HTML. редакторы, чтобы у меня была одна маршрутизируемая страница с двумя зонами, на которые она может повлиять. Внутри Layout.cshtml мой пример привязки двухколоночного макета будет таким:
@if (Model.SplitLeft != null && Model.SplitRight != null) {
@* 50/50 split view *@
<div class="col_12">
<div class="col_6 clearleft padding_top_15">
@Zone(Model.SplitLeft)
</div>
<div class="col_6 omega">
@Zone(Model.SplitRight)
</div>
</div>
}
Я знаю, что виджеты имеют возможность указывать зоны, но я стараюсь избегать этого, потому что они не делают его интуитивно понятным для конечного пользователя при попытке создать двухколоночный макет, который им нужно добавить два виджета, применить их к определенным зонам на определенных слоях, изменять правила слоев и т. д. На сайте будет 40-50 страниц, которые могут быть любого из четырех типов, указанных выше, поэтому управление ими с помощью слоев/виджетов будет очень сложным. Кроме того, он также не позволяет использовать модель публикации/отмены публикации, которую, как я гарантирую, хотел бы мой клиент.
Я, конечно, могу создать модуль для этого, если мне нужно, но что-то подсказывает мне, что Orchard уже поддерживает это, и я просто что-то упустил в том, как его настроить.
Предложения?
Редактировать. Я немного подумал об использовании альтернатив, но не смог понять, как создать тип контента, под которым будут два других типа (например, левое/правое представление для редактора HTML). Вероятно, самым большим препятствием является то, что мне нужно, чтобы два HTML-редактора отображались на главном экране редактирования, чтобы пользователю было очевидно, что есть что (например, SmallLeft/LargeRight, LargeLeft/SmallRight, 50/50 Split), поэтому создание страницы интуитивно понятно.
Parts_Fields_Common_Text-LeftSide
, аFields_Common_Text-LeftSide
(безParts_
). Обратите внимание, что это будет соответствовать локальным зонам (зоны внутри вашего шаблонаContent-SplitPage.cshtml
, показанные@Display(Model.SplitLeft)
). Если вам нужно разместить в глобальных зонах (внутри шаблонаLayout.cshtml
) вам нужно поставить знак/
перед названием зоны (например:<Place Fields_Common_Text-LeftSide="/SplitLeft" />
) 21.03.2013/Core/Common/Views/Fields.Common.Text.cshtml
. Он отображается какFieldName: HtmlContent
. Вы должны скопировать этот файл в папкуViews
вашей темы и изменить его в соответствии с вашими потребностями. 22.03.2013