34
DRUPAL 7 MUCHO MÁS QUE UNA NUEVA VERSIÓN Ramon Vilar Gavaldà

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

  • Upload
    ymbra

  • View
    3.240

  • Download
    0

Embed Size (px)

DESCRIPTION

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

Citation preview

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

DRUPAL 7MUCHO MÁS QUE UNA NUEVA VERSIÓN

Ramon Vilar Gavaldà

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

2

QUIÉN SOY

Ramon Vilar Gavaldà

http://ymbra.com/blogs/ramon

http://twitter.com/rvilar

http://drupal.org/user/293298

● Socio fundador de Ymbra● Desarrollador Drupal● Desarrollador frontend● Miembro activo de la

comunidad drupalera:● Presidente de Drupal.cat● Administrador de la

traducción catalana de Drupal

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

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

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

4

ÍNDICE

01 DRUPAL

02 DRUPAL 7: NOVEDADES

03 DESARROLLO DRUPAL

04 UNIVERSO DRUPAL

05 RECURSOS

06 CONTACTO

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

5

DRUPAL

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

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

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

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

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

8

QUÉ SE PUEDE HACER CON DRUPAL (I)

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

9

QUÉ SE PUEDE HACER CON DRUPAL (y II)

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

10

DRUPAL 7: NOVEDADES

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

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

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

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

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

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

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

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

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

15

INSTALACIÓN DESDE LA INTERFAZ

● Se pueden instalar/actualizar módulos y temas desde la interfaz

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

16

USABILIDAD

● Dashboard, rediseño centrado en el usuario, overlay, ...

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

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é● …

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

18

DESARROLLO DRUPAL

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

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/

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

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

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

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

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

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.

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

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.

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

24

Y MUCHO MÁS...

● Field API● File API (Stream wrappers)● Form API● Menu API● Render arrays● Sistema de caché● Localización● ...

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

25

UNIVERSO DRUPAL

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

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● ...

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

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.

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

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.

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

29

RECURSOS

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

30

LIBROS (I)

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

31

LIBROS (II)

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

32

LIBROS (y III)

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

33

ENLACES

● Desarrollo de móduloshttp://drupal.org/documentation/develop

● Theminghttp://drupal.org/documentation/theme

● API del núcleohttp://api.drupal.org/

● API de los módulos contribuidoshttp://drupalcontrib.org/

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

34

CONTACTO

● Twitter: @rvilar● Correo: [email protected]● Blog: http://ymbra.com/blogs/ramon● Web: http://ymbra.com

Gracias a todos(as). ¿Preguntas?