如何在Orchard CMS中显示List的标题?

时间:2012-09-16 02:45:44

标签: asp.net-mvc razor orchardcms

我已经在Orchard中接管了特定List的List渲染,这样我就可以在“ul”标签中添加一个新类,并在项目的开头和结尾添加两个虚拟“li”元素(需要网页设计师设计的适当的“视觉效果”)。这是覆盖模板代码:

@using Orchard.DisplayManagement.Shapes;
@{
    var list = Model.List;
    var items = list.Items;
    var count = items.Count;
    var listTag = Tag(list, "ul");
    listTag.AddCssClass("historia");
    var index = 0;
}
@listTag.StartElement
<li></li><li></li>
    @foreach (var item in items) {
        var itemTag = Tag(item, "li");
        if (index == 0) {
            itemTag.AddCssClass("first");
        }
        else if (index == count - 1) {
            itemTag.AddCssClass("last");
        }
        @itemTag.StartElement
        @Display(item)
        @itemTag.EndElement
        ++index;
    }
<li></li><li></li>
@listTag.EndElement
<div class="scroll">
    <hr />
    <p>
    <input type="button" value="back" />
    </p>
    <div class="dot"></div>
    <div class="dot"></div>
    <div class="local"></div>
    <div class="dot"></div>
    <div class="dot"></div>
    <p>
    <input type="button" value="next" />
    </p>
</div>
@Display(Model.Pager)

现在我正在尝试显示List的标题,我注意到它既没有显示我的自定义渲染也没有显示标准的List渲染例程。我已经尝试将这几个选项添加到布局中,现在可以使用:

<h1>@Model.Title</h1>
@Display(Model.Header)
@Display(Model.Title)
@Display(Model.List.Header)
@Display(Model.List.Title)
<h1>@Model.Header.Items[0].Title</h1>

没有任何成功!我错过了什么? (当然这是一个新手问题: - )

1 个答案:

答案 0 :(得分:0)

我简直不敢相信我忘了检查Placement.info文件!在我看来,所有placement.info文件的集体总和是Orchard主题的圣杯!

Orchard.Web \ Modules \ Orchard.Lists \ Placement.info文件如下所示:

<Placement>
    <!-- available display shapes -->
    <!--
        Parts_Container_Contained_SummaryAdmin
    -->
  <Match ContentType="List" DisplayType="Detail">
    <!-- don't show the List title or Common Metadata -->
    <Place Parts_Title="-" />
    <Place Parts_Common_Metadata="-" />
  </Match>
  <Match DisplayType="SummaryAdmin">
    <Place Parts_Container_Contained_SummaryAdmin="Actions:10"/>
  </Match>
</Placement>

请注意,标题部分会被遗忘,并带有“ - ”特殊位置?

我所要做的只是在主题的展示位置信息上覆盖它:

  <Match ContentType="List" DisplayType="Detail">
    <Place Parts_Title="Header:2>" />
  </Match>

我告诉过你这是一个noobie问题!毕竟我能够自己回答它!很抱歉这个愚蠢的问题困扰着社区!