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

Post on 16-Feb-2017

347 views 2 download

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

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