Drupal 7: mucho más que una nueva versión (para desarrolladores)

3,517 views

Published on

Presentación sobre Drupal 7 desde un enfoque de desarrollador presentada en la Barcelona Developer Conference

Published in: Technology
0 Comments
4 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
3,517
On SlideShare
0
From Embeds
0
Number of Embeds
289
Actions
Shares
0
Downloads
60
Comments
0
Likes
4
Embeds 0
No embeds

No notes for slide

Drupal 7: mucho más que una nueva versión (para desarrolladores)

  1. 1. DRUPAL 7MUCHO MÁS QUE UNA NUEVA VERSIÓN Ramon Vilar Gavaldà
  2. 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. 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
  4. 4. ÍNDICE01 DRUPAL02 DRUPAL 7: NOVEDADES03 DESARROLLO DRUPAL04 UNIVERSO DRUPAL05 RECURSOS06 CONTACTO 4
  5. 5. DRUPAL 5
  6. 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. 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
  8. 8. QUÉ SE PUEDE HACER CON DRUPAL (I) 8
  9. 9. QUÉ SE PUEDE HACER CON DRUPAL (y II) 9
  10. 10. DRUPAL 7:NOVEDADES 10
  11. 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. 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. 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. 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. 15. INSTALACIÓN DESDE LA INTERFAZ● Se pueden instalar/actualizar módulos y temas desde la interfaz 15
  16. 16. USABILIDAD● Dashboard, rediseño centrado en el usuario, overlay, ... 16
  17. 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
  18. 18. DESARROLLODRUPAL 18
  19. 19. CONCEPTOS BÁSICOS DE DESARROLLODRUPAL: 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. 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. 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 WHEREn.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. 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. 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. 24. Y MUCHO MÁS...● Field API● File API (Stream wrappers)● Form API● Menu API● Render arrays● Sistema de caché● Localización● ... 24
  25. 25. UNIVERSO DRUPAL 25
  26. 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. 27. NO SÓLO UNA PLATAFORMA PARA HACERWEBS (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. 28. NO SÓLO UNA PLATAFORMA PARA HACERWEBS (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
  29. 29. RECURSOS 29
  30. 30. LIBROS (I) 30
  31. 31. LIBROS (II) 31
  32. 32. LIBROS (y III) 32
  33. 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
  34. 34. CONTACTO ● Twitter: @rvilar ● Correo: ramon@ymbra.com ● Blog: http://ymbra.com/blogs/ramon ● Web: http://ymbra.com Gracias a todos(as). ¿Preguntas? 34

×