SlideShare una empresa de Scribd logo
Hello!
This is Drupal!
Sobre nosotros
La Drupalera AED Grupo Local Sevilla
Diego Marrufo Neftali Guerrero
¿Qué vamos a ver?
● Introducción
● Conceptos básicos
● Desarrollo: extendiendo Drupal
● Referencias
1. Introducción
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
Introducción: Puntos débiles
● Bajo rendimiento:
Dependencia de caché
● Menor usabilidad para el
usuario inicial
● Incompatibilidad entre
versiones mayores
● Curva de aprendizaje elevada
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
2. Conceptos básicos
Drush, nuestra mejor herramienta
● drush dl
● drush en
● drush dis
● drush pm-uninstall
● drush cc
● drush pml
● drush sql-sync @alias1 @alias2
...y muchos más
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
Conceptos básicos: Sistema de publicación
● Tipo de contenido
● Campos
● Nodo
● Comentario
● Taxonomía
Conceptos básicos: Menús
● Características
○ Potente gestor de menús
○ Posibilidad de anidamiento
○ Gestión de menús
multilenguaje
○ Colocación por bloques
● Menús por defecto:
○ Management
○ Main menu
○ User menu
○ Navigation
Conceptos básicos: Bloques
● Piezas de código HTML que
podemos colocar donde
necesitemos
● Gestión de bloques básica
● Se colocan en las regiones de
los temas.
● Ampliable por módulos
● Ejemplos
○ Bloque de login
○ Bloques de menús
○ Bloques personalizados.
Conceptos básicos: Gestión de usuarios
● Usuario
● Perfil
● Rol
● Permiso
3. Desarrollo extendido en Drupal
3.1. Hooks
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()
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.
● ...
3.2. Módulos
¿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, …
¿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
3.3. Módulos comunes
Módulos comunes: Views
Características
○ Creación de listados de forma
sencilla.
○ Extensible mediante muchos
otros
■ Sliders
■ Carruseles
○ Todo mediante interfaz.
○ Sólo para el desarrollo.
Conozcamos a Views!
Objetivo: Acelerar la forma en la
mostramos listados de contenido
Módulos comunes: Context
Objetivo: Queremos poder definir
más fácilmente la estructura de
contenidos de nuestro site
Características
○ Disponemos de condiciones
para definir layouts.
○ Más potente que la
administración del core.
○ Son solapables.
Conozcamos a Context!
Módulos comunes: Devel Generate
Objetivo: Queremos poder tener
herramientas específicas para
desarrolladores.
Características
○ Mejoramos como vemos
variables.
○ Podemos generar contenido
y usuarios aleatorio.
○ Para desarrolladores
Conozcamos a Devel!
Módulos comunes: Features
Objetivo: Drupal es muy dependiente de la BD.
Queremos tenerla en código.
Características
○ Nos permite exportar la configuración a código.
○ Útil para desplegar funcionalidades.
○ Puedo empaquetar funcionalidad.
Conozcamos a Features!
Módulos comunes: Muchos más
● Token
● Pathauto
● Webform
● CKEditor
● Rules
● ...
3.4. Temas
Capa de presentación: Temas
● Distinta apariencia, distintas funcionalidades
● Subtemas customizables
● Nuevos lenguajes opcionales
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
Conceptos básicos: Organizar la información
● html
● página
● región
● nodo
● bloques
● Plantillas anidadas
4. Referencias
Referencias
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
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
Referencias
Ejemplos completos
https://github.com/jlbellido/aed_drupal_workshop
Web DrupalCamp 2015 en Jerez!
http://2015.drupalcamp.es/
Conclusión
● Cuestión de echarle
ganas... y horas
● Velocidad, flexibilidad...
● ¿Lo mejor? La comunidad
¡Gracias!
¿Preguntas?

Más contenido relacionado

PDF
This is Drupal! (Basics)
ODP
Introduccion drupal
PDF
Presentacion Taller Desarrollo de Blogs
PDF
Metodologia de Trabajo en Proyectos con Drupal
PDF
Semana 4 SPA vs MPA
PDF
Drupal - Introducción
This is Drupal! (Basics)
Introduccion drupal
Presentacion Taller Desarrollo de Blogs
Metodologia de Trabajo en Proyectos con Drupal
Semana 4 SPA vs MPA
Drupal - Introducción

