字段格式化程序

在实现字段格式化程序时,有些事情很重要。

格式化程序的实现必须位于文件夹 src/Plugin/Field/FieldFormatter 中的模块内。注释也很重要,因为它们标识了你的模块以及它适用的字段类型。

在此示例中,此格式化程序仅适用于 email 类型的字段。如有必要,你可以将格式化程序应用于许多字段。如果格式化程序因任何原因适用于电子邮件和日期字段:

field_type = {
  "email",
  "date",
}

我首次使用设置实现字段格式化程序时遇到的一个缺陷是更改时未保存设置。没有明确的保存方法,解决方案是实现 defaultSettings() 方法并指定组成配置表单的字段名称。另外不要忘记在 settingsForm 方法中设置 #default_value

如果你想为你的格式化程序设置一个特定的 TWIG 模板,就像在 viewElements 方法中构建渲染数组时配置 #theme 键一样简单,然后在你的 .module 文件中实现 hook_theme

function obfuscator_field_formatter_theme() {
  return [
    'obfuscator_field_formatter' => [
      'variables' => array('title' => NULL, 'url' => NULL),
      'template' => 'obfuscator-field-formatter'
    ],
  ];
}

然后在模块的根目录中创建 templates 文件夹,并有一个名为 obfuscator-field-formatter.twig.html 的文件,你可以在其中输出所需的标记。在此示例中,来自渲染 #title#url 的变量将可用。