2013-03-05 7 views
6

ブログの概要ページ - あなたのブログの投稿を掲載しているページ - 私は、各ブログ投稿から少しのテキストを見せることができます。オーチャードブログの概要テキスト

これは可能ですか? 私は設定のどこにでもそれを見ることができませんし、何らかの理由で形状トレースは私にテンプレートが何であるかを見せてくれるものではありません。

答えて

4

他の投稿を読んで、私がこれを担当しているビューがParts_Common_Body_Summaryであることを発見しました。だから私は、果樹園のコア/共通フォルダーからこれをコピーして自分のテーマに渡ってそれをコピーした私は、セットアップ、このためのルールをPlacement.infoに次のようにParts_Blog_Summary

を名前を変更する前に、フォルダを表示します:私はOrcharに最近同じことを行うために必要な

var body = new HtmlString(Html.Excerpt(bodyHtml, 350).ToString().Replace(Environment.NewLine, "</p>" + Environment.NewLine + "<p>")); 
5

<Match ContentType="BlogPost"> 
<Match DisplayType="Summary"> 
     <Place Parts_Common_Body_Summary="Content:after;Alternate=Parts_Blog_Summary"/> 
</Match>  
</Match> 

これはちょうど私に新しい別のビュー内の文字列の長さを変更するタスクを左にd v1.6。シェイプトレースを使用しているので、正しい方向に進むことができます。 orchard documentation for alternatesplacementはこれをカバーしています。 Tony Johnson's Argument Exception Blogにこの種の修正の良い例があります。

Philの回答によれば、あなたの現在のテーマの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>