3. Drupal http://www.drupal.org
Meetups
● Drupal es un CMS modular, multipropósito y muy configurable
● También es considerado un Framefork full stack
● Escrito en PHP (Apache, Nginx, or Microsoft IIS)
○ Diferentes versiones mínimas según versión de drupal https://www.drupal.org/requirements
■ Drupal 8: PHP 5.5.9 or higher
■ Drupal 7: PHP 5.2.5 or higher (5.4 or higher recommended).
■ Drupal 6: PHP 5.x only (5.2.5 or higher recommended).
○ Como motor de BBDD emplea MySQL | PostgreSQL | (SQLi)
○ Microsoft SQL Server o Oracle soportados mediante modulos
○ Puede funcionar en parte sobre MongoDB (https://www.drupal.org/project/mongodb)
6. Meetups
Versiones
● Las versiones mayores y sus módulos no son directamente compatibles https://www.drupal.
org/node/2613652
○ Cada nueva versión se reescribe para ofrecer mejoras, escalabilidad y mayor
rendimiento aunque comparten conceptos.
○ Herramientas de conversión “automática” de módulos y temas entre versiones
D6 13/2/2008 24/2/2016 https://www.drupal.org/drupal-6-eol
D7 5/01/2011 2020?
D8 19/11/2015 ?? Symfony!!!
8. Meetups
Arquitectura contenidos (simplificación)
Entity
Properties Fields
● Autor
● Fecha
● Idioma
● Título
● Estado
● …..
Siempre relación 1:1
Se guardan en un solo campo en la BBDD
Los tipos de campos son prácticamente ilimitados Son
generalmente aportados por módulos (contribuidos o del
núcleo)
ej. Fecha, Geolocalización, Dirección Imágenes, Videos
embebidos, Referencias, email
Relación 1:1, o 1:N
Se guardan en una tabla a parte de la BBDD, pueden almacenar
valores complejos
10. Conceptos básicos
Meetups
Menu / Rutas:
● Cada una de las url de la página estén o no en un menú
Bloques:
● Elementos de información que se pueden situar en cualquier parte de la página
Forms: https://api.drupal.org/api/drupal/developer%21topics%21forms_api_reference.html/7
● Creación y validación de formularios
Permisos:
● Permiso para cada acción que puede realizar el/los usuarios. Basado en roles
11. Extendiendo Drupal: Hooks
Meetups
● Permiten a los módulos indicar cómo manejar una solicitud en particular
● Generalmente reciben variables como referencia, lo que permite modificarlas
● Los módulos pueden crear su propios hooks, para permitir extender su propia
funcionalidad
● Lo módulos y temas comparten hooks, pero no son necesariamente los mismos
https://api.drupal.org/api/drupal/includes!module.inc/group/hooks/7
https://api.drupal.org/api/drupal/includes%21theme.inc/function/theme/7
12. Creación de un módulo
Meetups
● Los módulos se sitúan en la carpeta
○ sites/all/modules
■ sites/all/modules/contrib
■ sites/all/modules/custom
○ sites/[site-name]/modules
● NUNCA en modules/ esta carpeta está reservada para los módulos del core
● Un módulo puede contener más de un módulo o submódulo en la misma carpeta
● Requieren mínimo 2 archivos
○ [module-name].info
○ [module-name].module
● Pueden importar más ficheros
13. Manos a la obra
Meetups
Vamos a crear 2 módulos:
● El primero definirá
○ Una ruta (página)
○ Un permiso nuevo
○ Un bloque
○ Un formulario
● El segundo modificará el
formulario definido por el primer
módulo