在Orchard CMS中的列表备用项视图中显示媒体库选取器字段图像

时间:2013-08-24 13:17:05

标签: asp.net-mvc orchardcms

所以标题几乎都说明了。

我使用的是Orchard CMS v1.7。我创建了自己的内容类型(产品类别) - 这与页面基本相同,但也有一个额外的字段(媒体库选择器字段),允许我选择并显示单个图像 - 这将显示在两个列表项视图以及主页面内容。

我使用投影页面来显示所有内容类型“ProductCategories”。这很好,并且符合预期。

我现在想要在查看投影页面时在ProductCategories列表中的每个项目中显示此附加图像。

使用形状跟踪我为列表项创建了一个替代项。

默认情况下,如下所示:

    @using Orchard.Utility.Extensions;
@{
    if (Model.Title != null) {
        Layout.Title = Model.Title;
    }

    Model.Classes.Add("content-item");

    var contentTypeClassName = ((string)Model.ContentItem.ContentType).HtmlClassify();
    Model.Classes.Add(contentTypeClassName);

    var tag = Tag(Model, "article");
}
@tag.StartElement
    <header>


        @Display(Model.Header)

        @if (Model.Meta != null) {
            <div class="metadata">
                @Display(Model.Meta)
            </div>
        }
    </header>
    @Display(Model.Content)
    @if(Model.Footer != null) {
        <footer>
            @Display(Model.Footer)
        </footer>
    }
@tag.EndElement

我现在卡住了 - 我不知道如何显示与此项目相关联的图像。

我逐步检查我的代码,检查传递到我的自定义列表项视图中的Model的内容,并发生奇怪的事情......

加载模型时,里面没有ListLogo。 - 看第一张快照..

- Notice there is no ListLogo within the object -

但是,我现在可以在对象上找到我@if (Model.Meta != null)的{​​{1}},但它仍然是空的 - 就像在此快照中一样。

- i now have ListLogo though it's empty -

如何显示与此内容项关联的图像 - 也只有1个。

我是否需要覆盖实际列表本身的创建?如果是这样,你能指点一下吗?

提前致谢。

1 个答案:

答案 0 :(得分:5)

bah - 所以这一切都归结为我主题中的Placement.info文件。

我在Fields_MediaLibraryPicker内添加了对DisplayType="Summary"的引用,它就像一个魅力。

E.G我的主题中的placement.info对我列表中的项目有这个

<Match DisplayType="Summary">
    <Place Parts_Common_Metadata_Summary="-"/>
    <Place Parts_Title="-"/>
    <Place Fields_MediaLibraryPicker="Content:1" /> <!-- this adds the field.. -->       
</Match>