2016-11-16 11 views
1

Umbracoの開発者として、私はSitecoreをかなり新しくしており、これまでUmbracoで手作業で簡単に追加できる機能の一部が非常に畳み込まれていて不十分であるように思われていますSitecoreに文書化されています。Sitecoreの複数選択ドロップダウンリスト

基本的に、私は複数の言語のサイトを持っている:

    :これらのサイトのそれぞれの下に

    • 英語
    • フランス語
    • ドイツ

    は記事のセットです

  • 英語

    • 条1
    • 条2
  • フランス語

    • 条3
    • 第4条

私が達成したいのは、バックエンドのプロパティで、国別に分類され、ユーザーが異なる言語のサイトから複数の記事を選択できるようにします。

例えば、私は第1条と第3条を選択することができました。理想的には、選択コントロールは、太字で選択できないカテゴリと標準の複数選択動作の対象となる国で、このようになります。

Image of desired result

これはサイトコアで達成することができる方法を知って誰ですか?あるいはこれを達成するためのSitecoreマーケットプレイスのプラグインを知っている人はいますか?これに関しては、これに関するWeb上のドキュメントや文献は欠けています。

何か助けや指針をいただければ幸いです。

答えて

2

TreeListを使用すると、そのようなことが実現できます。それは木のように見えるので、あなたが望むだけではなく、必要な機能を実行することができます。 TreeListは、 "ソース"値で調整して、Sitecoreツリーの一部を表示したり、特定の項目を選択できないようにすることができます。

良いリソースはhereです。

場合によっては、ソースクエリにDatascourceExcludeTemplatesForSelection/IncludeTemplatesForSelectionオプションを使用してください。

0

コード化されたデータソースを使用すると、ほとんどの方法が得られます。 IDataSourceから継承するクラスを作成した場合は、必要なものに合わせることができます。あなたが得ることができないのは、ユーザーが太字の国を選択することを拒否していることです。

HereはJohn Westの記事です。下のコードは現在使用しているコードです。私はレンダリングのプロパティでこのコードを使用しているので、レンダリングへの参照が多く見られます。しかし、あなたが探しているのは、アイテムの配列を返すことだけです。

次に、データソースで、 "code:"という単語と、それに続くクラス名 "、"というアセンブリ名を指定します。

コード:Sitecore.Sharedsource.Data.FieldSources.CustomFieldDataSource、Sitecore.Sharedsource

public class GetStyles : IDataSource 
{ 
    public Item[] ListQuery(Item item) 
    { 
     bool flag = !string.IsNullOrWhiteSpace(Context.RawUrl) && Context.RawUrl.Contains("hdl"); 
     if (flag) 
     { 
      string renderingId = FieldEditorOptions.Parse(new UrlString(Context.RawUrl)).Parameters["rendering"]; 

      if (!string.IsNullOrEmpty(renderingId)) 
      { 
       ItemUri renderingItemUri = new ItemUri(renderingId); 

       var containers = DependencyResolver.Current.GetService<IPresentationRepository>().GetStylesItem(renderingItemUri.ItemID, item); 

       if (containers == null) 
        return new Item[0]; 

       return containers.Children.ToArray<Item>(); 
      } 
     } 

     var result = new Item[0]; 
     return result; 
    } 
} 
関連する問題