SlideShare una empresa de Scribd logo
Hello!
This is Drupal!
Sobre nosotros
La Drupalera AED Grupo Local Sevilla
José Luis Bellido
@jose_lakatos
Carmen García
@keilovecraft
¿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 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
Introducción: Puntos débiles
● Bajo rendimiento:
Dependencia de caché
● Menor usabilidad para el
usuario inicial
● Incompatibilidad entre
versiones mayores
● Curva de aprendizaje elevada
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: Organizar la información
● html
● página
● región
● nodo
● bloques
● Plantillas anidadas
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
● Batch API: Operaciones por lotes
● Sistema de menú
● Variables persistentes
● Sistema de traducción
● ...
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
4. Referencias
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
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

La actualidad más candente

Html y HTML 5 (Semana Cultural 2011)
Html y HTML 5 (Semana Cultural 2011)Html y HTML 5 (Semana Cultural 2011)
Html y HTML 5 (Semana Cultural 2011)
Javo Leon
 

La actualidad más candente (11)

Creación de páginas web
Creación de páginas webCreación de páginas web
Creación de páginas web
 
Html y HTML 5 (Semana Cultural 2011)
Html y HTML 5 (Semana Cultural 2011)Html y HTML 5 (Semana Cultural 2011)
Html y HTML 5 (Semana Cultural 2011)
 
20170405 - Ecosistema Javascript
20170405 - Ecosistema Javascript20170405 - Ecosistema Javascript
20170405 - Ecosistema Javascript
 
Introduccion técnica a Drupal
Introduccion técnica a DrupalIntroduccion técnica a Drupal
Introduccion técnica a Drupal
 
Html
HtmlHtml
Html
 
Html
HtmlHtml
Html
 
Drupal - Introducción
Drupal - IntroducciónDrupal - Introducción
Drupal - Introducción
 
Presentacion Ruby on Rails en Universidad Autónoma 2009
Presentacion Ruby on Rails en Universidad Autónoma 2009Presentacion Ruby on Rails en Universidad Autónoma 2009
Presentacion Ruby on Rails en Universidad Autónoma 2009
 
Web pack para la construcción de un proyecto javascript.
Web pack para la construcción de un proyecto javascript.Web pack para la construcción de un proyecto javascript.
Web pack para la construcción de un proyecto javascript.
 
Primeros pasos Symfony PHPVigo
Primeros pasos Symfony PHPVigoPrimeros pasos Symfony PHPVigo
Primeros pasos Symfony PHPVigo
 
Presentación Drupal
Presentación DrupalPresentación Drupal
Presentación Drupal
 

Similar a This is Drupal! (Basics)

Presentacion Drupal Ccrtv
Presentacion Drupal CcrtvPresentacion Drupal Ccrtv
Presentacion Drupal Ccrtv
Pedro Cambra
 
Taller de Drupal - Sesión 2
Taller de Drupal - Sesión 2Taller de Drupal - Sesión 2
Taller de Drupal - Sesión 2
SEAT, S.A.
 
Taller de drupal7
Taller de drupal7Taller de drupal7
Taller de drupal7
Rojomorgan
 

Similar a This is Drupal! (Basics) (20)

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

Último

Último (11)

PitchCollabART uniendo talentos, creando maravillas digitales
PitchCollabART uniendo talentos, creando maravillas digitalesPitchCollabART uniendo talentos, creando maravillas digitales
PitchCollabART uniendo talentos, creando maravillas digitales
 
Caso de exito Cirrus - Hospital La Salle
Caso de exito Cirrus - Hospital La SalleCaso de exito Cirrus - Hospital La Salle
Caso de exito Cirrus - Hospital La Salle
 
trabajo integrador final sofi y vane.docx
trabajo integrador final sofi y vane.docxtrabajo integrador final sofi y vane.docx
trabajo integrador final sofi y vane.docx
 
PSICOLOGÍA si quieres aprender los temas principales para el examen de admisión
PSICOLOGÍA si quieres aprender los temas principales para el examen de admisiónPSICOLOGÍA si quieres aprender los temas principales para el examen de admisión
PSICOLOGÍA si quieres aprender los temas principales para el examen de admisión
 
Maquina de Dibujo y Escritura Automática.pdf
Maquina de Dibujo y Escritura Automática.pdfMaquina de Dibujo y Escritura Automática.pdf
Maquina de Dibujo y Escritura Automática.pdf
 
Los desafíos de calidad de software que nos trae la IA y los LLMs
Los desafíos de calidad de software que nos trae la IA y los LLMsLos desafíos de calidad de software que nos trae la IA y los LLMs
Los desafíos de calidad de software que nos trae la IA y los LLMs
 
MODULO BASICO DE WORD - I CICLO.DOC.DOC.
MODULO BASICO DE WORD - I CICLO.DOC.DOC.MODULO BASICO DE WORD - I CICLO.DOC.DOC.
MODULO BASICO DE WORD - I CICLO.DOC.DOC.
 
infografia del sena para analisis y desarrollo de software
infografia del sena para analisis y desarrollo de softwareinfografia del sena para analisis y desarrollo de software
infografia del sena para analisis y desarrollo de software
 
FICHA DE TRABAJO DE CREACION DE TABLAS EN WORD
FICHA  DE TRABAJO DE CREACION DE TABLAS EN WORDFICHA  DE TRABAJO DE CREACION DE TABLAS EN WORD
FICHA DE TRABAJO DE CREACION DE TABLAS EN WORD
 
experiencia de aprendizaje sobre lectura y escritura como herramientas de ap...
experiencia de aprendizaje sobre lectura y escritura como  herramientas de ap...experiencia de aprendizaje sobre lectura y escritura como  herramientas de ap...
experiencia de aprendizaje sobre lectura y escritura como herramientas de ap...
 
Escaneo y eliminación de malware en el equipo
Escaneo y eliminación de malware en el equipoEscaneo y eliminación de malware en el equipo
Escaneo y eliminación de malware en el equipo
 

This is Drupal! (Basics)

  • 2. Sobre nosotros La Drupalera AED Grupo Local Sevilla José Luis Bellido @jose_lakatos Carmen García @keilovecraft
  • 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 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. Introducción: Puntos débiles ● Bajo rendimiento: Dependencia de caché ● Menor usabilidad para el usuario inicial ● Incompatibilidad entre versiones mayores ● Curva de aprendizaje elevada
  • 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: Organizar la información ● html ● página ● región ● nodo ● bloques ● Plantillas anidadas
  • 13. 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
  • 14. 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.
  • 15. Conceptos básicos: Gestión de usuarios ● Usuario ● Perfil ● Rol ● Permiso
  • 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. 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 ● ...
  • 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. ¿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
  • 24. 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
  • 25. 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!
  • 26. 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!
  • 27. 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!
  • 28. Módulos comunes: Muchos más ● Token ● Pathauto ● Webform ● CKEditor ● Rules ● ...
  • 30. Capa de presentación: Temas ● Distinta apariencia, distintas funcionalidades ● Subtemas customizables ● Nuevos lenguajes opcionales
  • 31. 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
  • 33. 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
  • 35. Conclusión ● Cuestión de echarle ganas... y horas ● Velocidad, flexibilidad... ● ¿Lo mejor? La comunidad