| 1 | {# |
| 2 | /** |
| 3 | * @file |
| 4 | * Default theme implementation for displaying a single search result. |
| 5 | * |
| 6 | * This template renders a single search result. The list of results is |
| 7 | * rendered using '#theme' => 'item_list', with suggestions of: |
| 8 | * - item_list__search_results__(plugin_id) |
| 9 | * - item_list__search_results |
| 10 | * |
| 11 | * Available variables: |
| 12 | * - url: URL of the result. |
| 13 | * - title: Title of the result. |
| 14 | * - snippet: A small preview of the result. Does not apply to user searches. |
| 15 | * - info: String of all the meta information ready for print. Does not apply |
| 16 | * to user searches. |
| 17 | * - plugin_id: The machine-readable name of the plugin being executed,such |
| 18 | * as "node_search" or "user_search". |
| 19 | * - title_prefix: Additional output populated by modules, intended to be |
| 20 | * displayed in front of the main title tag that appears in the template. |
| 21 | * - title_suffix: Additional output populated by modules, intended to be |
| 22 | * displayed after the main title tag that appears in the template. |
| 23 | * - info_split: Contains same data as info, but split into separate parts. |
| 24 | * - info_split.type: Node type (or item type string supplied by module). |
| 25 | * - info_split.user: Author of the node linked to users profile. Depends |
| 26 | * on permission. |
| 27 | * - info_split.date: Last update of the node. Short formatted. |
| 28 | * - info_split.comment: Number of comments output as "% comments", % |
| 29 | * being the count. (Depends on comment.module). |
| 30 | * @todo The info variable needs to be made drillable and each of these sub |
| 31 | * items should instead be within info and renamed info.foo, info.bar, etc. |
| 32 | * |
| 33 | * Other variables: |
| 34 | * - title_attributes: HTML attributes for the title. |
| 35 | * - content_attributes: HTML attributes for the content. |
| 36 | * |
| 37 | * Since info_split is keyed, a direct print of the item is possible. |
| 38 | * This array does not apply to user searches so it is recommended to check |
| 39 | * for its existence before printing. The default keys of 'type', 'user' and |
| 40 | * 'date' always exist for node searches. Modules may provide other data. |
| 41 | * @code |
| 42 | * {% if (info_split.comment) %} |
| 43 | * <span class="info-comment"> |
| 44 | * {{ info_split.comment }} |
| 45 | * </span> |
| 46 | * {% endif %} |
| 47 | * @endcode |
| 48 | * |
| 49 | * To check for all available data within info_split, use the code below. |
| 50 | * @code |
| 51 | * <pre> |
| 52 | * {{ dump(info_split) }} |
| 53 | * </pre> |
| 54 | * @endcode |
| 55 | * |
| 56 | * @see template_preprocess_search_result() |
| 57 | * |
| 58 | * @ingroup themeable |
| 59 | */ |
| 60 | #} |
| 61 | {{ title_prefix }} |
| 62 | <h3{{ title_attributes }}> |
| 63 | <a href="{{ url }}">{{ title }}</a> |
| 64 | </h3> |
| 65 | {{ title_suffix }} |
| 66 | {% if node.field_image.0 %} |
| 67 | <img src="{{ node.field_image.0.entity.uri.value | image_style('thumbnail') }}"> |
| 68 | {% endif %} |
| 69 | {% if snippet %} |
| 70 | <p{{ content_attributes }}>{{ snippet }}</p> |
| 71 | {% endif %} |
| 72 | {% if info %} |
| 73 | <p>{{ info }}</p> |
| 74 | {% endif %} |