You are here

twig-tweak-test.html.twig in Twig Tweak 3.x

{% set image_attributes = {style: 'width: 30px; height 30px;'} %}
<style>
  main {
    background-color: lightyellow;
    padding: 15px;
    border: double 3px darkgrey;
  }
  .tt-test > div {
    margin: 15px auto;
    padding: 10px;
    outline: solid 2px dodgerblue;
    max-width: 1200px;
    background-color: white;
  }
  .tt-test > div::before {
    content: attr(class);
    font-weight: bold;
    display: block;
    font-style: italic;
    border-bottom: solid 1px dodgerblue;
    margin-bottom: 10px;
    padding-bottom: 5px;
    color: dodgerblue;
  }
</style>
<div class="tt-test">
  <div class="tt-view-default">{{ drupal_view('twig_tweak_test') }}</div>
  <div class="tt-view-page_1">{{ drupal_view('twig_tweak_test', 'page_1') }}</div>
  <div class="tt-view-page_1-with-argument">{{ drupal_view('twig_tweak_test', 'page_1', 1) }}</div>
  <div class="tt-view-result">{{ drupal_view_result('twig_tweak_test', 'page_1')|length }}</div>
  <div class="tt-block">{{ drupal_block('system_branding_block', {use_site_name: false}, false) }}</div>
  <div class="tt-block-with-wrapper">{{ drupal_block('system_branding_block', {label: 'Branding'}) }}</div>
  <div class="tt-region">{{ drupal_region('sidebar_first') }}</div>
  <div class="tt-entity-default">{{ drupal_entity('node', 1) }}</div>
  <div class="tt-entity-teaser">{{ drupal_entity('node', 1, 'teaser') }}</div>
  <div class="tt-entity-uuid">{{ drupal_entity('node', 'ad1b902a-344f-41d1-8c61-a69f0366dbfa') }}</div>
  <div class="tt-entity-uuid-missing">{{ drupal_entity('node', 'zzzzzzzz-zzzz-zzzz-zzzz-zzzzzzzzzzzz') }}</div>
  <div class="tt-entity-add-form">{{ drupal_entity_form('node', values={type: 'page'}) }}</div>
  <div class="tt-entity-edit-form">{{ drupal_entity_form('node', 1) }}</div>
  <div class="tt-field">{{ drupal_field('body', 'node', 1) }}</div>
  <div class="tt-menu-default">{{ drupal_menu('twig-tweak-test') }}</div>
  <div class="tt-menu-level">{{ drupal_menu('twig-tweak-test', 2) }}</div>
  <div class="tt-menu-depth">{{ drupal_menu('twig-tweak-test', 1, 1) }}</div>
  <div class="tt-form">{{ drupal_form('Drupal\\system\\Form\\CronForm') }}</div>
  <div class="tt-image-by-fid">{{ drupal_image(1, attributes=image_attributes) }}</div>
  <div class="tt-image-by-uri">{{ drupal_image('public://image-test.png', attributes=image_attributes) }}</div>
  <div class="tt-image-by-uuid">{{ drupal_image('b2c22b6f-7bf8-4da4-9de5-316e93487518', attributes=image_attributes) }}</div>
  <div class="tt-image-with-style">{{ drupal_image(1, 'thumbnail', image_attributes) }}</div>
  <div class="tt-image-with-responsive-style">{{ drupal_image(1, 'example', image_attributes, true) }}</div>
  <div class="tt-token">{{ drupal_token('site:name') }}</div>
  <div class="tt-token-data">{{ drupal_token('node:title', {'node': node}) }}</div>
  <div class="tt-config">{{ drupal_config('user.settings', 'anonymous') }}</div>
  <div class="tt-title">{{ drupal_title() }}</div>
  <div class="tt-url">
    <div data-case="default">{{ drupal_url('node/1', {absolute: true}) }}</div>
    <div data-case="with-langcode">{{ drupal_url('node/1', {absolute: true, langcode: 'ru'}) }}</div>
  </div>
  <div class="tt-link">{{ drupal_link('Edit', 'node/1/edit', {absolute: true}) }}</div>
  <div class="tt-link-html">{% set link_text %}<b>Edit</b>{% endset %}{{ drupal_link(link_text, 'node/1/edit', {absolute: true}) }}</div>
  <div class="tt-messages">{{ drupal_messages() }}</div>
  <div class="tt-breadcrumb">{{ drupal_breadcrumb() }}</div>
  <div class="tt-link-access">{{ drupal_link('Administration', 'admin', {absolute: true}, true) }}</div>
  <div class="tt-contextual-links">{{ drupal_contextual_links('node:node=1') }}</div>
  <div class="tt-token-replace">{{ 'Site name: [site:name]'|token_replace }}</div>
  <div class="tt-preg-replace">{{ 'FOO'|preg_replace('/(foo)/i', '$1-bar') }}</div>
  <div class="tt-image-style">{{ 'public://images/ocean.jpg'|image_style('thumbnail') }}</div>
  <div class="tt-transliterate">{{ 'Привет!'|transliterate('ru') }}</div>
  <div class="tt-check-markup">{{ '<b>bold</b> <strong>strong</strong>'|check_markup('twig_tweak_test') }}</div>
  <div class="tt-format-size">{{ 12345|format_size() }}</div>
  <div class="tt-truncate">{{ 'Hello world!'|truncate(10, true, true) }}</div>
  <div class="tt-with">{{ {'#markup':'Example'}|with('#prefix', '<b>')|with('#suffix', '</b>') }}</div>
  <div class="tt-with-nested">{{ {alpha: {beta: {gamma: 123}}}|with(['alpha', 'beta', 'gamma'], 456)|json_encode|replace({'"':''}) }}</div>
  <div class="tt-children">
    {%-
      set build = {
        're': {'#markup': 're'},
        '#sol':  {'#markup': '#sol'},
        'mi': {'#markup': 'mi'},
        '#fa': {'#markup': '#fa'},
        'do':  {'#markup': 'do', '#weight': -10},
      }
    -%}
    {%- for value in build|children(true) -%}
      {{- value -}}
    {%- endfor -%}
  </div>
  <div class="tt-node-view">{{ node|view }}</div>
  <div class="tt-field-list-view">{{ node.title|view }}</div>
  <div class="tt-field-item-view">{{ node.title[0]|view }}</div>
  <div class="tt-file-uri-from-image-field">{{ node.field_image|file_uri }}</div>
  <div class="tt-file-uri-from-image-field-delta">{{ node.field_image[0]|file_uri }}</div>
  {% set media_uri = node.field_media|file_uri %}
  <div class="tt-file-uri-from-media-field">{{ media_uri }}</div>
  {% if media_uri is not null %}
    <div class="tt-image-style-from-file-uri-from-media-field">{{ media_uri|image_style('thumbnail') }}</div>
  {% endif %}
  <div class="tt-file-url-from-uri">{{ 'public://image-test.png'|file_url }}</div>
  <div class="tt-file-url-from-uri-absolute">{{ 'public://image-test.png'|file_url(false) }}</div>
  <div class="tt-file-url-from-image-field">{{ node.field_image|file_url }}</div>
  <div class="tt-file-url-from-image-field-delta">{{ node.field_image[0]|file_url }}</div>
  <div class="tt-file-url-from-media-field">{{ node.field_media|file_url }}</div>
  <div class="tt-translation">{{ (node|translation).title.value }}</div>
  <div class="tt-functions_alter">{{ foo('bar') }}</div>
  <div class="tt-filters_alter">{{ 'foo'|bar }}</div>
  <div class="tt-tests_alter">{{ 'ok' is ok ? 'Yes' : 'No' }}</div>
