Макет на основе страницы - OrchardCMS - PullRequest
8 голосов
/ 22 июля 2011

Я столкнулся с проблемой при использовании Orchard, для которой, я уверен, должно быть довольно простое исправление / решение, но я еще не нашел его.

Я пытаюсь установить область содержимого определенной шириныдля моей домашней страницы (580 пикселей) и большей ширины для страниц контента (800 пикселей).

Layout.cshtml Фрагмент:

    <div id='content'>
        @Zone(Model.Content)
    </div>

Стиль:

    #Content
    {
        [...]
        width: 580px;
    }

В настоящее время - div Content охватывает всемоего контента независимо от страницы (домашней страницы или контента).Мне интересно, можно ли использовать другой div для переноса содержимого на основе страницы, как показано:

Layout.cshtml Идея:

@if(Model.Page != "Home")
{
    <div id='fullcontent'>
        @Zone(Model.Content)
    </div>
}
else
{
    <div id='content'>
        @Zone(Model.Content)
    </div>
}

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

Ответы [ 3 ]

13 голосов
/ 23 июля 2011

Вы можете использовать модуль Designer Tools (встроенный во все последние версии Orchard) и включить функцию альтернатив URL. После этого вы сможете создать альтернативу layout-url-homepage.cshtml для вашего макета.

2 голосов
/ 25 июля 2011

Вы можете использовать модуль выбора макета, чтобы назначить собственный макет любому элементу контента.

http://gallery.orchardproject.net/List/Modules/Orchard.Module.Orchard.DesignerTools

1 голос
/ 22 июля 2011

Вы можете использовать модуль Vandelay.Classy для добавления пользовательских тегов на страницу, представляющую вашу домашнюю страницу, хотя он добавляет много полей в редактор содержимого страницы.

...