SlideShare una empresa de Scribd logo
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
¿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.
●
Drupal tiene licencia GNU/GPL
y está escrito en PHP.
¿Qué es un módulo en Drupal?

El módulo (module) es un software que extiende las
funcionalidades o características de Drupal.
Cuando crear un módulo

●

Comunicación con sistemas externos.

●

Creación de funcionalidades muy a la medida.
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.
✔
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.
Importante

El nombre del directorio no debe contener espacios ni
caracteres especiales.
Podemos utilizar el guion bajo como separador.
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
Archivos principales del módulo

.info y .module
.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
Ejemplo
sites/all/modules/primer_modulo/
.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.
.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.
.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.
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 ?>.
¿Qué es una hook?
Son funciones PHP que utilizamos en nuestros
módulos, el nombre de las mismas se compone de la
siguiente forma:
¿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.
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.
Activación del módulo
Ingresar al menu, ir a module, buscar, seleccionar y
por ultimo grabar los cambios.
Tipos de módulos más usados

tipo bloque
tipo página
Módulo de tipo bloque
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
hook_block_info()
En el array $blocks definimos todos los bloques de
nuestro módulo y proporcionamos las opciones por
defecto de cada bloque.
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.
$block['content']
En esta variable llamamos a la función que contiene
el contenido a imprimir.
Veamos el código y funcionamiento
Theming
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().
hook_theme()
En nuestro hook_theme() estamos llamando a la
plantilla (template): “saludar-hola-mundo”, para
maquetar el callback: “saludar_hola_mundo”.
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
Modulo de tipo pagina
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
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.
Función page callback
Veamos el código y funcionamiento
Form API
https://api.drupal.org/api/drupal/developer%21topics
%21forms_api_reference.html/7
Ejemplo
¿Preguntas?
Gracias
Charla impartida por:
Edgar Dueñas
edgar@pixtig.com

Más contenido relacionado

PDF
Programación de módulos para Drupal 7
PDF
Curso de Magento 1.9: Unidad Didáctica 08 Estructura de un Tema
ODP
Introduccion drupal
DOCX
Trabajo practico 2
PDF
Git 01-introduccion
PDF
Taller de Drupal - Sesión 4
PDF
Taller de Drupal - Sesión 3
PDF
Taller de Drupal - Sesion 1
Programación de módulos para Drupal 7
Curso de Magento 1.9: Unidad Didáctica 08 Estructura de un Tema
Introduccion drupal
Trabajo practico 2
Git 01-introduccion
Taller de Drupal - Sesión 4
Taller de Drupal - Sesión 3
Taller de Drupal - Sesion 1

La actualidad más candente (12)

PDF
Curso Blog Marketing con Wordpress 02 instalacion local
ODP
Redes kk
DOCX
Tutorial de teamviewer3
PDF
Taller de Drupal - Sesión 2
PPTX
Html
PDF
Semana 4 Estructura y componentes SPA
PPTX
DOC
codigos HTLM
PPTX
Creación de páginas web
PPTX
PPTX
Fundamentos de lenguaje html
Curso Blog Marketing con Wordpress 02 instalacion local
Redes kk
Tutorial de teamviewer3
Taller de Drupal - Sesión 2
Html
Semana 4 Estructura y componentes SPA
codigos HTLM
Creación de páginas web
Fundamentos de lenguaje html
Publicidad

Destacado (20)