</div>

File

tests/twig_tweak_test/templates/twig-tweak-test.html.twig
View source
  1. {% set image_attributes = {style: 'width: 30px; height 30px;'} %}
  2. <style>
  3. main {
  4. background-color: lightyellow;
  5. padding: 15px;
  6. border: double 3px darkgrey;
  7. }
  8. .tt-test > div {
  9. margin: 15px auto;
  10. padding: 10px;
  11. outline: solid 2px dodgerblue;
  12. max-width: 1200px;
  13. background-color: white;
  14. }
  15. .tt-test > div::before {
  16. content: attr(class);
  17. font-weight: bold;
  18. display: block;
  19. font-style: italic;
  20. border-bottom: solid 1px dodgerblue;
  21. margin-bottom: 10px;
  22. padding-bottom: 5px;
  23. color: dodgerblue;
  24. }
  25. </style>
  26. <div class="tt-test">
  27. <div class="tt-view-default">{{ drupal_view('twig_tweak_test') }}</div>
  28. <div class="tt-view-page_1">{{ drupal_view('twig_tweak_test', 'page_1') }}</div>
  29. <div class="tt-view-page_1-with-argument">{{ drupal_view('twig_tweak_test', 'page_1', 1) }}</div>
  30. <div class="tt-view-result">{{ drupal_view_result('twig_tweak_test', 'page_1')|length }}</div>
  31. <div class="tt-block">{{ drupal_block('system_branding_block', {use_site_name: false}, false) }}</div>
  32. <div class="tt-block-with-wrapper">{{ drupal_block('system_branding_block', {label: 'Branding'}) }}</div>
  33. <div class="tt-region">{{ drupal_region('sidebar_first') }}</div>
  34. <div class="tt-entity-default">{{ drupal_entity('node', 1) }}</div>
  35. <div class="tt-entity-teaser">{{ drupal_entity('node', 1, 'teaser') }}</div>
  36. <div class="tt-entity-uuid">{{ drupal_entity('node', 'ad1b902a-344f-41d1-8c61-a69f0366dbfa') }}</div>
  37. <div class="tt-entity-uuid-missing">{{ drupal_entity('node', 'zzzzzzzz-zzzz-zzzz-zzzz-zzzzzzzzzzzz') }}</div>
  38. <div class="tt-entity-add-form">{{ drupal_entity_form('node', values={type: 'page'}) }}</div>
  39. <div class="tt-entity-edit-form">{{ drupal_entity_form('node', 1) }}</div>
  40. <div class="tt-field">{{ drupal_field('body', 'node', 1) }}</div>
  41. <div class="tt-menu-default">{{ drupal_menu('twig-tweak-test') }}</div>
  42. <div class="tt-menu-level">{{ drupal_menu('twig-tweak-test', 2) }}</div>
  43. <div class="tt-menu-depth">{{ drupal_menu('twig-tweak-test', 1, 1) }}</div>
  44. <div class="tt-form">{{ drupal_form('Drupal\\system\\Form\\CronForm') }}</div>
  45. <div class="tt-image-by-fid">{{ drupal_image(1, attributes=image_attributes) }}</div>
  46. <div class="tt-image-by-uri">{{ drupal_image('public://image-test.png', attributes=image_attributes) }}</div>
  47. <div class="tt-image-by-uuid">{{ drupal_image('b2c22b6f-7bf8-4da4-9de5-316e93487518', attributes=image_attributes) }}</div>
  48. <div class="tt-image-with-style">{{ drupal_image(1, 'thumbnail', image_attributes) }}</div>
  49. <div class="tt-image-with-responsive-style">{{ drupal_image(1, 'example', image_attributes, true) }}</div>
  50. <div class="tt-token">{{ drupal_token('site:name') }}</div>
  51. <div class="tt-token-data">{{ drupal_token('node:title', {'node': node}) }}</div>
  52. <div class="tt-config">{{ drupal_config('user.settings', 'anonymous') }}</div>
  53. <div class="tt-title">{{ drupal_title() }}</div>
  54. <div class="tt-url">
  55. <div data-case="default">{{ drupal_url('node/1', {absolute: true}) }}</div>
  56. <div data-case="with-langcode">{{ drupal_url('node/1', {absolute: true, langcode: 'ru'}) }}</div>
  57. </div>
  58. <div class="tt-link">{{ drupal_link('Edit', 'node/1/edit', {absolute: true}) }}</div>
  59. <div class="tt-link-html">{% set link_text %}<b>Edit</b>{% endset %}{{ drupal_link(link_text, 'node/1/edit', {absolute: true}) }}</div>
  60. <div class="tt-messages">{{ drupal_messages() }}</div>
  61. <div class="tt-breadcrumb">{{ drupal_breadcrumb() }}</div>
  62. <div class="tt-link-access">{{ drupal_link('Administration', 'admin', {absolute: true}, true) }}</div>
  63. <div class="tt-contextual-links">{{ drupal_contextual_links('node:node=1') }}</div>
  64. <div class="tt-token-replace">{{ 'Site name: [site:name]'|token_replace }}</div>
  65. <div class="tt-preg-replace">{{ 'FOO'|preg_replace('/(foo)/i', '$1-bar') }}</div>
  66. <div class="tt-image-style">{{ 'public://images/ocean.jpg'|image_style('thumbnail') }}</div>
  67. <div class="tt-transliterate">{{ 'Привет!'|transliterate('ru') }}</div>
  68. <div class="tt-check-markup">{{ '<b>bold</b> <strong>strong</strong>'|check_markup('twig_tweak_test') }}</div>
  69. <div class="tt-format-size">{{ 12345|format_size() }}</div>
  70. <div class="tt-truncate">{{ 'Hello world!'|truncate(10, true, true) }}</div>
  71. <div class="tt-with">{{ {'#markup':'Example'}|with('#prefix', '<b>')|with('#suffix', '</b>') }}</div>
  72. <div class="tt-with-nested">{{ {alpha: {beta: {gamma: 123}}}|with(['alpha', 'beta', 'gamma'], 456)|json_encode|replace({'"':''}) }}</div>
  73. <div class="tt-children">
  74. {%-
  75. set build = {
  76. 're': {'#markup': 're'},
  77. '#sol': {'#markup': '#sol'},
  78. 'mi': {'#markup': 'mi'},
  79. '#fa': {'#markup': '#fa'},
  80. 'do': {'#markup': 'do', '#weight': -10},
  81. }
  82. -%}
  83. {%- for value in build|children(true) -%}
  84. {{- value -}}
  85. {%- endfor -%}
  86. </div>
  87. <div class="tt-node-view">{{ node|view }}</div>
  88. <div class="tt-field-list-view">{{ node.title|view }}</div>
  89. <div class="tt-field-item-view">{{ node.title[0]|view }}</div>
  90. <div class="tt-file-uri-from-image-field">{{ node.field_image|file_uri }}</div>
  91. <div class="tt-file-uri-from-image-field-delta">{{ node.field_image[0]|file_uri }}</div>
  92. {% set media_uri = node.field_media|file_uri %}
  93. <div class="tt-file-uri-from-media-field">{{ media_uri }}</div>
  94. {% if media_uri is not null %}
  95. <div class="tt-image-style-from-file-uri-from-media-field">{{ media_uri|image_style('thumbnail') }}</div>
  96. {% endif %}
  97. <div class="tt-file-url-from-uri">{{ 'public://image-test.png'|file_url }}</div>
  98. <div class="tt-file-url-from-uri-absolute">{{ 'public://image-test.png'|file_url(false) }}</div>
  99. <div class="tt-file-url-from-image-field">{{ node.field_image|file_url }}</div>
  100. <div class="tt-file-url-from-image-field-delta">{{ node.field_image[0]|file_url }}</div>
  101. <div class="tt-file-url-from-media-field">{{ node.field_media|file_url }}</div>
  102. <div class="tt-translation">{{ (node|translation).title.value }}</div>
  103. <div class="tt-functions_alter">{{ foo('bar') }}</div>
  104. <div class="tt-filters_alter">{{ 'foo'|bar }}</div>
  105. <div class="tt-tests_alter">{{ 'ok' is ok ? 'Yes' : 'No' }}</div>
  106. </div>