La actualidad más candente (11)

PDF
Web pack para la construcción de un proyecto javascript.
PDF
Taller de Drupal - Sesion 1
PDF
Drupal creación módulos, bloques, formularios y alters
PDF
Introducción a Ruby on rails
PPTX
Creación de páginas web
PDF
Taller de Drupal - Sesión 2
PPTX
PDF
Pablo Arias: Joomla como herramienta para el desarrollo web
PPTX
Html
PDF
Introduccion técnica a Drupal
PDF
Semana 3 MONGODB conceptos básicos NOSQL
Web pack para la construcción de un proyecto javascript.
Taller de Drupal - Sesion 1
Drupal creación módulos, bloques, formularios y alters
Introducción a Ruby on rails
Creación de páginas web
Taller de Drupal - Sesión 2
Pablo Arias: Joomla como herramienta para el desarrollo web
Html
Introduccion técnica a Drupal
Semana 3 MONGODB conceptos básicos NOSQL
Publicidad

Similar a ¡This is drupal! - Global Training Days (20)

PDF
¡This is drupal!
PDF
[DrupalCampSpain2023] Introducción al desarrollo de módulos en Drupal 10
PDF
Drupal 7: mucho más que una nueva versión (para desarrolladores)
PDF
Presentacion Drupal Ccrtv
PDF
Programación de módulos para Drupal 7
PDF
Arquitectura de proyectos Drupal
PDF
Introducción a la programación para joomla
PDF
Introduccion a Drupal 6 e-ghost
PDF
DrupalCamp Spain 2014: Introducción al desarrollo de módulos en Drupal 7
ODP
Presentación TE: CMS y en especial joomla.
PDF
Drupal Sitebuilding 101
PDF
MasterClass Desarrollo Plantillas Joomla!
PDF
[DrupalCampSpain2022] Introducción al desarrollo de módulos en Drupal 9
PDF
PDF
Taller de drupal7
ODP
Un vistazo al mundo Drupal
PPTX
Conociendo drupal
PDF
El universo JavaScript en Drupal 8
PDF
Introducción a Drupal
PDF
Desarrollo y arquitectura de proyectos con Features
¡This is drupal!
[DrupalCampSpain2023] Introducción al desarrollo de módulos en Drupal 10
Drupal 7: mucho más que una nueva versión (para desarrolladores)
Presentacion Drupal Ccrtv
Programación de módulos para Drupal 7
Arquitectura de proyectos Drupal
Introducción a la programación para joomla
Introduccion a Drupal 6 e-ghost
DrupalCamp Spain 2014: Introducción al desarrollo de módulos en Drupal 7
Presentación TE: CMS y en especial joomla.
Drupal Sitebuilding 101
MasterClass Desarrollo Plantillas Joomla!
[DrupalCampSpain2022] Introducción al desarrollo de módulos en Drupal 9
Taller de drupal7
Un vistazo al mundo Drupal
Conociendo drupal
El universo JavaScript en Drupal 8
Introducción a Drupal
Desarrollo y arquitectura de proyectos con Features
Publicidad

Más de La Drupalera (19)

