Orchard CMS — тематика

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

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

Главная страница — Контент, TripelFirst, TripelSecond, TripelThird
Концепция и страница Аренда — Контент, AsideFirst, AsideSecond
Пресса и страница Отдел обслуживания — Content, AsideFirst, AsideSecond (макет отличается от предыдущих двух страниц)

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

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

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

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

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


person wegelagerer    schedule 31.03.2011    source источник


Ответы (3)


  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, который вы можете переопределить в своей теме.

person Bertrand Le Roy    schedule 31.03.2011
comment
Большое тебе спасибо! Я попробую завтра, но, поскольку вы один из разработчиков Orchard, качество ответа не вызывает сомнений. Могу ли я предложить специализированный форум для Orchard, поскольку сообщество растет. Когда я получу некоторый опыт в создании тем, я напишу учебник. - person wegelagerer; 01.04.2011
comment
@Hrvach Хм, я действительно думаю, что stackoverflow был бы идеальным местом для обсуждения фруктового сада, форумы codeplex - это не весело, а список рассылки хорош, но может раздражать, когда такие электронные письма поддержки отправляются в почтовые ящики людей. Было бы неплохо иметь небольшую ссылку на orchardproject.net на SO. - person gideon; 01.04.2011
comment
@giddy: хотите верьте, хотите нет, но более двух лет назад, когда проект был в зачаточном состоянии, мы связались с Джеффом и спросили его, можем ли мы сделать именно это, и он настоятельно отговаривал нас от этого. Короче говоря, я надеюсь, что не исказил его, сказав, что он не считает уместным использование SO в качестве официального форума для любого продукта. Тем не менее, более чем нормально задавать вопросы здесь, если хотите, мы следим за тегом orchardcms, а также за обсуждениями на CodePlex. - person Bertrand Le Roy; 13.05.2011

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

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

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

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

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

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

person gideon    schedule 31.03.2011

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

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

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

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

    $(document).ready(function{ $('body').addClass('SomeClass'); });

person runxc1 Bret Ferrier    schedule 31.03.2011