
Si has llegado hasta aquí tras leer el artículo anterior, ya conoces por qué Drupal sigue siendo una tecnología relevante en 2025. Hablamos de su evolución, su enfoque API-first, su seguridad y su potencial para proyectos exigentes. Pero ahora toca ir un paso más allá: entender cómo funciona Drupal desde dentro.
En este artículo vamos a sentar las bases para comenzar a trabajar con Drupal. Si es tu primer contacto con este CMS, no te preocupes: aquí desgranaremos los conceptos esenciales —como entidades, tipos de contenido, vistas y módulos— para que puedas moverte con soltura en su ecosistema. Y si ya lo conoces, quizás descubras matices que pasaste por alto.
Primer contacto: ¿qué es realmente Drupal?
Históricamente, Drupal se ha distinguido por ser una plataforma de construcción más que un producto cerrado. En lugar de ofrecer una experiencia «instalar y usar», su propuesta era brindar las herramientas necesarias para crear sitios altamente personalizados desde cero. Esa flexibilidad lo hizo muy potente, pero también intimidante para quienes buscaban resultados rápidos.
Esto cambió con la llegada de Drupal CMS, anteriormente conocido como Project Starshot. Se trata de una nueva distribución oficial que propone una experiencia de instalación más simple, moderna y funcional desde el inicio. Incluye una selección de módulos y configuraciones predefinidas que permiten comenzar un proyecto sin tener que construir toda la estructura manualmente.
En esencia, Drupal CMS busca ofrecer lo mejor de ambos mundos:
- Una experiencia inicial fluida, pensada para editores y usuarios no técnicos.
- Toda la potencia, extensibilidad y control granular que los desarrolladores esperan de Drupal.
Esto posiciona a Drupal en un nuevo lugar: ya no es solo una herramienta para desarrolladores experimentados, sino también una opción real para quienes buscan lanzar un sitio funcional en minutos y escalarlo a medida que crecen sus necesidades.
El modelo de datos: todo empieza con las entidades
Una de las claves para entender Drupal es interiorizar que todo es una entidad. Una página, un usuario, una categoría o un comentario… todos ellos son distintos tipos de entidades. Este enfoque permite un modelo de datos consistente, flexible y extensible.
Las entidades se agrupan en bundles (paquetes de configuración) y pueden tener múltiples campos. Algunos ejemplos comunes:
- Node: unidad básica de contenido (como un artículo, evento o producto).
- User: representa a una persona que interactúa con el sistema.
- Taxonomy term: categorías o etiquetas que ayudan a clasificar contenido.
- File, Media, Comment, Block: otros tipos de entidad especializados, todos reutilizables y combinables.
Cada entidad puede extenderse con campos personalizados según las necesidades del sitio. Por ejemplo, un nodo de tipo “Curso” podría tener campos de duración, nivel de dificultad y fecha de inicio, sin necesidad de escribir código.
Pero el sistema va más allá: muchas entidades en Drupal también soportan revisiones y traducciones.
- Las revisiones permiten mantener un historial de cambios. Puedes ver quién modificó qué, cuándo, y revertir a versiones anteriores si es necesario. Esto resulta especialmente útil en entornos editoriales donde varios usuarios trabajan sobre el mismo contenido.
- Las traducciones permiten mantener múltiples versiones lingüísticas de una misma entidad. Drupal gestiona automáticamente qué campos deben traducirse y cuáles deben compartirse entre idiomas, lo que lo hace ideal para proyectos multilingües.
Gracias a esta estructura, Drupal ofrece un sistema de contenido que no solo es robusto y escalable, sino también altamente controlado, auditable y adaptable a flujos de trabajo complejos.
Construyendo contenido: cómo se combinan entidades, campos y bundles

