taller drupal - jornadas software libre uca

31
Taller de introducci´on a Drupal Ezequiel V´ azquez De la calle Ezequiel V´ azquez De la calle Taller de introducci´on a Drupal

Upload: zekivazquez

Post on 05-Dec-2014

311 views

Category:

Technology


0 download

DESCRIPTION

Presentación empleada en el taller de introducción a Drupal, que impartí en las Jornadas de Software Libre, en la Universidad de Cádiz, el 26 de noviembre de 2013

TRANSCRIPT

Page 1: Taller Drupal - Jornadas Software Libre UCA

Taller de introduccion a Drupal

Ezequiel Vazquez De la calle

Ezequiel Vazquez De la calle Taller de introduccion a Drupal

Page 2: Taller Drupal - Jornadas Software Libre UCA

Sobre mi

Estudios

Ingeniero Tecnico en Informatica - UCA

Master en Ingenierıa del Software - US

Experto en Seguridad de las TIC - US

Experiencia

4 anos como desarrollador web, 2 en Drupal

Actualmente: DevOps Drupal

Python, C++, GNU/Linux, network programming. . .

Aficiones

Rock’n’Roll (guitarra) y videojuegos

Narrativa fantastica, rol, cine. . .

Ezequiel Vazquez De la calle Taller de introduccion a Drupal

Page 3: Taller Drupal - Jornadas Software Libre UCA

Indice

1 Introduccion

2 Conceptos basicos

3 Desarrollo: extendiendo Drupal

4 Miscelanea

5 Referencias

Ezequiel Vazquez De la calle Taller de introduccion a Drupal

Page 4: Taller Drupal - Jornadas Software Libre UCA

Indice

1 Introduccion

2 Conceptos basicos

3 Desarrollo: extendiendo Drupal

4 Miscelanea

5 Referencias

Ezequiel Vazquez De la calle Taller de introduccion a Drupal

Page 5: Taller Drupal - Jornadas Software Libre UCA

Introduccion

¿Y esto de que va?

CMS escrito en PHP

Extensible mediantemodulos y temas

Arquitectura LAMP

Software libre (GPL)

Actualmente, Drupal 7

Lo mejor: La comunidad

Ezequiel Vazquez De la calle Taller de introduccion a Drupal

Page 6: Taller Drupal - Jornadas Software Libre UCA

Introduccion

Puntos fuertes

Gran flexibilidad

Enorme velocidad de desarrollo

Separacion de presentacion y logica

Multitud de modulos (16k+) y temas (1.2k+) disponibles

Documentacion extensa, y de alta calidad

Soporte por parte de la comunidad

Ezequiel Vazquez De la calle Taller de introduccion a Drupal

Page 7: Taller Drupal - Jornadas Software Libre UCA

Introduccion

Desventajas

Bajo rendimiento:dependencia de cache

Baja usabilidad para elusuario final

Incompatibilidad entreversiones mayores

Curva de aprendizajemuy elevada

Ezequiel Vazquez De la calle Taller de introduccion a Drupal

Page 8: Taller Drupal - Jornadas Software Libre UCA

Introduccion

Puede parecer una tarea imposible. . .

Ezequiel Vazquez De la calle Taller de introduccion a Drupal

Page 9: Taller Drupal - Jornadas Software Libre UCA

Introduccion

¡Pero solo es cuestion de echarle ganas!

Ezequiel Vazquez De la calle Taller de introduccion a Drupal

Page 10: Taller Drupal - Jornadas Software Libre UCA

Indice

1 Introduccion

2 Conceptos basicos

3 Desarrollo: extendiendo Drupal

4 Miscelanea

5 Referencias

Ezequiel Vazquez De la calle Taller de introduccion a Drupal

Page 11: Taller Drupal - Jornadas Software Libre UCA

Conceptos basicos

Componentes

Core: Instalacion basica de Drupal

Module: Extension de la funcionalidad del core

Theme: Extension “visual” (Plantillas, estilos. . . )

Library: Librerıas externas con funcionalidad adicional

Ezequiel Vazquez De la calle Taller de introduccion a Drupal

Page 12: Taller Drupal - Jornadas Software Libre UCA

Conceptos basicos

Sistema de publicacion

Tipo de contenido

Campos

Nodo

Comentario

Taxonomıa

Ezequiel Vazquez De la calle Taller de introduccion a Drupal

Page 13: Taller Drupal - Jornadas Software Libre UCA

Conceptos basicos

Organizar la informacion

Menu

Pagina

Region

Bloque

Plantilla

Ezequiel Vazquez De la calle Taller de introduccion a Drupal

Page 14: Taller Drupal - Jornadas Software Libre UCA

Conceptos basicos

Gestion de usuarios

Usuario

Perfil

Rol

Permiso

Ezequiel Vazquez De la calle Taller de introduccion a Drupal

Page 15: Taller Drupal - Jornadas Software Libre UCA

Ejercicio

Construccion de un blog sencillo

1 Crear una taxonomıa y terminos

2 Definir un Tipo de contenido: entrada

3 Tıtulo, cuerpo, fecha, categorıas. . .

4 Rol para usuarios publicadores

5 Asignar permisos adecuados

6 Usuario para publicar, con rol

7 Bloque con contenido HTML

Ezequiel Vazquez De la calle Taller de introduccion a Drupal

Page 16: Taller Drupal - Jornadas Software Libre UCA

Indice

1 Introduccion

2 Conceptos basicos

3 Desarrollo: extendiendo Drupal

4 Miscelanea

5 Referencias

Ezequiel Vazquez De la calle Taller de introduccion a Drupal

Page 17: Taller Drupal - Jornadas Software Libre UCA

Como funciona Drupal

Programacion estrucutrada (en D8, objetos)

Flujo de ejecucion

