Creando módulos en Drupal 7

1,475 views
1,325 views

Published on

Comparto mi presentación dada para el DrupalCamp Guatemla 2013 que consiste en una guía para iniciar a desarrollar módulos en Drupal 7.

El código de ejemplo esta en https://www.dropbox.com/s/ek1lrbhg9bmsvcv/modules.zip

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,475
On SlideShare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
36
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Creando módulos en Drupal 7

  1. 1. Creando módulos en Drupal 7 Edgar Dueñas Senior Web Developer edgar@pixtig.com @ieddu http://www.pixtig.com http://www.linkedin.com/in/ieddu
  2. 2. ¿Qué es Drupal? Drupal es una plataforma de gestión de contenidos web muy potente que ofrece multitud de funcionalidades para el desarrollo web. Drupal ha sido varias veces elegido el mejor CMS de código abierto a nivel mundial por: Por su estructura modular. ● La consistencia de todo el sistema. ● La calidad de su código y la seguridad. ● Estándares. ● Accesibilidad y usabilidad web. ●
  3. 3. Drupal tiene licencia GNU/GPL y está escrito en PHP.
  4. 4. ¿Qué es un módulo en Drupal? El módulo (module) es un software que extiende las funcionalidades o características de Drupal.
  5. 5. Cuando crear un módulo ● Comunicación con sistemas externos. ● Creación de funcionalidades muy a la medida.
  6. 6. Temas de hoy Ubicación del nuevo módulo. ✔ Idioma base y codificación de los archivos. ✔ Archivos principales del módulo: .info y .module. ✔ La función t() para traducción de cadenas de texto. ✔ Activación del módulo. ✔ Ejemplo de desarrollo de un módulo. ✔
  7. 7. Ubicación del módulo sites/all/modules En Drupal cada módulo dispone de su propio directorio, que recibe generalmente el mismo nombre que el módulo para simplificar la organización.
  8. 8. Importante El nombre del directorio no debe contener espacios ni caracteres especiales. Podemos utilizar el guion bajo como separador.
  9. 9. Idioma base y codificación El idioma base siempre será el inglés Drupal trabaja con UTF-8 en la codificación de archivos Crear archivos con codificación UTF-8 sin BOM
  10. 10. Archivos principales del módulo .info y .module
  11. 11. .info Se trata de un archivo de texto escrito de forma similar a un archivo php.ini, que contiene información básica sobre el módulo (nombre, descripción, versión de Drupal, etc.) El nombre debe ser similar al de la carpeta <nombre_modulo>.info
  12. 12. Ejemplo sites/all/modules/primer_modulo/
  13. 13. .info Puede contener otros campos como: files (archivos, campo opcional). Drupal 7 permite el registro de código de forma dinámica, a través de funciones de autoload. php (campo opcional). Indica la versión mínima de PHP requerida. dependencies (dependencias, campo opcional). Nuestro módulo puede necesitar de otros módulos para su funcionamiento. El campo dependencies será un vector con los nombres de estos módulos requeridos.
  14. 14. .info required (requerido, campo opcional). Especifica que el módulo actual es indispensable y siempre debe estar activado. configure (configuración, campo opcional). Especifica la ruta a la página de configuración del módulo. package (paquete, campo opcional). Cuando un módulo pertenece a un conjunto de módulos.
  15. 15. .module El archivo .module incluye el código del módulo, en forma de funciones PHP. Es en este archivo donde se realizarán las llamada a los hooks. El estándar para nombrar al archivo .module es similar al de los archivos .info, siguiendo el patrón <nombremodulo>.module.
  16. 16. El fichero .module no es más que un script PHP, de manera que la primera línea comienza con la marca de inicio de código PHP "<?php", pero no se cierra con este código ?>.
  17. 17. ¿Qué es una hook? Son funciones PHP que utilizamos en nuestros módulos, el nombre de las mismas se compone de la siguiente forma:
  18. 18. ¿Para qué sirven las hooks? Aumentan la funcionalidad de Drupal permitiendo a los módulos interactuar con el core. De esta manera podemos alterar los comportamientos default de Drupal, y agregar nueva funcionalidad, si esos son los requerimientos para nuestro sitio.
  19. 19. La función t() La función t() permite que el sistema pueda traducir las cadenas de texto al resto de idiomas activos en el sitio.
  20. 20. Activación del módulo Ingresar al menu, ir a module, buscar, seleccionar y por ultimo grabar los cambios.
  21. 21. Tipos de módulos más usados tipo bloque tipo página
  22. 22. Módulo de tipo bloque
  23. 23. Programando un bloque hook_block_info(), define todos los bloques que nuestro módulo va a proveer. hook_block_view(), construye el bloque. hook_theme(), formateará la salida del tema hacia un archivo tpl
  24. 24. hook_block_info() En el array $blocks definimos todos los bloques de nuestro módulo y proporcionamos las opciones por defecto de cada bloque.
  25. 25. hook_block_view() En esta función definimos lo que se ve en cada bloque que implementa nuestro módulo. La variable $delta es la que nos identifica el bloque.
  26. 26. $block['content'] En esta variable llamamos a la función que contiene el contenido a imprimir.
  27. 27. Veamos el código y funcionamiento
  28. 28. Theming
  29. 29. Theming: maquetar el resultado Ahora estamos introduciendo “Hola Mundo” en el array de variables que le vamos a pasar a la plantilla, y a continuación utilizamos la función theme() para generar el resultado de salida. Para ello la función theme() invoca el hook_theme().
  30. 30. hook_theme() En nuestro hook_theme() estamos llamando a la plantilla (template): “saludar-hola-mundo”, para maquetar el callback: “saludar_hola_mundo”.
  31. 31. Creando un archivo de plantilla El siguiente paso es crear nuestro archivo tpl que hemos definido en el hook_theme(), en nuestro caso se llama saludar-hola-mundo.tpl
  32. 32. Modulo de tipo pagina
  33. 33. hook_menu() Sirve para crear una página, es decir, programar la respuesta para una determinada url. Por ejemplo acceder desde: http://localhost/drupal/saludar/hola-mundo
  34. 34. hook_menu() Lo que hemos hecho es añadir una url al array de elementos $items, y para esa dirección elegimos un título para la página y la función que implementa el contenido.
  35. 35. Función page callback
  36. 36. Veamos el código y funcionamiento
  37. 37. Form API https://api.drupal.org/api/drupal/developer%21topics %21forms_api_reference.html/7
  38. 38. Ejemplo
  39. 39. ¿Preguntas?
  40. 40. Gracias Charla impartida por: Edgar Dueñas edgar@pixtig.com

×