PDF
Mi primer sitio web con Drupal
PPT
Desarrollo web
PDF
Curso de Liferay 6.2: Unidad didáctica 04 Gestión de un Sitio Web
PDF
Curso de Liferay 6.2: Unidad Didáctica 00 Introducción
PDF
Curso Liferay 6.2: Unidad Didáctica 07 Colaboración
PDF
Curso Liferay 6.2: Unidad Didáctica 05 Workflow
PDF
Curso Liferay 6.2: Unidad Didáctica 06 Gestion de Documentos
PDF
INTRODUCCIÓN A SQL SERVER MANAGEMENT STUDIO 2008
PDF
Curso de liferay 6.2: Unidad didáctica 02 Funcionalidades Principales
PDF
Curso de Liferay 6.2: Unidad didáctica 01 Instalación
PDF
Liferay 6.2: Unidad Didáctica 03 Administración básica
PPT
Introducción a los sistemas de gestion de contenidos (CMS)
PDF
Conceptos y Generalidades de Android
PPT
Introducción a los Sistemas de Gestión de Contenidos (CMS)
PDF
Visual 2010 sql server 2008
PPTX
Proyectos de Base de Datos con Visual Studio 2013
PPT
Consultas en sql básico
PDF
Drupal 7
PDF
MANUAL COMPLETO DE SQL
PDF
Manual user diseño web con html y css
Mi primer sitio web con Drupal
Desarrollo web
Curso de Liferay 6.2: Unidad didáctica 04 Gestión de un Sitio Web
Curso de Liferay 6.2: Unidad Didáctica 00 Introducción
Curso Liferay 6.2: Unidad Didáctica 07 Colaboración
Curso Liferay 6.2: Unidad Didáctica 05 Workflow
Curso Liferay 6.2: Unidad Didáctica 06 Gestion de Documentos
INTRODUCCIÓN A SQL SERVER MANAGEMENT STUDIO 2008
Curso de liferay 6.2: Unidad didáctica 02 Funcionalidades Principales
Curso de Liferay 6.2: Unidad didáctica 01 Instalación
Liferay 6.2: Unidad Didáctica 03 Administración básica
Introducción a los sistemas de gestion de contenidos (CMS)
Conceptos y Generalidades de Android
Introducción a los Sistemas de Gestión de Contenidos (CMS)
Visual 2010 sql server 2008
Proyectos de Base de Datos con Visual Studio 2013
Consultas en sql básico
Drupal 7
MANUAL COMPLETO DE SQL
Manual user diseño web con html y css
Publicidad

Similar a Creando módulos en Drupal 7 (20)

PDF
[DrupalCampSpain2023] Introducción al desarrollo de módulos en Drupal 10
PDF
e-Ghost 2014: introducción al desarrollo de módulos en drupal 7
PDF
Introduccion técnica a Drupal
PDF
DrupalCamp Spain 2014: Introducción al desarrollo de módulos en Drupal 7
PDF
¡This is drupal!
PDF
This is Drupal! (Basics)
PDF
¡This is drupal! - Global Training Days
PPT
Taller de Drupal 5
PDF
[DrupalCampSpain2022] Introducción al desarrollo de módulos en Drupal 9
PDF
Drupal - Introducción
PPT
Taller de Drupal 4
PDF
Curso Drupal. Theming con Drupal
PDF
PPTX
Drupal conceptos básicos y su alcance en proyectos
PDF
Introducción a Drupal
PDF
Twig, el nuevo motor de plantillas de Drupal 8
PDF
Anatomia de un módulo en drupal 8
PDF
Taller de drupal7
PDF
[DrupalCampSpain2023] Introducción al desarrollo de módulos en Drupal 10
e-Ghost 2014: introducción al desarrollo de módulos en drupal 7
Introduccion técnica a Drupal
DrupalCamp Spain 2014: Introducción al desarrollo de módulos en Drupal 7
¡This is drupal!
This is Drupal! (Basics)
¡This is drupal! - Global Training Days
Taller de Drupal 5
[DrupalCampSpain2022] Introducción al desarrollo de módulos en Drupal 9
Drupal - Introducción
Taller de Drupal 4
Curso Drupal. Theming con Drupal
Drupal conceptos básicos y su alcance en proyectos
Introducción a Drupal
Twig, el nuevo motor de plantillas de Drupal 8
Anatomia de un módulo en drupal 8
Taller de drupal7