1 Todas las peticiones se reciben en index.php (mod rewrite)

URLs del tipo index.php?q=esto/es/una/url

2 Se carga el bootstrap

3 Ejecucion de entrada de menu

4 Funcion de callback

5 Salida se pasa al theme

6 Renderizado del HTML

7 Envıo de la respuesta al navegador

Ezequiel Vazquez De la calle Taller de introduccion a Drupal

Page 18: Taller Drupal - Jornadas Software Libre UCA

Como funciona Drupal

Concepto importante: hooks

Funciones que se ejecutan cuando un evento sucede

Ejemplo: hook init → cuando termina la carga de bootstrap

Orden determinado por el peso del modulo que lo implementa

Un hook de cada tipo por modulo

Esquema de nombre: nombre modulo nombre hook()

Ezequiel Vazquez De la calle Taller de introduccion a Drupal

Page 19: Taller Drupal - Jornadas Software Libre UCA

Como funciona Drupal

Multiples APIs

Algunas API de Drupal. . .

Forms API: Formularios

Database API: Base de datos

Entity API: Nodos, terminos, comentarios. . .

Field API: Campos de entidades

Batch API: Operaciones por lotes

Sistema de menu

Variables persistentes

Sistema de traduccion

. . .

Ezequiel Vazquez De la calle Taller de introduccion a Drupal

Page 20: Taller Drupal - Jornadas Software Libre UCA

¿Como es un modulo?

Estructura de directorios

sites/all/modules/tipo modulo/nombre modulo

contribmainfeatures

Subdirectorios:

jscssimgincludestpltranslations

Ezequiel Vazquez De la calle Taller de introduccion a Drupal

Page 21: Taller Drupal - Jornadas Software Libre UCA

¿Como es un modulo?

Ficheros

nombre modulo.info → Meta-informacion del modulo

nombre modulo.module → Implementacion de hooks

nombre modulo.install → Hooks de instalacion/desinstalacion

nombre modulo.admin.inc → Configuracion del modulo

nombre modulo.inc → Funciones que no son hooks

nombre modulo.views.inc → Hooks del modulo Views

nombre modulo.rules.inc → Hooks del modulo Rules

. . .

Ezequiel Vazquez De la calle Taller de introduccion a Drupal

Page 22: Taller Drupal - Jornadas Software Libre UCA

Capa de presentacion

Sistema de plantillas

Plantilla HTML con codigo PHP incrustado

nombre fichero.tpl.php

Usado segun nomenclatura del fichero

Recibe un array de parametros ($vars)

Funciones de preprocesado

Ezequiel Vazquez De la calle Taller de introduccion a Drupal

Page 23: Taller Drupal - Jornadas Software Libre UCA

Ejercicio

URL que recibe parametro y lo muestra por pantalla

Fichero info

Fichero module

Hook menu, definir la URLHook permissions, definir permiso de accesoHook theme, definir plantillaDefinicion de callbackInteractuar con la base de datosAnadir Javascript y CSSHook node view, responde a visualizacion de nodo

Ezequiel Vazquez De la calle Taller de introduccion a Drupal

Page 24: Taller Drupal - Jornadas Software Libre UCA

Indice

1 Introduccion

2 Conceptos basicos

3 Desarrollo: extendiendo Drupal

4 Miscelanea

5 Referencias

Ezequiel Vazquez De la calle Taller de introduccion a Drupal

Page 25: Taller Drupal - Jornadas Software Libre UCA

Debugging

Varias herramientas

Drush (no solo debug)

Modulo devel

Modulo coder

xdebug

xhprof

Drupal for Firebug

http://ratatosk.net/drupal/tutorials/debugging-drupal.html

Ezequiel Vazquez De la calle Taller de introduccion a Drupal

Page 26: Taller Drupal - Jornadas Software Libre UCA

Rendimiento

Mas herramientas

Memcache

Apc

Varnish

Authcache

ApacheSolr

Monitorizacion

Y por supuesto. . .

Buenas practicas

Arquitectura adecuada

Ezequiel Vazquez De la calle Taller de introduccion a Drupal

Page 27: Taller Drupal - Jornadas Software Libre UCA

Seguridad

Seguridad en profundidad

Drupal proporciona muchas herramientas, ¡usadlas, insensatos!

La importancia de la formacion

http://2013.drupalcamp.es/desarrollo-seguro-en-drupal

Ezequiel Vazquez De la calle Taller de introduccion a Drupal

Page 28: Taller Drupal - Jornadas Software Libre UCA

Indice

1 Introduccion

2 Conceptos basicos

3 Desarrollo: extendiendo Drupal

4 Miscelanea

5 Referencias

Ezequiel Vazquez De la calle Taller de introduccion a Drupal

Page 29: Taller Drupal - Jornadas Software Libre UCA

Referencias

Pagina oficial de Drupalhttps://drupal.org

Documentacion completahttps://drupal.org/documentation

Estandar de codificacionhttps://drupal.org/coding-standards

Cracking Drupalhttp://www.crackingdrupal.com

Drupal 7 Pro Developmenthttp://www.drupalbook.com

High Performance Drupalhttps://drupal.org/node/2119971

Ezequiel Vazquez De la calle Taller de introduccion a Drupal

Page 30: Taller Drupal - Jornadas Software Libre UCA

Como conclusion

Cuestion de echarle ganas. . . y horasVelocidad, flexibilidad. . .¿Lo mejor? La comunidad

Ezequiel Vazquez De la calle Taller de introduccion a Drupal

Page 31: Taller Drupal - Jornadas Software Libre UCA

Esto es todo, amigos...

¡Gracias!

¿Preguntas?

@RabbitLairezequielvazq[at]gmail[dot]com

Ezequiel Vazquez De la calle Taller de introduccion a Drupal