Responder al comentario

Cambiar el título de un campo de un formulario Location en Drupal 6.x

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.

Tags:

Responder

El contenido de este campo se mantiene privado y no se mostrará públicamente.
  • Las direcciones de las páginas web y las de correo se convierten en enlaces automáticamente.
  • Etiquetas HTML permitidas: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd><img>
  • You may post code using <code>...</code> (generic) or <?php ... ?> (highlighted PHP) tags.
  • Saltos automáticos de líneas y de párrafos.

Más información sobre opciones de formato

By submitting this form, you accept the Mollom privacy policy.

Arcerca del autor

Karim Boudjema Karim Boudjema. Un programador belga en los Andes de Bolivia.

Ver mi perfil en LinkedInVer mi perfil en Twitter

>> Más...

Comentarios recientes