PDF
QA en SEO: Amigos con derecho a roce - Drupalcamp 2019
PDF
Consejos y trucos para cualificar una oportunidad Drupal
PDF
Designer vs Front-end - DrupalCampES 2018 Alicante
PDF
¡Ojo al dato!: Cómo evitar microinfartos a la gente de marketing - DrupalCamp...
PDF
PSD to HTML (Drupal) - Drupal Day Spain 2017 Cáceres
PDF
Tips para posicionarte como desarrollador Drupal - Drupal Day Spain 2017 Cáceres
PDF
Tu drupal está listo… ¿lo sabe Google? - DrupalCamp 2017
PDF
Docker, your best ally to migrate & upgrading your Drupal - Drupal Dev Days S...
PDF
Beyond the web: Mobile apps using Drupal & Ionic 2 - Drupal Dev Days Seville ...
PDF
QA on Drupal projects - Drupal Dev Days Seville 2017
PDF
Responsive testing in Drupal - Drupal Developer Days
PDF
Efficiently theming a multi-site Drupal 8 portal - Drupal Dev Days Seville 2017
PDF
XML Sitemap Drupal Module
PDF
QA on drupal projects
PDF
¿Cómo aplicar una estrategia de Marketing efectiva basada en Drupal?
PDF
Drupal vs Wordpress
PDF
Marketing, Comunidad, Empleo y Negocio Internacional basado en Drupal
PDF
Caso de éxito Drupal - Procomún - DrupalCamp Spain 2016
PDF
Desplegando código con Phing, PHPunit, Coder y Jenkins
QA en SEO: Amigos con derecho a roce - Drupalcamp 2019
Consejos y trucos para cualificar una oportunidad Drupal
Designer vs Front-end - DrupalCampES 2018 Alicante
¡Ojo al dato!: Cómo evitar microinfartos a la gente de marketing - DrupalCamp...
PSD to HTML (Drupal) - Drupal Day Spain 2017 Cáceres
Tips para posicionarte como desarrollador Drupal - Drupal Day Spain 2017 Cáceres
Tu drupal está listo… ¿lo sabe Google? - DrupalCamp 2017
Docker, your best ally to migrate & upgrading your Drupal - Drupal Dev Days S...
Beyond the web: Mobile apps using Drupal & Ionic 2 - Drupal Dev Days Seville ...
QA on Drupal projects - Drupal Dev Days Seville 2017
Responsive testing in Drupal - Drupal Developer Days
Efficiently theming a multi-site Drupal 8 portal - Drupal Dev Days Seville 2017
XML Sitemap Drupal Module
QA on drupal projects
¿Cómo aplicar una estrategia de Marketing efectiva basada en Drupal?
Drupal vs Wordpress
Marketing, Comunidad, Empleo y Negocio Internacional basado en Drupal
Caso de éxito Drupal - Procomún - DrupalCamp Spain 2016
Desplegando código con Phing, PHPunit, Coder y Jenkins

Último (20)

