SlideShare una empresa de Scribd logo
1 de 35
Descargar para leer sin conexión
Introducción al desarrollo
de módulos en Drupal 7
Ruben Egiguren
07/07/2014
Acerca de mí
Miembro de:
Drupal association
Asociació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é hablaremos
Hablaremos de
Estándares
Herramientas
Organización de módulos
Organización de código
Código
Material
Aqui esta el material del taller
Maquina Virtual VirtualBox
Ubuntu 12.04 64bits
LAMP
Netbeans
Datos de acceso
Presentació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-
Que es un hook
Estándares
Estándares
Drupal 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ándares
Netbeans 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
Herramientas
Drush
http://drush.ws/
https://github.com/drush-ops/drush
Devel
https://drupal.org/project/devel
Coder
https://drupal.org/project/coder
Estructura de directorios
Directorios
sites/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.
Estructura de directorios
Estructura de directorios
Existen 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
CONTRIBUIR
ahh y sobre todo….
Qué deberíamos leer/conocer
Trabajando con el API de Drupal
https://api.drupal.org/api/drupal
Buenas prácticas
Qué deberíamos leer/conocer
Uno 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ódulo
Eres 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
Bonus
Debug
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
Bonus
Por 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ón
Thanks for your attention

Más contenido relacionado

La actualidad más candente

Drupal 8 WorkShop - e-Ghost 2015
Drupal 8 WorkShop - e-Ghost 2015  Drupal 8 WorkShop - e-Ghost 2015
Drupal 8 WorkShop - e-Ghost 2015 Keopx
 
Curso Drupal. Administración, instalación y configuración de módulos
Curso Drupal. Administración, instalación y configuración de módulosCurso Drupal. Administración, instalación y configuración de módulos
Curso Drupal. Administración, instalación y configuración de módulosMediaglobe Innova
 
Taller de Drupal - Sesion 1
Taller de Drupal -  Sesion 1Taller de Drupal -  Sesion 1
Taller de Drupal - Sesion 1SEAT, S.A.
 
Presentando drupal en xalapa
Presentando drupal en xalapaPresentando drupal en xalapa
Presentando drupal en xalapaMedio y forma
 
Curso Drupal. Instalación y configuracion de Drupal
Curso Drupal. Instalación y configuracion de DrupalCurso Drupal. Instalación y configuracion de Drupal
Curso Drupal. Instalación y configuracion de DrupalMediaglobe Innova
 
Taller de Drupal - Sesión 3
Taller de Drupal - Sesión 3Taller de Drupal - Sesión 3
Taller de Drupal - Sesión 3SEAT, S.A.
 
Taller drupal 8 tuxtepec
Taller drupal 8 tuxtepecTaller drupal 8 tuxtepec
Taller drupal 8 tuxtepecMedio y forma
 
Taller de Drupal - Sesión 4
Taller de Drupal - Sesión 4Taller de Drupal - Sesión 4
Taller de Drupal - Sesión 4SEAT, S.A.
 
Introducción a Drupal
Introducción a DrupalIntroducción a Drupal
Introducción a DrupalKeopx
 
Taller de Drupal - Sesión 2
Taller de Drupal - Sesión 2Taller de Drupal - Sesión 2
Taller de Drupal - Sesión 2SEAT, S.A.
 
Taller de Drupal
Taller de DrupalTaller de Drupal
Taller de DrupalSEAT, S.A.
 
Curso CDA: Seguridade e rendemento en Drupal
Curso CDA: Seguridade e rendemento en DrupalCurso CDA: Seguridade e rendemento en Drupal
Curso CDA: Seguridade e rendemento en DrupalAlberto Permuy Leal
 

La actualidad más candente (16)

Drupal 8 WorkShop - e-Ghost 2015
Drupal 8 WorkShop - e-Ghost 2015  Drupal 8 WorkShop - e-Ghost 2015
Drupal 8 WorkShop - e-Ghost 2015
 
Curso Drupal. Administración, instalación y configuración de módulos
Curso Drupal. Administración, instalación y configuración de módulosCurso Drupal. Administración, instalación y configuración de módulos
Curso Drupal. Administración, instalación y configuración de módulos
 
