2. QUIÉN SOY
● Socio fundador de Ymbra
● Desarrollador Drupal
● Desarrollador frontend
● Miembro activo de la
comunidad drupalera:
Ramon Vilar Gavaldà ● Presidente de Drupal.cat
http://ymbra.com/blogs/ramon ● Administrador de la
http://twitter.com/rvilar
traducción catalana de Drupal
http://drupal.org/user/293298
2
3. QUÉ ES YMBRA
● Ymbra es una empresa de servicios basados en
Drupal
● Amplia experiencia del equipo en entornos Drupal
y webs de alto rendimiento
● SCRUM cómo metodología de trabajo
● Comprometidos con la comunidad
3
6. QUÉ ES DRUPAL
● Un gestor de contenidos (CMS)
● Desarrollado en PHP
● Software libre (licencia GPL)
● Flexible
● Fácilmente ampliable
● Arquitectura modular
● Con soporte en distintas plataformas
● Drupal = comunidad
6
7. EL ÉXITO DE DRUPAL: SU COMUNIDAD
● Drupal no sería lo que es a día de hoy sin su
comunidad
● La comunidad es la que dirige el desarrollo del
software con la ayuda de los recursos
proporcionados a través de la “Drupal
Association” http://ves.cat/aw9O
● Comunidad internacional: http://drupal.org
● Comunidad catalana: http://drupal.cat
● Comunidad española: http://drupal.es
7
11. QUÉ HAY EN DRUPAL?
● Hasta la versión 6.x ya contábamos con muchas
funcionalidades:
● Gestión completa de usuarios y permisos
● Soporte de traducción de contenido en el núcleo
● Categorización del contenido mediante taxonomías
● Soporte SEO
● ...
● Y todo esto sólo con el núcleo.
● La verdadera potencia de Drupal está en los
módulos contribuidos por la comunidad
11
12. CREACIÓN DE CAMPOS
● Se pueden añadir campos a los tipos de
contenido, a los términos de las taxonomías, a los
comentarios y a los usuarios
12
13. GESTIÓN DE IMÁGENES Y FICHEROS (I)
● A través de la interfaz se pueden crear campos
de tipo fichero e imagen
● Los ficheros disponen de distintos espacios de
almacenaje dependiendo de sus
características:
● Ficheros públicos: sin necesidad de ningún tipo de
control
● Ficheros privados: con control de acceso
13
14. GESTIÓN DE IMÁGENES Y FICHEROS (y II)
● Se pueden crear estilos de imágenes para
disponer de distintas presentaciones de la
misma imagen
14
15. INSTALACIÓN DESDE LA INTERFAZ
● Se pueden instalar/actualizar módulos y temas
desde la interfaz
15
16. USABILIDAD
● Dashboard, rediseño centrado en el usuario, overlay, ...
16
17. Y MUCHO MÁS...
● RDFa (web semántica)
● Mejoras en la gestión del multilenguaje
● Mejoras en la configuración regional
● Enlaces contextuales
● Mejoras en el sistema de caché
● …
17
19. CONCEPTOS BÁSICOS DE DESARROLLO
DRUPAL: HOOK
● Drupal trabaja con hooks (Passive Observer)
● Drupal ejecuta un hook y permite a los módulos
asociarse para añadir su código.
hook_user_login() comment_user_login(),
locale_user_login(),
node_user_login()
● La OOP la encontraremos en algunos subsistemas
del núcleo, cómo por ejemplo, la API de acceso a
BD, la creación de tests, etc.
● La biblia del desarrollador Drupal es
http://api.drupal.org/
19
20. PLATAFORMA DE TESTS AUTOMÁTICOS
● El núcleo de D7 incorpora SimpleTest, un framework de
creación de test unitarios, juntamente con un conjunto de
tests que aseguran el correcto funcionamiento de cada uno
de sus módulos.
● En el ciclo de desarrollo del núcleo, cada patch que se
añade a Drupal.org fuerza la ejecución automática de los
tests y responde con el resultado a esta ejecución.
● Los módulos contribuidos (D7) están empezando a crear un
conjunto de tests amplio para poder tener la máxima
cobertura de su código.
● Si desarrollamos nuestros propios módulos podemos crear
fácilmente nuestros tests para así asegurar también la
calidad de nuestro código.
● http://drupal.org/simpletest 20
21. CAPA DE ACCESO A BD
● En D7 se ha reescrito la capa de abstracción de BD
(basada en PDO)
● Código D6:
$result = db_query(“SELECT nid, title FROM {node} n WHERE
n.status = 1 ORDER BY created DESC”);
● Código D7:
$result = db_select('node', 'n')
-> condition('n.status', 1, '=')
->fields('n', array('nid', 'title'))
->orderBy('created', 'DESC')
->execute();
● Soporte maestro-esclavo, soporte de transacciones
21
22. ENTIDADES EN D7
● En D6 sólo existían los nodos cómo forma de abstracción:
campos, versiones, traducciones, listados, etc.
● En D7 nace el concepto de entidad.
● Una entidad es un tipo de objeto/dato que trabaja en Drupal,
que tiene su propia base datos, flujos, etc.
● A una entidad se le pueden añadir campos, gestionar sus
traducciones, sus flujos e interacciones, entre otros.
● En D7 los nodos, los comentarios, los términos de taxonomía y
los usuarios son entidades
● Gran potencia con EntityFieldQuery
● Otros ejemplos de entidades: líneas de compra (Drupal Commerce),
media (Media), grupos (Organic Groups), etc.
22
23. DESARROLLO FRONTEND: THEMES
● El desarrollo frontend se hace a partir de temas
(theme)
● Theme = *.tpl.php (HTML) + estáticos (css, js,
img) + magia
● En sí, para crear un tema, no es necesario tener
conocimientos de PHP a no ser que queramos
usar la magia.
● Las funciones de preprocesado nos permiten
modificar las variables que se mostraran en las
plantillas.
23
24. Y MUCHO MÁS...
● Field API
● File API (Stream wrappers)
● Form API
● Menu API
● Render arrays
● Sistema de caché
● Localización
● ...
24
26. UN MUNDO POR DESCUBRIR
● La verdadera potencia de Drupal reside en los módulos
contribuidos por la comunidad
● Hay módulos que se han convertido en una necesidad para
cualquier desarrollo en Drupal cómo por ejemplo Views
● Existen módulos para hacer miles de cosas:
● Comercio electrónico: Drupal Commerce http://ves.cat/aw0m
● Creación de formularios web: Webform http://ves.cat/aw0n
● Sitios multilenguaje: Internationalization http://ves.cat/aTWs
● Integración con Twitter: Twitter http://ves.cat/aw0o
● Control de spam: Mollom http://ves.cat/aw0q
● ...
26
27. NO SÓLO UNA PLATAFORMA PARA HACER
WEBS (I)
● Drupal ha pasado de ser un CMS a ser un CMF (Content
Management Framework)
● A parte de los módulos y los temas, Drupal ofrece en el núcleo
una “cosa” llamada perfiles (de instalación).
● Un perfil de instalación no es más que un conjunto de módulos
y temas, junto con un conjunto de tareas, que permiten crear
una instalación de Drupal en base a esto.
● Por ejemplo, podemos tener un perfil (distribución) que al
instalarlo nos cree una plataforma de blogs, un comercio
electrónico, etc.
27
28. NO SÓLO UNA PLATAFORMA PARA HACER
WEBS (y II)
● Perfil de instalación + funcionalidad +
documentación + soporte = producto
● Des de hace un tiempo, están apareciendo
distintos productos con carácter final basados
en Drupal.
28
33. ENLACES
● Desarrollo de módulos
http://drupal.org/documentation/develop
● Theming
http://drupal.org/documentation/theme
● API del núcleo
http://api.drupal.org/
● API de los módulos contribuidos
http://drupalcontrib.org/
33