エクスペリエンス エディターにおいて「General link with search」フィールドを使用する際、「リンクの検索」機能がサポートされていないため、ユーザーがアイテムをリンクとして検索することができません。
これに対する代替の回避策として、下記のオプションのいずれかを検討してください:
- 必須のリンク フィールドの編集を「関連アイテムの編集」機能で行います。
- 下記の手順でモーダルのウィンドウをカスタマイズします(尚、下記のコードは弊社の正式なテストを経ていないものであり、該当機能を実装できるアプローチを示す一例に過ぎないことにご注意ください):
- Website\sitecore\shell\Applications\Dialogsフォルダ内に新しいフォルダを作成し、フォルダ名を「SearchLink」とします。
- 「GeneralLink」フォルダ配下のコンテンツを「SearchLink」フォルダにコピーします。「GeneralLink」からコピーされたファイル名を「SearchLink」に変更します。
- SearchLink.xmlを開き、そのファイルに必須のXMLコントロールを追加し、コードビハインドを変更します。検索機能に必要な構造については、Website\sitecore\shell\Applications\Buckets\BucketLink.xmlで確認できます。参考として、添付のサンプルのSearchLink.xmlを参照してください。
- 検索関連のロジックで拡張するよう、GeneralLinkFormクラスをカスタマイズします。参考として、カスタムのモーダルのウィドウ用のクラスを含む添付のSearchLinkForm.csを参照してください。GeneralLinkフォームを確認しながら、その通常の機能と追加のリンク検索機能を把握することができます。
- Sitecore.Shell.Applications.WebEdit.Commands.EditLinkを元にカスタムのコマンド クラスを作成します。下記のRun()メソッドの行を、次のように変更します。
変更前:
urlString["xmlcontrol"] = "GeneralLink";
変更後:
urlString["xmlcontrol"] = "SearchLink";
- コマンド クラスおよびカスタムのフォーム クラスを使用し、アセンブリを構築し、アセンブリ ファイルをWebsite\binディレクトリに格納します。
- Website/App_Config/Include/Sitecore.ExperienceEditor.configファイルを開き、以下の行に移動します:
<command name="webedit:editlink" type="Sitecore.Shell.Applications.WebEdit.Commands.EditLink, Sitecore.ExperienceEditor" />
下記に従って、type属性の値を置き換えます:
%your_namespace%.%your_command_class% , %your_assembly_name%