2016-08-30 3 views
1

enter image description hereオーチャードCMSを使用しています。私は私のページに2つのDIVを持っています。最初のDIVには、ブログ投稿の詳細が掲載されています。別のDIVに同じカテゴリの投稿を配置したい関連するブログ投稿を読み込むには?

どうすればいいですか?我々は、このモジュールRelated Contentを使用

protected override DriverResult Display(RelatedPostsPart part, string displayType, dynamic shapeHelper) { 
    return ContentShape("Parts_Blogs_RelatedPosts",() => { 
     // To prevent infinite loop 
     if (!displayType.Equals("Detail", StringComparison.OrdinalIgnoreCase)) { 
      return null; 
     } 

     var blogPast = part.As<BlogPostPart>(); 

     if (blogPast == null || blogPast.BlogPart == null) { 
      return null; 
     } 

     var blog = blogPast.BlogPart; 

     // You can set the count in blog post settings to be configurable 
     var blogPosts = _contentManager.Query(VersionOptions.Published, "BlogPost") 
      .Join<CommonPartRecord>().Where(cr => cr.Container.Id == blog.Id && cr.Id != part.Id) 
      .OrderByDescending(cr => cr.CreatedUtc) 
      .Slice(0, 5) 
      .Select(ci => ci.As<BlogPostPart>()); 

     var list = shapeHelper.List(); 
     list.AddRange(blogPosts.Select(bp => _contentManager.BuildDisplay(bp, "Summary"))); 

     var blogPostList = shapeHelper.Parts_Blogs_BlogPost_List(ContentItems: list); 

     return shapeHelper.Parts_Blogs_RelatedPosts(ContentItems: blogPostList, Blog: blog); 
    }); 
} 
+0

ブログ投稿にContent pickerフィールドを使用することができます –

答えて

1

それはあなたのニーズに合うと思う:あなたのシステム内のすべての記事のために、あなたは以下のドライバを使用し、その後、RelatedPostsPart呼ばBlogPostタイプに新しいパーツを取り付けることができ、動的にこれを達成するために

+0

このモジュールをオーチャードのウェブサイトに追加します。しかし、このウィジェットを編集したいときには、タグと用語フィールドはありません。なぜですか? – balouchi

+0

prtscnを送信できますか? – urbanit

+0

私の投稿を編集してprtscnを追加します – balouchi

0

+0

orchard cms.canに新しくなってしまいましたか?BlogPostに新しい部分を追加するにはどうすればいいですか?また、次のドライバを使用するにはどうすればいいですか? – balouchi

+0

[doc](http://docs.orchardproject.net/en/latest/Documentation/Writing-a-content-part/)、オーチャードのコンテンツパーツの取り扱いの詳細については、こちらをご覧ください。 – mdameer

関連する問題