Hero

Creación de una página de confirmación en Drupal 7

Noviembre 10, 2013

andreyjose
Drupal
Desarrollo de Modulos
Programación

A continuación se realizará la creación de una página de confirmación en drupal 7 vía código, ayudado con una función misma de drupal que nos facilitará la construcción de la página.

  1. Declaración de la página.

Para la creación de la página debemos hacer uso del hook hook_menu() dentro de un módulo personalizado creado de la siguiente forma:

/**
 * Implemento del hook_menu().
 */
function MIMODULO_menu() {
 $items['confirmation-page'] = array(
    'title' => 'Confirmation Page',
    'page callback' => 'drupal_get_form',
    'page arguments' => array('MIMODULO_confirm_page'),
    'access arguments' => array('access content'),
    'type' => MENU_CALLBACK,
  );
  return $items;
} 

Como se observa en el código anterior, se está definiendo la función MIMODULO_confirm_page donde se estará implementando la página de confirmación.

  1. Definición de la página de confirmación.

Para definir el contenido de la página se trabajará en la función MIMODULO_confirm_page de la siguiente forma:

/**
 * Creación de la página de confirmación.
 */
function MIMODULO_confirm_page() {
  global $base_url;
  
  $form = array();
  $form['instrucciones'] = array(
    '#type' => 'markup',
    '#markup' => '<div class="contenedor-instrucciones">' . 'Descripción de la página.....' . '</div>',
  );
  
  // Función de drupal para la construcción de la página de confirmación.  
  $form_confirm = confirm_form($form, 'Está seguro que desea continuar?', $base_url,$description ='', t('SI'), t('NO'));
  return $form_confirm;
}

Podemos observar en el código anterior que utilizamos la función confirm_form($form, $question, $path, $decription = NULL, $yes = NULL, $no = NULL, $name = ´confirm´), donde el parámetro $form podemos agregar todos los elementos que se quieran del Form API de Drupal, en este caso se agregó un markup solamente. El parámetro $question es donde se declara la pregunta quese le quiere hacer al usuario. En $path se define una ruta para que se redirecciona en caso de que el usuario cancele y no desea continuar y los parámetros $yes y $no es el texto que se quiere en los botones.

3. Definición de la función si se confirma el formulario.

A continuación se muestra la función personalizada que realiza el proceso deseado si se acepta el formulario de confirmación.

function MIMODULO_confirm_page_submit($form, &$form_state) {
  // Aquí se realiza el proceso deseado si se confirma el fomulario. 
  global $base_url; 
  drupal_goto($base_url);
}

En este caso se observa que la función anterior sólo hace un redireccionamiento a la página de inicio. Además el nombre de la función es la misma sólo que al final se le agrega _submit.

A continuación se muestra la página de confirmación contruída anteriormente:

imagen1 0

Espero que les haya sido de ayuda y muchas gracias.

Recibe consejos y oportunidades de trabajo 100% remotas y en dólares de weKnow Inc.