Drupal 6: Como establecer un campo de formulario creado con CCK como desactivado

Drupal 6: Como establecer un campo de formulario creado con CCK como desactivado

Los campos de formulario son muy sencillos de manipular mediante un form_alter en un módulo, sin embargo cuando estamos tratando con campos creados con CCK (Content Construction Kit) la historia es un poco distinta porque estos campos son creados al final de la construcción del formulario, de tal forma que cualquier cambio que necesitemos realizar debemos hacerlo entre la contrucción del formulario y el renderizado.

 

#after_build

 

El el hook_form_alter necesitamos definir la función que se va a ejecutar después de construido el formulario usando el elemento especial #after_build (http://api.drupal.org/api/drupal/developer--topics--forms_api_reference…)

 

function mymodule_form_alter(&$form, &$form_state, $form_id){

  ...

  $form['#after_build'][] = 'mymodule_after_build';

  ...

}

 

El siguiente paso es crear la función que especificamos y hacer el cambio al cambio mediante la especificación del atributo 'disabled'

 

function mymodule_after_build($form, &$form_state){

  ...

  $form['field_myfield'][0]['value']['#attributes']['disabled'] = TRUE;

  ...

 

  return $form;

}

 

Si tiene alguna inquietud o aporte que hacernos, contáctenos a través de este formulario o de nuestra cuenta de Twitter @seedcolombia