2012-01-27 9 views
4

簡単な質問...私はtreelistを持っており、クエリをコンテンツツリーの複数のフォルダから取得したい。複数のデータソースからselectを設定するにはどうすればよいですか?私はこれについて多くを見つけていないし、私はそれが私が使用しているクエリのタイプを変更することと関係があるのだろうかと思う。今、私は、この特定のアイテムのtreelistのテンプレートでこのクエリを持っている:Treelist用の複数のデータソース

DataSource=/Sitecore/Content/Home/Home Root/Industries/&IncludeTemplatesForDisplay=Industry Item,Additional Resources Grouping,Additional Resources Item&IncludeTemplatesForSelection=Industry Item,Additional Resources Grouping,Additional Resources Item 
私は基本的に上記のクエリを複製するだけでなく、/サイトコア/コンテンツ/ホーム/ホームルート/製品からプルしたい

これを達成するための提案はありますか?

+0

デフォルトのtreelistでは不可能です。 – marto

答えて

4

私は、これは、複数のdatasourceパスをサポートしていないと思うが、(ジョン・西から)this SDN forum thread suggestsとして、あなたは多分getLookupSourceItemsパイプラインを活用することができます。

組み込みのものを拡張し、この機能を新しいものに公開するカスタムのTreelistを作成することもできます。 ILSpyを使用すると、現在のコンパイルをコンパイルできます。

4

これは明らかにSUPERですが、将来は参考になると思います。私はちょうど同様の質問を自分で持っていて、これを見つけて、私が解決策だと思っているものを見つけました(少なくともSitecore 6.4では)。

「ExcludeItemsForDisplay」の選択肢もあり、IDのリストを取得します。あなたは

「データソース= /サイトコア/コンテンツ/ホーム/ホームルート」

に1つのレベルをバックトラックと「ExcludeItemsForDisplay = {無視するフォルダのID}、{の最上部に表示され、長いIDを追加した場合クイックインフォメーション}、{etc} "を選択すると、表示したくないフォルダを除外し、必要なものだけを保存することができます。

IncludeItemsForDisplayは、ご利用いただけるものがほんの一握りでない限り、使用するにはあまりにも制限があります。

今後の問題を解決するうえで役立ちます。 (または以前にそれをハッキング場合は、同じ問題)

もちろんの実際のIDが含まれていない新しいソース:

DataSource=/Sitecore/Content/Home/Home Root&IncludeTemplatesForDisplay=Industry Item,Additional Resources Grouping,Additional Resources Item&IncludeTemplatesForSelection=Industry Item,Additional Resources Grouping,Additional Resources Item&ExcludeItemsForDisplay={12345678-1234-1234-123456789}, {#####-####-####}, {### etc} 

私は、これは同じ渡って来るかもしれない(少なくとも、次の人に役立ちます願っています質問)。

また、変更可能なシステムでExcludeサウンドを手動で変更すると、フォルダにもIncludeTemplatesに含めることができるテンプレートがあります。したがって、インダストリーとプロダクトに特別なフォルダテンプレートを与えると、IncludeTemplatesForDisplay文字列に追加することもできます。うまくいけば同様の維持可能な効果を達成する。私はこれをテストしていない。

関連する問題