Después de entender que todo en Drupal gira en torno a las entidades, el siguiente paso lógico es ver cómo se especializan esas entidades para representar distintos tipos de contenido. Aquí es donde entran en juego dos piezas clave: los bundles y los campos.
Un bundle es una variación de una entidad base. Por ejemplo, dentro de la entidad node (que representa contenido), puedes tener varios bundles: “Artículo”, “Página básica”, “Evento”, etc. Cada uno de estos bundles define una estructura específica de campos y comportamiento, pero todos comparten las capacidades generales de la entidad node: revisiones, publicación, traducción, etc.
Los campos son los elementos que definen qué información específica se almacenará en cada bundle. Puedes añadir campos de texto, fecha, archivos, listas de selección, referencias a otras entidades, y muchos más. Estos campos son totalmente configurables y reutilizables entre distintos bundles o tipos de entidad.
Por ejemplo, podrías crear un tipo de contenido “Noticia” con los siguientes campos:
- Título
- Cuerpo de texto
- Imagen destacada
- Fecha de publicación
- Categoría (referencia a términos de taxonomía)
Este modelo permite que cada tipo de contenido se adapte a lo que necesita representar, sin depender de una estructura única y rígida.
Además, cada bundle puede tener su propio diseño de formulario, permisos de acceso, opciones de publicación y vistas asociadas. Así, Drupal no te obliga a encajar tu contenido en moldes predefinidos: tú defines los moldes según tus necesidades.
Mostrando datos: el poder de las vistas
Una vez tienes contenido en tu sitio, necesitas mostrarlo de forma dinámica y reutilizable. Aquí es donde entra Views, una de las herramientas más potentes y queridas del ecosistema Drupal. Desde la versión 8, Views forma parte del núcleo, lo que refleja su papel central en la construcción de interfaces sin necesidad de escribir una sola línea de código.
A grandes rasgos, Views es un constructor visual de consultas sobre entidades. Te permite definir filtros, ordenaciones, formatos de salida y condiciones de visualización. Es tan flexible que termina siendo la base de muchas páginas, bloques, menús y hasta servicios web internos.
Algunos de los tipos de presentación que soporta Views:
- Páginas: accesibles desde una URL concreta (como /noticias).
- Bloques: para mostrar en regiones del tema (por ejemplo, “Artículos más leídos”).
- Feeds: ya sea RSS o JSON generados a partir de cualquier vista.
- Embebidos: vistas dentro de otras vistas o formularios, usando módulos adicionales.
- Endpoints: vistas expuestas como APIs personalizadas.
Algunos ejemplos de casos prácticos que se pueden construir usando Views.
- Página de noticias con filtros por categoría o fecha.
- Calendario de eventos con detalles e información relacionada.
- Panel personalizado para usuarios logueados con contenido relacionado.
- Buscadores avanzados con filtros expuestos.
Adicionalmente, Views incorpora aspectos importantes que lo hacen ideal para soluciones complejas, como son:
- Relaciones: puedes conectar entidades relacionadas (por ejemplo, mostrar el nombre del autor en una lista de nodos).
- Acceso por roles o permisos: las vistas respetan el sistema de permisos de Drupal. Puedes limitar el acceso ya sea por roles, por permisos o incluso empleando reglas personalizadas. Especialmente útil cuando se trabaja con contenido no publicado o sensible.
- Filtros contextuales: puedes filtrar el contenido que presentan las vistas dependiendo del «contexto» donde se muestran. Un ejemplo práctico sería mostrar un bloque con los contactos activos de un usuario o contenidos relacionados de la página actual.
- Caché: cada vista tiene su propio sistema de caché configurable. Puedes definir el tiempo de expiración, invalidar automáticamente si cambia contenido relacionado, y adaptar la caché por idioma, ruta o rol.
Componiendo la interfaz: bloques y regiones
Drupal te permite organizar visualmente el contenido mediante bloques, pequeñas piezas funcionales que puedes colocar en distintas regiones del tema. Las regiones son zonas predefinidas en la plantilla (como cabecera, barra lateral, pie de página…), y los bloques pueden ubicarse en cualquiera de ellas según tus necesidades.
Por ejemplo, un bloque puede ser:
- Un menú de navegación.
- Un formulario de búsqueda.
- Un listado de artículos recientes.
- Un banner promocional.
- Un bloque de bienvenida para usuarios logueados.
La interfaz de administración te permite asignar condiciones de visibilidad a cada bloque. Puedes configurar si un bloque aparece solo en determinadas páginas, para ciertos roles de usuario, en un idioma específico o dependiendo de si el visitante está autenticado.
Esto hace que los bloques no solo sean elementos de diseño, sino también herramientas clave para construir interfaces dinámicas y personalizadas.
Separando contenido y apariencia: el sistema de temas
Drupal separa completamente la lógica del contenido y su presentación visual mediante su sistema de theming. Esta separación permite que diseñadores y desarrolladores trabajen en paralelo, y garantiza una mayor flexibilidad a largo plazo.
El sistema de plantillas utiliza el motor Twig, un lenguaje de plantillas moderno, seguro y muy legible. Puedes sobrescribir cualquier parte del marcado HTML generado por Drupal y adaptar la salida a tu diseño sin tocar la lógica de backend.
Drupal trae de serie dos temas modernos, amigables y accesibles:
- Olivero: tema predeterminado para la parte pública del sitio. Responsive, accesible y moderno.
- Claro: tema de administración, centrado en la experiencia de usuario para editores y administradores.
Puedes crear tus propios temas desde cero, o usar temas base como Classy o Stable para personalizaciones más rápidas. Además, puedes gestionar librerías CSS y JS para que solo se carguen donde realmente hacen falta.
El resultado es un sistema visual limpio, eficiente y altamente configurable.
Extendiendo capacidades: módulos contribuidos y plugins
Drupal se basa en una arquitectura modular que permite adaptar el sistema a casi cualquier necesidad. Además de los módulos incluidos en el núcleo (core), existe una amplia colección de módulos contribuidos desarrollados por la comunidad. Estos módulos amplían la funcionalidad del sitio, y su instalación es tan sencilla como descargarlos usando Project Browser— que forma parte de Drupal CMS —o añadirlos vía Composer.
Pero los módulos no son el único mecanismo de extensión. Drupal cuenta también con un sistema interno de plugins, una forma estructurada de definir componentes reutilizables que pueden ser detectados, cargados e intercambiados automáticamente por el sistema. Algunos ejemplos típicos de plugins son:
- Tipos de bloque.
- Tipos de campo.
- Estilos de vistas.
- Métodos de autenticación.
- Formatos de texto o tipos de migración.
Este enfoque permite a los desarrolladores crear extensiones encapsuladas dentro de sus propios módulos sin tener que reescribir lógica central. Los plugins hacen que el sistema sea más flexible, mantenible y extensible, especialmente en proyectos complejos.
Algunos módulos contribuidos imprescindibles para quienes comienzan:
- Pathauto: genera URLs amigables automáticamente a partir del título del contenido.
- Admin Toolbar: mejora la navegación en el backend con menús desplegables.
- Token: ofrece variables dinámicas reutilizables en campos, URLs y configuraciones.
- Devel: herramientas para desarrollo y depuración (muy útil en entornos locales).
- Metatag: gestión avanzada de metadatos para SEO.
- Webform: construcción de formularios complejos y encuestas.
Cada módulo o plugin que añades puede ampliar significativamente las posibilidades de tu sitio, pero también conviene revisar su mantenimiento, compatibilidad con tu versión de Drupal y comunidad activa.
Pensando en desarrollo profesional: configuración y despliegues
Una diferencia clave entre Drupal y otros CMS es su sistema de gestión de configuración. Mientras que otros sistemas mezclan configuración con contenido, Drupal permite exportar la configuración del sitio (tipos de contenido, vistas, permisos, bloques, taxonomías…) a archivos YAML.
Esto tiene varias ventajas:
- Puedes versionar la configuración en Git.
- Puedes compartirla entre entornos (desarrollo, staging, producción).
- Puedes trabajar en equipo sin sobrescribir los cambios de otros.
Por ejemplo, puedes crear un nuevo tipo de contenido en local, exportarlo con drush config:export
, y luego aplicarlo en el entorno de producción con drush config:import
.
Este enfoque diferencia claramente:
- Configuración: versionable, exportable, controlada.
- Contenido: dinámico, variable, gestionado por usuarios finales.
En proyectos medianos o grandes, esta separación es esencial para mantener control, seguridad y trazabilidad. Además, se integra fácilmente con flujos de despliegue automatizados (CI/CD).
Anja, ¿y ahora?
Si llegaste hasta aquí sin conocer Drupal, ahora tienes una base firme sobre la que seguir aprendiendo. Y si ya tenías experiencia, esperamos haberte ayudado a estructurar mejor tus conocimientos.
En este punto, el próximo paso es un reto habitual: cómo migrar contenido desde otros sistemas hacia Drupal.