ユーザーがアップロードしたファイルにカテゴリ フィルターを追加できるカスタム メディア アイテム テンプレートがあります。メディア アイテムはメディア ライブラリに保持されます。フィルターは、コンテンツ ツリーの該当サイトのホーム アイテムの下にあるフォルダーから選択します。これらは、ツリーリスト コントロールを使用して選択されます。複数のサイトがあり、それぞれに独自のホーム アイテムとフィルター フォルダーがあります。各サイトの相対フィルター フォルダーを指すようにツリーリスト コントロールのソースを設定する必要があります。
メディア アイテムが鍬アイテムの下にある場合、これを使用できます。
query:ancestor-or-self::*[@@templatename='Home']/item[@key='filters']
しかしもちろん、メディア アイテムはancestor-or-self::*[@@templatename='Home']
そのブランチ上にないため見つかりません。それは並列です。
私たちの命名基準が、完全にアイテム名に基づいた相対パスを保証するほど堅牢であるとは思えません。むしろ、ホーム アイテムの正しい名前を見つけるためにメディア フォルダーの名前を連結する必要は避けたいと思います。
これをエレガントに解決する方法はありますか?
もちろん、フィルター フォルダーを別の場所に配置することもできます。メディア ライブラリ (ビジネス ユーザーにとって直感的ではないため、これは避けたほうがよいでしょう) か、グローバル セクション (ユーザーは以下の特定のサイト フォルダーを見つける必要がある場所) に配置できます。または別のセキュリティ構成をコンテンツ ツリーに追加します)。