e-Ghost 2014: introducción al desarrollo de módulos en drupal 7
description
Transcript of e-Ghost 2014: introducción al desarrollo de módulos en drupal 7
![Page 1: e-Ghost 2014: introducción al desarrollo de módulos en drupal 7](https://reader033.fdocumento.com/reader033/viewer/2022052411/5573ce19d8b42a5b1e8b4b66/html5/thumbnails/1.jpg)
Introducción al desarrollo de módulos en Drupal 7
Ruben Egiguren07/07/2014
![Page 2: e-Ghost 2014: introducción al desarrollo de módulos en drupal 7](https://reader033.fdocumento.com/reader033/viewer/2022052411/5573ce19d8b42a5b1e8b4b66/html5/thumbnails/2.jpg)
Acerca de mí
Miembro de:Drupal associationAsociación Española de Drupal…
Ruben Egiguren a.k.a. keopx@regiguren - www.keopx.net
Software Libre enthusiast, Drupal Developer, new technologies and geek
![Page 3: e-Ghost 2014: introducción al desarrollo de módulos en drupal 7](https://reader033.fdocumento.com/reader033/viewer/2022052411/5573ce19d8b42a5b1e8b4b66/html5/thumbnails/3.jpg)
De qué hablaremosHablaremos de
EstándaresHerramientasOrganización de módulosOrganización de códigoCódigo
![Page 4: e-Ghost 2014: introducción al desarrollo de módulos en drupal 7](https://reader033.fdocumento.com/reader033/viewer/2022052411/5573ce19d8b42a5b1e8b4b66/html5/thumbnails/4.jpg)
MaterialAqui esta el material del taller
Maquina Virtual VirtualBoxUbuntu 12.04 64bitsLAMPNetbeans
Datos de accesoPresentación
eghost2014.keopx.net
![Page 5: e-Ghost 2014: introducción al desarrollo de módulos en drupal 7](https://reader033.fdocumento.com/reader033/viewer/2022052411/5573ce19d8b42a5b1e8b4b66/html5/thumbnails/5.jpg)
¿Quién sabe de qué?
Conocer a los asistentes
•Instalación y crear contenido.
•Editar menús, bloques.
•Instalación y configuracion de modulos.
•Desarrollado algún módulo.
•¿Qué son los hooks en Drupal?
SIN MIEDO
![Page 6: e-Ghost 2014: introducción al desarrollo de módulos en drupal 7](https://reader033.fdocumento.com/reader033/viewer/2022052411/5573ce19d8b42a5b1e8b4b66/html5/thumbnails/6.jpg)
¿Dónde puedo preguntar?Foros
•https://drupal.org/forum (inglés)
•http://drupal.org.es/foros (castellano)
IRC irc.freenode.net
•#drupal-es (castellano)
•#drupal-contribute (inglés)
![Page 7: e-Ghost 2014: introducción al desarrollo de módulos en drupal 7](https://reader033.fdocumento.com/reader033/viewer/2022052411/5573ce19d8b42a5b1e8b4b66/html5/thumbnails/7.jpg)
¿Dónde puedo encontrar gente cercana?
Grupos de drupal
groups.drupal.org/basque-country
![Page 8: e-Ghost 2014: introducción al desarrollo de módulos en drupal 7](https://reader033.fdocumento.com/reader033/viewer/2022052411/5573ce19d8b42a5b1e8b4b66/html5/thumbnails/8.jpg)
¿Dónde puedo encontrar gente cercana?
Grupos de drupal
groups.drupal.org/basque-country
APUNTAROS!!!
![Page 9: e-Ghost 2014: introducción al desarrollo de módulos en drupal 7](https://reader033.fdocumento.com/reader033/viewer/2022052411/5573ce19d8b42a5b1e8b4b66/html5/thumbnails/9.jpg)
¿Próximo evento?
Drupal Day Bilbao
2014.drupalday.es
8 de noviembre
![Page 10: e-Ghost 2014: introducción al desarrollo de módulos en drupal 7](https://reader033.fdocumento.com/reader033/viewer/2022052411/5573ce19d8b42a5b1e8b4b66/html5/thumbnails/10.jpg)
¿Próximo evento?
Drupal Day Bilbao
2014.drupalday.es
8 de noviembre
It’s FREE!
![Page 11: e-Ghost 2014: introducción al desarrollo de módulos en drupal 7](https://reader033.fdocumento.com/reader033/viewer/2022052411/5573ce19d8b42a5b1e8b4b66/html5/thumbnails/11.jpg)
¿Qué son los hooks en Drupal?
![Page 12: e-Ghost 2014: introducción al desarrollo de módulos en drupal 7](https://reader033.fdocumento.com/reader033/viewer/2022052411/5573ce19d8b42a5b1e8b4b66/html5/thumbnails/12.jpg)
Son funciones PHP que utilizamos en nuestros
módulos, el nombre de las mismas se compone de la
siguiente forma:
function hook_name() {
}
hook => nombre del módulo
name => nombre del hook
Referencia: http://7sabores.com/blog/que-son-los-hooks-drupal-y-cuales-son-los-mas-
usados
Que es un hook
![Page 13: e-Ghost 2014: introducción al desarrollo de módulos en drupal 7](https://reader033.fdocumento.com/reader033/viewer/2022052411/5573ce19d8b42a5b1e8b4b66/html5/thumbnails/13.jpg)
Estándares
![Page 14: e-Ghost 2014: introducción al desarrollo de módulos en drupal 7](https://reader033.fdocumento.com/reader033/viewer/2022052411/5573ce19d8b42a5b1e8b4b66/html5/thumbnails/14.jpg)
EstándaresDrupal code standars
https://drupal.org/coding-standards (PHP)
https://drupal.org/node/172169 (javascript)
https://drupal.org/node/1886770 (CSS)
Documentación
https://drupal.org/node/1354
![Page 15: e-Ghost 2014: introducción al desarrollo de módulos en drupal 7](https://reader033.fdocumento.com/reader033/viewer/2022052411/5573ce19d8b42a5b1e8b4b66/html5/thumbnails/15.jpg)
EstándaresNetbeans setup
Estándares: https://drupal.org/node/1019816
Template: https://drupal.org/project/nb_templates
Plugin:
https://drupal.org/node/1764074
https://github.com/HollyIT/NBDrupalDevel
Eclipse
https://drupal.org/node/75242
![Page 16: e-Ghost 2014: introducción al desarrollo de módulos en drupal 7](https://reader033.fdocumento.com/reader033/viewer/2022052411/5573ce19d8b42a5b1e8b4b66/html5/thumbnails/16.jpg)
HerramientasDrush
http://drush.ws/
https://github.com/drush-ops/drush
Devel
https://drupal.org/project/devel
Coder
https://drupal.org/project/coder
![Page 17: e-Ghost 2014: introducción al desarrollo de módulos en drupal 7](https://reader033.fdocumento.com/reader033/viewer/2022052411/5573ce19d8b42a5b1e8b4b66/html5/thumbnails/17.jpg)
Estructura de directorios
![Page 18: e-Ghost 2014: introducción al desarrollo de módulos en drupal 7](https://reader033.fdocumento.com/reader033/viewer/2022052411/5573ce19d8b42a5b1e8b4b66/html5/thumbnails/18.jpg)
Directoriossites/all/modules/contrib - Contiene los módulos de Drupal.org. Nota: no
se modifican estos módulos, sino es para parches. Consejo: mover a
patches.
sites/all/modules/custom - Módulos desarrollados.
sites/all/modules/features - Si usa features, usa este directorio para
organizarlo.
sites/all/themes/contrib - Contiene los temas de Drupal.org. Nota: usa
subtemas.
sites/all/themes/custom - Temas propios o subtemas.
sites/all/libraries - Contiene librerías de terceros como el editor wysiwyg
o plugins javascript.
Fuente: http://www.urbaninsight.com/2014/02/24/module-and-theme-organization
Estructura de directorios
![Page 19: e-Ghost 2014: introducción al desarrollo de módulos en drupal 7](https://reader033.fdocumento.com/reader033/viewer/2022052411/5573ce19d8b42a5b1e8b4b66/html5/thumbnails/19.jpg)
Estructura de directoriosExisten múltiples opciones de usar los directorios de
módulos.
Mi preferencia:
|-- sites| |-- all/site_name| | |-- modules| | | |-- contrib| | | |-- custom| | | |-- features| | | |-- patches
Fuente: http://befused.com/drupal/module-directory-structure
![Page 20: e-Ghost 2014: introducción al desarrollo de módulos en drupal 7](https://reader033.fdocumento.com/reader033/viewer/2022052411/5573ce19d8b42a5b1e8b4b66/html5/thumbnails/20.jpg)
Organizar el módulo
![Page 21: e-Ghost 2014: introducción al desarrollo de módulos en drupal 7](https://reader033.fdocumento.com/reader033/viewer/2022052411/5573ce19d8b42a5b1e8b4b66/html5/thumbnails/21.jpg)
Módulo a medida.Los módulos suele tener esta estructura:● mimodulo.info - Fichero de informacion. https://drupal.org/node/542202● mimodulo.module - Fichero principal, implementación de hook● mimodulo.install - (Des)Instalador del módulo, esquema de información.● mimodulo.admin.inc - Callbacks del menú de administración, añadir/editar ● mimodulo.pages.inc - Callbacks de menú públicos, accesible para a todos● mimodulo.inc - Funciones adicionales.● includes/ - Contienen clases, vistas,...● templates/ - Fichero relacionados con el tema (*.tpl.php,...)● plugins/ - Este directorio para plugins como puede ser Ctools.● css/ - Estilos CSS.● images/ - Imagenes.● js/ - Javascript.
Fuente: http://www.urbaninsight.com/2014/02/24/module-and-theme-organization
Organizar el módulo
![Page 22: e-Ghost 2014: introducción al desarrollo de módulos en drupal 7](https://reader033.fdocumento.com/reader033/viewer/2022052411/5573ce19d8b42a5b1e8b4b66/html5/thumbnails/22.jpg)
Qué deberíamos leer/conocer
![Page 23: e-Ghost 2014: introducción al desarrollo de módulos en drupal 7](https://reader033.fdocumento.com/reader033/viewer/2022052411/5573ce19d8b42a5b1e8b4b66/html5/thumbnails/23.jpg)
Qué deberíamos leer/conocer
Existe multitud de material el drupal.org
Buscar no es difícil
Lo difícil es saber qué buscar
Algunas referencias
![Page 24: e-Ghost 2014: introducción al desarrollo de módulos en drupal 7](https://reader033.fdocumento.com/reader033/viewer/2022052411/5573ce19d8b42a5b1e8b4b66/html5/thumbnails/24.jpg)
Qué deberíamos leer/conocer
ahh y sobre todo….
![Page 25: e-Ghost 2014: introducción al desarrollo de módulos en drupal 7](https://reader033.fdocumento.com/reader033/viewer/2022052411/5573ce19d8b42a5b1e8b4b66/html5/thumbnails/25.jpg)
Qué deberíamos leer/conocer
CONTRIBUIRahh y sobre todo….
![Page 26: e-Ghost 2014: introducción al desarrollo de módulos en drupal 7](https://reader033.fdocumento.com/reader033/viewer/2022052411/5573ce19d8b42a5b1e8b4b66/html5/thumbnails/26.jpg)
Qué deberíamos leer/conocerTrabajando con el API de Drupal
https://api.drupal.org/api/drupal
Buenas prácticas
![Page 27: e-Ghost 2014: introducción al desarrollo de módulos en drupal 7](https://reader033.fdocumento.com/reader033/viewer/2022052411/5573ce19d8b42a5b1e8b4b66/html5/thumbnails/27.jpg)
Qué deberíamos leer/conocerUno de los más habituales son los formularios que nos
aportan multitud de posibilidades.
api.drupal.org/api/drupal/developer!topics!
forms_api_reference.html/7
Esquema del API de Form
https://drupal.org/node/165104
![Page 28: e-Ghost 2014: introducción al desarrollo de módulos en drupal 7](https://reader033.fdocumento.com/reader033/viewer/2022052411/5573ce19d8b42a5b1e8b4b66/html5/thumbnails/28.jpg)
Qué deberíamos leer/conocer
![Page 29: e-Ghost 2014: introducción al desarrollo de módulos en drupal 7](https://reader033.fdocumento.com/reader033/viewer/2022052411/5573ce19d8b42a5b1e8b4b66/html5/thumbnails/29.jpg)
Creando nuestro módulo
![Page 30: e-Ghost 2014: introducción al desarrollo de módulos en drupal 7](https://reader033.fdocumento.com/reader033/viewer/2022052411/5573ce19d8b42a5b1e8b4b66/html5/thumbnails/30.jpg)
Creando nuestro móduloEres nuevo creando módulos
http://deeson-online.co.uk/labs/are-you-developer-new-drupal-read
Creating modules - a tutorial: Drupal 7.x
https://drupal.org/node/1074360
Examples
https://drupal.org/project/examples
![Page 31: e-Ghost 2014: introducción al desarrollo de módulos en drupal 7](https://reader033.fdocumento.com/reader033/viewer/2022052411/5573ce19d8b42a5b1e8b4b66/html5/thumbnails/31.jpg)
¡Comenzamos!
![Page 32: e-Ghost 2014: introducción al desarrollo de módulos en drupal 7](https://reader033.fdocumento.com/reader033/viewer/2022052411/5573ce19d8b42a5b1e8b4b66/html5/thumbnails/32.jpg)
Bonus
![Page 33: e-Ghost 2014: introducción al desarrollo de módulos en drupal 7](https://reader033.fdocumento.com/reader033/viewer/2022052411/5573ce19d8b42a5b1e8b4b66/html5/thumbnails/33.jpg)
BonusDebug
asociaciondrupal.es/taller-sobre-debugging-en-php
XDebug
www.keopx.net/blog/configuracion-de-php-53-y-xdebug
Configuración del entorno:
https://drupal.org/node/238805
![Page 34: e-Ghost 2014: introducción al desarrollo de módulos en drupal 7](https://reader033.fdocumento.com/reader033/viewer/2022052411/5573ce19d8b42a5b1e8b4b66/html5/thumbnails/34.jpg)
BonusPor donde empezar a contribuir
Issue
https://drupal.org/novice
http://drupalize.me/videos/getting-started-issue-queue
![Page 35: e-Ghost 2014: introducción al desarrollo de módulos en drupal 7](https://reader033.fdocumento.com/reader033/viewer/2022052411/5573ce19d8b42a5b1e8b4b66/html5/thumbnails/35.jpg)
Eskerrik asko zuen harretagaitik
GNU/GPL Licence
Gracias por vuestra atenciónThanks for your attention