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
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
Taller Drupal - Jornadas Software Libre UCA
1. Taller de introducci´n a Drupal
o
Ezequiel V´zquez De la calle
a
Ezequiel V´zquez De la calle
a
Taller de introducci´n a Drupal
o
2. Sobre mi
Estudios
Ingeniero T´cnico en Inform´tica - UCA
e
a
M´ster en Ingenier´ del Software - US
a
ıa
Experto en Seguridad de las TIC - US
Experiencia
4 a˜os como desarrollador web, 2 en Drupal
n
Actualmente: DevOps Drupal
Python, C++, GNU/Linux, network programming. . .
Aficiones
Rock’n’Roll (guitarra) y videojuegos
Narrativa fant´stica, rol, cine. . .
a
Ezequiel V´zquez De la calle
a
Taller de introducci´n a Drupal
o
5. Introducci´n
o
¿Y esto de qu´ va?
e
CMS escrito en PHP
Extensible mediante
m´dulos y temas
o
Arquitectura LAMP
Software libre (GPL)
Actualmente, Drupal 7
Lo mejor: La comunidad
Ezequiel V´zquez De la calle
a
Taller de introducci´n a Drupal
o
6. Introducci´n
o
Puntos fuertes
Gran flexibilidad
Enorme velocidad de desarrollo
Separaci´n de presentaci´n y l´gica
o
o
o
Multitud de m´dulos (16k+) y temas (1.2k+) disponibles
o
Documentaci´n extensa, y de alta calidad
o
Soporte por parte de la comunidad
Ezequiel V´zquez De la calle
a
Taller de introducci´n a Drupal
o
7. Introducci´n
o
Desventajas
Bajo rendimiento:
dependencia de cach´
e
Baja usabilidad para el
usuario final
Incompatibilidad entre
versiones mayores
Curva de aprendizaje
muy elevada
Ezequiel V´zquez De la calle
a
Taller de introducci´n a Drupal
o
11. Conceptos b´sicos
a
Componentes
Core: Instalaci´n b´sica de Drupal
o a
Module: Extensi´n de la funcionalidad del core
o
Theme: Extensi´n “visual” (Plantillas, estilos. . . )
o
Library: Librer´ externas con funcionalidad adicional
ıas
Ezequiel V´zquez De la calle
a
Taller de introducci´n a Drupal
o
12. Conceptos b´sicos
a
Sistema de publicaci´n
o
Tipo de contenido
Campos
Nodo
Comentario
Taxonom´
ıa
Ezequiel V´zquez De la calle
a
Taller de introducci´n a Drupal
o
13. Conceptos b´sicos
a
Organizar la informaci´n
o
Men´
u
P´gina
a
Regi´n
o
Bloque
Plantilla
Ezequiel V´zquez De la calle
a
Taller de introducci´n a Drupal
o
14. Conceptos b´sicos
a
Gesti´n de usuarios
o
Usuario
Rol
Perfil
Permiso
Ezequiel V´zquez De la calle
a
Taller de introducci´n a Drupal
o
15. Ejercicio
Construcci´n de un blog sencillo
o
1
Crear una taxonom´ y t´rminos
ıa e
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 V´zquez De la calle
a
Taller de introducci´n a Drupal
o
17. C´mo funciona Drupal
o
Programaci´n estrucutrada (en D8, objetos)
o
Flujo de ejecuci´n
o
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
Ejecuci´n de entrada de men´
o
u
4
Funci´n de callback
o
5
Salida se pasa al theme
6
Renderizado del HTML
7
Env´ de la respuesta al navegador
ıo
Ezequiel V´zquez De la calle
a
Taller de introducci´n a Drupal
o
18. C´mo funciona Drupal
o
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 m´dulo que lo implementa
o
Un hook de cada tipo por m´dulo
o
Esquema de nombre: nombre modulo nombre hook()
Ezequiel V´zquez De la calle
a
Taller de introducci´n a Drupal
o
19. C´mo funciona Drupal
o
M´ltiples APIs
u
Algunas API de Drupal. . .
Forms API: Formularios
Database API: Base de datos
Entity API: Nodos, t´rminos, comentarios. . .
e
Field API: Campos de entidades
Batch API: Operaciones por lotes
Sistema de menu
Variables persistentes
Sistema de traducci´n
o
...
Ezequiel V´zquez De la calle
a
Taller de introducci´n a Drupal
o
20. ¿C´mo es un m´dulo?
o
o
Estructura de directorios
sites/all/modules/tipo modulo/nombre modulo
contrib
main
features
Subdirectorios:
js
css
img
includes
tpl
translations
Ezequiel V´zquez De la calle
a
Taller de introducci´n a Drupal
o
21. ¿C´mo es un m´dulo?
o
o
Ficheros
nombre modulo.info → Meta-informaci´n del m´dulo
o
o
nombre modulo.module → Implementaci´n de hooks
o
nombre modulo.install → Hooks de instalaci´n/desinstalaci´n
o
o
nombre modulo.admin.inc → Configuraci´n del m´dulo
o
o
nombre modulo.inc → Funciones que no son hooks
nombre modulo.views.inc → Hooks del m´dulo Views
o
nombre modulo.rules.inc → Hooks del m´dulo Rules
o
...
Ezequiel V´zquez De la calle
a
Taller de introducci´n a Drupal
o
22. Capa de presentaci´n
o
Sistema de plantillas
Plantilla HTML con c´digo PHP incrustado
o
nombre fichero.tpl.php
Usado seg´n nomenclatura del fichero
u
Recibe un array de par´metros ($vars)
a
Funciones de preprocesado
Ezequiel V´zquez De la calle
a
Taller de introducci´n a Drupal
o
23. Ejercicio
URL que recibe par´metro y lo muestra por pantalla
a
Fichero info
Fichero module
Hook menu, definir la URL
Hook permissions, definir permiso de acceso
Hook theme, definir plantilla
Definici´n de callback
o
Interactuar con la base de datos
A˜adir Javascript y CSS
n
Hook node view, responde a visualizaci´n de nodo
o
Ezequiel V´zquez De la calle
a
Taller de introducci´n a Drupal
o
25. Debugging
Varias herramientas
Drush (no s´lo debug)
o
M´dulo devel
o
M´dulo coder
o
xdebug
xhprof
Drupal for Firebug
http://ratatosk.net/drupal/tutorials/debugging-drupal.html
Ezequiel V´zquez De la calle
a
Taller de introducci´n a Drupal
o
27. Seguridad
Seguridad en profundidad
Drupal proporciona muchas herramientas, ¡usadlas, insensatos!
La importancia de la formaci´n
o
http://2013.drupalcamp.es/desarrollo-seguro-en-drupal
Ezequiel V´zquez De la calle
a
Taller de introducci´n a Drupal
o
29. Referencias
Pagina oficial de Drupal
https://drupal.org
Documentacion completa
https://drupal.org/documentation
Estandar de codificacion
https://drupal.org/coding-standards
Cracking Drupal
http://www.crackingdrupal.com
Drupal 7 Pro Development
http://www.drupalbook.com
High Performance Drupal
https://drupal.org/node/2119971
Ezequiel V´zquez De la calle
a
Taller de introducci´n a Drupal
o
30. Como conclusi´n
o
Cuesti´n de echarle ganas. . . y horas
o
Velocidad, flexibilidad. . .
¿Lo mejor? La comunidad
Ezequiel V´zquez De la calle
a
Taller de introducci´n a Drupal
o
31. Esto es todo, amigos...
¡Gracias!
¿Preguntas?
@RabbitLair
ezequielvazq[at]gmail[dot]com
Ezequiel V´zquez De la calle
a
Taller de introducci´n a Drupal
o