Esta semana, unos de mis clientes me pedía cambiar el título de un campo localización en el formulario de edición de un nodo en su sitio Drupal. En particular, quería cambiar los títulos ‘Street’ y ‘Additional’ por ‘Dirección 1’ y ‘Dirección 2’ respectivamente.
Ya saben que los módulos Location y Gmap de Drupal nos permiten (geo) localizar nodos con mapas de Google Maps.
Vamos entonces, en un módulo propio, utilizar el hook_form_alter() pero de dos maneras distintas según hemos implementado los sub módulos Location CCK o Node Location.
En los dos casos utilizaremos la función #after_build que nos permite llamar a una función propia una vez que nuestro formulario ha sido construido pero antes que sea “renderizado” (rendered). Es con esta función que vamos a poder cambiar los títulos de nuestros campos.
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;
}
?>No se olviden cambiar MYMODULE por el nombre de su módulo y MYNODE por el nombre del tipo de nodo que utilizan.
Location CCK
<?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['field_MYFIELD'][0]['street']['#title'] = t('Adress 1');
$form['field_MYFIELD'][0]['additional']['#title'] = t('Adress 2');
return
$form;
}
?>No se olviden cambiar MYMODULE por el nombre de su módulo y MYNODE por el nombre del tipo de nodo que utilizan y MYFIELD por el nombre del campo Location CCK que han definido.
Referencias:
El módulo Location: http://drupal.org/project/location
El módulo Gmap: http://drupal.org/project/gmap
El hook_form_alter(): http://api.drupal.org/api/drupal/developer--hooks--core.php/function/hoo...
La API de los formularios: http://api.drupal.org/api/drupal/developer--topics--forms_api_reference....
Si tienen preguntas, no duden en dejar un comentario.


Comentarios recientes
hace 2 semanas 2 días
hace 2 semanas 6 días
hace 3 semanas 5 días
hace 4 semanas 47 mins
hace 5 semanas 6 días
hace 13 semanas 20 horas
hace 13 semanas 2 días
hace 13 semanas 2 días
hace 13 semanas 2 días
hace 13 semanas 2 días