table.html.twig

Same filename in this branch
  1. 11.x core/profiles/demo_umami/themes/umami/templates/classy/dataset/table.html.twig
  2. 11.x core/themes/stable9/templates/dataset/table.html.twig
  3. 11.x core/themes/claro/templates/classy/dataset/table.html.twig
  4. 11.x core/themes/starterkit_theme/templates/dataset/table.html.twig
Same filename in other branches
  1. 9 core/profiles/demo_umami/themes/umami/templates/classy/dataset/table.html.twig
  2. 9 core/themes/stable9/templates/dataset/table.html.twig
  3. 9 core/themes/seven/templates/classy/dataset/table.html.twig
  4. 9 core/themes/claro/templates/classy/dataset/table.html.twig
  5. 9 core/themes/bartik/templates/classy/dataset/table.html.twig
  6. 9 core/themes/stable/templates/dataset/table.html.twig
  7. 9 core/themes/starterkit_theme/templates/dataset/table.html.twig
  8. 9 core/themes/classy/templates/dataset/table.html.twig
  9. 9 core/modules/system/templates/table.html.twig
  10. 8.9.x core/profiles/demo_umami/themes/umami/templates/classy/dataset/table.html.twig
  11. 8.9.x core/themes/seven/templates/classy/dataset/table.html.twig
  12. 8.9.x core/themes/claro/templates/classy/dataset/table.html.twig
  13. 8.9.x core/themes/bartik/templates/classy/dataset/table.html.twig
  14. 8.9.x core/themes/stable/templates/dataset/table.html.twig
  15. 8.9.x core/themes/classy/templates/dataset/table.html.twig
  16. 8.9.x core/modules/system/templates/table.html.twig
  17. 10 core/profiles/demo_umami/themes/umami/templates/classy/dataset/table.html.twig
  18. 10 core/themes/stable9/templates/dataset/table.html.twig
  19. 10 core/themes/claro/templates/classy/dataset/table.html.twig
  20. 10 core/themes/starterkit_theme/templates/dataset/table.html.twig
  21. 10 core/modules/system/templates/table.html.twig

Default theme implementation to display a table.

Available variables:

  • attributes: HTML attributes to apply to the <table> tag.
  • caption: A localized string for the <caption> tag.
  • colgroups: Column groups. Each group contains the following properties:
  • header: Table header cells. Each cell contains the following properties:
    • tag: The HTML tag name to use; either 'th' or 'td'.
    • attributes: HTML attributes to apply to the tag.
    • content: A localized string for the title of the column.
    • field: Field name (required for column sorting).
    • sort: Default sort order for this column ("asc" or "desc").
  • sticky: A flag indicating whether to use a "sticky" table header.
  • rows: Table rows. Each row contains the following properties:
    • attributes: HTML attributes to apply to the <tr> tag.
    • data: Table cells.
    • no_striping: A flag indicating that the row should receive no 'even / odd' styling. Defaults to FALSE.
    • cells: Table cells of the row. Each cell contains the following keys:
      • tag: The HTML tag name to use; either 'th' or 'td'.
      • attributes: Any HTML attributes, such as "colspan", to apply to the table cell.
      • content: The string to display in the table cell.
      • active_table_sort: A boolean indicating whether the cell is the active table sort.
      • header: Boolean indicating whether the cell should be rendered as a header (<th>) or not (<td>).
  • footer: Table footer rows, in the same format as the rows variable.
  • empty: The message to display in an extra row if table does not have any rows.
  • no_striping: A boolean indicating that the row should receive no striping.
  • header_columns: The number of columns in the header.

See also

template_preprocess_table()

10 theme calls to table.html.twig
ContentTranslationController::overview in core/modules/content_translation/src/Controller/ContentTranslationController.php
Builds the translations overview page.
MenuForm::buildOverviewForm in core/modules/menu_ui/src/MenuForm.php
Form constructor to edit an entire menu tree at once.
NodeController::revisionOverview in core/modules/node/src/Controller/NodeController.php
Generates an overview table of older revisions of a node.
PagerTestController::buildTestTable in core/modules/system/tests/modules/pager_test/src/Controller/PagerTestController.php
Builds a render array for a multi-page test table.
Table::getInfo in core/lib/Drupal/Core/Render/Element/Table.php
Returns the element properties for this element.

