taller drupal - jornadas software libre uca
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 2013TRANSCRIPT
Taller de introduccion a Drupal
Ezequiel Vazquez De la calle
Ezequiel Vazquez De la calle Taller de introduccion a Drupal
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
Indice
1 Introduccion
2 Conceptos basicos
3 Desarrollo: extendiendo Drupal
4 Miscelanea
5 Referencias
Ezequiel Vazquez De la calle Taller de introduccion a Drupal
Indice
1 Introduccion
2 Conceptos basicos
3 Desarrollo: extendiendo Drupal
4 Miscelanea
5 Referencias
Ezequiel Vazquez De la calle Taller de introduccion a Drupal
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
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
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
Introduccion
Puede parecer una tarea imposible. . .
Ezequiel Vazquez De la calle Taller de introduccion a Drupal
Introduccion
¡Pero solo es cuestion de echarle ganas!
Ezequiel Vazquez De la calle Taller de introduccion a Drupal
Indice
1 Introduccion
2 Conceptos basicos
3 Desarrollo: extendiendo Drupal
4 Miscelanea
5 Referencias
Ezequiel Vazquez De la calle Taller de introduccion a Drupal
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
Conceptos basicos
Sistema de publicacion
Tipo de contenido
Campos
Nodo
Comentario
Taxonomıa
Ezequiel Vazquez De la calle Taller de introduccion a Drupal
Conceptos basicos
Organizar la informacion
Menu
Pagina
Region
Bloque
Plantilla
Ezequiel Vazquez De la calle Taller de introduccion a Drupal
Conceptos basicos
Gestion de usuarios
Usuario
Perfil
Rol
Permiso
Ezequiel Vazquez De la calle Taller de introduccion a Drupal
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
Indice
1 Introduccion
2 Conceptos basicos
3 Desarrollo: extendiendo Drupal
4 Miscelanea
5 Referencias
Ezequiel Vazquez De la calle Taller de introduccion a Drupal
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
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
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
¿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
¿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
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
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
Indice
1 Introduccion
2 Conceptos basicos
3 Desarrollo: extendiendo Drupal
4 Miscelanea
5 Referencias
Ezequiel Vazquez De la calle Taller de introduccion a Drupal
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
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
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
Indice
1 Introduccion
2 Conceptos basicos
3 Desarrollo: extendiendo Drupal
4 Miscelanea
5 Referencias
Ezequiel Vazquez De la calle Taller de introduccion a Drupal
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
Como conclusion
Cuestion de echarle ganas. . . y horasVelocidad, flexibilidad. . .¿Lo mejor? La comunidad
Ezequiel Vazquez De la calle Taller de introduccion a Drupal
Esto es todo, amigos...
¡Gracias!
¿Preguntas?
@RabbitLairezequielvazq[at]gmail[dot]com
Ezequiel Vazquez De la calle Taller de introduccion a Drupal