PDF
Calidad desde el Docente y la mejora continua .pdf
PPT
Que son las redes de computadores y sus partes
PDF
CyberOps Associate - Cisco Networking Academy
PDF
5.1 Pinch y Bijker en libro Actos, actores y artefactos de Bunch Thomas (coor...
PDF
SAP Transportation Management para LSP, TM140 Col18
PPTX
IA de Cine - Como MuleSoft y los Agentes estan redefiniendo la realidad
PPTX
Presentación de Redes de Datos modelo osi
PDF
Instrucciones simples, respuestas poderosas. La fórmula del prompt perfecto.
PPTX
historia_web de la creacion de un navegador_presentacion.pptx
PPTX
Power Point Nicolás Carrasco (disertación Roblox).pptx
PPTX
ANCASH-CRITERIOS DE EVALUACIÓN-FORMA-10-10 (2).pptx
PPTX
Propuesta BKP servidores con Acronis1.pptx
PDF
clase auditoria informatica 2025.........
PDF
MÓDULO DE CALOR DE GRADO DE MEDIO DE FORMACIÓN PROFESIONAL
PPT
introduccion a las_web en el 2025_mejoras.ppt
PDF
MANUAL TECNOLOGÍA SER MINISTERIO EDUCACIÓN
PDF
programa-de-estudios-2011-guc3ada-para-el-maestro-secundarias-tecnicas-tecnol...
PDF
Liceo departamental MICRO BIT (1) 2.pdfbbbnn
PDF
Estrategia de apoyo tecnología miguel angel solis
PDF
Estrategia de apoyo tecnología grado 9-3
Calidad desde el Docente y la mejora continua .pdf
Que son las redes de computadores y sus partes
CyberOps Associate - Cisco Networking Academy
5.1 Pinch y Bijker en libro Actos, actores y artefactos de Bunch Thomas (coor...
SAP Transportation Management para LSP, TM140 Col18
IA de Cine - Como MuleSoft y los Agentes estan redefiniendo la realidad
Presentación de Redes de Datos modelo osi
Instrucciones simples, respuestas poderosas. La fórmula del prompt perfecto.
historia_web de la creacion de un navegador_presentacion.pptx
Power Point Nicolás Carrasco (disertación Roblox).pptx
ANCASH-CRITERIOS DE EVALUACIÓN-FORMA-10-10 (2).pptx
Propuesta BKP servidores con Acronis1.pptx
clase auditoria informatica 2025.........
MÓDULO DE CALOR DE GRADO DE MEDIO DE FORMACIÓN PROFESIONAL
introduccion a las_web en el 2025_mejoras.ppt
MANUAL TECNOLOGÍA SER MINISTERIO EDUCACIÓN
programa-de-estudios-2011-guc3ada-para-el-maestro-secundarias-tecnicas-tecnol...
Liceo departamental MICRO BIT (1) 2.pdfbbbnn
Estrategia de apoyo tecnología miguel angel solis
Estrategia de apoyo tecnología grado 9-3

¡This is drupal! - Global Training Days

  • 2. Sobre nosotros La Drupalera AED Grupo Local Sevilla Diego Marrufo Neftali Guerrero
  • 3. ¿Qué vamos a ver? ● Introducción ● Conceptos básicos ● Desarrollo: extendiendo Drupal ● Referencias
  • 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. Introducción: Puntos débiles ● Bajo rendimiento: Dependencia de caché ● Menor usabilidad para el usuario inicial ● Incompatibilidad entre versiones mayores ● Curva de aprendizaje elevada
  • 7. 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
  • 9. Drush, nuestra mejor herramienta ● drush dl ● drush en ● drush dis ● drush pm-uninstall ● drush cc ● drush pml ● drush sql-sync @alias1 @alias2 ...y muchos más
  • 10. 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
  • 11. Conceptos básicos: Sistema de publicación ● Tipo de contenido ● Campos ● Nodo ● Comentario ● Taxonomía
  • 12. Conceptos básicos: Menús ● Características ○ Potente gestor de menús ○ Posibilidad de anidamiento ○ Gestión de menús multilenguaje ○ Colocación por bloques ● Menús por defecto: ○ Management ○ Main menu ○ User menu ○ Navigation
  • 13. Conceptos básicos: Bloques ● Piezas de código HTML que podemos colocar donde necesitemos ● Gestión de bloques básica ● Se colocan en las regiones de los temas. ● Ampliable por módulos ● Ejemplos ○ Bloque de login ○ Bloques de menús ○ Bloques personalizados.
  • 14. Conceptos básicos: Gestión de usuarios ● Usuario ● Perfil ● Rol ● Permiso
  • 17. 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()
  • 18. 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. ● ...
  • 20. ¿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, …
  • 21. ¿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. Módulos comunes: Views Características ○ Creación de listados de forma sencilla. ○ Extensible mediante muchos otros ■ Sliders ■ Carruseles ○ Todo mediante interfaz. ○ Sólo para el desarrollo. Conozcamos a Views! Objetivo: Acelerar la forma en la mostramos listados de contenido
  • 24. Módulos comunes: Context Objetivo: Queremos poder definir más fácilmente la estructura de contenidos de nuestro site Características ○ Disponemos de condiciones para definir layouts. ○ Más potente que la administración del core. ○ Son solapables. Conozcamos a Context!
  • 25. Módulos comunes: Devel Generate Objetivo: Queremos poder tener herramientas específicas para desarrolladores. Características ○ Mejoramos como vemos variables. ○ Podemos generar contenido y usuarios aleatorio. ○ Para desarrolladores Conozcamos a Devel!
  • 26. Módulos comunes: Features Objetivo: Drupal es muy dependiente de la BD. Queremos tenerla en código. Características ○ Nos permite exportar la configuración a código. ○ Útil para desplegar funcionalidades. ○ Puedo empaquetar funcionalidad. Conozcamos a Features!
  • 27. Módulos comunes: Muchos más ● Token ● Pathauto ● Webform ● CKEditor ● Rules ● ...
  • 29. Capa de presentación: Temas ● Distinta apariencia, distintas funcionalidades ● Subtemas customizables ● Nuevos lenguajes opcionales
  • 30. 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
  • 31. Conceptos básicos: Organizar la información ● html ● página ● región ● nodo ● bloques ● Plantillas anidadas
  • 33. Referencias 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 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
  • 35. Conclusión ● Cuestión de echarle ganas... y horas ● Velocidad, flexibilidad... ● ¿Lo mejor? La comunidad