Next Previous Contents

6. Apéndices

6.1 Estructura de la base de datos

Ver el fichero database.sql que contiene el código SQL para crear las tablas, estructuras, y permisos de la base de datos

6.2 Preguntas más frecuentes

Consultar el fichero (FAQ)

6.3 Ampliaciones previstas

6.4 Guía para la modificación del código fuente

Normas generales

Es posible que el administrador desee cambiar el aspecto o contenidos de la aplicación. Para ello, se recomiendan ( en aras de poder exportar dichos cambios ) la siguiente política:

El programa de instalación, al generar los ficheros y directorios, realiza un backup de toda la instalación, y lo copia en el directorio de instalación especificado por el administrador. De este modo se dispone de una imagen de la instalación accesible desde la propia instalación, para que los usuarios puedan ver cómo fue instalado originalmente el servidor. No obstante dicho fichero no garantiza contra posteriores modificaciones.

Ficheros include

Existen diversos ficheros include:

Estructura de las páginas

La apariencia de las páginas en un navegador es de una serie de frames, incluyendo los siguientes ficheros:

El hecho de utilizar frames se hace necesario, debido a que la documentación es generada mediante sgml-tools a partir de un fichero .sgml en formato LinuxDoc

La estructura general de una página web de Free-Vote es la siguiente:


<html>
<head>
<title>Free-Vote: __TITULO_DE_LA_PAGINA__</title>
</head>
<body>
<!-- fichero de configuracion -->
<? require('tools.php3'); ?> 
<? check_https(); ?> <!-- solo necesario si esta pagina debe ser "segura" -->
<!-- COMIENZO DEL TEXTO -->
Esto es un ejemplo de opción de menú 
para el programa <bf><em>Free-Vote</em></bf>
<!-- FIN DEL TEXTO -->
</body>
</html>

Debido a que utiliza funciones PHP para la inclusion de datos de configuración y cabeceras y menús, el fichero debe tener extensión .php3 para que pueda ser reconocido por Apache

Manejo de enlaces

Por defecto, todas las páginas se encuentran en el mismo directorio, definido en el fichero de configuración. En ocasiones, puede ser preciso añadir nuevos enlaces, o cambiar los ya existentes. Para ello se dispone de dos macros:

En general, las páginas de documentación y las generadas automáticamente se accederan a través de WEBURL; las de acceso a la base de datos usarn SECUREURL. Se hace hincapié en aras de la seguridad en que se observe este convenio

Revisión de la documentación

La documentación de Free-Vote está realizada partiendo de un fichero en formato LinuxDoc-SGML. Para modificar dicha documentación edítese este fichero directamente, en lugar del los ficheros HTML resultantes.

El programa de instalación tiene una opción --compile-doc, que procesa el fichero SGML y genera los ficheros HTML definitivos. Para proceder a la compilación, es preciso que se tengan instaladas las SGML-Tools en el sistema

Funciones de biblioteca

Revisar el fichero tools.php3 donde se detallan y documentan las diversas funciones y utilidades

Notas para portar a otras bases de datos

Free-Vote utiliza una serie de primitivas genéricas de acceso a bases de datos, definidas por las funciones db_XXXX(). Existen una serie de ficheros dbname.php3, donde dbname es el nombre de la base de datos definida en el fichero de configuración mediante la variable DB_PROGRAM. El usuario deberá seguir los ejemplos suministrado para PostGreSQL y MySQL, para realizar su propia librería de compatibilidad

El código actual de Free-Vote aprovecha algunas características avanzadas de PostGreSQL como son el uso de secuencias y claves ajenas, disparadores, actualización y borrado en cascada , y agrupamiento de operaciones mediante secuencias BEGIN / COMMIT / ROLLBACK. Estas características no están presentes en otras bases de datos, como MySQL o mSQL, por lo que el programador deberá proveer mecanismos para su simulación

6.5 Interacción con el Correo Electrónico

Free-Vote utiliza el correo electrónico como medio de comunicación para enviar datos sensibles e información adicional al usuario Esto es así por diversos motivos:

Para generar los mensajes de correo electrónico, Free-Vote utiliza una serie de ficheros template, a modo de plantillas, que son configurables y definibles por el usuario. Estos ficheros residen en el directorio lib/templates. El administrador puede cambiar su contenido, pero -a menos que modifique el programa- no su nombre:

ask_for_key

Mensaje enviado cada vez que el usuario solicita la tarjeta de voto

emitted_vote

Mensaje de notificación de que el usuario ha procedido a votar una consulta

todo_new_votation

Acuse de recibo de una solicitud de creación de nueva consulta

todo_register_user

Acuse de recibo de solicitud de registro de un usuario en el sistema

done_edit_user

Enviado cada vez que se modifican los datos personales referidos a un usuario

done_del_user

Notificación de que el registro de un usuario ha sido eliminado del sistema

done_new_votation

Notificación al organizador de una nueva consulta de la aceptación de ésta

done_del_votation

Notificación al organizador de una connsulta de que ésta ha sido borrada del sistema

done_register_user

Notificación del registro de un usuario en el sistema

Existen una serie de macros predefinidas, que pueden ser usadas por el administrador a voluntad en los textos a enviar por correo electrónico:

__ADMIN_EMAIL__

Dirección de correo del administrador del sistema

__WEBPAGE__

Página web donde reside el sistema de voto

__DBTITLE__

Nombre del sistema de voto

__EMAIL__

Dirección de correo del destinatario

__NOMBRE__

Nombre del destinatario

__APELLIDOS__

Apellidos del destinatario

__DIRECCION__

Domicilio del destinatario del correo

__USERID__

Identificador de usuario

__TELEFONO__

Teléfono del destinatario

__VOTE_KEY__

Clave de voto asignada al usuario ( sólo en caso de haberla solicitado )

__VOTE_TITLE__

Nombre de la votación a que se refiere el correo ( sólo en el caso de que el mensaje esté referido a una votación )

__DATE__

Fecha en que se envía el correo

Si se desean crear nuevos formularios para envío de mensajes adicionales basta con editar el fichero tools.php3 y añadirlos en la sección correspondiente

6.6 Gestión del registro de eventos

Free-Vote utiliza diversos recursos del sistema como registro de eventos:

Además, el programador puede definir y establecer en el programa diversos registros de sucesos, clasificados por tipo y prioridad. Actualmente están definidos los siguientes tipos de eventos:

Sobre cada uno de estos tipos de eventos se definen los siguientes niveles de prioridad:

La función de librería register_event toma tres parámetros: el tipo de evento, su nivel de prioridad, y el mensaje a presentar. La rutina compara el nivel y tipo de evento que se desea registrar con el nivel de seguimiento que se ha programado en el fichero de configuración. En caso de que el nivel sea igual o superior, el mensaje es almacenado en el fichero del registro de eventos. En caso contrario, el mensaje es ignorado

El Administrador, a la hora de instalar el sistema, debe definir el fichero asociado al registro de eventos, así como los niveles de prioridad que quiere registrar en función del tipo de evento.

Como se puede ver es una implementación muy similar al syslog estandard del sistema, salvo que no se puede reconfigurar dinámicamente , sino que será preciso detener el servidor web para que los cambios se hagan efectivos

Existen unos puntos de registro de evento predefinidos. No obstante, el administrador, en función de sus necesidades, podrá situarlos donde más lo estime conveniente


Next Previous Contents