所以标题几乎都说明了。
我使用的是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
。 - 看第一张快照..
但是,我现在可以在对象上找到我@if (Model.Meta != null)
的{{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>