Taller de Drupal - Sesion 1
Taller de Drupal -  Sesion 1Taller de Drupal -  Sesion 1
Taller de Drupal - Sesion 1
 
Presentando drupal en xalapa
Presentando drupal en xalapaPresentando drupal en xalapa
Presentando drupal en xalapa
 
Curso Drupal. Instalación y configuracion de Drupal
Curso Drupal. Instalación y configuracion de DrupalCurso Drupal. Instalación y configuracion de Drupal
Curso Drupal. Instalación y configuracion de Drupal
 
Taller de Drupal - Sesión 3
Taller de Drupal - Sesión 3Taller de Drupal - Sesión 3
Taller de Drupal - Sesión 3
 
Taller drupal 8 tuxtepec
Taller drupal 8 tuxtepecTaller drupal 8 tuxtepec
Taller drupal 8 tuxtepec
 
Taller de Drupal - Sesión 4
Taller de Drupal - Sesión 4Taller de Drupal - Sesión 4
Taller de Drupal - Sesión 4
 
Introducción a Drupal
Introducción a DrupalIntroducción a Drupal
Introducción a Drupal
 
Presentando drupal
Presentando drupalPresentando drupal
Presentando drupal
 
Curso CDA: Drush CLI Drupal
Curso CDA: Drush CLI DrupalCurso CDA: Drush CLI Drupal
Curso CDA: Drush CLI Drupal
 
Taller de Drupal - Sesión 2
Taller de Drupal - Sesión 2Taller de Drupal - Sesión 2
Taller de Drupal - Sesión 2
 
Conociendo drupal
Conociendo drupalConociendo drupal
Conociendo drupal
 
Taller de Drupal
Taller de DrupalTaller de Drupal
Taller de Drupal
 
Curso CDA: Seguridade e rendemento en Drupal
Curso CDA: Seguridade e rendemento en DrupalCurso CDA: Seguridade e rendemento en Drupal
Curso CDA: Seguridade e rendemento en Drupal
 
Introduccion drupal
Introduccion drupalIntroduccion drupal
Introduccion drupal
 

Similar a e-Ghost 2014: introducción al desarrollo de módulos en drupal 7

[DrupalCampSpain2023] Introducción al desarrollo de módulos en Drupal 10
[DrupalCampSpain2023] Introducción al desarrollo de módulos en Drupal 10[DrupalCampSpain2023] Introducción al desarrollo de módulos en Drupal 10
[DrupalCampSpain2023] Introducción al desarrollo de módulos en Drupal 10Keopx
 
[DrupalCampSpain2022] Introducción al desarrollo de módulos en Drupal 9
[DrupalCampSpain2022] Introducción al desarrollo de módulos en Drupal 9[DrupalCampSpain2022] Introducción al desarrollo de módulos en Drupal 9
[DrupalCampSpain2022] Introducción al desarrollo de módulos en Drupal 9Keopx
 
Sesion moodle - "más allá de lo básico"...
Sesion moodle - "más allá de lo básico"...Sesion moodle - "más allá de lo básico"...
Sesion moodle - "más allá de lo básico"...Valeria Pleszowski
 
Sesionmoodle 101223143117-phpapp02
Sesionmoodle 101223143117-phpapp02Sesionmoodle 101223143117-phpapp02
Sesionmoodle 101223143117-phpapp02Kimiemi VJ
 
Taller de drupal7
Taller de drupal7Taller de drupal7
Taller de drupal7Rojomorgan
 
Inciación a Drupal 8
Inciación a Drupal 8Inciación a Drupal 8
Inciación a Drupal 8Julian Valero
 
Presentacion Drupal Ccrtv
Presentacion Drupal CcrtvPresentacion Drupal Ccrtv
Presentacion Drupal CcrtvPedro Cambra
 
Haciendo que tu entorno de desarrollo de Drupal rocks
Haciendo que tu entorno de desarrollo de Drupal rocksHaciendo que tu entorno de desarrollo de Drupal rocks
Haciendo que tu entorno de desarrollo de Drupal rocksSacha Chua
 
