web-dev-qa-db-ja.com

テンプレートビルダーのsitecore「source」フィールドのクエリ表記

クエリ表記(またはxpath-どちらか機能する方)を使用してテンプレートのソースフィールドを設定しようとしていますが、どれも機能していないようです。

私のコンテンツツリーはマルチサイトコンテンツツリーです:

France
--Page 1
----Page1A
-------Page1AA
--Page 2
--Page 3
--METADATA
----Regions

US
--Page 1
----Page1A
-------Page1AA
--Page 2
--Page 3
--METADATA
----Regions

各サイトには独自のMETADATAフォルダーがあり、主要な国の各ノード内にページを追加するときに、そのサイトのMETADATAにあるものをすべて値に反映させたいと考えています。今のところ、droplinkフィールドとtreelistexフィールドの2つの異なるフィールドがあります。そのため、国のサイトである親アイテムを取得して、そのメタデータフォルダーを取得できると思いました。次のクエリを両方のフィールドに入力すると、異なる結果が得られます。

 query:./ancestor::*[@@templatename='CountryHome']/METADATA/Regions/*
  • ドロップリンクフィールドの場合、最初のリージョン(1つのアイテム)のみを取得します
  • Treelistexフィールドの場合、コンテンツツリー全体を取得します

次に、クエリを少し変更して、「クエリ」表記を削除しました。

 ./ancestor::*[@@templatename='CountryHome']/METADATA/Regions/*

開発者センター/ xpathビルダーに移動し、メインの国のサイトの下にある任意のアイテムにコンテキストノードを設定すると、必要なものが正確に返されますが、これをソースに入れると、両方のコンテンツツリー全体が取得されますケース。

助けて!

14
M.R.

ここにあるものは、Droplinkフィールドで機能するはずです。おそらくあなたはDroptreeを参照していますか?

query:./ancestor::*[@@templatename='CountryHome']/METADATA/Regions/*

TreelistExに関しては、デフォルトのTreelistフィールドがSitecoreクエリをサポートしているとは思いません。ただし、 この記事 では、それをサポートするカスタムTreeListを作成する方法について説明しています。

14
Derek Hunziker

Sitecoreクエリをサポートするフィールド

構文を使用できる場所query:またはfast:(FastQueryの場合):

  • ドロップリスト
  • グループ化されたドロップリスト
  • DropLink
  • グループ化されたドロップリンク
  • チェックリスト
  • マルチリスト
  • ドロップツリー

パラメータ化されたデータソースをサポートするフィールド

パラメータ化されたデータソースクエリで拡張構文を使用できる場所:

  • ドロップツリー†
  • ツリーリスト
  • TreelistEx

DroptreeはDatasourceおよびDatabaseNameパラメーターのみをサポートします。

拡張クエリ文字列構文には、次のパラメータが含まれています。

  • 情報元
  • データベース名
  • AllowMultipleSelection
  • IncludeItemsForDisplay
  • ExcludeItemsForDisplay
  • IncludeTemplatesForSelection
  • ExcludeTemplatesForSelection
  • IncludeTemplatesForDisplay
  • ExcludeTemplatesForDisplay

これらは次のように使用されます:Datasource=/sitecore/content/home/Products/&IncludeTemplatesForDisplay=Product Category&ExcludeTemplatesForSelection=Product Description&IncludeTemplatesForSelection=Product Category

Mark Ursinoは、この種の構文の使用方法に関するすばらしい投稿をしています ここ

43
Stephen Pope