SIU-Guarani/preinscripcion3.21.0/personalizacion
Personalizaciones
Preinscripción fue pensado para ser ampliamente configurable y personalizable sin necesidad de recodificación. Para ello se dispone de variables de configuración en el archivo "config.php" que afectan distintos comportamientos del sistema, y operaciones en el panel de administración que permiten definir para los campos de formulario, su visibilidad, obligatoriedad y si se imprimen o no en el comprobante. Si esto no alcanza para cubrir las necesidades, o si se desean realizar cambios de estilo (logo, colores, etc) se debe personalizar.
Preparar el proyecto para implementar personalizaciones
Para preparar el proyecto para implementar personalizaciones, seguir los siguientes pasos:
- En la carpeta "src/pers/" crear un subdirectorio para contener todos los archivos de personalización. Típicamente se suele nombrar a esa nueva carpeta con el nombre del nodo (siglas de la institucion).
- En el archivo de configuración '"config.php"' de la carpeta "instalacion", verificar que la variable "produccion" esté en "false". Esto es necesario para poder visualizar los cambios que se efectúen antes de pasar a producción.
- En el mismo archivo, establecer la variable "usar_personalizaciones" en "true".
- En el mismo archivo, en la sección "Configuración de puntos de acceso", setear la variable "personalizacion", que por defecto viene en NULL, con el nombre de la carpeta creado en el paso 1 (ej: "personalizacion" => "mi_institucion").
- IMPORTANTE: realizar este paso para la configuración de los bloques de acceso en los cuales se quiera personalizar.
A partir de este punto, el proyecto está preparado para ser personalizado.
Para personalizar algo, se debe buscar el archivo que se desea modificar y copiar sólo ese archivo en la carpeta de personalizaciones creada en el paso 1, respetando la estructura de directorios relativa. El motor de personalizaciones elegirá siempre en primer lugar el archivo personalizado antes que el entregado por el SIU, de allí la importancia de copiar sólo lo que se quiere cambiar y nada más.
Personalización de ejemplo
Junto con la distribución, se entrega una personalización de ejemplo (denominada, justamente, "ejemplo"). En la misma, se puede ver cómo personalizar algunas características del sistema.
Etiquetas y mensajes
Todo mensaje o etiqueta que se ve en pantalla o en el comprobante PDF que genera el alumno al finalizar el proceso, está definido en el archivo "mensajes.es.php", de la carpeta "src/siu/mensajes/".
Para cada mensaje o etiqueta, hay definida una entrada del tipo "<id_etiqueta>" => "<Descripción>" en ese archivo. Por ejemplo: "nombre_sistema" => "SIU-Preinscripción". Toda etiqueta es referenciada en el sistema por su ID, y un mecanismo de traducción busca en ese archivo la descripción correspondiente.
Por defecto, los mensajes están definidos en español, en un registro de confianza (voseo).
Para personalizarlo, lo que se debe hacer es crear un archivo "mensajes.es.php" en la estructura de carpetas "src/pers/mi_institucion/mensajes". En ese nuevo archivo, reescribir sólo las entradas que se deseen personalizar. Las incluidas en el archivo personalizado serán utilizadas en lugar de las originales.
|_ siu
| |_ mensajes
| |_ mensajes.es.php
|
|_ pers
|_ mi_institucion
|_ mensajes
|_ mensajes.es.php
Además, si se desea que algunas etiquetas de los campos de formulario se vean diferentes en el comprobante PDF respecto a cómo se ven en pantalla, se deben agregar al final del archivo entradas respetando la siguiente convención:
Ejemplo: si se desea que para la etiqueta 'nro_documento' se imprima 'Nro. documento' en lugar de 'Número de documento' (como está definida para la salida en pantalla), agregar una entrada:
Logo de página y favicon
Una necesidad común puede ser cambiar el logo de página. El entregado por defecto tiene el nombre "logo-transparente.png", y está configurado en la variable "logo_pagina" del "config.php". Para cambiarlo, basta con crear la siguiente estructura de carpetas, y copiar el nuevo logo:
|_ siu
| |_ www
| |_ img
| |_ logo-transparente.png
|
|_ pers
|_ mi_institucion
|_ www
|_ img
|_ logo-transparente.png
Si se desea renombrar el nombre del archivo, ajustarlo en la variable "logo_pagina" del archivo de configuración.
De la misma manera, en la personalización de ejemplo se muestra que para cambiar el favicon (ícono de página) basta con guardar un archivo "favicon.ico" en la misma carpeta del logo.
Se debe tener una consideración especial con respecto al logo que se muestra en el encabezado de página del comprobante PDF. Por limitaciones de la librería EZPDF, utilizada para la generación, sólo se permiten archivos en formato PNG y sin canal alfa. El nombre del archivo se define por medio de la variable "rep_encabezado_logo" del "config.php".
Estilos
Si se desean personalizar los estilos, se debe crear un archivo "preinscripcion.css" en la ruta "src/pers/mi_institucion/www/css/" y redefinir sólo las clases css que se deseen cambiar, independientemente del archivo en el que se encuentra el estilo original. En la personalización de ejemplo, se redefine el color de los títulos, los colores de fondo de la cabecera y de los agrupados, y se agrega el estilo cursiva para los labels obligatorios.
Manejo de datos propios
En "src/pers/ejemplo/modelo/manejador_datos.php" se dejó un ejemplo documentado de cómo proceder en caso de tener que recolectar datos extra a los manejados por el SIU.
Ahí mismo se deja una sugerencia de manejo de la tabla anexa, con las claves foráneas y triggers recomendados para operar según lo que se documenta.
Se deben redefinir dos métodos (el que setea los datos y el que los obtiene) según la documentación inline presente en ese archivo.
Otros casos
En la personalización de ejemplo se muestra además cómo personalizar:
- El comprobante, más allá de las configuraciones que ya vienen definidas en "config.php". Se entrega el archivo "src/pers/ejemplo/operaciones/_comun/generador_pdf.php", que extiende del generador base entregado por el SIU, y redefine el encabezado (elimina el código QR y amplía el espacio para la foto), no genera las secciones "CBC", "Avisos", "Fecha y firma" y "Credencial provisoria" (independientemente de lo establecido en "config.php") y se cambia el orden de la sección "Datos de estudios" para que se muestre luego de "Datos personales".
- La cabecera de página. Se exhibe el logo a la derecha, y se muestra también el nombre y apellido de la persona logueada. Ver: "src/pers/ejemplo/operaciones/_comun/templates/header.twig"
- El layout y el estilo de una sección de la operación de carga de datos (Idiomas). Se redefine el ancho de los combos de selección vía css, se cambia el color de fondo de ese agrupado y se define un margen. Además, se personaliza la definición de los campos del formulario, para cambiar la clase css del campo "alu_idioma_otro" (form::clase_css => "input-xxlarge"). Los archivos se pueden ver en: "src/pers/ejemplo/operaciones/censo/idiomas/"
La salida html del proyecto se realiza en base al motor de plantillas twig. Se puede encontrar documentación online en http://twig.sensiolabs.org/