Transcript
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