drupal creación módulos, bloques, formularios y alters
TRANSCRIPT
Meetups
@SergioCarracedoWeb developer at OPSOUPhp Developer Drupal enthusiast
@SergioCarracedo
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)
Drupal http://www.drupal.org
Meetups
Meetups
Ciclo de Releases
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!!!
Meetups
Arquitectura (simplificación)
7
Entity
Node File Taxonomy User Others
Custom entities (modules)
ex. Entityforms
Blocks Menus
Meetups
Arquitectura contenidos (simplificación)
Entity
Properties Fields
● Autor● Fecha● Idioma● Título● Estado● …..
Siempre relación 1:1Se 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:NSe guardan en una tabla a parte de la BBDD, pueden almacenar valores complejos
Meetups
Ejemplo de campos
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
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/7https://api.drupal.org/api/drupal/includes%21theme.inc/function/theme/7
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
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
Creación de un módulo (.info)
Meetups
Creación de un nuevo permiso
Meetups
Definición de rutas
Meetups
Definición de bloque(s)
Meetups
Contenido del bloque
Meetups
Contenido de la página
Meetups
Definición Formulario 1
Meetups
Definición Formulario 2
Meetups
Definición Formulario 3
Meetups
Formulario validación y envío
Meetups
Validación
Envío
Demo Time!
Meetups
Alteración de un formulario
Meetups
● Creamos un segundo módulo de la misma forma que el anterior
Alteración de un formulario
Meetups
Formulario validación y envío
Meetups
Validación (no reemplaza a la del módulo 01)
Envío (no reemplaza a la del módulo 01)
Demo Time 2
Meetups
Meetups
echo PHP_EOF;
¿Preguntas?
www.opsou.com www.pedrofigueras.comwww.casadellibro.com