... See full list

File

core/modules/system/templates/table.html.twig

View source
  1. {#
  2. /**
  3. * @file
  4. * Default theme implementation to display a table.
  5. *
  6. * Available variables:
  7. * - attributes: HTML attributes to apply to the <table> tag.
  8. * - caption: A localized string for the <caption> tag.
  9. * - colgroups: Column groups. Each group contains the following properties:
  10. * - attributes: HTML attributes to apply to the <col> tag.
  11. * Note: Drupal currently supports only one table header row, see
  12. * https://www.drupal.org/node/893530 and
  13. * http://api.drupal.org/api/drupal/includes!theme.inc/function/theme_table/7#comment-5109.
  14. * - header: Table header cells. Each cell contains the following properties:
  15. * - tag: The HTML tag name to use; either 'th' or 'td'.
  16. * - attributes: HTML attributes to apply to the tag.
  17. * - content: A localized string for the title of the column.
  18. * - field: Field name (required for column sorting).
  19. * - sort: Default sort order for this column ("asc" or "desc").
  20. * - sticky: A flag indicating whether to use a "sticky" table header.
  21. * - rows: Table rows. Each row contains the following properties:
  22. * - attributes: HTML attributes to apply to the <tr> tag.
  23. * - data: Table cells.
  24. * - no_striping: A flag indicating that the row should receive no
  25. * 'even / odd' styling. Defaults to FALSE.
  26. * - cells: Table cells of the row. Each cell contains the following keys:
  27. * - tag: The HTML tag name to use; either 'th' or 'td'.
  28. * - attributes: Any HTML attributes, such as "colspan", to apply to the
  29. * table cell.
  30. * - content: The string to display in the table cell.
  31. * - active_table_sort: A boolean indicating whether the cell is the active
  32. table sort.
  33. * - header: Boolean indicating whether the cell should be rendered as a
  34. * header (<th>) or not (<td>).
  35. * - footer: Table footer rows, in the same format as the rows variable.
  36. * - empty: The message to display in an extra row if table does not have
  37. * any rows.
  38. * - no_striping: A boolean indicating that the row should receive no striping.
  39. * - header_columns: The number of columns in the header.
  40. *
  41. * @see template_preprocess_table()
  42. *
  43. * @ingroup themeable
  44. */
  45. #}
  46. <table{{ attributes }}>
  47. {% if caption %}
  48. <caption>{{ caption }}</caption>
  49. {% endif %}
  50. {% for colgroup in colgroups %}
  51. {% if colgroup.cols %}
  52. <colgroup{{ colgroup.attributes }}>
  53. {% for col in colgroup.cols %}
  54. <col{{ col.attributes }} />
  55. {% endfor %}
  56. </colgroup>
  57. {% else %}
  58. <colgroup{{ colgroup.attributes }} />
  59. {% endif %}
  60. {% endfor %}
  61. {% if header %}
  62. <thead>
  63. <tr>
  64. {% for cell in header %}
  65. <{{ cell.tag }}{{ cell.attributes }}>
  66. {{- cell.content -}}
  67. </{{ cell.tag }}>
  68. {% endfor %}
  69. </tr>
  70. </thead>
  71. {% endif %}
  72. {% if rows %}
  73. <tbody>
  74. {% for row in rows %}
  75. <tr{{ row.attributes }}>
  76. {% for cell in row.cells %}
  77. <{{ cell.tag }}{{ cell.attributes }}>
  78. {{- cell.content -}}
  79. </{{ cell.tag }}>
  80. {% endfor %}
  81. </tr>
  82. {% endfor %}
  83. </tbody>
  84. {% elseif empty %}
  85. <tbody>
  86. <tr>
  87. <td colspan="{{ header_columns }}">{{ empty }}</td>
  88. </tr>
  89. </tbody>
  90. {% endif %}
  91. {% if footer %}
  92. <tfoot>
  93. {% for row in footer %}
  94. <tr{{ row.attributes }}>
  95. {% for cell in row.cells %}
  96. <{{ cell.tag }}{{ cell.attributes }}>
  97. {{- cell.content -}}
  98. </{{ cell.tag }}>
  99. {% endfor %}
  100. </tr>
  101. {% endfor %}
  102. </tfoot>
  103. {% endif %}
  104. </table>

Related topics


Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.