2. Programación básica de módulos para Drupal
Sobre mí
●
Arquitecto Drupal en ideup!
●
Miembro activo de la
comunidad hispana:
●
Presidente de la asociación
española de Drupal
●
Miembro de la junta en
drupal.cat
●
Co-organizador de la
drupalcamp spain 2010
http://cambrico.net
http://twitter.com/pcambra
http://drupal.org/user/122101
Pedro Cambra
3. Programación básica de módulos para Drupal
Arquitectura de Drupal
DrupalDrupalDrupal
ApacheApacheApacheApache
4. Programación básica de módulos para Drupal
Módulos
Un módulo es un trozo de código que se integra con el
resto de una aplicación en Drupal a través del API del
núcleo o de otros módulos.
Es posible desarrollarlos desde cero o partir de otros
módulos ya desarrollados y modifcar éstos o utilizarlos
como base.
5. Programación básica de módulos para Drupal
Estructura de un módulo
●
Ficheros .info
●
Ficheros .install
●
Ficheros .module
●
Otros fcheros: inc, js, css, etc
6. Programación básica de módulos para Drupal
Hooks!
●
Los hooks o “ganchos” indican a otros módulos de
Drupal si nuestro módulo personalizado tiene algo que
añadir y de esta forma se puede alterar el
funcionamiento de una acción determinada.
●
Se expresan como hook_* donde hook se reemplaza
por el nombre del módulo.
●
Los módulos invocan hooks utilizando la función
module_invoke_all('nombre_hook')
7. Programación básica de módulos para Drupal
Form API
●
Drupal provee de una completa API para mostrar
formularios y realizar la validación y el envío de los
mismos.
●
Guía de Forms API:
http://api.drupal.org/api/fle/developer/topics/forms_api.html/6
●
Referencia de Forms API:
http://api.drupal.org/api/fle/developer/topics/forms_api_reference.html/6
8. Programación básica de módulos para Drupal
Alters!
●
Además de los hooks, muchos módulos
permiten modifcar comportamientos y
variables en algunas funciones.
●
El ejemplo más común es hook_form_alter
para modifcar formularios pero hay muchos
más: hook_link_alter, hook_menu_alter
9. Programación básica de módulos para Drupal
Best Practices
●
Drupal coding standards
●
Módulos Devel y Coder
●
Organización de directorios
●
Documentación y Doxygen
●
Drush module builder