Noviembre 10, 2013
andreyjose
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.
- 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.
- 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:
Espero que les haya sido de ayuda y muchas gracias.