Cambiar el estado de "obligatorio" a "no obligatorio" en un formulario.

Events happening in the community are now at Drupal community events on www.drupal.org.
oskar_calvo's picture

Buenas gente.

Tengo un nodo perfil que realmente aglutina dos perfiles (comercial y jefe de ventas).

Hay un campo de fecha que solo afecta al comercial, y es obligatorio.

El problema es que cuando rrhh entra a ver el perfil de uno u otro usuario, como ve todos los campos, el campo de fecha que no es obligatorio para el jefe de ventas hay que rellenarlo.

He probado con el hook_form_alter, para forzar el campo de obligatorio a no obligatorio.

He probado también a montar una función after_build para realizar los campos, pero ni por esas.

Cuando hago un dpm me indica que #required esta a 0 pero me sigue pidiendo el campo fecha como obligatorio.

¿Alguna sugerencia?

Oskar

Comments

Buenas Oskar, Yo lo que haría

trigop's picture

Buenas Oskar,

Yo lo que haría sería quitarlo de obligatorio del formulario y en la función de validación comprobar si es obligatorio para este perfil y devolver un form_set_error o dejarlo pasar.

suerte!

Ejemplo con CCK en D6...

markus_petrux's picture

<?php
/**
* Implementation of hook_form_alter().
*/
function MODULE_form_alter(&$form, $form_state, $form_id) {
  if (
$form_id == 'NODETYPE_node_form') {

   
// Alter the required attribute of field ABC based on XXX.
   
$field_element = &content_get_nested_elements($form, 'field_ABC');
   
$field_element = &$field_element[0];
   
$field_element[0]['#required'] = (XXX ? TRUE : FALSE);
  }
}
?>

Puede que $field_element[0]['#required'] dependa del tipo de campo.

Madrid

Group organizers

Group notifications

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