Drupal para desarrolladores

87
DRUPAL para desarrolladores Samuel Solís @estoyausente linkedin.com/in/samuelsolisfuentes sábado 28 de septiembre de 2013

description

Drupal Para desarrolladores, impartida en el seminario de TheEvent en Cáceres el 28 de Septiembre de 2013. Drupal es un CMF con más potencia de lo que la gente que no lo conoce cree, por lo que el objetivo es mostrarles esa potencia y enseñar los puntos fuertes de Drupal. Al final, mención a la comunidad y a la Drupalcamp Cáceres 2013.

Transcript of Drupal para desarrolladores

Page 1: Drupal para desarrolladores

DRUPAL para desarrolladores

Samuel Solís

@estoyausentelinkedin.com/in/samuelsolisfuentes

sábado 28 de septiembre de 2013

Page 2: Drupal para desarrolladores

Drupal for devs Samuel Solís | @estoyausente

¿Qué es DRUPAL?¿Y cómo cojones se pronuncia?

sábado 28 de septiembre de 2013

Page 3: Drupal para desarrolladores

Drupal for devs Samuel Solís | @estoyausente

¿Qué es DRUPAL?¿Y cómo cojones se pronuncia?

Drupal es un CMFContent Management Framework

sábado 28 de septiembre de 2013

Page 4: Drupal para desarrolladores

Drupal for devs Samuel Solís | @estoyausente

¿Qué es DRUPAL?¿Y cómo cojones se pronuncia?

Drupal es un CMFContent Management Framework

/ˈdruːpəl/

sábado 28 de septiembre de 2013

Page 5: Drupal para desarrolladores

Algunos datos para impresionar

Drupal for devs Samuel Solís | @estoyausente

sábado 28 de septiembre de 2013

Page 6: Drupal para desarrolladores

Algunos datos para impresionar

995M usuarios

228 países

181 Idiomas+13k

módulos

+1000 grupos

+1000 temas gratis

Drupal for devs Samuel Solís | @estoyausente

sábado 28 de septiembre de 2013

Page 7: Drupal para desarrolladores

Drupal for devs Samuel Solís | @estoyausente

sábado 28 de septiembre de 2013

Page 8: Drupal para desarrolladores

Base de datos

Ficheros

Gestor bonito (fácil e intuitivo.)

Drupal for devs Samuel Solís | @estoyausente

sábado 28 de septiembre de 2013

Page 9: Drupal para desarrolladores

Base de datos

Ficheros

Gestor bonito (fácil e intuitivo.)

Drupal for devs Samuel Solís | @estoyausente

sábado 28 de septiembre de 2013

Page 10: Drupal para desarrolladores

Base de datos

Ficheros

Gestor bonito (fácil e intuitivo.)

Desarrolladores / Semidioses

Drupal for devs Samuel Solís | @estoyausente

sábado 28 de septiembre de 2013

Page 11: Drupal para desarrolladores

Base de datos

Ficheros

Gestor bonito (fácil e intuitivo.)

Mortales comunes / Muggles

Desarrolladores / Semidioses

Drupal for devs Samuel Solís | @estoyausente

sábado 28 de septiembre de 2013

Page 12: Drupal para desarrolladores

Entidad Instancia

MenúsUsuarios y permisos

Bloques

Módulos

Drupal como CMS

Drupal for devs Samuel Solís | @estoyausente

sábado 28 de septiembre de 2013

Page 13: Drupal para desarrolladores

sábado 28 de septiembre de 2013

Page 14: Drupal para desarrolladores

1

sábado 28 de septiembre de 2013

Page 15: Drupal para desarrolladores

1 2

sábado 28 de septiembre de 2013

Page 16: Drupal para desarrolladores

1 23

sábado 28 de septiembre de 2013

Page 17: Drupal para desarrolladores

1 23

4

sábado 28 de septiembre de 2013

Page 18: Drupal para desarrolladores

1 23

4

5

sábado 28 de septiembre de 2013

Page 19: Drupal para desarrolladores

1 23

4

5

6

sábado 28 de septiembre de 2013

Page 20: Drupal para desarrolladores

1 23

4

5

6

7

sábado 28 de septiembre de 2013

Page 21: Drupal para desarrolladores

1 23

4

5

6

7

8

sábado 28 de septiembre de 2013

Page 22: Drupal para desarrolladores

1 23

4

5

6

7

8

9

sábado 28 de septiembre de 2013

Page 23: Drupal para desarrolladores

1 23

4

5

6

7

8

9

10

sábado 28 de septiembre de 2013

Page 24: Drupal para desarrolladores

Instalación y configuración de Drupal 7

Drupal for devs Samuel Solís | @estoyausente

http://drupal.org/project/drupal

cd /var/wwwsudo wget http://ftp.drupal.org/files/projects/drupal-7.22.tar.gzsudo tar xvf drupal-7.22.tar.gzsudo mv drupal-7.22 drupal

sábado 28 de septiembre de 2013

Page 25: Drupal para desarrolladores

Permisos

Drupal for devs Samuel Solís | @estoyausente

cd /var/www/drupalsudo chown www-data:www-data sites/default/files

sudo chmod o+w sites/default/sudo chmod o-w sites/default/

Carpeta sites/default/files, permisos de escritura por el servidor web.

sites/default/settings.php escritura durante la instalación.

sábado 28 de septiembre de 2013

Page 26: Drupal para desarrolladores

Crear una base de datos y su usuario correspondiente

Drupal for devs Samuel Solís | @estoyausente

CREATE DATABASE 'drupal';CREATE USER 'drupal'@'localhost' IDENTIFIED BY 'drupal';GRANT ALL PRIVILEGES ON drupal.* TO 'drupal'@'localhost';FLUSH PRIVILEGES;

sábado 28 de septiembre de 2013

Page 27: Drupal para desarrolladores

Crear una base de datos y su usuario correspondiente

Drupal for devs Samuel Solís | @estoyausente

CREATE DATABASE 'drupal';CREATE USER 'drupal'@'localhost' IDENTIFIED BY 'drupal';GRANT ALL PRIVILEGES ON drupal.* TO 'drupal'@'localhost';FLUSH PRIVILEGES;

También disponible en modo facilote en:http://localhost/phpmyadmin

sábado 28 de septiembre de 2013

Page 28: Drupal para desarrolladores

Drupal for devs Samuel Solís | @estoyausente

http://localhost/misitiosuperchulo/install.php

sábado 28 de septiembre de 2013

Page 29: Drupal para desarrolladores

Drupal for devs Samuel Solís | @estoyausente

http://localhost/misitiosuperchulo

sábado 28 de septiembre de 2013

Page 30: Drupal para desarrolladores

Drupal for devs Samuel Solís | @estoyausente

http://localhost/misitiosuperchulo

Enséñale a tus amigos lo que has aprendido a hacer

sábado 28 de septiembre de 2013

Page 31: Drupal para desarrolladores

Drupal for devs Samuel Solís | @estoyausente

Algunos módulos esenciales

admin_menu coffee module_filter

ctools rules entity

smtp views token

sábado 28 de septiembre de 2013

Page 32: Drupal para desarrolladores

Drupal for devs Samuel Solís | @estoyausente

sábado 28 de septiembre de 2013

Page 33: Drupal para desarrolladores

Drupal for devs Samuel Solís | @estoyausente

sábado 28 de septiembre de 2013

Page 34: Drupal para desarrolladores

Drupal for devs Samuel Solís | @estoyausente

Drupal para desarrolladores

sábado 28 de septiembre de 2013

Page 35: Drupal para desarrolladores

¿Por qué mola Drupal?Si eres desarrollador...

Drupal for devs Samuel Solís | @estoyausente

sábado 28 de septiembre de 2013

Page 36: Drupal para desarrolladores

¿Por qué mola Drupal?Si eres desarrollador...

API

Drupal for devs Samuel Solís | @estoyausente

sábado 28 de septiembre de 2013

Page 37: Drupal para desarrolladores

¿Por qué mola Drupal?Si eres desarrollador...

API Drush

Drupal for devs Samuel Solís | @estoyausente

sábado 28 de septiembre de 2013

Page 38: Drupal para desarrolladores

¿Por qué mola Drupal?Si eres desarrollador...

API DrushComunidad

Drupal for devs Samuel Solís | @estoyausente

sábado 28 de septiembre de 2013

Page 39: Drupal para desarrolladores

Núcleo

Módulos contribuidos

Módulos personalizados

Tema contribuido

Subtema personalizado

Estructura lógica

Drupal for devs Samuel Solís | @estoyausente

sábado 28 de septiembre de 2013

Page 40: Drupal para desarrolladores

Drupal for devs Samuel Solís | @estoyausente

√CoreSites

Default All

Themes Modules Libraries

Contrib Subthemesábado 28 de septiembre de 2013

Page 41: Drupal para desarrolladores

Drupal for devs Samuel Solís | @estoyausente

Modules

CustomFeatures Contrib

mimodulo

mimodulo.info mimodulo.module mimodulo.install

sábado 28 de septiembre de 2013

Page 42: Drupal para desarrolladores

Drupal for devs Samuel Solís | @estoyausente

Features

sábado 28 de septiembre de 2013

Page 43: Drupal para desarrolladores

Drupal for devs Samuel Solís | @estoyausente

Features

sábado 28 de septiembre de 2013

Page 44: Drupal para desarrolladores

Drupal for devs Samuel Solís | @estoyausente

Mi primer módulo

sábado 28 de septiembre de 2013

Page 45: Drupal para desarrolladores

Drupal for devs Samuel Solís | @estoyausente

Mimodulo.info

name = Mimodulo description = Example module for Theevent Session core = 7.xversion = “7.x-1.0”

dependencies[] = systemproject = “Custom blocks”

sábado 28 de septiembre de 2013

Page 46: Drupal para desarrolladores

Drupal for devs Samuel Solís | @estoyausente

Mimodulo.module

function mimodulo_block_info(){ $blocks['block_access'] = array( 'info' => t('Access'), 'cache' => DRUPAL_CACHE_PER_ROLE, //Default ); return $blocks;}

Definición de un bloque

sábado 28 de septiembre de 2013

Page 47: Drupal para desarrolladores

Drupal for devs Samuel Solís | @estoyausente

Mimodulo.module

function mimodulo_block_view($delta = '') { $block['subject'] = ''; switch($delta){ case 'block_access': $block['content'] = _block_access_get_content(); } return $block; }

Definición de la vista del bloque

sábado 28 de septiembre de 2013

Page 48: Drupal para desarrolladores

Drupal for devs Samuel Solís | @estoyausente

Mimodulo.module

function _block_userlogout_get_content() { global $user; $content = ''; if ($user->uid > 0) { $content = '<div class="cerrar-sesion"> '. l(t('Logout'),'user/logout',array('attributes' => array('title' => t('Close session')))) . ' </div>'; } return $content;}

Código del bloque

sábado 28 de septiembre de 2013

Page 49: Drupal para desarrolladores

Drupal for devs Samuel Solís | @estoyausente

Feel like a Drupal Boss

sábado 28 de septiembre de 2013

Page 50: Drupal para desarrolladores

Drupal for devs Samuel Solís | @estoyausente

Feel like a Drupal Boss

Ya has hecho tu primer módulo

sábado 28 de septiembre de 2013

Page 51: Drupal para desarrolladores

Drupal for devs Samuel Solís | @estoyausente

https://api.drupal.org/api/drupal

API

sábado 28 de septiembre de 2013

Page 52: Drupal para desarrolladores

Drupal for devs Samuel Solís | @estoyausente

Mi primer tema

sábado 28 de septiembre de 2013

Page 53: Drupal para desarrolladores

mitheme.info

Drupal for devs Samuel Solís | @estoyausente

name = mithemecore = 7.xbase theme = adaptivethemeproject = "adaptivetheme"stylesheets[screen][] = css/main.cssstylesheets[print][] = css/print.cssregions[sidebar_first] = Sidebar firstregions[sidebar_second] = Sidebar secondscripts[][] = js/onload.js

sábado 28 de septiembre de 2013

Page 54: Drupal para desarrolladores

Drush

Drupal for devs Samuel Solís | @estoyausente

sábado 28 de septiembre de 2013

Page 55: Drupal para desarrolladores

Instalación

Drupal for devs Samuel Solís | @estoyausente

sudo apt-get install php-pearsudo pear channel-discover pear.drush.orgsudo pear install drush/drush

sábado 28 de septiembre de 2013

Page 56: Drupal para desarrolladores

Drupal for devs Samuel Solís | @estoyausente

sábado 28 de septiembre de 2013

Page 57: Drupal para desarrolladores

Drupal for devs Samuel Solís | @estoyausente

Drush cc all

sábado 28 de septiembre de 2013

Page 58: Drupal para desarrolladores

Algunos comandos útiles...

Drupal for devs Samuel Solís | @estoyausente

drush dl moduledrush en moduledrush dis moduledrush archive-dumpdrush site-installdrush watchdog-show --taildrushdrush comando --help

sábado 28 de septiembre de 2013

Page 59: Drupal para desarrolladores

Drupal for devs Samuel Solís | @estoyausente

sábado 28 de septiembre de 2013

Page 60: Drupal para desarrolladores

Comunidad Drupal

Drupal for devs Samuel Solís | @estoyausente

sábado 28 de septiembre de 2013

Page 61: Drupal para desarrolladores

Comunidad Drupal

Drupal for devs Samuel Solís | @estoyausente

Viernes 21:30

sábado 28 de septiembre de 2013

Page 62: Drupal para desarrolladores

Drupal.org

Drupal for devs Samuel Solís | @estoyausente

sábado 28 de septiembre de 2013

Page 63: Drupal para desarrolladores

Drupal.org

Drupal for devs Samuel Solís | @estoyausente

1

sábado 28 de septiembre de 2013

Page 64: Drupal para desarrolladores

Drupal.org

Drupal for devs Samuel Solís | @estoyausente

1

2

sábado 28 de septiembre de 2013

Page 65: Drupal para desarrolladores

Drupal.org

Drupal for devs Samuel Solís | @estoyausente

1

2

3

sábado 28 de septiembre de 2013

Page 66: Drupal para desarrolladores

Drupal.org

Drupal for devs Samuel Solís | @estoyausente

1

2

3

4

sábado 28 de septiembre de 2013

Page 67: Drupal para desarrolladores

Drupal.org

Drupal for devs Samuel Solís | @estoyausente

1

2

3

4

5

sábado 28 de septiembre de 2013

Page 68: Drupal para desarrolladores

Drupal for devs Samuel Solís | @estoyausente

¡No sé por donde empezar!

sábado 28 de septiembre de 2013

Page 69: Drupal para desarrolladores

Drupal for devs Samuel Solís | @estoyausente

¡No sé por donde empezar!

Canal #drupal-es de IRC

sábado 28 de septiembre de 2013

Page 70: Drupal para desarrolladores

Drupal for devs Samuel Solís | @estoyausente

¡No sé por donde empezar!

Canal #drupal-es de IRC

Drupal hispano: http://drupal.org.es/

sábado 28 de septiembre de 2013

Page 71: Drupal para desarrolladores

Drupal for devs Samuel Solís | @estoyausente

¡No sé por donde empezar!

Canal #drupal-es de IRC

Drupal hispano: http://drupal.org.es/

Grupo de extremadura de Drupal.orghttps://groups.drupal.org/extremadura

sábado 28 de septiembre de 2013

Page 72: Drupal para desarrolladores

Drupal for devs Samuel Solís | @estoyausente

¡No sé por donde empezar!

Canal #drupal-es de IRC

Drupal hispano: http://drupal.org.es/

Grupo de extremadura de Drupal.orghttps://groups.drupal.org/extremadura

Eventos

sábado 28 de septiembre de 2013

Page 73: Drupal para desarrolladores

Eventos de negocio, ocio y BeerOcio

Drupal for devs Samuel Solís | @estoyausente

sábado 28 de septiembre de 2013

Page 74: Drupal para desarrolladores

Eventos de negocio, ocio y BeerOcio

Drupal for devs Samuel Solís | @estoyausente

sábado 28 de septiembre de 2013

Page 75: Drupal para desarrolladores

Eventos de negocio, ocio y BeerOcio

Drupal for devs Samuel Solís | @estoyausente

sábado 28 de septiembre de 2013

Page 76: Drupal para desarrolladores

Eventos de negocio, ocio y BeerOcio

Drupal for devs Samuel Solís | @estoyausente

sábado 28 de septiembre de 2013

Page 77: Drupal para desarrolladores

Eventos de negocio, ocio y BeerOcio

Drupal for devs Samuel Solís | @estoyausente

sábado 28 de septiembre de 2013

Page 78: Drupal para desarrolladores

Eventos de negocio, ocio y BeerOcio

Drupal for devs Samuel Solís | @estoyausente

sábado 28 de septiembre de 2013

Page 79: Drupal para desarrolladores

Eventos de negocio, ocio y BeerOcio

Drupal for devs Samuel Solís | @estoyausente

sábado 28 de septiembre de 2013

Page 80: Drupal para desarrolladores

Drupal for devs Samuel Solís | @estoyausente

sábado 28 de septiembre de 2013

Page 81: Drupal para desarrolladores

Drupal for devs Samuel Solís | @estoyausente

sábado 28 de septiembre de 2013

Page 82: Drupal para desarrolladores

Cómo colaborar

Drupal for devs Samuel Solís | @estoyausente

Ven

sábado 28 de septiembre de 2013

Page 83: Drupal para desarrolladores

Cómo colaborar

Drupal for devs Samuel Solís | @estoyausente

Ven Patrocina

sábado 28 de septiembre de 2013

Page 84: Drupal para desarrolladores

Cómo colaborar

Drupal for devs Samuel Solís | @estoyausente

Ven Patrocina Difunde

sábado 28 de septiembre de 2013

Page 85: Drupal para desarrolladores

Cómo colaborar

Drupal for devs Samuel Solís | @estoyausente

Ven Patrocina Difunde

sábado 28 de septiembre de 2013

Page 86: Drupal para desarrolladores

Samuel Solís@estoyausente

sábado 28 de septiembre de 2013

Page 87: Drupal para desarrolladores

Samuel Solís@estoyausente

sábado 28 de septiembre de 2013