web-dev-qa-db-fra.com

Comment attacher un jeton dans un champ de formulaire personnalisé

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.

3
Aruna Singh

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.

6
Berdir

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,
);
1
Calar
$form['token_help'] = [
  '#theme' => 'token_tree_link',
  '#token_types' => ['user'],
];

https://www.drupal.org/documentation/modules/token

1
Andreii Gurkovskii