taller de introducción al desarrollo de módulos

44
Drupalday 2014 Samuel Solís | @estoyausente Introducción al desarrollo de módulos en Drupal 7 Samuel Solís @estoyausente linkedin.com/in/samuelsolisfuentes

Upload: samuel-solis-fuentes

Post on 07-Jul-2015

209 views

Category:

Software


0 download

DESCRIPTION

Taller de introducción al desarrollo de módulos para Drupal 7 impartido en el DrupalDay de Bilbao. Noviembre de 2014.

TRANSCRIPT

Page 1: Taller de introducción al desarrollo de módulos

Drupalday 2014 Samuel Solís | @estoyausente

Introducción al desarrollo de módulos en Drupal 7

Samuel Solís

@estoyausente linkedin.com/in/samuelsolisfuentes

Page 2: Taller de introducción al desarrollo de módulos

Drupalday 2014 Samuel Solís | @estoyausente

Page 3: Taller de introducción al desarrollo de módulos

Drupalday 2014 Samuel Solís | @estoyausente

Page 4: Taller de introducción al desarrollo de módulos

Drupalday 2014 Samuel Solís | @estoyausente

¿Quién ha instalado alguna vez un CMS?

Page 5: Taller de introducción al desarrollo de módulos

Drupalday 2014 Samuel Solís | @estoyausente

¿Quién ha instalado alguna vez Drupal 7?

Page 6: Taller de introducción al desarrollo de módulos

Drupalday 2014 Samuel Solís | @estoyausente

¿Quién ha programado alguna vez?

Page 7: Taller de introducción al desarrollo de módulos

Drupalday 2014 Samuel Solís | @estoyausente

¿Quién ha programado en PHP?

Page 8: Taller de introducción al desarrollo de módulos

Drupalday 2014 Samuel Solís | @estoyausente

¿Quién ha programado en otro framework?

Page 9: Taller de introducción al desarrollo de módulos

Drupalday 2014 Samuel Solís | @estoyausente

¿Quién ha programado alguna versión de Drupal?

Page 10: Taller de introducción al desarrollo de módulos

Drupalday 2014 Samuel Solís | @estoyausente

¿Quién ha programado alguna vez Drupal 7?

Page 11: Taller de introducción al desarrollo de módulos

Drupalday 2014 Samuel Solís | @estoyausente

Page 12: Taller de introducción al desarrollo de módulos

Drupalday 2014 Samuel Solís | @estoyausente

¿Qué vamos a ver hoy?

Estándares Herramientas Organización de ficheros Mi primer módulo Secretos que debes saber ¿Y si el módulo no es mío?

Page 13: Taller de introducción al desarrollo de módulos

Drupalday 2014 Samuel Solís | @estoyausente

¿Quién ha hecho los deberes?

Page 14: Taller de introducción al desarrollo de módulos

Drupalday 2014 Samuel Solís | @estoyausente

Uñas al guarro

Page 15: Taller de introducción al desarrollo de módulos

Drupalday 2014 Samuel Solís | @estoyausente

https://www.drupal.org/coding-standards [PHP] https://www.drupal.org/node/172169 [JS] https://www.drupal.org/node/1886770 [CSS]

https://www.drupal.org/node/1354

Definición

Documentación

Estándares

Page 16: Taller de introducción al desarrollo de módulos

Drupalday 2014 Samuel Solís | @estoyausente

https://github.com/drush-ops/drushDrush

https://www.drupal.org/project/develDevel

https://www.drupal.org/project/coderCoder

Herramientas

http://xdebug.org/xDebug

Page 17: Taller de introducción al desarrollo de módulos

Drupalday 2014 Samuel Solís | @estoyausente

Directorios

√CoreSites

Default All

Themes Modules Libraries

Contrib Subtheme

Page 18: Taller de introducción al desarrollo de módulos

Drupalday 2014 Samuel Solís | @estoyausente

Directorios

Modules

CustomFeatures Contrib

Page 19: Taller de introducción al desarrollo de módulos

Drupalday 2014 Samuel Solís | @estoyausente

Organización de código

mimodulo

mimodulo.info mimodulo.module mimodulo.install

