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
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é
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é
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
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
Estoy de acuerdo con lo sugerido por: anairamzap.
Con estos trozo de código ya es posible hacer el cambio correctamente.
Saludos.