Drupal creación módulos, bloques, formularios y alters
Drupal  creación módulos, bloques, formularios y altersDrupal  creación módulos, bloques, formularios y alters
Drupal creación módulos, bloques, formularios y altersSergio Carracedo Martinez
 
¡This is drupal! - Global Training Days
¡This is drupal! - Global Training Days¡This is drupal! - Global Training Days
¡This is drupal! - Global Training DaysLa Drupalera
 
Drupal 7: mucho más que una nueva versión (para desarrolladores)
Drupal 7: mucho más que una nueva versión (para desarrolladores)Drupal 7: mucho más que una nueva versión (para desarrolladores)
Drupal 7: mucho más que una nueva versión (para desarrolladores)Ymbra
 
Programación de módulos para Drupal 7
Programación de módulos para Drupal 7Programación de módulos para Drupal 7
Programación de módulos para Drupal 7Cristian Mamani
 
Taller de introducción a drupal 7 1ª parte
Taller de introducción a drupal 7 1ª parteTaller de introducción a drupal 7 1ª parte
Taller de introducción a drupal 7 1ª parteJavier Gomez
 
Introduccion a Drupal 6 e-ghost
Introduccion a Drupal 6 e-ghostIntroduccion a Drupal 6 e-ghost
Introduccion a Drupal 6 e-ghostKeopx
 

Similar a e-Ghost 2014: introducción al desarrollo de módulos en drupal 7 (20)

[DrupalCampSpain2023] Introducción al desarrollo de módulos en Drupal 10
[DrupalCampSpain2023] Introducción al desarrollo de módulos en Drupal 10[DrupalCampSpain2023] Introducción al desarrollo de módulos en Drupal 10
[DrupalCampSpain2023] Introducción al desarrollo de módulos en Drupal 10
 
[DrupalCampSpain2022] Introducción al desarrollo de módulos en Drupal 9
[DrupalCampSpain2022] Introducción al desarrollo de módulos en Drupal 9[DrupalCampSpain2022] Introducción al desarrollo de módulos en Drupal 9
[DrupalCampSpain2022] Introducción al desarrollo de módulos en Drupal 9
 
Sesionmoodle 101223143117-phpapp02
Sesionmoodle 101223143117-phpapp02Sesionmoodle 101223143117-phpapp02
Sesionmoodle 101223143117-phpapp02
 
Sesion moodle - "más allá de lo básico"...
Sesion moodle - "más allá de lo básico"...Sesion moodle - "más allá de lo básico"...
Sesion moodle - "más allá de lo básico"...
 
Sesionmoodle 101223143117-phpapp02
Sesionmoodle 101223143117-phpapp02Sesionmoodle 101223143117-phpapp02
Sesionmoodle 101223143117-phpapp02
 
Taller de drupal7
Taller de drupal7Taller de drupal7
Taller de drupal7
 
Taller de drupal7
Taller de drupal7Taller de drupal7
Taller de drupal7
 
Inciación a Drupal 8
Inciación a Drupal 8Inciación a Drupal 8
Inciación a Drupal 8
 
Presentacion Drupal Ccrtv
Presentacion Drupal CcrtvPresentacion Drupal Ccrtv
Presentacion Drupal Ccrtv
 
Drupal
DrupalDrupal
Drupal
 
Haciendo que tu entorno de desarrollo de Drupal rocks
Haciendo que tu entorno de desarrollo de Drupal rocksHaciendo que tu entorno de desarrollo de Drupal rocks
Haciendo que tu entorno de desarrollo de Drupal rocks
 
¡This is drupal!
¡This is drupal!¡This is drupal!
¡This is drupal!
 
Cw15 conoce drupal_v28
Cw15 conoce drupal_v28Cw15 conoce drupal_v28
Cw15 conoce drupal_v28
 
Drupal creación módulos, bloques, formularios y alters
Drupal  creación módulos, bloques, formularios y altersDrupal  creación módulos, bloques, formularios y alters
Drupal creación módulos, bloques, formularios y alters
 
¡This is drupal! - Global Training Days
¡This is drupal! - Global Training Days¡This is drupal! - Global Training Days
¡This is drupal! - Global Training Days
 
