e-ghost 2014: introducción al desarrollo de módulos en drupal 7
DESCRIPTION
Presentacion del taller para la introducción al desarrollo de modulos en Drupal 7. Taller realizado en los cursillos de verano de e-Ghost 2014TRANSCRIPT
Introducción al desarrollo de módulos en Drupal 7
Ruben Egiguren07/07/2014
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
De qué hablaremosHablaremos de
EstándaresHerramientasOrganización de módulosOrganización de códigoCódigo
MaterialAqui esta el material del taller
Maquina Virtual VirtualBoxUbuntu 12.04 64bitsLAMPNetbeans
Datos de accesoPresentación
eghost2014.keopx.net
¿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
¿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)
¿Dónde puedo encontrar gente cercana?
Grupos de drupal
groups.drupal.org/basque-country
¿Dónde puedo encontrar gente cercana?
Grupos de drupal
groups.drupal.org/basque-country
APUNTAROS!!!
¿Próximo evento?
Drupal Day Bilbao
2014.drupalday.es
8 de noviembre
¿Próximo evento?
Drupal Day Bilbao
2014.drupalday.es
8 de noviembre
It’s FREE!
¿Qué son los hooks en Drupal?
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
Estándares
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
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
HerramientasDrush
http://drush.ws/
https://github.com/drush-ops/drush
Devel
https://drupal.org/project/devel
Coder
https://drupal.org/project/coder
Estructura de directorios
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
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
Organizar el módulo
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
Qué deberíamos leer/conocer
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
Qué deberíamos leer/conocer
ahh y sobre todo….
Qué deberíamos leer/conocer
CONTRIBUIRahh y sobre todo….
Qué deberíamos leer/conocerTrabajando con el API de Drupal
https://api.drupal.org/api/drupal
Buenas prácticas
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
Qué deberíamos leer/conocer
Creando nuestro módulo
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
¡Comenzamos!
Bonus
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
BonusPor donde empezar a contribuir
Issue
https://drupal.org/novice
http://drupalize.me/videos/getting-started-issue-queue
Eskerrik asko zuen harretagaitik
GNU/GPL Licence
Gracias por vuestra atenciónThanks for your attention