3

所以标题几乎说明了一切。

我正在使用 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。- 见第一张快照..

- 注意对象内没有 ListLogo -

然而,当我通过@if (Model.Meta != null)我的那一刻,ListLogo现在可以在对象上找到它,但它仍然是空的 - 就像在这个快照中一样。

- 我现在有 ListLogo 虽然它是空的 -

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

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

提前致谢。

4

1 回答 1

5

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

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

EG 我的主题中的placement.info 在我的列表中有一个项目

<Match DisplayType="Summary">
    <Place Parts_Common_Metadata_Summary="-"/>
    <Place Parts_Title="-"/>
    <Place Fields_MediaLibraryPicker="Content:1" /> <!-- this adds the field.. -->       
</Match>
于 2013-08-24T15:32:15.953 回答