Los CMS

aprender a programar

El desarrollo de cualquier sitio web es cada vez más completo y más complejo. Va aumentando el tipo de contenido que podemos encontrar en las páginas, el diseño no suele ser estático, se buscan sitios responsive (visibles independientemente del dispositvo de acceso). Más que un sitio el desarrolador web crea aplicaciones informáticas que se ejecutan en internet.

Y en consecuencia las herramientas usadas para la creación web también han ido haciéndose más complejas y diversas, capaces de adaptarse a los distintos contextos en los que se crean los sitios web.

Los CMS son una de esas herramientas destinadas a facilitar el trabajo del desarrollador web.

 

¿Que son los CMS?

A la hora de diseñar un sitio web podemos empezar desde cero y teclear todo el código HTML las hojas de estilo CSS, los scripts Javascript y la parte de progrmación en PHP si se trata de páginas dinámicas. Para ello empleamos los correspondientes editores de texto o tipo visual. En esta manera obtendremos un producto muy personalizado con el código mínimo y bien optimizado, si trabajamos con cuidado. Por supuesto en esta forma se usan librerías y bibliotecas de código prediseñado para facilitar la tarea. Pero se trabaja a nivel de código, de software.

Frente a este sistema de trabajo existen otros más visuales que nos aislan del código y los detalles técnicos que hay tras cualquier página o sitio web. Ahí estarían los editores visuales tipo arrastrar y soltar como Wix o Bootstrap Studio entre otros muchos.

Y yendo un paso más allá tenemos los conocidos CMS, iniciales de Content Management System, o sistemas de gestión de contenido. Estos incorporan la gestión de todos los componentes del sitio web: gestión del contenido, el almacenamiento de los archivos, gestión de las bases de datos... Todo.

Puedes ver un CMS como una aplicación web personalizable tanto en lo referente al contenido como en la relativo a la presentación final cara al usuario.

Se trata de una herramienta que nos permite desarrollar todo un sitio web sin tener que acceder al código, el desarrollador web solo se va a preocupar del aspecto y el contenido. La parte técnica corre a cargo del software del CMS

Realmente el sitio web se funde con el software del CMS formando un todo.

¿Como funciona un CMS?

En la práctica el CMS es un programa que se instala y ejecuta en el servidor web. Para trabajar necesita:

    una base de datos
    En ella se almacena la información del sitio y parámetros sobre el aspecto visual que se mostrará en la ventana del navegador. Así como otros datos relativos a la administración como un registro de usuarios, versiones, actualizscoines.
    Sistema de plantillas web
    Son plantillas que definen el esquema de como se organizará y mostrará el contenido en la ventana del navegador. Pueden incluir documentos html, php, css y javascript
    Plugins
    Programas que se insertan en el CMS para darle nuevas funcionalidades. Se desarrollan en el mismo lenguaje que el resto del CMS y también pueden contener código javascript.

Posee un acceso a un sistema de administración en el que se configura todo el contenido, aspecto y funcionalidades que tendrá el sitio web. Es el llamado backend.

Por otro lado posee el acceso público visible por cualquier usuario, sería como el sitio web propiamente dicho. Es el llamado FrontEnd.

Cuando un usuario quiere acceder a una página de un sitio web envía la dirección URL de la página al software del CMS, este examina la petición, accede a la base de datos y extrae de ella la información a mostar. Estos datos pasan a combinarse con las plantillas que darán forma a la página que ve el usuario.

Ese sería el esquema, para el usuario no supone ningún cambio respecto a un sitio no gestionado por un CMS. Las diferencias solo existen para el webmaster del sitio web.

Si el desarrollador quiere cambiar el aspecto de las páginas web solo tiene que cambiar las plantillas o personalizarlas: colores, tipos de letra, disposición de elementos. Si quiere añadir una funcinalidad nueva (/un formualrio de correo, un captcha, un calendario, una pasarela de pago) añade un plugin que es un software que se inserta en el CMS. Por supuesto el adminstrador también puede manejar el contenido del sitio.

Proceso de trabajo del CMS

¿Cuántos CMS existen?

