¡This is drupal! - Global Training Days
-
Upload
la-drupalera -
Category
Technology
-
view
153 -
download
0
Transcript of ¡This is drupal! - Global Training Days
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
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: 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 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.● ...
¿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
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!
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
ReferenciasBlog La Drupalerahttp://www.ladrupalera.com/drupal/
Api Drupal 7 https://api.drupal.org/api/drupal
Drupal Moduleshttp://drupalmodules.com/
Grupo Local de Sevillahttps://groups.drupal.org/sevilla
Canal vimeohttp://vimeo.com/drupales
Página oficial de Drupalhttps://drupal.org
Documentación completahttps://drupal.org/documentation
Estándar de codificaciónhttps://drupal.org/coding-standards
Drupal 7 Pro Developmenthttp://www.drupalbook.com
High Performance Drupalhttps://drupal.org/node/2119971
ReferenciasEjemplos completoshttps://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
Un saludo