search-result.html.twig 2.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. {#
  2. /**
  3. * @file
  4. * Theme override 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. #}
  59. {{ title_prefix }}
  60. <h3{{ title_attributes.addClass('search-result__title') }}>
  61. <a href="{{ url }}">{{ title }}</a>
  62. </h3>
  63. {{ title_suffix }}
  64. <div class="search-result__snippet-info">
  65. {% if snippet %}
  66. <p{{ content_attributes.addClass('search-result__snippet') }}>{{ snippet }}</p>
  67. {% endif %}
  68. {% if info %}
  69. <p class="search-result__info">{{ info }}</p>
  70. {% endif %}
  71. </div>