我目前正在尝试更多地了解Orchard如何处理自定义内容类型列表,我遇到了一些问题。
我创建了一个名为故事的内容类型,其中包含以下部分:
我创建了一个包含这些项目的列表,我试图做的就是以这样的方式设置它们:
Story Title
Story Description (Basically a truncated version of the body?)
但是,我似乎无法弄清楚如何执行以下操作:
我已经考虑过更改Placement.info,并试图查找每个项目中添加“更多”链接的位置。任何帮助将不胜感激。
答案 0 :(得分:3)
我终于弄清楚了 - 感谢Designer Tools Module,这让我们可以非常简单地了解页面生成期间幕后发生的事情。
基本上 - 完成此任务所需的只是对 Parts.Common.Body.Summary.cshtml 文件进行一些小的更改。 (通过../ Core / Common / Views / 找到)
最初类似于以下内容:
@{
[~.ContentItem] contentItem = Model.ContentPart.ContentItem;
string bodyHtml = Model.Html.ToString();
var body = new HtmlString(Html.Excerpt(bodyHtml, 200).ToString()
.Replace(Environment.NewLine,"</p>"+Environment.NewLine+"<p>"));
}
<p>@body @Html.ItemDisplayLink(T("more").ToString(), contentItem)</p>
然而,通过进行一些更改(使用Designer工具),我将其更改为以下内容:
@{
[~.ContentItem] contentItem = Model.ContentPart.ContentItem;
string bodyHtml = Model.Html.ToString();
string title = Model.ContentPart.ContentItem.RoutePart.Title;
string summary = Html.Excerpt(bodyHtml, 100) + "...";
}
<div class='story'>
<p>
@Html.ItemDisplayLink(title, contentItem)
</p>
<summary>
@summary
</summary>
</div>
虽然它可以很容易地缩短一点 - 它确实使得造型更容易处理。无论如何 - 我希望这会有所帮助:)
答案 1 :(得分:2)
或者,您可以使用主题中的placement.info文件为“摘要”和“详细信息”视图指定不同的字段。它简单得多。
http://orchardproject.net/docs/Understanding-placement-info.ashx
但是,在我发现.info文件之前,我使用了相同的方法。它可以工作并让您很好地理解系统的工作原理,但placement.info文件似乎更容易。
此外,您可能不希望在Core中编辑视图文件。我认为您的意思是覆盖主题目录中的视图。