在博客摘要页面(列出您的博客文章的页面)上,我可以在每篇博客文章中显示更多的文本。
这可能吗?我在设置中的任何地方都看不到它,并且由于某种原因,形状跟踪不能让我看到模板是什么。
在博客摘要页面(列出您的博客文章的页面)上,我可以在每篇博客文章中显示更多的文本。
这可能吗?我在设置中的任何地方都看不到它,并且由于某种原因,形状跟踪不能让我看到模板是什么。
我最近需要在 Orchard v1.6 上做同样的事情。您正在使用形状跟踪,因此您将朝着正确的方向前进。替代品和安置的果园文件涵盖了这一点。在Tony Johnson 的 Argument Exception Blog上有一个很好的这种修改的例子。
根据菲尔的回答,您需要修改当前主题中的placement.info 以使用这样的替代视图;
<Match ContentType="BlogPost">
<Match DisplayType="Summary">
<Place Parts_Common_Body_Summary="Content:5;Alternate=Parts_BlogPostSummaryBody"/>
</Match>
</Match>
然后在主题的视图文件夹中添加一个名为“Content-BlogPost.Summary.cshtml”的替代部分;
@using Orchard.ContentManagement.ViewModels
@using Orchard.ContentManagement
@using Orchard.Core.Common.Models
@{
ContentItem item = Model.ContentItem;
string title = Model.Title.ToString();
BodyPart bpItem = item.As<BodyPart>();
string linkUrl = Url.ItemDisplayUrl(item);
}
<h4>@Html.ItemDisplayLink(title, item)</h4>
<div class="publishinfo">@Model.ContentItem.CommonPart.PublishedUtc by @Model.ContentItem.CommonPart.Owner.UserName</div>
<div>
<p>@Html.Raw(@bpItem.Text)</p>
</div>
通过阅读其他帖子,我发现负责此的视图是Parts_Common_Body_Summary。所以我从 orchard 的 core / common 文件夹中复制了它,并将其复制到我的主题视图文件夹中,然后将其重命名为Parts_Blog_Summary
然后我在Placement.info中为此设置了一个规则,如下所示:
<Match ContentType="BlogPost">
<Match DisplayType="Summary">
<Place Parts_Common_Body_Summary="Content:after;Alternate=Parts_Blog_Summary"/>
</Match>
</Match>
这只是让我在新的备用视图中更改字符串长度的任务:
var body = new HtmlString(Html.Excerpt(bodyHtml, 350).ToString().Replace(Environment.NewLine, "</p>" + Environment.NewLine + "<p>"));