Drupal 7: mucho más que una nueva versión (para desarrolladores)
Drupal 7: mucho más que una nueva versión (para desarrolladores)Drupal 7: mucho más que una nueva versión (para desarrolladores)
Drupal 7: mucho más que una nueva versión (para desarrolladores)
 
Programación de módulos para Drupal 7
Programación de módulos para Drupal 7Programación de módulos para Drupal 7
Programación de módulos para Drupal 7
 
Moodle
MoodleMoodle
Moodle
 
Taller de introducción a drupal 7 1ª parte
Taller de introducción a drupal 7 1ª parteTaller de introducción a drupal 7 1ª parte
Taller de introducción a drupal 7 1ª parte
 
Introduccion a Drupal 6 e-ghost
Introduccion a Drupal 6 e-ghostIntroduccion a Drupal 6 e-ghost
Introduccion a Drupal 6 e-ghost
 

Más de Keopx

Fucking copyright
Fucking copyrightFucking copyright
Fucking copyrightKeopx
 
Segurtasuna sarean
Segurtasuna sareanSegurtasuna sarean
Segurtasuna sareanKeopx
 
[DrupalCampSpain2018] CircleCI
[DrupalCampSpain2018] CircleCI[DrupalCampSpain2018] CircleCI
[DrupalCampSpain2018] CircleCIKeopx
 
[DrupalCampSpain2018] Trabajando en remoto
[DrupalCampSpain2018] Trabajando en remoto[DrupalCampSpain2018] Trabajando en remoto
[DrupalCampSpain2018] Trabajando en remotoKeopx
 
[DrupalCampSpain2018] Contribuir a Drupal
[DrupalCampSpain2018] Contribuir a Drupal[DrupalCampSpain2018] Contribuir a Drupal
[DrupalCampSpain2018] Contribuir a DrupalKeopx
 
DrupalDay Bilbao 2014: Publica tu proyecto en drupal.org
DrupalDay Bilbao 2014: Publica tu proyecto en drupal.orgDrupalDay Bilbao 2014: Publica tu proyecto en drupal.org
DrupalDay Bilbao 2014: Publica tu proyecto en drupal.orgKeopx
 
El poder de webform (antes yaml form)
El poder de webform (antes yaml form)El poder de webform (antes yaml form)
El poder de webform (antes yaml form)Keopx
 
Docker - Entorno de trabajo configurado en 1 minuto [WCBilbao]
Docker - Entorno de trabajo configurado en 1 minuto [WCBilbao]Docker - Entorno de trabajo configurado en 1 minuto [WCBilbao]
Docker - Entorno de trabajo configurado en 1 minuto [WCBilbao]Keopx
 
[Drupal campspain2017] Contribuir a Drupal, de 0 a 100
[Drupal campspain2017] Contribuir a Drupal, de 0 a 100[Drupal campspain2017] Contribuir a Drupal, de 0 a 100
[Drupal campspain2017] Contribuir a Drupal, de 0 a 100Keopx
 
Contribuir a Drupal
Contribuir a DrupalContribuir a Drupal
Contribuir a DrupalKeopx
 
Contribuir a Drupal - Entorno
Contribuir a Drupal - EntornoContribuir a Drupal - Entorno
Contribuir a Drupal - EntornoKeopx
 
Uso practico de git
Uso practico de gitUso practico de git
Uso practico de gitKeopx
 
WorkShop: Introducción a GIT
WorkShop: Introducción a GITWorkShop: Introducción a GIT
WorkShop: Introducción a GITKeopx
 
Drupal 8 WorkShop
Drupal 8 WorkShopDrupal 8 WorkShop
Drupal 8 WorkShopKeopx
 
Herramientas de trabajo para entorno LAMP
Herramientas de trabajo para entorno LAMPHerramientas de trabajo para entorno LAMP
Herramientas de trabajo para entorno LAMPKeopx
 
Drupal Day Bilbao 2014 - Sesión de cierre
Drupal Day Bilbao 2014 - Sesión de cierreDrupal Day Bilbao 2014 - Sesión de cierre
Drupal Day Bilbao 2014 - Sesión de cierreKeopx
 
