taller de introducción al desarrollo de módulos

Post on 07-Jul-2015

209 Views

Category:

Software

0 Downloads

Preview:

Click to see full reader

DESCRIPTION

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

TRANSCRIPT

Drupalday 2014 Samuel Solís | @estoyausente

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

Samuel Solís

@estoyausente linkedin.com/in/samuelsolisfuentes

Drupalday 2014 Samuel Solís | @estoyausente

Drupalday 2014 Samuel Solís | @estoyausente

Drupalday 2014 Samuel Solís | @estoyausente

¿Quién ha instalado alguna vez un CMS?

Drupalday 2014 Samuel Solís | @estoyausente

¿Quién ha instalado alguna vez Drupal 7?

Drupalday 2014 Samuel Solís | @estoyausente

¿Quién ha programado alguna vez?

Drupalday 2014 Samuel Solís | @estoyausente

¿Quién ha programado en PHP?

Drupalday 2014 Samuel Solís | @estoyausente

¿Quién ha programado en otro framework?

Drupalday 2014 Samuel Solís | @estoyausente

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

Drupalday 2014 Samuel Solís | @estoyausente

¿Quién ha programado alguna vez Drupal 7?

Drupalday 2014 Samuel Solís | @estoyausente

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?

Drupalday 2014 Samuel Solís | @estoyausente

¿Quién ha hecho los deberes?

Drupalday 2014 Samuel Solís | @estoyausente

Uñas al guarro

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

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

Drupalday 2014 Samuel Solís | @estoyausente

Directorios

√CoreSites

Default All

Themes Modules Libraries

Contrib Subtheme

Drupalday 2014 Samuel Solís | @estoyausente

Directorios

Modules

CustomFeatures Contrib

Drupalday 2014 Samuel Solís | @estoyausente

Organización de código

mimodulo

mimodulo.info mimodulo.module mimodulo.install

Drupalday 2014 Samuel Solís | @estoyausente

Organización de código

mimodulo

mimodulo.info mimodulo.module

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/

Drupalday 2014 Samuel Solís | @estoyausente

PAC

Drupalday 2014 Samuel Solís | @estoyausente

http://dsheiko.com/

Drupalday 2014 Samuel Solís | @estoyausente

Mi primer módulo

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”

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

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

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

Drupalday 2014 Samuel Solís | @estoyausente

¡Ya has hecho tu primer módulo!

Drupalday 2014 Samuel Solís | @estoyausente

Secretos que debes saber

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

Drupalday 2014 Samuel Solís | @estoyausente

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

Drupalday 2014 Samuel Solís | @estoyausente

Examples es tu amigo

http://drupal.org/project/examples

Drupalday 2014 Samuel Solís | @estoyausente

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

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

Drupalday 2014 Samuel Solís | @estoyausente

Drupal.org

1

2

3

4

5

Drupalday 2014 Samuel Solís | @estoyausente

Issue queue

Drupalday 2014 Samuel Solís | @estoyausente

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

Drupalday 2014 Samuel Solís | @estoyausente

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

más se comparte

Drupalday 2014 Samuel Solís | @estoyausente

Copia y aprende

Drupalday 2014 Samuel Solís | @estoyausente

Pide ayudaIRC Servidor freenode, canal #drupal-es

Drupalday 2014 Samuel Solís | @estoyausente

Es tu turno

Drupalday 2014 Samuel Solís | @estoyausente

Pregunta

Samuel Solís@estoyausente

top related