欄位格式化程式

在實現欄位格式化程式時,有些事情很重要。

格式化程式的實現必須位於資料夾 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 的變數將可用。