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
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
Creando módulos en Drupal 7
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. ¿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.
●
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. Cuando crear un módulo
●
Comunicación con sistemas externos.
●
Creación de funcionalidades muy a la medida.
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. 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. Importante
El nombre del directorio no debe contener espacios ni
caracteres especiales.
Podemos utilizar el guion bajo como separador.
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
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
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. .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. .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. 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. ¿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. ¿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. 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.
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. 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. 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.
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. hook_theme()
En nuestro hook_theme() estamos llamando a la
plantilla (template): “saludar-hola-mundo”, para
maquetar el callback: “saludar_hola_mundo”.
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
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. 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.