En cualquier aplicación es necesario mostrar avisos, errores... En gvHidra todo este tipo de mensajes se ha clasificado en cuatro grupos, más que nada por su aspecto visual, ya que todas serán invocadas de la misma forma, asociando un color a un tipo de mensaje:
Alertas.
Este tipo de mensajes será útil para alertar al usuario de un estado, aunque pueda continuar trabajando pero con conocimiento de un estado. En el ejemplo se alerta de que la aplicación está en desarrollo por lo tanto puede ser inestable.
Avisos.
Este tipo de mensaje nos avisa de cierta situación, nada problemática, pero que tengamos en cuenta.
Errores.
Claramente los errores muestran problemas ocurridos al efectuar una acción. En el ejemplo se avisa de que hay que rellenar ciertos campos de forma obligatoria y por eso falla la búsqueda.
Sugerencias.
Son mensajes de tipo consejo al usuario que no le impiden continuar con el trabajo. En el ejemplo se aconseja al usuario cerciorarse de que todo esté rellenado antes de efectuar la acción.
Hay mensajes que son propios del framework, son mensajes generales a cualquier aplicación, se encuentran ubicados en la clase IgepMensaje.php. Por otro lado estarán los mensajes particulares de cada aplicación, estos se definirán en el fichero mensajes.php, este fichero se encuentra en el directorio raíz de la aplicación.
Vamos a explicar como añadir mensajes en el fichero mensajes.php. En este fichero existe una variable global que es el array donde se irán almacenando los mensajes ($g_mensajesParticulares).
<?php global $g_mensajesParticulares; $g_mensajesParticulares = array( 'APL-1'=>array('descCorta'=>'No se puede realizar el borrado','descLarga'=>'No se puede borrar un tipo que tiene subtipos asociados. Si quiere eliminar este tipo deberá borrar todos sus subtipos.','tipo'=>'ERROR'), 'APL-2'=>array('descCorta'=>'Se ha listado la factura.','descLarga'=>'Se ha listado la factura %0%-%1%.','tipo'=>'AVISO'), ... ); ?>
Un mensaje se crea añadiendo un elemento al array asociativo. El elemento tiene una clave única (ej. 'APL-1'), ya que esta clave es la que se utilizará como identificador para invocarlo, y como valor es otro array que contiene tres elementos:
descCorta: Descripción corta del mensaje, esta descripción aparecerá en la parte superior del mensaje, en la zona coloreada.
descLarga: Descripción completa del mensaje, esta descripción aparecerá en la parte inferior del mensaje, zona blanca. Aquí podemos jugar con el texto del mensaje y pasarle parámetros desde su invocación, nos dará un mensaje más personalizado. Los valores vendrán en un array, y aquí se hará referencia a ellos de la siguiente forma %0% para el primer valor del array, %1% para el segundo, y así sucesivamente.
tipo: palabra clave que definirá el tipo del mensaje. Estas palabras pueden ser: AVISO, ERROR, SUGERENCIA y ALERTA, que se corresponden con los cuatro grupos vistos anteriormente.
La invocación de los mensajes se puede efectuar desde dos puntos distintos, desde código o mediante parámetro del plugin.
Es el uso más habitual. Para invocar un mensaje hay que hacer uso del método showMensaje() y pasándole como parámetro el identificador del mensaje que queremos mostrar, que debe coincidir con el definido en mensajes.php:
if ( <condicion> ) {
$this->showMensaje('APL-3');
return 0;
}
También podemos pasar argumentos a los mensajes, atributos para personalizar mejor el mensaje que queremos dar. En este caso, en el texto del mensaje deberemos colocar las variables a sustituir, de la forma '%0%', '%1%', ... tal y como hemos explicado anteriormente. Estas variables se pasan en el método showMensaje() mediante un array con tantos valores como variables hayamos definido. A continuación se muestra un ejemplo:
// APL-4: El valor ha de ser mayor de %0% y menor de %1% if ( <condicion> ) { $this->showMensaje('APL-4', array('5','10')); return 0; }
En este caso nos referimos a ventanas que solicitan del usuario una confirmación para continuar con la acción o cancelarla.
Para crear este tipo de mensajes de confirmación hay que añadir el parámetro "confirm" al plugin CWBoton (ver Apéndice X Documentación plugins) indicando el identificador del mensaje que queremos mostrar (ej. "APL-2").
De este modo, nos aparecerá un mensaje con dos alternativas Si/No. Al pulsar Si se ejecutará la acción, al pulsar No, la acción quedará cancelada.
{CWBoton imagen="41" texto="Guardar" class="boton" accion="guardar" confirm="APL-32"}