Drupal Day Bilbao 2014 - Sesión de apertura
Drupal Day Bilbao 2014 - Sesión de aperturaDrupal Day Bilbao 2014 - Sesión de apertura
Drupal Day Bilbao 2014 - Sesión de aperturaKeopx
 
Introducción a git
Introducción a gitIntroducción a git
Introducción a gitKeopx
 
Business inteligence
Business inteligenceBusiness inteligence
Business inteligenceKeopx
 
Herramientas de reporte
Herramientas de reporteHerramientas de reporte
Herramientas de reporteKeopx
 

Más de Keopx (20)

Fucking copyright
Fucking copyrightFucking copyright
Fucking copyright
 
Segurtasuna sarean
Segurtasuna sareanSegurtasuna sarean
Segurtasuna sarean
 
[DrupalCampSpain2018] CircleCI
[DrupalCampSpain2018] CircleCI[DrupalCampSpain2018] CircleCI
[DrupalCampSpain2018] CircleCI
 
[DrupalCampSpain2018] Trabajando en remoto
[DrupalCampSpain2018] Trabajando en remoto[DrupalCampSpain2018] Trabajando en remoto
[DrupalCampSpain2018] Trabajando en remoto
 
[DrupalCampSpain2018] Contribuir a Drupal
[DrupalCampSpain2018] Contribuir a Drupal[DrupalCampSpain2018] Contribuir a Drupal
[DrupalCampSpain2018] Contribuir a Drupal
 
DrupalDay Bilbao 2014: Publica tu proyecto en drupal.org
DrupalDay Bilbao 2014: Publica tu proyecto en drupal.orgDrupalDay Bilbao 2014: Publica tu proyecto en drupal.org
DrupalDay Bilbao 2014: Publica tu proyecto en drupal.org
 
El poder de webform (antes yaml form)
El poder de webform (antes yaml form)El poder de webform (antes yaml form)
El poder de webform (antes yaml form)
 
Docker - Entorno de trabajo configurado en 1 minuto [WCBilbao]
Docker - Entorno de trabajo configurado en 1 minuto [WCBilbao]Docker - Entorno de trabajo configurado en 1 minuto [WCBilbao]
Docker - Entorno de trabajo configurado en 1 minuto [WCBilbao]
 
[Drupal campspain2017] Contribuir a Drupal, de 0 a 100
[Drupal campspain2017] Contribuir a Drupal, de 0 a 100[Drupal campspain2017] Contribuir a Drupal, de 0 a 100
[Drupal campspain2017] Contribuir a Drupal, de 0 a 100
 
Contribuir a Drupal
Contribuir a DrupalContribuir a Drupal
Contribuir a Drupal
 
Contribuir a Drupal - Entorno
Contribuir a Drupal - EntornoContribuir a Drupal - Entorno
Contribuir a Drupal - Entorno
 
Uso practico de git
Uso practico de gitUso practico de git
Uso practico de git
 
WorkShop: Introducción a GIT
WorkShop: Introducción a GITWorkShop: Introducción a GIT
WorkShop: Introducción a GIT
 
Drupal 8 WorkShop
Drupal 8 WorkShopDrupal 8 WorkShop
Drupal 8 WorkShop
 
Herramientas de trabajo para entorno LAMP
Herramientas de trabajo para entorno LAMPHerramientas de trabajo para entorno LAMP
Herramientas de trabajo para entorno LAMP
 
Drupal Day Bilbao 2014 - Sesión de cierre
Drupal Day Bilbao 2014 - Sesión de cierreDrupal Day Bilbao 2014 - Sesión de cierre
Drupal Day Bilbao 2014 - Sesión de cierre
 
Drupal Day Bilbao 2014 - Sesión de apertura
Drupal Day Bilbao 2014 - Sesión de aperturaDrupal Day Bilbao 2014 - Sesión de apertura
Drupal Day Bilbao 2014 - Sesión de apertura
 
Introducción a git
Introducción a gitIntroducción a git
Introducción a git
 
Business inteligence
Business inteligenceBusiness inteligence
Business inteligence
 
Herramientas de reporte
Herramientas de reporteHerramientas de reporte
Herramientas de reporte
 

e-Ghost 2014: introducción al desarrollo de módulos en drupal 7