forms – Agregar elemento al principio del formulario, a través de hook_form_alter ()

Pregunta:

Usando Drupal 7, estoy tratando de utilizar Drupal Form API en combinación con hook_form_alter para colocar mis entradas agregadas al principio del formulario.

Pensé que la mejor manera de hacer esto era crear un nuevo elemento de formulario como este:

$form['program_list'] = array(
    '#type' => 'select', 
    '#title' => t('Select a preferred Program'), 
    '#options' => $program_list,
    '#weight' => -1,
);

Leí la documentación y parece que hay un atributo #weight . Intenté establecer el peso en 0 y números enteros negativos, pero mis entradas agregadas todavía están en la parte inferior.

Luego usé var_dump() para verificar los pesos de mis entradas generadas por Webform. Eran como esperaba: un índice de peso incremental basado en 0.

También intenté colocar los elementos en $newform luego usar $form = $newform + $form , pero eso también colocó mis nuevas entradas en la parte inferior del formulario.

¿Qué estoy haciendo mal?

Respuesta:

Estaba enfrentando el mismo problema pero encontré la respuesta gracias a esta publicación: http://drupal.org/node/235354

El problema era que el campo que estaba agregando a mi formulario web no estaba en un grupo cuando todos los campos ya existentes eran parte del grupo 'enviado' tal vez porque este es un formulario web. Entonces, establecer el peso en -1000 no cambió nada.

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

    $form['my_new_field_name'] = array (
      '#type' => 'checkbox',
      '#title' => t ('My new field is after the others'),
      '#weight' => -1000,
    );

}

Para que funcione correctamente, solo necesitaba crear mi nuevo campo dentro del grupo 'enviado' así:

$form['submitted']['my_new_field_name'] = array (...

Leave a Comment

Your email address will not be published. Required fields are marked *

Scroll to Top

web tasarım