2017-09-12 23 views
0

Umbracoのサイトにブログのセクションがあり、各ブログのアイテムからすべてのタグを取得し、リストにまとめてデリゲートしないようにすることで、タグリストをフィルタとして使用できます。Umbracoで子どもたちのタグを組み合わせる

私はフィールドtagsListを持っているタグが私のBlogItemのDOCTYPEで

<ul id="blogTags" class="inline-list"> 
    <li class="tag-item"><a href="#">Tag 1</a></li> 
    <li class="tag-item"><a href="#">Tag 2</a></li> 
    <li class="tag-item"><a href="#">Tag 3</a></li> 
    <li class="tag-item"><a href="#">Tag 4</a></li> 
</ul> 

を一覧表示されますこのセクションを持っているエディタを入力できるタグのカンマ区切りのリスト。

基本的に私はすべてのBlogItemsからすべてのタグを取得し、それらをdublicateが削除されたリストに結合したいと考えています。

var blogItems = Umbraco.TypedContent(Model.Content.Id).Children.Where(x => x.DocumentTypeAlias == "BlogItem" && x.IsVisible()); 

をしかし、私は、すべてのタグを取得する組み合わせとdublicatesを削除する方法を確認していない:

私が使用しているすべてのブログのアイテムを取得しています。

+0

どのようなタイプの 'tagsList' - テキスト文字列か? –

+0

tagsListはテキスト文字列です –

答えて

0

タグを保存するためのハッシュセットを作成し、それを追加するためにforeachを使用します。

ので、あなたのような何かを行うことができます。

HashSet<string> uniqueTagList = new HashSet<string>(); 

var blogItems = Umbraco.TypedContent(Model.Content.Id).Children.Where(x => x.DocumentTypeAlias == "BlogItem" && x.IsVisible()); 

var tags = blogItems.Select(x => x.GetPropertyValue<string>("tagsList")); 

foreach(var tag in tags) 
{ 
    var splitTag = tag.Split(','); 
    foreach(var singleTag in splitTag) 
    { 
     uniqueTagList.Add(singleTag); 
    } 
} 

、あなたのuniqueTagListはあなたが

<ul id="blogTags" class="inline-list"> 
    @foreach(var tag in uniqueTagList) 
    { 
     <li class="tag-item"><a href="#">@tag</a></li> 
    } 
</ul> 

あなたのリストを作成していますが、持っている場合ということを用心するために使用できるすべてのタグのリストです。子供の多くは、これは時間がかかることがあります。 、あなたはUmbracoのタグ付けのコントロールに組み込まれて使用することができ、むしろカンマ区切りリストより

https://shermandigital.com/blog/display-umbraco-tags-on-razor-templates/

https://shermandigital.com/blog/get-umbraco-content-by-tag/

0

は、だから私はこのような何かを行うには、チェックアウトUmbracoタグデータタイプをお勧めしますそれはあなたが何をしているのかを可能にするはずです。

特定のグループなどのタグを取得するためのAPIメソッドがあります。ブログの投稿に割り当てることができる「ブログ」というグループを持つタグプロパティエディタを設定することができます。 Tags APIを使用して、そのグループのすべてのユニークタグを取り出してクラウドを構築することができます。

関連する問題