Último (20)

DOCX
Zarate Quispe Alex aldayir aplicaciones de internet .docx
PDF
5.1 Pinch y Bijker en libro Actos, actores y artefactos de Bunch Thomas (coor...
PPTX
Power Point Nicolás Carrasco (disertación Roblox).pptx
PPTX
RAP02 - TECNICO SISTEMAS TELEINFORMATICOS.pptx
PDF
Influencia-del-uso-de-redes-sociales.pdf
PPTX
Acronis Cyber Protect Cloud para Ciber Proteccion y Ciber Seguridad LATAM - A...
PPT
El-Gobierno-Electrónico-En-El-Estado-Bolivia
PPTX
ANCASH-CRITERIOS DE EVALUACIÓN-FORMA-10-10 (2).pptx
PDF
taller de informática - LEY DE OHM
PDF
CyberOps Associate - Cisco Networking Academy
PPTX
IA de Cine - Como MuleSoft y los Agentes estan redefiniendo la realidad
PDF
programa-de-estudios-2011-guc3ada-para-el-maestro-secundarias-tecnicas-tecnol...
PDF
Estrategia de apoyo tecnología grado 9-3
PPTX
REDES INFORMATICAS REDES INFORMATICAS.pptx
PDF
Diapositiva proyecto de vida, materia catedra
PPTX
historia_web de la creacion de un navegador_presentacion.pptx
PDF
MÓDULO DE CALOR DE GRADO DE MEDIO DE FORMACIÓN PROFESIONAL
PDF
Maste clas de estructura metálica y arquitectura
PDF
clase auditoria informatica 2025.........
PPTX
Presentación de Redes de Datos modelo osi
Zarate Quispe Alex aldayir aplicaciones de internet .docx
5.1 Pinch y Bijker en libro Actos, actores y artefactos de Bunch Thomas (coor...
Power Point Nicolás Carrasco (disertación Roblox).pptx
RAP02 - TECNICO SISTEMAS TELEINFORMATICOS.pptx
Influencia-del-uso-de-redes-sociales.pdf
Acronis Cyber Protect Cloud para Ciber Proteccion y Ciber Seguridad LATAM - A...
El-Gobierno-Electrónico-En-El-Estado-Bolivia
ANCASH-CRITERIOS DE EVALUACIÓN-FORMA-10-10 (2).pptx
taller de informática - LEY DE OHM
CyberOps Associate - Cisco Networking Academy
IA de Cine - Como MuleSoft y los Agentes estan redefiniendo la realidad
programa-de-estudios-2011-guc3ada-para-el-maestro-secundarias-tecnicas-tecnol...
Estrategia de apoyo tecnología grado 9-3
REDES INFORMATICAS REDES INFORMATICAS.pptx
Diapositiva proyecto de vida, materia catedra
historia_web de la creacion de un navegador_presentacion.pptx
MÓDULO DE CALOR DE GRADO DE MEDIO DE FORMACIÓN PROFESIONAL
Maste clas de estructura metálica y arquitectura
clase auditoria informatica 2025.........
Presentación de Redes de Datos modelo osi

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. ●
  • 3. Drupal tiene licencia GNU/GPL y está escrito en PHP.
  • 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
  • 10. Archivos principales del módulo .info y .module
  • 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.
  • 20. Activación del módulo Ingresar al menu, ir a module, buscar, seleccionar y por ultimo grabar los cambios.
  • 21. Tipos de módulos más usados tipo bloque tipo página
  • 22. Módulo de tipo bloque
  • 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.
  • 26. $block['content'] En esta variable llamamos a la función que contiene el contenido a imprimir.
  • 27. Veamos el código y funcionamiento
  • 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
  • 32. Modulo de tipo pagina
  • 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.
  • 36. Veamos el código y funcionamiento
  • 40. Gracias Charla impartida por: Edgar Dueñas edgar@pixtig.com