検索結果ウィジェットテンプレートリファレンス
検索結果ウィジェット テンプレートを作成しながら、FreeMarker テンプレート エディターで事前に入力された変数にアクセスできます。 エディターにリストされている変数は何が可能かを示していますが、検索結果ウィジェット テンプレートのコンテキストではさらに多くの変数を使用できます。 ご使用のバージョンに固有のソース コードには、テンプレート コンテキストに挿入される変数の正式なリストが含まれています。
これらの Java クラスは、検索結果ウィジェットに使用可能なテンプレート変数を提供します。 https://github.com/liferay/liferay-portal/tree/7.4.3.132-ga132を検索すると見つかります:
SearchContainer: このクラスのゲッターの一部は、検索結果ウィジェット テンプレートの変数です。 利用可能なものについては、以下のリストを参照してください。SearchResultsPortletDisplayContext: このクラスのすべてのゲッターは、検索結果ウィジェット テンプレートに変数を提供します (例:getDisplayStyleGroupId())。SearchResultSummaryDisplayContext: このクラスのすべてのゲッターは、検索結果ウィジェット テンプレートに変数を提供します (例:getDisplayStyleGroupId())。
現在利用可能な変数のわかりやすいリストを以下に示します。
| エディターフィールド名 | 説明 | Javaの戻り値の型 | 使用例 |
|---|---|---|---|
| ドキュメントとメディア | 検索結果エントリのコレクション。 各エントリで使用できる内容を確認するには、「検索結果エントリ フィールド」を参照してください。 | List< SearchResultSummaryDisplayContext> | |
| 検索コンテナ | 検索コンテナーを使用して、検索結果とそのプロパティを含むグリッドを構築できます。 | SearchContainer | 例については、 検索コンテナの使用 を参照してください。 |
| 現在の結果ページ番号 | int | ${searchContainer.getCur()} | |
| 現在のページ番号のパラメータ名 | String | ${searchContainer.getCurParam()} | |
| デルタ、つまりページごとに表示するエントリの数 | int | ${searchContainer.getDelta()} | |
| デルタパラメータ名 | String | ${searchContainer.getDeltaParam()} | |
| 表示する最後の結果のインデックス | int | ${searchContainer.getEnd()} | |
| 検索コンテナインスタンスのID | String | ${searchContainer.getId(request, nameSpace)} | |
| ページ区切りのページURL | PortletURL | ${searchContainer.getIteratorURL()} | |
| 列の並べ替え | String | ${searchContainer.getOrderByCol()} | |
| ソート列パラメータ名 | String | ${searchContainer.getOrderByColParam() } | |
| 列の順序タイプ(昇順または降順) | String | ${searchContainer.getOrderByType()} | |
| 並べ替えの基準となるパラメータ | String | ${searchContainer.getOrderByTypeParam()} | |
| ポートレットリクエスト | PortletRequest | ${searchContainer.getPortletRequest()} | |
| 表示する最後のヒットのインデックス | int | ${searchContainer.getResultEnd()} | |
| 結果文書のリスト | List<Document> | ${searchContainer.getResults()} | |
| 最初からスキップするヒット数 | int | ${searchContainer.getStart()} | |
| ヒット数合計 | int | ${searchContainer.getTotal()} | |
| 成果があるかどうか | boolean | ${searchContainer.hasResults()} | |
| ユーザーがページごとに表示されるアイテムの数を選択できるかどうか | boolean | ${searchContainer.isDeltaConfigurable()} | |
| ホバー効果を使用するかどうか | boolean | ${searchContainer.isHover()} | |
| 検索結果ディスプレイコンテキスト | 現在の検索とウィジェットの設定に関する情報 | SearchResultsDisplayContext | |
| ウィジェットテンプレートのサイトID | long | ${searchResultsPortletDisplayContext.getDisplayStyleGroupId()} | |
| 取得した検索エンジンの文書 | List<Document> | ${searchResultsPortletDisplayContext.getDocuments()} | |
| 現在の検索キーワード | String | ${searchResultsPortletDisplayContext.getKeywords()} | |
| 検索コンテナ | SearchContainer | ${searchResultsPortletDisplayContext.getSearchContainer()} | |
| 検索結果ポートレットインスタンスの構成 | SearchResultsPortletInstanceConfiguration | ${searchResultsPortletDisplayContext.getSearchResultsPortletInstanceConfiguration()} | |
| 検索エンジン ドキュメントの検索結果の概要コンテキスト。 検索結果入力フィールドを参照してください。 | SearchResultSummaryDisplayContext | ${searchResultsPortletDisplayContext.getSearchResultSummaryDisplayContext(document)} | |
| 検索結果の概要コンテキスト。 検索結果入力フィールドを参照してください。 | List<SearchResultSummaryDisplayContext> | ${searchResultsPortletDisplayContext.getSearchResultSummaryDisplayContexts()} | |
| ヒット数合計 | int | ${searchResultsPortletDisplayContext.getTotalHits()} | |
| ウィジェットが表示されているかどうか | boolean | ${searchResultsPortletDisplayContext.isRenderNothing()} | |
| ウィジェット設定で空の結果メッセージの表示を有効にするかどうか | boolean | ${searchResultsPortletDisplayContext.isShowEmptyResultMessage()} | |
| 設定でページ区切りを有効にするかどうか | boolean | ${searchResultsPortletDisplayContext.isShowPagination()} |
検索結果ごとに使用できる変数があります。 いくつかはテンプレート エディターに表示されますが、他にも以下のものがあります。
| エディターフィールド名 | 説明 | タイプ | 使用例 |
|---|---|---|---|
| アセットのユーザー ID。 エントリがユーザーの場合、値はそのユーザーの ID になります。 | long | ${entry.getAssetEntryUserId()} | |
| アセットのダウンロードURL | String | ${entry.getAssetRendererURLDownload()} | |
| エントリのモデルクラス名 | String | ${entry.getClassName()} | |
| エントリのバッキングモデルの主キー | long | ${entry.getClassPK()} | |
| コンテント | ハイライト表示された検索結果の概要コンテンツ | String | ${entry.getContent()} |
| 制作日 | エントリ作成日 | String | ${entry.getCreationDateString()} |
| 作成者のユーザー名 | エントリー作成者のフルネーム | String | ${entry.getCreatorUserName()} |
| 作成者のユーザー写真 | エントリー作成者のポートレート/アバターのURL | String | ${entry.getCreatorUserPortraitURLString()} |
| 資産カテゴリIDリクエストパラメータ名 | String | ${entry.getFieldAssetCategoryIds()} | |
| 資産タグ名リクエストパラメータ名 | String | ${entry.getFieldAssetTagNames()} | |
| タイトル | ハイライトされたタイトル | String | ${entry.getHighlightedTitle()} |
| 表現されるモデルクラス/アセットエントリタイプのCSSアイコンクラス | String | ${entry.getIconId()} | |
| 現在の表示言語と異なる場合の要約言語ID | String | ${entry.getLocaleLanguageId()} | |
| 要約言語IDが現在の表示言語と異なることを通知するテキスト | String | ${entry.getLocaleReminder()} | |
| エントリによって表されるモデルクラスのラベル | String | ${entry.getModelResource()} | |
| 変更者のユーザー名 | エントリの最終変更者のフルネーム | String | ${entry.getModifiedByUserName()} |
| 変更者のユーザー写真 | 最後の変更者のポートレート/アバターのURL | String | ${entry.getModifiedByUserPortraitURLString()} |
| 編集日 | エントリの最終更新日 | String | ${entry.getModifiedDateString()} |
| 現在のテーマの画像ディレクトリのパス | String | ${entry.getPathThemeImages()} | |
| 検索結果ポートレットインスタンスのポートレットURL | PortletURL | ${entry.getPortletURL()} | |
| 公開日 | エントリーの公開日 | String | ${entry.getPublishedDateString()} |
| バックアップアセットエントリのサムネイルのURL | String | ${entry.getThumbnailURLString()} | |
| 検索結果エントリの裏付け資産のタイトル | String | ${entry.getTitle()} | |
| バックアップアセットエントリを作成したユーザーのポートレート/アバターのURL | String | ${entry.getUserPortraitURLString()} | |
| 検索結果エントリの表示URL | String | ${entry.getViewURL()} | |
| バックアップ資産エントリに資産カテゴリまたはタグがあるかどうか | boolean | ${entry.isAssetCategoriesOrTagsVisible()} | |
| アセットのダウンロードURLが利用可能かどうか | boolean | ${entry.isAssetRendererURLDownloadVisible()} | |
| 要約コンテンツが利用可能かどうか | boolean | ${entry.isContentVisible()} | |
| 作成日が利用可能かどうか | boolean | ${entry.isCreationDateVisible()} | |
| 作成者の肖像が利用可能かどうか | boolean | ${entry.isCreatorUserPortraitVisible()} | |
| 作成者の名前が利用可能かどうか | boolean | ${entry.isCreatorVisible()} | |
| ドキュメント表示モードが有効かどうか | boolean | ${entry.isDocumentFormVisible()} | |
| クラス名や主キーのないエントリのドキュメントフィールドが使用可能かどうか | boolean | ${entry.isFieldsVisible()} | |
| 表現されたモデルクラス/アセットエントリタイプのCSSアイコンクラスが使用可能かどうか | boolean | ${entry.isIconVisible()} | |
| ロケールリマインダーテキストが利用可能かどうか | boolean | ${entry.isLocaleReminderVisible()} | |
| このエントリで表されるモデルクラスのラベルが使用可能かどうか | boolean | ${entry.isModelResourceVisible()} | |
| 最後の修飾子の名前が使用可能かどうか | boolean | ${entry.isModifiedByUserNameVisible()} | |
| 最後の修飾子のポートレートが利用可能かどうか | boolean | ${entry.isModifiedByUserPortraitVisible()} | |
| 最終更新日が利用可能かどうか | boolean | ${entry.isModifiedDateVisible()} | |
| 公開日が利用可能かどうか | boolean | ${entry.isPublishedDateVisible()} | |
| エラーのためエントリが利用できないかどうか | boolean | ${entry.isTemporarilyUnavailable()} | |
| アセットのサムネイルが利用可能かどうか | boolean | ${entry.isThumbnailVisible()} | |
| アセットエントリ作成者がポートレートを利用できるかどうか | boolean | ${entry.isUserPortraitVisible()} |
検索コンテナの使用
検索結果を表示するための検索コンテナの設定例を次に示します。
<@liferay_ui["search-container"] searchContainer=searchContainer>
<@liferay_ui["search-container-results"] results=searchContainer.results>
<@liferay_ui["search-container-row"]
className="com.liferay.portal.kernel.search.Document"
keyProperty="UID" modelVar="document"
>
<@liferay_ui["search-container-column-text"]
href="" name="Title" value=document.get("localized_title_en_US")
/>
</@>
</@>
<@liferay_ui["search-iterator"] />
</@>
<#assign localized_title_field="localized_title_${locale}"/>
<#assign localized_content_field="content_${locale}"/>
<@liferay_ui["search-container"] searchContainer=searchContainer>
<@liferay_ui["search-container-results"] results=searchContainer.results>
<@liferay_ui["search-container-row"]
className="com.liferay.portal.kernel.search.Document"
keyProperty="UID" modelVar="document"
>
<@liferay_ui["search-container-column-text"]
href="" name="Title" value=document.get(localized_title_field)
/>
<@liferay_ui["search-container-column-text"]
href="" name="Content" value=document.get(localized_content_field)
/>
<@liferay_ui["search-container-column-text"]
href="" name="Class Name" value=document.get("entryClassName")
/>
</@>
</@>
<@liferay_ui["search-iterator"] />
</@>
