Cambiar valor default en select en entityfrom type

We encourage users to post events happening in the community to the community events group on https://www.drupal.org.
clau_bolson's picture

Hola, los vuelvo a molestar con este sitio que no consigo terminar porque a los clientes cada vez se les van ocurriendo cosas distintas, por supuesto que implican modificación del comportamiento del módulo, y cada cambio mínimo me lleva días de trabajo.
Tengo un par de entityform types que son para que los visitantes dejen sus datos, tienen dos select: localidad y cargo, que son referencias a sendos vocabularios de taxonomía
Ahora se les ocurrió que en el select en lugar de decir "seleccione un valor" debe decir "seleccione una localidad" y "seleccione un cargo".
No quiero hacer la obvia de agregar eso al vocabulario y después ponerlo como default porque los campos son obligatorios y de esa forma me arriesgo a que dejen ese valor.
Podrá hacerse de otra forma?
Gracias.

Claudia

Comments

hook_form_alter

Piratawww's picture

Lo más sencillo es que modifiques los formularios con hook_form_alter() en un modulo a medida.

https://api.drupal.org/api/drupal/modules%21system%21system.api.php/func...

Consejo.. cierra especificaciones con un buen documento de requerimientos del proyecto y todo lo que no aparezca de forma explicita, a represupuestar.

Un abrazo,

Sí ya probé

clau_bolson's picture

Hola, con respecto al hook_form_alter ya lo probé pero parece que no funciona en entityforms. O yo no supe hacerlo bien.
Con respecto a las especificaciones... no es tan fácil...

Hola,Probaste lo que posteé

anairamzap's picture

Hola,
Probaste lo que posteé en https://groups.drupal.org/node/514633#comment-1151724 ?
Si es así y te funcionó OK podés usar la misma función e imprimir el form (si tenés devel habilitado, con dpm(), sino con var_dump():

<?php
/**
* Override 'none' text.
*
* Implements hook_form_alter().
*/
function modulename_form_alter(&$form, &$form_state, $form_id) {
 
// dpm($form); descomentar si usás devel
 
var_dump($form); // comentar si usás devel y descomentar la línea de arriba
}
?>

Allí verás el formulario con todos sus campos, y obtendrás el $form_id, para poder aplicar los cambios que hagas sólo a un formulario específico. Ejemplo:

<?php
/**
* Override 'none' text.
*
* Implements hook_form_alter().
*/
function modulename_form_alter(&$form, &$form_state, $form_id) {
 
// dpm($form); descomentar si usás devel
 
var_dump($form); // comentar si usás devel y descomentar la línea de arriba

 
if ($form_id == 'simpletest_entityform_entityform_edit_form') {
   
$form['field_localidad'][LANGUAGE_NONE]['#options']['_none'] = t('Selecione una localidad');
  }
}
?>

Por supuesto deberás reemplazar:
- modulename_form_alter con el nombre de tu módulo.
- simpletest_entityform_entityform_edit_form con el $form_id de tu form.
- field_localidad con el nombre de tu campo
- -Selecione una localidad- con el texto que quieras muestre cuando ninguna opción ha sido seleccionada.

Gracias, para el otro caso

clau_bolson's picture

Gracias,
para el otro caso usé el módulo que me sugerían, pero para este voy a probar lo que me decís.

Estoy de acuerdo con lo

jhonatanfdez's picture

Estoy de acuerdo con lo sugerido por: anairamzap.

Con estos trozo de código ya es posible hacer el cambio correctamente.

Saludos.

Argentina

Group organizers

Group notifications

This group offers an RSS feed. Or subscribe to these personalized, sitewide feeds: