36
Hello! This is Drupal!

¡This is drupal! - Global Training Days

Embed Size (px)

Citation preview

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

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

¡Gracias!

¿Preguntas?