Se ha denunciado esta presentación.
Utilizamos tu perfil de LinkedIn y tus datos de actividad para personalizar los anuncios y mostrarte publicidad más relevante. Puedes cambiar tus preferencias de publicidad en cualquier momento.
Hello!
This is Drupal!
Emergya
Sobre nosotros
La Drupalera AED Grupo Local Sevilla
José Luis Bellido
@jose_lakatos
Nesta Guerrero
@Nesta_
¿Qué vamos a ver?
● Introducción
● Conceptos básicos
● Desarrollo: extendiendo Drupal
● Debugging, rendimiento y seguridad...
1. Introducción
Introducción: ¿Qué es?
● CMS escrito en PHP
● Extensible mediante módulos y
temas
● Arquitectura LAMP
● Software libre (GP...
Introducción: Puntos fuertes
● Gran flexibilidad
● Enorme velocidad de desarrollo
● Separación de presentación y lógica
● ...
Introducción: Puntos débiles
● Bajo rendimiento:
Dependencia de caché
● Menor usabilidad para el
usuario final
● Incompati...
Puede parecer una tarea imposible..
Pero solo es cuestión de echarle ganas
2. Conceptos básicos
Conceptos básicos: Componentes
● Core : Instalación básica de
Drupal
● Module: Extensión de la
funcionalidad del core
● Th...
Conceptos básicos: Sistema de publicación
● Tipo de contenido
● Campos
● Nodo
● Comentario
● Taxonomía
Conceptos básicos: Organizar la información
● Menú
● Página
● Región
● Bloque
● Plantilla
Conceptos básicos: Gestión de usuarios
● Usuario
● Perfil
● Rol
● Permiso
3. Desarrollo extendido en Drupal
Programación estructurada, objetos en
Drupal 8.
● Todas las peticiones se reciben en index.php (mod
rewrite) URLs del tipo...
3.1. Hooks
Conceptos importante: Hooks
● Funciones que se ejecutan cuando un evento sucede
● Ejemplo: hook_init → cuando termina la c...
Múltiples API’s: Algunas API de Drupal
● Form API: Formularios
● Database API: Base de datos
● Entity API: Nodos, términos...
3.2. Módulos
¿Cómo es un módulo? Estructura de directorios
● sites/all/modules/tipo-modulo/nombre_modulo
○ contrib
○ custom
○ features
...
¿Cómo es un módulo? Ficheros
● nombre_modulo.info → Meta-información del módulo
● nombre_modulo.module → Implementación de...
3.3. Sistema de Plantillas
Capa de presentación: Sistemas de plantillas
● Plantilla HTML con código PHP incrustado
● nombre_fichero.tpl.php
● Usado s...
Ejercicio:
URL que recibe parámetro y lo muestra por pantalla
● Fichero info
● Fichero module
● Hook menu, definir la URL
...
4. Debugging, rendimiento y
seguridad
Debugging
● Drush (no solo debug)
● Módulo devel
● Módulo coder
● xdebug
● xhprof
● Drupal for Firebug
Rendimiento
● Memcache
● Apc / Opcache
● Varnish
● Authcache
● ApacheSolr
● Monitorización
Sin olvidar: Buenas prácticas y...
Seguridad
● Seguridad en profundidad
● Drupal proporciona gran variedad de herramientas
● La importancia de la formación
h...
5. Referencias
Referencias
Página oficial de Drupal
https://drupal.org
Documentación completa
https://drupal.org/documentation
Estándar d...
Referencias
Ejemplos completos
https://github.com/jlbellido/aed_drupal_workshop
Web DrupalCamp 2015 en Jerez!
http://2015....
Conclusión
● Cuestión de echarle
ganas... y horas
● Velocidad, flexibilidad...
● ¿Lo mejor? La comunidad
¡Gracias!
¿Preguntas?
Próxima SlideShare
Cargando en…5
×

¡This is drupal!

850 visualizaciones

Publicado el

This slides are about what is drupal? and why you should use drupal. The target for this slides are students of last courses of web apps development.

This slides was created by:
@keilovecraft
@Nesta_

This slides are based on http://www.slideshare.net/zekivazquez/taller-drupal-jornadas-software-libre-uca (by @RabbitLair)

Publicado en: Software
  • Sé el primero en comentar

¡This is drupal!

  1. 1. Hello! This is Drupal! Emergya
  2. 2. Sobre nosotros La Drupalera AED Grupo Local Sevilla José Luis Bellido @jose_lakatos Nesta Guerrero @Nesta_
  3. 3. ¿Qué vamos a ver? ● Introducción ● Conceptos básicos ● Desarrollo: extendiendo Drupal ● Debugging, rendimiento y seguridad ● Referencias
  4. 4. 1. Introducción
  5. 5. Introducción: ¿Qué es? ● CMS escrito en PHP ● Extensible mediante módulos y temas ● Arquitectura LAMP ● Software libre (GPL) ● Actualmente, Drupal 7 ● Lo mejor: La comunidad
  6. 6. Introducción: Puntos fuertes ● Gran flexibilidad ● Enorme velocidad de desarrollo ● Separación de presentación y lógica ● Multitud de módulos (16k+) y temas (1.2k+) disponibles ● Documentación extensa y calidad ● Soporte por parte de la comunidad
  7. 7. Introducción: Puntos débiles ● Bajo rendimiento: Dependencia de caché ● Menor usabilidad para el usuario final ● Incompatibilidad entre versiones mayores ● Curva de aprendizaje elevada
  8. 8. Puede parecer una tarea imposible..
  9. 9. Pero solo es cuestión de echarle ganas
  10. 10. 2. Conceptos básicos
  11. 11. Conceptos básicos: Componentes ● Core : Instalación básica de Drupal ● Module: Extensión de la funcionalidad del core ● Theme: Extensión “visual” (Plantillas, estilos..) ● Library: Librerías externas con funcionalidad adicional
  12. 12. Conceptos básicos: Sistema de publicación ● Tipo de contenido ● Campos ● Nodo ● Comentario ● Taxonomía
  13. 13. Conceptos básicos: Organizar la información ● Menú ● Página ● Región ● Bloque ● Plantilla
  14. 14. Conceptos básicos: Gestión de usuarios ● Usuario ● Perfil ● Rol ● Permiso
  15. 15. 3. Desarrollo extendido en Drupal
  16. 16. Programación estructurada, objetos en Drupal 8. ● Todas las peticiones se reciben en index.php (mod rewrite) URLs del tipo index.php?q=esto/es/una/url ● Se carga el bootstrap ● Ejecución de entrada del menú ● Función de callback ● Salida se pasa al Theme, renderizado y envío de la respuesta al navegador
  17. 17. 3.1. Hooks
  18. 18. Conceptos 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 ● Un hook de cada tipo por módulo ● Esquema de nombre: nombre_modulo_nombre_hook()
  19. 19. Múltiples API’s: Algunas API de Drupal ● Form API: Formularios ● Database API: Base de datos ● Entity API: Nodos, términos, comentarios, … ● Field API: Campos de entidades ● Batch API: Operaciones por lotes ● Sistema de menú ● Variables persistentes ● Sistema de traducción ● ...
  20. 20. 3.2. Módulos
  21. 21. ¿Cómo es un módulo? Estructura de directorios ● sites/all/modules/tipo-modulo/nombre_modulo ○ contrib ○ custom ○ features ○ patch ● Subdirectorios: ○ js ○ css ○ img ○ includes ○ tpl, translations, …
  22. 22. ¿Cómo es un módulo? Ficheros ● nombre_modulo.info → Meta-información del módulo ● nombre_modulo.module → Implementación de hooks ● nombre_modulo.install → Hooks de instalación/desinstalación ● nombre_modulo.admin.inc → Configuración del módulo ● nombre_modulo.inc → Funciones que no son hooks ● nombre_modulo.views.inc → Hooks del módulo Views
  23. 23. 3.3. Sistema de Plantillas
  24. 24. Capa de presentación: Sistemas de plantillas ● Plantilla HTML con código PHP incrustado ● nombre_fichero.tpl.php ● Usado según nomenclatura del fichero ● Recibe un array de parámetros ($vars) ● Funciones de preprocesado
  25. 25. Ejercicio: URL que recibe parámetro y lo muestra por pantalla ● Fichero info ● Fichero module ● Hook menu, definir la URL ● Hook permissions, definir permiso de acceso ● Hook theme, definir plantilla ● Definición de callback ● Interactuar con la base de datos ● Añadir Javascript y CSS ● Hook node view, responde a visualización de nodo
  26. 26. 4. Debugging, rendimiento y seguridad
  27. 27. Debugging ● Drush (no solo debug) ● Módulo devel ● Módulo coder ● xdebug ● xhprof ● Drupal for Firebug
  28. 28. Rendimiento ● Memcache ● Apc / Opcache ● Varnish ● Authcache ● ApacheSolr ● Monitorización Sin olvidar: Buenas prácticas y Arquitectura adecuada
  29. 29. Seguridad ● Seguridad en profundidad ● Drupal proporciona gran variedad de herramientas ● La importancia de la formación http://2013.drupalcamp.es/desarrollo-seguro-en-drupal
  30. 30. 5. Referencias
  31. 31. Referencias Página oficial de Drupal https://drupal.org Documentación completa https://drupal.org/documentation Estándar de codificación https://drupal.org/coding-standards Drupal 7 Pro Development http://www.drupalbook.com High Performance Drupal https://drupal.org/node/2119971 Blog La Drupalera http://www.ladrupalera.com/drupal/ Api Drupal 7 https://api.drupal.org/api/drupal Drupal Modules http://drupalmodules.com/ Grupo Local de Sevilla https://groups.drupal.org/sevilla Canal vimeo http://vimeo.com/drupales
  32. 32. Referencias Ejemplos completos https://github.com/jlbellido/aed_drupal_workshop Web DrupalCamp 2015 en Jerez! http://2015.drupalcamp.es/
  33. 33. Conclusión ● Cuestión de echarle ganas... y horas ● Velocidad, flexibilidad... ● ¿Lo mejor? La comunidad
  34. 34. ¡Gracias! ¿Preguntas?

×