Un primer vistazo
Algunas filosofías y conceptos básicos de Prontus
En este artículo nos gustaría explicar las filosofías que se encarnan en Prontus, así como las estructuras básicas sobre las que se sustenta.
Si podemos mencionar un concepto que destaca a Prontus, ese es la eficiencia, que está embebida en todos los desarrollos: "¿Es realmente necesario consultar este dato cada vez que un usuario carga la página, o puedo hacer un proceso que recoja el resultado de esta consulta en un archivo estático?" "¿Puedo pasar este procesamiento al lado cliente?" son preguntas que nos hacemos en cada desarrollo. El resultado de esta filosofía es un CMS que sirve documentos estáticos, privilegiando el rendimiento y la performance. Esta estructura de trabajo orientada a la eficiencia se une a otras consideraciones de diseño, como la separación de los directorios de ejecutables, que hacen que tengamos además un récord envidiable de seguridad, y no sólo porque intentar inyecciones SQL en un sitio estático sea una buena manera de perder el tiempo.
Más allá de las filosofías generales de diseño, el CMS Prontus se basa en dos estructuras conceptuales, el artículo y la portada, donde un artículo es lo que el nombre sugiere, un ítem de información, y la portada es un documento que agrupa artículos y los presenta en orden. Los artículos y portadas se apoyan a su vez en dos herramientas, el FID ("formulario de ingreso de datos", simplemente un form HTML que especifica con sus campos <input> qué campos tendrá ese tipo de artículo) y la plantilla. Una definición de Prontus podría ser entonces "Prontus es un sistema de publicación que recibe datos desde FIDs y los elabora con plantillas para producir artículos y portadas".
Por debajo de artículos, FIDs, plantillas y portadas, la estructura de datos básica de Prontus es un documento XML por artículo. Este documento es extremadamente simple, constando de un tag <artic_data> que contiene dos áreas principales, <_private> y <_public>. El tag _private contiene a su vez los datos "administrativos" de un artículo, como titular, taxonomía, autor, fecha de creación. El tag _public en cambio contiene el contenido particular a cada artículo: el cuerpo de texto, las imágenes y archivos asociados.
Otra definición de Prontus a bajo nivel podría ser "Un parser que procesa un FID, una plantilla y un diccionario de marcas con un minilenguaje propio." Crear un nuevo campo de datos en un tipo de artículo es tan simple como agregar un campo input HTML con ese atributo name en un formulario de ingreso de datos. Al completarlo y guardar el artículo, el dato ya está disponible para su uso en plantillas. Por ejemplo, si necesito agregar un campo "titular_twitter" a un FID, debo simplemente editar el formulario de ingreso de datos de noticias y agregar un tag HTML como
<input type="text" name="titular_twitter" id="titular_twitter">Con esto (más alguna validación sobre el input, claro) ya tengo disponible el campo en mis plantillas, debo solamente usar el formato de marca de Prontus, %%titular_twitter%%. Prontus usa dos símbolos de porcentaje para rodear las marcas que se requiere procesar.
Mencionamos un diccionario de marcas. Esto es porque, además de los campos que yo pueda crear en los FIDs, ya hay una gran cantidad de marcas reservadas usables en FIDs, plantillas de artículo, plantillas de portada, y demás. Por ejemplo, marcas para mostrar la fecha de publicación del artículo, para presentar el árbol de taxonomías seleccionables, para mostrar la taxonomía asignada, y muchas otras. Otras marcas Prontus implementan un control de flujo simple: la marca %%loop%% y la marca %%if%% permiten respectivamente iterar y aplicar condiciones, mientras que las marca %%macro%% permite reusar y encapsular trozos de código en las plantillas. Una ventaja adicional de este minilenguaje es su completa independencia de cualquier sistema de scripting que se use adicionalmente en el servidor o el frontend. Dado que todas las marcas Prontus son procesadas al generar las páginas, puedo pasar datos desde Prontus a un lenguaje de programación de lado server, como PHP o Ruby, o a un lenguaje de scripting de lado cliente como Javascript.
Estas definiciones de Prontus no abarcan toda la funcionalidad ofrecida, pero esperamos que hayan abierto su apetito para investigar más. Prontus es código open-source de fácil instalación, así que nada le impide probar. Adelante!