Drupal 8.にカスタムフォームがあります。8。フォームのフィールドにトークンを添付する必要があります。基本的に、フォームの各フィールドに[トークンの参照]オプションを追加します。
token.module
には、たとえば次のようなさまざまな例があります。
// Add the token tree UI.
$form['email']['token_tree'] = array(
'#theme' => 'token_tree_link',
'#token_types' => array('user'),
'#show_restricted' => TRUE,
'#weight' => 90,
);
これにより、ユーザータイプのトークン(およびグローバルトークン)のリンクが表示されます。
#element_validate
コールバックtoken_element_validate
と一緒に#token_types
を追加して検証することもできます。
これは「token.module」からのコピーです。
function token_theme() {
$info['token_tree_link'] = [
'variables' => [
'token_types' => [],
'global_types' => TRUE,
'click_insert' => TRUE,
'show_restricted' => FALSE,
'show_nested' => FALSE,
'recursion_limit' => 3,
'text' => NULL,
'options' => [],
],
'file' => 'token.pages.inc',
];
return $info;
}
「グローバルトークン」の表示を回避するには、次のものが必要です。
'global_types' => FALSE,
レンダリング要素としてのコード(#(!)を忘れないでください):
// Add the token tree UI.
$form['email']['token_tree'] = array(
'#theme' => 'token_tree_link',
'#token_types' => array('user'),
'#show_restricted' => TRUE,
'#global_types' => FALSE,
'#weight' => 90,
);
$form['token_help'] = [
'#theme' => 'token_tree_link',
'#token_types' => ['user'],
];