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