Los CMS no son algo nuevo, existen casi desde que comenzó el uso de internet para el gran público. Los primeros sistemas que podemos incluir en este tipo de aplicaciones serían los foros: se basaban en plantillas, el administrador solo se preocupaba del aspecto y de gestionar el contenido. Luego fueron apareciendo los blogs, los sitios de comercio electrónico, las plataformas educativas y como no las redes sociales. Todos son CMS, muy específicos y enfocados a un contexto concreto: comercio, enseñanza, comunidades... Son CMS específicos.

Los blogs comenzaron a evolucionar hata convertirse en aplicaciones capaces de albergar des una p´gina de una revista por ejemplo a un sitio de comercio online. Son los CMS genéricos.

Es decir nos encontramos con dos grandes grupos de CMS

CMS genéricos
Son gestores que no están enfocados a ningún nicho concreto, pueden personalizar sy modificare mediante módulos para adaptarse a cualquier uso. El rey en ete tipo de gestor es sin duda alguna Wordpress, seguido a muchísima distancia por Joomla, y aún queda alguna muestra de drupal.
CMS específicos
Aquí hay una gran variedad como corresponde a la variedad de contextos en los que se usan. Sihablamos de comercio electrónico tenemos Magento, Shopify, Prestashop. En elearning el rey sigue siendo Moodle. Los dedicados a crear wikis como el popular Mediawiki.

¿Usar o no usar los CMS?

Y claro llega la cuestión si existen los CMS, ¿para que aprender a usar HTML, CSS, javascript, SQL o PHP?. Pues no hay una respuesta contundente.

Si quieres ser un desarrollador de aplicaciones web lo normal es que adquieras los conocimientos necesarios incluso para crear todo un CMS completo. Es decir tu nicho de trabajo está por encima de los CMS, en el lugar de los creadores absolutos. Pero eso no significa que no puedas usar un CMS para crear un sitio en un momento dado, o en muchos momentos. Pero tendrás la capacidad de meterte dentro de la aplicación y adaptarla a una situación concreta.

Si quieres crear sitios web de manera rápida, y no tienes muchos conocimientos sobre programación web, lo tuyo es sin duda un CMS siempre que no te exijan demasiado en cuanto a personalizaciones o comportamientos muy particulares del sitio que tengas que diseñar.

Pero en general es muy conveniente conocer algo sobre la tecnología web. Por ejemplo no es raro que después de implementar un sitio de comercio electrónico, veas que en un catálogo de productos se vean algunas imágnes desalineadas o alguna disposición de un pie de página o un menú que necesita un pequeño ajuste. Tendrías que echar mano de la edición de hojas de estilo en el mejor de los casos, o de código PHP en el caso más complejo. Los CMS no pueden prever absolutamente todo.

Pros de los CMS
  • Ofrecen resultados rápidamente
  • Se aprenden a usar en poco tiempo
  • Existe una gran comunidad de usuarios
  • Puedes encontrar soporte técnico
  • Facilitan el SEO
  • Producen diseños responsive
Contras de los CMS
  • No son 100% personalizables
  • No suelen optimizar los recursos (imágenes, bases de datos)
  • Al incoporar desarrollos de terceros (plugins y plantillas) la seguridad se resiente
  • Diferentes plantillas suelen exigir un aprendizaje propio
  • Las plantillas y plugins completos suelen ser de pago
  • Las migraciones entre distintos CMS pueden ser un problema.

Como has leído el CMS por excelencia actualmente es Wordpress y para el existe todo un universo de plugins y temas. Pese a tratarse de un software de código abierto y gratuito, muchas de estas extensiones son de pago. Y siempre que hay dinero de por medio en una aplicación surjen personas que las modifican para poder ser usadas de manera gratuita.

En el mundo de los CMS estas aplicaciones modificadas son las llamadas nulled. Dejando aparte consideraciones éticas más o menos discutibles, hay que tener mucho cuidado con incluir plugins o plantillas nulled en los sitios que desarrollemos: son aplicaciones que instalamos en un servidor de sitios web, y pueden causar mucho daño.

Algunos links

Aquí te dejo algunos links de utilidad para descargar CMS o consultar documentación

Por supuesto que existen más opciones, pero esta muestra va a cubrir casi todas tus posibles necesidades. ¿Tienes alguna para introducir en esta lista? Envíala.