Dans Drupal 7, vous pouvez définir des valeurs par défaut pour la plupart des champs. Est-il possible de définir un jeton comme valeur par défaut.
Je me souviens que cela était possible dans Drupal 6, mais cela ne semble pas possible dans Drupal 7.
Il y a un fil ici qui discute de la possibilité, mais ce n'est pas clair si elle a été résolue.
Quelles informations essayez-vous d'obtenir ??
Dans l'un de mes types de contenu, je dois récupérer l'ID du nœud. J'ai trouvé que le jeton pour l'ID de nœud actuel est le suivant:
[current-page:url:args:last]
Testé et travaillant pour moi !!
Ça marche pour moi:
/**
* Implements hook_field_widget_form_alter().
*/
function MODULE_hook_field_widget_form_alter(&$element, &$form_state, $context) {
// Prevent replace tokens on field admin ui form.
if (!is_null($element['#entity'])) {
// Determine the $user. If entity has uid, try to load. If can't, use the
// global $user.
if (isset($element['#entity']->uid)) {
if (!$user = user_load($element['#entity']->uid)) {
global $user;
}
}
// Build data for token replacement.
$data = array(
$element['#entity_type'] => $element['#entity'],
'user' => $user,
);
// Eg. the body field, the default value is stored in
// $element['#default_value']
if (isset($element['#default_value']) && !is_array($element['#default_value'])) {
$element['#default_value'] = token_replace($element['#default_value'], $data);
}
// Eg. the link field, the default value is stored in
// $element['#default_value']['url']
else if (is_array($element['#default_value'])) {
foreach ($element['#default_value'] as $key => $value) {
if (is_string($value)) {
$element['#default_value'][$key] = token_replace($value, $data);
}
}
}
// Eg. the text field, the default value is stored in
// $element['value']['#default_value']
else if (isset($element['value'])) {
if (isset($element['value']['#default_value']) && !is_array($element['value']['#default_value'])) {
$element['value']['#default_value'] = token_replace($element['value']['#default_value'], $data);
}
}
}
}