Orchard CMS - тематика - PullRequest
       19

Orchard CMS - тематика

5 голосов
/ 31 марта 2011

У меня есть несколько вопросов, касающихся тематики Orchard CMS. Итак, начнем ... У меня есть веб-сайт, который будет иметь 5 страниц, и некоторые из них будут иметь разный макет.

Страницы и зоны внутри нее:

Домашняя страница - Содержание, TripelFirst, TripelSecond, TripelThird
Концепция и Аренда страница - Контент, AsideFirst, AsideSecond
Нажмите и Сервисный отдел Страница - Контент, AsideFirst, AsideSecond (другой макет, чем на двух предыдущих страницах)

Примечание. Несмотря на то, что все страницы имеют зону содержимого, кроме домашней страницы, ни одна из страниц не использует ее. На других страницах есть только виджеты HTML, расположенные в одной из зон.

1) Я читал, что возможно создать макет для определенного идентификатора, проблема в том, что я не могу найти этот идентификатор для создания макета для конкретного идентификатора.

2) Как видите, пара страниц имеет одинаковый макет, как назначить их конкретному макету? Например, если я создаю макет для страницы Concept и Rentals , как я могу назначить им конкретный макет, а также как назначить макет для Нажмите и Отдел обслуживания страниц?

3) Как добавить тег класса к телу? Проблема в том, что Orchard CMS создает тело раньше всего, поэтому оно не содержится в файлах макета cshtml.

Заранее спасибо!

Ответы [ 4 ]

10 голосов
/ 01 апреля 2011
  1. при редактировании страницы в админке, URL будет выглядеть примерно так: http://localhost:30320/OrchardLocal/Admin/Contents/Edit/16

    16 - это идентификатор здесь.

  2. Несколько вещей, которые вы можете сделать.Проще всего использовать этот модуль: http://orchardproject.net/gallery/List/Modules/Orchard.Module.Downplay.Orchard.LayoutSelector

    В качестве альтернативы, вы можете программно создавать альтернативы на основе произвольных критериев: http://weblogs.asp.net/bleroy/archive/2010/12/14/switching-the-layout-in-orchard-cms.aspx

    Наконец, вы часто можете избежать создания отдельного фактическогомакет, просто изменяя, куда и куда идут виджеты, используя слои.

  3. Тег body находится в document.cshtml, который вы можете переопределить в своей собственной теме.

1 голос
/ 31 марта 2011

Так что, чтобы помочь вам здесь

  1. Идентификатор домашней страницы всегда равен 11 для новой установки, хотя я представляю, что вы можете удалить домашнюю страницу, создать новую и присвоить ей другой идентификатор. Чтобы найти идентификатор других страниц, откройте БД и посмотрите на элементы контента.

  2. Я не знаю способа применить макеты, кроме как по идентификатору, поэтому просто продублируйте страницы макета, так как у вас так мало страниц.

  3. Я бы просто использовал небольшой скрипт jQuery

    $ (документ) .ready (функция { $ ( 'Тело') addClass ( 'SomeClass'). });

1 голос
/ 31 марта 2011

1. Не знаете, что вы подразумеваете под ID? Если вы нажмете Widgets на панели инструментов, там будут слои. Слой - это набор виджетов, которые будут активированы для определенной вещи. Подобно тому, как слой, прошедший проверку, будет отображать те виджеты, которые вы определили, когда пользователь проходит проверку подлинности.

Расширяя (1) и (2), вы сможете создать новый макет, добавив виджеты в слой.

Выезд:
Правило слоя с тегами - Позволяет добавлять виджеты на основе тега. Теперь вы можете добавить страницы для концепций и прокатов , а затем указать слой для этих тегов, в пределах которого вы можете добавлять любые виджеты, которые вам нравятся. Они появятся только при обнаружении этого тега.

Также проверьте:
Правило слоя с типом контента - Не пробовал, но оно совпадает с тем.

3. Для настройки внешнего вида есть то, что называется Shapes. Каждая зона, которую я считаю , имеет соответствующие cshtml файлы. Вы даже можете использовать ShaperBuilder даже для рендеринга html в коде, опять же, не слишком много об этом знаете, но я могу вам сказать, вам нужно изучить эти статьи.

HTH, я попытаюсь связаться с некоторыми людьми из сада, которые находятся на SO.

0 голосов
/ 03 апреля 2011

Я полагаю, что его просьба может быть выполнена с помощью шаблонов зон (если для разных страниц достаточно зон).

Но я не уверен, кому я их пишу. Я знаю, что они идут под именем "Zone-ZoneName.cshtml", но я не уверен, где их разместить? В Темах / Представлениях или в Модулях / Темах / Представлениях

Поместить их в подпапку "Детали" или просто "Виды"?

Что такое примеры структуры файла для визуализации одного и того же виджета по-разному в зависимости от зоны, в которой он находится?

Спасибо

...