【问题标题】:Layout based on Page - OrchardCMS基于页面的布局 - OrchardCMS
【发布时间】:2011-07-22 14:21:32
【问题描述】:

我在使用 Orchard 时遇到了一个问题,我确信应该有一个相当简单的修复/解决方案,但我还没有找到它。

我正在尝试为我的主页(580px)建立一个特定宽度的内容区域,并为内容页面建立一个更大的宽度(800px)。

Layout.cshtml 片段:

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

风格:

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

目前 - 内容 div 包含我的所有内容,无论页面如何(主页或内容)。我想知道是否可以根据Page使用不同的div来包装内容,如图:

Layout.cshtml 思路:

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

我不确定上述建议的方法是否可行(或者我不确定如何检查当前页面) - 但如果有任何其他建议,我们将不胜感激。

【问题讨论】:

    标签: layout orchardcms styling


    【解决方案1】:

    您可以使用 Designer Tools 模块(内置所有最新的 Orchard 版本)并启用 URL 替代功能。然后,您将能够为您的布局创建一个 layout-url-homepage.cshtml 替代。

    【讨论】:

    • 这基本上是我最终采取的路线 - 设计师工具创造奇迹!我还要感谢 Bertrand,果园太棒了!
    • 我更新了这个答案的 url - 看起来图库已移动到子域但尚未实现 301 重定向
    【解决方案2】:

    您可以使用布局选择器模块将自定义布局分配给任何内容项。

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

    【讨论】:

      【解决方案3】:

      您可以使用Vandelay.Classy 模块向代表您主页的页面添加自定义标签,尽管它确实向页面内容编辑器添加了很多字段。

      【讨论】:

      • 感谢您的建议 - 我正在修改一些东西,最终我只是为此页面创建了一个单独的布局。布局_url_xxxx.cshtml。这似乎目前有效。
      猜你喜欢
      • 2020-10-21
      • 1970-01-01
      • 1970-01-01
      • 2011-06-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多