J'ai un formulaire personnalisé dans Drupal 8. J'ai besoin d'attacher des jetons pour les champs de mon formulaire. Fondamentalement, je veux ajouter l'option "Parcourir les jetons" pour chaque champ de mon formulaire.
token.module
a plusieurs exemples, par exemple:
// Add the token tree UI.
$form['email']['token_tree'] = array(
'#theme' => 'token_tree_link',
'#token_types' => array('user'),
'#show_restricted' => TRUE,
'#weight' => 90,
);
Cela affiche un lien pour les jetons pour le type utilisateur (et les jetons globaux).
Vous pouvez également utiliser le #element_validate
rappeler token_element_validate
avec également l'ajout de #token_types
pour le faire valider.
Il s'agit d'une copie du "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;
}
Pour éviter d'afficher les "jetons globaux" dont vous avez besoin:
'global_types' => FALSE,
Code comme élément de rendu (n'oubliez pas le # (!)):
// 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'],
];