1

私は現在、オーチャードがカスタムコンテンツタイプのリストをどのように処理するかについてもう少し理解しようとしていますが、少し問題が発生しました。

Storyという名前のコンテンツタイプを作成しました。これには次の部分があります。

  • 一般
  • 封じ込め可能
  • ルート

私はこれらのアイテムを保持するリストを作成しました、そして私がしようとしているのはそのような方法でそれらをスタイルすることだけです:

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

しかし、私は次の方法を理解できないようです。

  1. 実際に表示されるタイトルを取得します現在表示されるのは本文とその他のリンクだけです
  2. 「詳細」リンクを削除しますこれを実際のタイトルに変更します

Placement.infoの変更を検討し、各アイテムの「詳細」リンクが追加されている場所を見つけるために全体を調べました。どんな助けでも大歓迎です。

4

2 に答える 2

3

私はついにそれを理解することができました-ページ生成中に舞台裏で何が起こっていたかを調べるのを非常に簡単にしたDesignerToolsModuleのおかげです。

基本的に、これを実現するために必要なのは、 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 Toolsを使用して)いくつかの変更を加えることにより、次のように変更します。

@{ 

[~.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 に答える