Drupal creación módulos, bloques, formularios y alters

30

Transcript of Drupal creación módulos, bloques, formularios y alters

Page 1: Drupal  creación módulos, bloques, formularios y alters
Page 2: Drupal  creación módulos, bloques, formularios y alters

Meetups

@SergioCarracedoWeb developer at OPSOUPhp Developer Drupal enthusiast

@SergioCarracedo

Page 3: Drupal  creación módulos, bloques, formularios y alters

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)

Page 4: Drupal  creación módulos, bloques, formularios y alters

Drupal http://www.drupal.org

Meetups

Page 5: Drupal  creación módulos, bloques, formularios y alters

Meetups

Ciclo de Releases

Page 6: Drupal  creación módulos, bloques, formularios y alters

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!!!

Page 7: Drupal  creación módulos, bloques, formularios y alters

Meetups

Arquitectura (simplificación)

7

Entity

Node File Taxonomy User Others

Custom entities (modules)

ex. Entityforms

Blocks Menus

Page 8: Drupal  creación módulos, bloques, formularios y alters

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

Page 9: Drupal  creación módulos, bloques, formularios y alters

Meetups

Ejemplo de campos

Page 10: Drupal  creación módulos, bloques, formularios y alters

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

Page 11: Drupal  creación módulos, bloques, formularios y alters

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

Page 12: Drupal  creación módulos, bloques, formularios y alters

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

Page 13: Drupal  creación módulos, bloques, formularios y alters

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

Page 14: Drupal  creación módulos, bloques, formularios y alters

Creación de un módulo (.info)

Meetups

Page 15: Drupal  creación módulos, bloques, formularios y alters

Creación de un nuevo permiso

Meetups

Page 16: Drupal  creación módulos, bloques, formularios y alters

Definición de rutas

Meetups

Page 17: Drupal  creación módulos, bloques, formularios y alters

Definición de bloque(s)

Meetups

Page 18: Drupal  creación módulos, bloques, formularios y alters

Contenido del bloque

Meetups

Page 19: Drupal  creación módulos, bloques, formularios y alters

Contenido de la página

Meetups

Page 20: Drupal  creación módulos, bloques, formularios y alters

Definición Formulario 1

Meetups

Page 21: Drupal  creación módulos, bloques, formularios y alters

Definición Formulario 2

Meetups

Page 22: Drupal  creación módulos, bloques, formularios y alters

Definición Formulario 3

Meetups

Page 23: Drupal  creación módulos, bloques, formularios y alters

Formulario validación y envío

Meetups

Validación

Envío

Page 24: Drupal  creación módulos, bloques, formularios y alters

Demo Time!

Meetups

Page 25: Drupal  creación módulos, bloques, formularios y alters

Alteración de un formulario

Meetups

● Creamos un segundo módulo de la misma forma que el anterior

Page 26: Drupal  creación módulos, bloques, formularios y alters

Alteración de un formulario

Meetups

Page 27: Drupal  creación módulos, bloques, formularios y alters

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)

Page 28: Drupal  creación módulos, bloques, formularios y alters

Demo Time 2

Meetups

Page 29: Drupal  creación módulos, bloques, formularios y alters

Meetups

echo PHP_EOF;

¿Preguntas?

Page 30: Drupal  creación módulos, bloques, formularios y alters

www.opsou.com www.pedrofigueras.comwww.casadellibro.com