La estructura de la sede electrónica se sustenta en un modelo de plantillas que aprovecha la versatilidad del motor de plantillas
Thymeleaf
.
En este contexto, las plantillas pueden entenderse como archivos o estructuras predefinidas que actúan como moldes para la presentación de información en un sitio web. Estas plantillas proporcionan un marco organizativo y visual coherente, permitiendo una presentación uniforme de contenidos en todas las páginas del sitio.
Gracias al uso de Thymeleaf, las plantillas pueden incluir elementos dinámicos que se adaptan según el contexto de la aplicación web, lo que facilita la personalización y la generación dinámica de contenido
Organización
La estructura basica de un portal o servicio consiste únicamente en 2 archivos.
index.xml: Página indice del portal donde se colocará la propia información del portal / servicio
_template.xml: plantilla que se comparte entre todas las páginas que están ubicadas en la misma carpeta
Nombre portal/servicio
|-- index.xml
`-- _template.xml
Estructura base
Por norma general, se buscará crecer los portales horizontalmente, toda la información se basará en páginas al mismo nivel de la página índice
Según la naturaleza del tipo de contenido que generemos, la estructura básica puede variar. Para un portal, en general, la estructura base es suficiente. Para un servicio, dependerá lo que el servicio ofrezca.
Un servicio puede contar vista de listado, vista de detalle, formulario, administrador, etc...
Thymeleaf nos da la posibilidad de incluir fragmentos y plantillas dentro de otras, lo que nos permite evitar la duplicidad de contenidos y fomentar la reutilización de código.
A su vez, nos permite aprovechar la herencia de propiedades definidas en las directivas th:with
Información
Este concepto tomará mucho peso sobre la estructura actual de la sede electrónica. Los componentes hacen bastante uso del mismo y la configuración de templates se aprovechan de esto para evitar redundancia.
Incluir en el template el contenido y que este salga entre en las secciones definidas (Ya veremos esto mas a detalle en la seccion de templates). Esta es la elección predilecta para menús, cabeceras y secciones al pie de página.
Crear un archivo que contenga unicamente el contenido a compartir: por criterio es la mas recomendada ya que nos permite segmentar al detalle al contenido aumentando su capacidad de reutilización.
Crear un fragmento en el archivo original e incluirlo en los archivos compartidos. Util para secciones propias de un portal con fines organizativos o para el uso de componentes.
Alerta
Debido a su naturaleza, esta es la opción menos recomendada.
El archivo contenedor podría moverse o eliminarse sin darnos cuenta y eso produciría un error en las inclusiones en otros archivos
Aquí estamos definiendo la variable _var un valor arbitrario y lo estamos insertando en una etiqueta p
Templates
La plantilla "_template.xml" es fundamental como la estructura base para la presentación visual en cualquier portal o servicio. Esta plantilla se comparte entre todas las páginas que están ubicadas en la misma carpeta. En resumen, establece el diseño y la estructura básica que se aplicará de manera coherente en todo el sitio web. Aquí es donde se definen elementos clave como estilos, cabecera, menús y pie de página, proporcionando una apariencia uniforme y una navegación consistente en todas las páginas del sitio.
Para evitar la reduncia, fomentar la reutilización de fragmentos y facilitar futuras modificaciones en la estructura general de la sede electrónica utilizaremos la
inclusión de fragmentos
. De esta forma todos los componentes base de un portal serán compartidos en lo largo del árbol de carpetas y un cambio modificará todos los elementos hijo de la estructura.
Estas se generarán automáticamente dependiendo de "donde estemos" en la sede electrónica
Por defecto es un reflejo de la url actual. La sede electrónica utiliza una estructura de carpetas para definir la jerarquía de las páginas. Lo que se conoce como file-based routing
Ejemplo
/sede/portal/zero-emisiones/ se renderizará en el patrón zero-emisiones.
El formato en el que se haya definido el nombre del archivo se verá reflejada en los términos de la miga de pan
Para cambiar los términos definidos debemos usar el archivo /cont/vistas/i18n/messages_es.properties y definir una propiedad migapan.label
Ejemplo
migapan.label.Cartel-fiestas-pilar = Carteles Fiestas del Pilar
Resultado:
Antes:
Cultura
Cartel-fiestas-pilar.
Después:
Cultura
Carteles Fiestas del Pilar
Implementación
<sede:miga-pan></sede:miga-pan>
Podemos definir una estructura a medida que no respete la estructura de archivos de dos maneras:
Las cabeceras de servicios son una presentación inicial del servicio ofrecido.
Se componen de un encabezado que muestra el nombre del servicio y una breve descripción de lo que la ciudadanía puede esperar al utilizarlo.
Además, incluyen una barra de navegación transversal a todo el servicio, con un buscador (si el servicio cuenta con uno) y un listado de enlaces útiles. Por ejemplo, en el caso del servicio de equipamientos, se proporciona un enlace para acceder a datos abiertos.
Estandarizadas
Se han desarrollado una serie de "secciones" estandarizadas para lograr una homogenización en los diseños de los diferentes portales y servicios.
Integración de la salida de noticias de prensa. Cuenta con un buscador, el título y la capacidad de adaptar las imágenes en cantidad y tamaño.
El componente está configurado para aparecer como un carrusel en dispositivos móviles. Esta configuración permite a los usuario/as explorar con mayor facilidad en pantallas más pequeñas.
Salida del catálogo de publicaciones municipales. Está equipado con un buscador con un filtrado por defecto que se ajusta según el portal en el que se encuentre.
Integración de la salida de avisos. Incluye la capacidad de ajustar tanto la cantidad como las dimensiones de las tarjetas según las necesidades específicas
Esta sección se centra en la integración del catálogo de equipamientos de la ciudad. Este componente presenta un buscador que permite a los usuarios/as encontrar equipamientos específicos con facilidad al ofrecer un filtrado por defecto que se ajusta según el portal en el que se encuentre.
El componente está configurado para aparecer como un carrusel en dispositivos móviles. Esta configuración permite a los usuario/as explorar con mayor facilidad en pantallas más pequeñas.
Sección compuesta por el componente
Portal-tramitesservicios
Esta sección se centra en la integración del catálogo de Trámites y Servicios.
Incluye una salida de trámites (<sede:tramite/>) y una salida de preguntas frecuentes <sede:pregunta-frecuente/>.
El apartado de trámites dispone de un buscador, mientras que ambos, trámites y preguntas frecuentes, cuentan con un botón "Ver todos" que al presionarse despliega un modal con más contenido, en caso de existir.
Para destacar y resaltar los servicios clave ofrecidos en el portal, se implementó una salida de enlaces en forma de tarjeta.
Cada tarjeta representa un servicio específico, presentando su nombre, una breve descripción y un enlace directo para acceder al mismo. Esta disposición ayuda a identificar rápidamente los servicios, mejorando así la experiencia de usuario y fomentando la interacción con el portal.
Cuando nos enfrentamos a contenido extenso que necesitamos presentar de manera organizada en una sola página, podemos utilizar el componente
"collapse-to-tab"
. Este componente nos permite agrupar la información relevante de forma cohesionada.
En dispositivos móviles, esta función se visualizará como un conjunto de paneles colapsables, lo que facilita la navegación y la visualización del contenido sin ocupar demasiado espacio en la pantalla. Mientras que en vista de escritorio, se presentará como una lista de enlaces acompañada de un panel de visualización que incluirá un scrollbar para desplazarse a través del contenido de manera cómoda y eficiente.
Esta opción brinda a los usuarios una experiencia consistente y adaptable, independientemente del dispositivo que estén utilizando, garantizando así un acceso óptimo a la información.
A la hora de actualizar, migrar o crear un portal, nos enfrentamos a una variedad de requerimientos que deben ser considerados con atención. Es crucial comprender que las secciones propuestas no son más que directrices destinadas a mantener una estructura estandarizada.
Sin embargo, estas recomendaciones no deben ser percibidas como limitantes. Es perfectamente válido generar secciones específicas para cada portal según sea necesario. La clave radica en evaluar si los elementos creados para un portal en particular deberían permanecer exclusivamente allí o si podrían ser útiles en otros contextos.
Es esencial que, al desarrollar nuevas secciones, seamos proactivos en pensar en su potencial utilidad en otros portales, de manera que podamos maximizar la eficiencia y coherencia en el diseño y la funcionalidad de nuestros recursos en línea.
Páginas índice
Con el rediseño de la sede electrónica se busca que todas las páginas indice de cada portal sean homogéneas tanto en estilo como en funcionalidad.
Esto quiere decir que, además de mantener una estética similar, cumplirán con el mismo propósito en todos los casos. Permitir a la ciudadanía entender de que trata el portal y cuales son los servicios asociados de un solo vistazo.
Se buscará exponer de forma clara los servicios disponibles para ese portal ofreciendo un acceso a los servicios asociados y sus respectivos buscadores, preferentemente utilizando alguna de las
secciones estandarizadas
Para facilitar la exposición de servicios de un portal se desarrolló el componente portal/index el cual brinda a partir de una configuración basada en el standard JSON, la posibildiad de exponer los servicios utilizando las secciones estandarizadas y configurar su orden dentro del portal.
En su forma mas básica, el servicio deberá ofrecer una vista de listado y una vista de detalle. A partir de esa instancia, la complejidad del servicio la brindará la naturaleza del mismo