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