Desde hace algunos años cada vez se oye con más fuerza entre las soluciones Web las implementaciones basadas en CMS. CMS (del inglés Content Management System) es un sistema de gestión de contenidos que permite a través de una sola interfaz, gestionar una o varias bases de datos y mantener de manera independiente tanto los contenidos como el diseño de un site.Son muchos los CMS que conviven actualmente, tanto de software propietario (Vignette o FatWire) como de código abierto, siendo los de este último tipo los más extendidos. WordPress, Joomla!, Alfresco, Liferay o Drupal son claros ejemplos de CMS basados en código abierto, donde existen además grandes comunidades de desarrolladores que crean soluciones para las nuevas necesidades, colaborando de esta manera en la evolución de los productos.
El objetivo principal de cualquier CMS es que un usuario, sin conocimientos de programación Web, sea capaz de administrar y gestionar los contenidos de una página con facilidad.
Frecuentemente es necesario adaptar la funcionalidad básica que proporciona un CMS para que se adapte a una determinada solución. En este caso, será necesario, además de un conocimiento más amplio del sistema de gestión, disponer de un mayor grado técnico para el desarrollo de ampliaciones, la creación de herramientas específicas e implementaciones, que servirán para la creación de soluciones a medida de cualquier grado de complejidad.
Los CMS a nivel operativo distinguen una parte pública (front-end) donde cualquier usuario puede acceder y realizar ciertas acciones, y una parte de gestión privada (back-end) que nutre a la parte pública y cuyo acceso está sujeto a una jerarquía de perfiles.
El lenguaje y la estructura de los distintos CMS varía dependiendo de las necesidades de la página a administrar (bien sea un blog, un foro, comercio electrónico, webs de suscripción, publicación multimedia…), pero todos ellos tienen en común una concepción orientada a la implementación en casi cualquier entorno de trabajo de forma rápida y sencilla, a través de una instalación que no requiere un elevado conocimiento técnico.
A nivel estructural un CMS está formado por tres partes bien diferenciadas:
- una base de datos donde se almacena tanto el contenido del CMS como la parametrización del mismo. En el proceso de instalación del CMS se nos pedirá la creación de una base de datos. Generalmente suele ser MySql, aunque la mayoría de ellos ya permite configurar diferentes tipos de bases de datos (Oracle, Postgre, MS SQL Server, etc…).
- una parte donde reside el estilo y la maquetación del sitio. Esto permite gestionar el diseño del mismo sin la necesidad de modificar los contenidos, y mostrar fácilmente distintas visualizaciones del sitio con contenidos «reales». Los lenguajes utilizados son HTML con CSS (hojas de estilo), con ayuda en algunos casos de JavaScript.
- una parte de programación en un lenguaje (php, java, etc…) que dependerá del CMS que se esté usando. Su función es que, al ejecutarse, recoja la información de la base de datos y la muestre en el lugar adecuado y con el estilo seleccionado en la parte de maquetación y diseño anteriormente descrita. Además, mediante programación se podrán implementar nuevos módulos, plugins y comportamientos a medida en nuestro CMS.
Esta estructura diferenciada permite a los diferentes equipos trabajar de manera independiente: desarrolladores, gestores de contenido, y maquetadores y diseñadores Web.
Además, la mayoría de gestores de contenido enfocan sus esfuerzos en ofrecer una organización de archivos lo suficientemente diferenciada, de forma que la curva de aprendizaje en caso de necesidad o interés por desarrollar o modificar el diseño de la página sea la adecuada.
Todo esto, sumado a las posibilidades de ampliación a través de módulos o plugins (desarrollados previamente o de forma propia y exclusiva para la plataforma), convierte a los CMS en herramientas fácilmente escalables a través de una estructura accesible, y por tanto, con gran potencial de expansión.
Finalmente, la utilización de un CMS, como software de base, nos permitirá crear, con un coste más competitivo, soluciones a medida adaptadas a las necesidades específicas de cada cliente.