Page 20: Taller de introducción al desarrollo de módulos

Drupalday 2014 Samuel Solís | @estoyausente

Organización de código

mimodulo

mimodulo.info mimodulo.module

Page 21: Taller de introducción al desarrollo de módulos

Drupalday 2014 Samuel Solís | @estoyausente

Organización de código

mimodulo.install mimodulo.pages.inc

mimodulo.inc mimodulo.admin.inc

includes/

pluggins/

css/

templates/

images/

js/

Page 22: Taller de introducción al desarrollo de módulos

Drupalday 2014 Samuel Solís | @estoyausente

PAC

Page 23: Taller de introducción al desarrollo de módulos

Drupalday 2014 Samuel Solís | @estoyausente

http://dsheiko.com/

Page 24: Taller de introducción al desarrollo de módulos

Drupalday 2014 Samuel Solís | @estoyausente

Mi primer módulo

Page 25: Taller de introducción al desarrollo de módulos

Drupalday 2014 Samuel Solís | @estoyausente

Mimodulo.info

name = Mimodulo! description = Example module for Drupalday Session! core = 7.x!version = “7.x-1.0”! dependencies[] = system!project = “Custom blocks”

Page 26: Taller de introducción al desarrollo de módulos

Drupalday 2014 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

Page 27: Taller de introducción al desarrollo de módulos

Drupalday 2014 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

Page 28: Taller de introducción al desarrollo de módulos

Drupalday 2014 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

Page 29: Taller de introducción al desarrollo de módulos

Drupalday 2014 Samuel Solís | @estoyausente

¡Ya has hecho tu primer módulo!

Page 30: Taller de introducción al desarrollo de módulos

Drupalday 2014 Samuel Solís | @estoyausente

Secretos que debes saber

Page 31: Taller de introducción al desarrollo de módulos

Drupalday 2014 Samuel Solís | @estoyausente

https://www.drupal.org/developing/apiTrabajando con API

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

Drupal API

https://www.drupal.org/best-practicesBuenas prácticas

Page 32: Taller de introducción al desarrollo de módulos

Drupalday 2014 Samuel Solís | @estoyausente

commons.inc https://api.drupal.org/api/drupal/includes!common.inc/7

Page 33: Taller de introducción al desarrollo de módulos

Drupalday 2014 Samuel Solís | @estoyausente

Examples es tu amigo

http://drupal.org/project/examples

Page 34: Taller de introducción al desarrollo de módulos

Drupalday 2014 Samuel Solís | @estoyausente

¿Y si el módulo no es mío?

Page 35: Taller de introducción al desarrollo de módulos

Drupalday 2014 Samuel Solís | @estoyausente

Don’t hack, contribute

https://www.drupal.org/novice http://drupalize.me/videos/getting-started-issue-queue

Por qué contribuir http://2013.drupalcamp.es/drupal-heroes

Por donde empezar

Page 36: Taller de introducción al desarrollo de módulos

Drupalday 2014 Samuel Solís | @estoyausente

Drupal.org

1

2

3

4

5

Page 37: Taller de introducción al desarrollo de módulos

Drupalday 2014 Samuel Solís | @estoyausente

Issue queue

Page 38: Taller de introducción al desarrollo de módulos

Drupalday 2014 Samuel Solís | @estoyausente

Ven por el software, quédate por la comunidad.

Page 39: Taller de introducción al desarrollo de módulos

Drupalday 2014 Samuel Solís | @estoyausente

El Conocimiento es el único bien que más crece cuando

más se comparte

Page 40: Taller de introducción al desarrollo de módulos

Drupalday 2014 Samuel Solís | @estoyausente

Copia y aprende

Page 41: Taller de introducción al desarrollo de módulos

Drupalday 2014 Samuel Solís | @estoyausente

Pide ayudaIRC Servidor freenode, canal #drupal-es

Page 42: Taller de introducción al desarrollo de módulos

Drupalday 2014 Samuel Solís | @estoyausente

Es tu turno

Page 43: Taller de introducción al desarrollo de módulos

Drupalday 2014 Samuel Solís | @estoyausente

Pregunta

Page 44: Taller de introducción al desarrollo de módulos

Samuel Solís@estoyausente