Drupal 8 模块开发 9.2 : Twig

Drupal8模块开发

原文地址:
https://docs.acquia.com/articles/drupal-8-twig

增加一个 Twig 模板

我们已经定义了基本的主题元素,现在可以创建一个 Twig 模板了。
Twig 是 Drupal 8 的默认主题系统。 默认 Twig 模板文件的命名规则与 Drupal 7 中的 .tpl.php 模板文件相同: 使用 - 代替 _,以 .html.twig 为扩展名。  

我们的 Twig 模板
首先,看下模板文件 templates/my-element.html.twig,你可以使用 {{element}} 打印整个渲染元素或者使用代码 {{element.field}} 打印个别字段或孩子元素。

下载文件

{#
/**
 * @file
 * Default theme implementation to my_element.
 *
 * Available variables:
 * - element: Element that will be rendered.
 * - element['link'] : a link
 * - element['description'] : a description
 * - element['pre_render_addition'] : added during the #pre_render function
 * - element['random_number'] : a random number variable, won't be printed with the element.
 *
 * @ingroup themeable
 */
#}

<div>
  <div>Random Number: {{ element['#random_number'] }}</div>
  <p>{{ element.description }}</p>
  {{ element.link }}
</div>

{# Debug output #}
<div>
  <h3>We print the element</h3>
  {{ element }}
  <h3>Link</h3>
  {{ element.link }}
  <h3>Description</h3>
  {{ element.description }}
  <h3>#pre_render addition</h3>
  {{ element.pre_render_addition }}
  <h3>Random number (not printed when we printed the whole element</h3>
  {{ element['#random_number'] }}
</div>

Twig 中的变量
模板文档可以参考 Twig's documentation states
Drupal 在主题层向模板文件传递可操作的变量,变量本身也可以有能够访问的属性或元素。  

调试 Twig

有两种方式可以调试 Twig:

  • 激活“Twig debugging”,这将帮助你判断当前正在使用那个模板。
  • 在页面中添加标记,这允许我们探讨模板中那些变量可用。

判断模板建议
激活 Twig debugging 后会在页面源码中输出一些标记,告诉你现在正在使用什么模板。
Drupal.org 上有调试 Twig 方法的简要概述 Debugging Twig templates
简而言之,象下面这样在 sites/default/services.yml 内激活 Twig 调试:

parameters:
  twig.config:
    debug: true

之后你使用开发工具查看模板信息。  

调试 Twig 变量
Twig 调试比 Drupal 7 中的方法容易。Twig 也可以在模板中查看所有或个别变量是否有效。
要做这个我们需要安装 DevelKint 模块。

之后我们可以使用下面命令把所有变量输出到屏幕上:

{{ kint() }}

或者输出个别变量:

{# Or one variable. #}
{{ kint(element) }}

{# Or one part of the render array. #}
{{ kint(element.hello) }}

通过上面的例子,你也知道 Twig 的注释格式 {# comment #} 。

添加新评论