locked
コンテンツ検索webパーツでドキュメントの詳細画面のリンクを表示する方法 RRS feed

  • 質問

  • お世話になっております。

    リストアイテムや、ライブラリにアップロードしたドキュメントをコンテンツ検索webパーツで集約して表示しております。
    コンテンツ検索webパーツ設定画面のプロパティのマッピングでは、集約したデータをクリックした際のリンクとして既定の「Path」を指定しています。
    この設定では、集約したデータの中からアイテムをクリックした場合はアイテムの詳細画面が表示されるのですが、ドキュメントをクリックした場合はドキュメントが直接開かれてしまうため列が記載されている詳細画面が表示されません。

    ドキュメントをクリックした際にも詳細画面を表示したいのですが、方法はございますでしょうか。
    よろしくお願い致します。

    2016年6月2日 2:02

回答

  • 取り急ぎ、実現可能かどうかまで検証していませんが、私が思いついた案は、以下の2つです。

    1.詳細画面表示用のURLを管理プロパティとして登録する。
    2.表示テンプレートのURLを書き換える。

    1.は、詳細画面表示用のURL列を参照式を使って作成し、それを管理プロパティに登録する方法です。
    ただ、検索対象のドキュメントライブラリすべてにその参照列を作らないといけないので、実用的ではないですね。

    ですので、2.が本命かと思いますので、やり方を簡単に書いてみます。

    とりあえず、コンテンツ検索Webパーツの表示テンプレートにデフォルトの"左に画像、右に3行を表示"を用いているのであれば、[サイトコレクションの設定]-[マスターページとページレイアウト]-[Display Templates]-[Content Web Parts]の中の、Item_Picture3Lines.jsが対応しているので、このファイル内のコードでリンクを書き換えれば実現可能です。

    (本来はファイルをコピーし、独自の表示テンプレートを作り、それをコンテンツ検索Webパーツで指定するようにすべきです)

    このファイルを例にとると、ファイル内の、

    var linkURL = $getItemValue(ctx, "Link URL");

    のコードでリンク先を設定しているので、[リストのURL]/Forms/DispForm.aspx?ID=[アイテムのID]のURLを作成し、置き換えればよいかと。
    (アイテムの詳細画面のURLもDispForm.aspxから変更可能なのですが、それは割切りで。。)

    もっと簡単な方法があるかもしれませんが、取り急ぎゴリ押しの実現方法ということで。

    • 回答の候補に設定 佐伯玲 2016年6月6日 1:33
    • 回答としてマーク Hfik353 2016年6月6日 14:17
    2016年6月3日 8:50

すべての返信

  • 取り急ぎ、実現可能かどうかまで検証していませんが、私が思いついた案は、以下の2つです。

    1.詳細画面表示用のURLを管理プロパティとして登録する。
    2.表示テンプレートのURLを書き換える。

    1.は、詳細画面表示用のURL列を参照式を使って作成し、それを管理プロパティに登録する方法です。
    ただ、検索対象のドキュメントライブラリすべてにその参照列を作らないといけないので、実用的ではないですね。

    ですので、2.が本命かと思いますので、やり方を簡単に書いてみます。

    とりあえず、コンテンツ検索Webパーツの表示テンプレートにデフォルトの"左に画像、右に3行を表示"を用いているのであれば、[サイトコレクションの設定]-[マスターページとページレイアウト]-[Display Templates]-[Content Web Parts]の中の、Item_Picture3Lines.jsが対応しているので、このファイル内のコードでリンクを書き換えれば実現可能です。

    (本来はファイルをコピーし、独自の表示テンプレートを作り、それをコンテンツ検索Webパーツで指定するようにすべきです)

    このファイルを例にとると、ファイル内の、

    var linkURL = $getItemValue(ctx, "Link URL");

    のコードでリンク先を設定しているので、[リストのURL]/Forms/DispForm.aspx?ID=[アイテムのID]のURLを作成し、置き換えればよいかと。
    (アイテムの詳細画面のURLもDispForm.aspxから変更可能なのですが、それは割切りで。。)

    もっと簡単な方法があるかもしれませんが、取り急ぎゴリ押しの実現方法ということで。

    • 回答の候補に設定 佐伯玲 2016年6月6日 1:33
    • 回答としてマーク Hfik353 2016年6月6日 14:17
    2016年6月3日 8:50
  • たけさと様

    返信が遅くなりすみません。ご回答頂き、ありがとうございます。
    要件が変更になり、コンテンツ検索webパーツではなくクエリ結果webパーツを使用することになったのですが、教えて頂いたように表示テンプレートの編集を行うことでドキュメントの詳細画面のURLを張ることができました。

    ご教授頂きありがとうございました。

    2016年6月6日 14:17