Un de mes clients me demandait cette semaine de changer le label (ou le titre) d’un champ localisation dans un formulaire d’édition d’un node sur son site Drupal. Il voulait en particulier que les noms de champ 'Rue' et 'Additional' soient remplacés par 'Adresse 1' et 'Adresse 2' respectivement.
Comme vous le savez sans doute les module Location et Gmap de Drupal nous permettent de (géo) localiser des nodes avec de jolies cartes de Google Maps.
Nous allons donc, dans module propre, utiliser le hook_form_alter() mais avec deux manières distinctes si nous avons utilisé le sous module Location CCK ou le sous module Node Locations.
Dans les deux cas nous allons utiliser la fonction #after_build qui nous permet d’appeler une fonction une fois que notre formulaire a été construit mais avant qu’il soit renderisé (rendered). C'est là que nous allons changer nos labels ou titres de nos champs.
Node Locations
<?php
/**
* Implementation of hook_form_alter().
*
* The function is named modulename_form_alter.
*/
function MYMODULE_form_alter(&$form, &$form_state, $form_id){
switch ($form_id){
case 'MYNODE_node_form':
$form['#after_build'][] = 'change_location_label';
break;
}
}
function change_location_label(&$form) {
$form['locations'][0]['street']['#title'] = t('Adress 1');
$form['locations'][0]['additional']['#title'] = t('Adress 2');
return $form;
}
?>
Commentaires récents
il y a 4 jours 20 heures
il y a 6 jours 2 heures
il y a 6 jours 20 heures
il y a 6 jours 23 heures
il y a 13 semaines 6 jours
il y a 14 semaines 1 jour
il y a 7 semaines 1 jour
il y a 10 semaines 5 jours
il y a 11 semaines 1 jour
il y a 11 semaines 4 jours