DRUPAL 7MUCHO MÁS QUE UNA NUEVA VERSIÓN
Ramon Vilar Gavaldà
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
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
4
ÍNDICE
01 DRUPAL
02 DRUPAL 7: NOVEDADES
03 DESARROLLO DRUPAL
04 UNIVERSO DRUPAL
05 RECURSOS
06 CONTACTO
5
DRUPAL
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
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
8
QUÉ SE PUEDE HACER CON DRUPAL (I)
9
QUÉ SE PUEDE HACER CON DRUPAL (y II)
10
DRUPAL 7: NOVEDADES
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
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
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
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
15
INSTALACIÓN DESDE LA INTERFAZ
● Se pueden instalar/actualizar módulos y temas desde la interfaz
16
USABILIDAD
● Dashboard, rediseño centrado en el usuario, overlay, ...
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é● …
18
DESARROLLO DRUPAL
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/
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
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
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.
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.
24
Y MUCHO MÁS...
● Field API● File API (Stream wrappers)● Form API● Menu API● Render arrays● Sistema de caché● Localización● ...
25
UNIVERSO DRUPAL
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● ...
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.
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.
29
RECURSOS
30
LIBROS (I)
31
LIBROS (II)
32
LIBROS (y III)
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/
34
CONTACTO
● Twitter: @rvilar● Correo: [email protected]● Blog: http://ymbra.com/blogs/ramon● Web: http://ymbra.com
Gracias a todos(as). ¿Preguntas?
Top Related