1

我目前正在尝试更多地了解 Orchard 如何处理自定义内容类型列表,但我遇到了一些问题。

我创建了一个名为Story的内容类型,它包含以下部分:

  • 身体
  • 常见的
  • 可容纳
  • 路线

我创建了一个包含这些项目的列表,我要做的就是以这样的方式设置它们的样式:

Story Title
Story Description (Basically a truncated version of the body?)

但是,我似乎无法弄清楚如何执行以下操作:

  1. 让标题实际出现目前出现的只是正文和更多链接
  2. 删除“更多”链接并将其更改为实际标题

我已经研究过更改 Placement.info,并查看了所有内容,试图找到在每个项目中添加“更多”链接的位置。任何帮助将不胜感激。

4

2 回答 2

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>

但是通过进行一些更改(通过使用设计器工具),我将其更改为以下内容:

@{ 

[~.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>

虽然它可以很容易地缩短一点 - 它确实使样式更容易处理。无论如何-我希望这会有所帮助:)

于 2011-07-21T20:41:41.563 回答
2

或者,您可以使用主题中的placement.info 文件将不同的字段分配给您的摘要和详细信息视图。这要简单得多。

http://orchardproject.net/docs/Understanding-placement-info.ashx

但是,在我发现 .info 文件之前,我使用了与您相同的方法。它可以工作并使您很好地了解系统的工作原理,但placement.info 文件似乎更容易。

此外,您可能不想在 Core 中编辑视图文件。我认为您的意思是覆盖主题目录中的视图。

于 2011-07-21T21:15:53.813 回答