SlideShare una empresa de Scribd logo
1 de 40
Descargar para leer sin conexión
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

La actualidad más candente

Persamaan Differensial Biasa 2014
Persamaan Differensial Biasa 2014 Persamaan Differensial Biasa 2014
Persamaan Differensial Biasa 2014 Rani Sulvianuri
 
Generador de señales seno en un microcontrolador
Generador de señales seno en un microcontroladorGenerador de señales seno en un microcontrolador
Generador de señales seno en un microcontroladorkattyusca
 
Hausdorff and Non-Hausdorff Spaces
Hausdorff and Non-Hausdorff SpacesHausdorff and Non-Hausdorff Spaces
Hausdorff and Non-Hausdorff Spacesgizemk
 
Integrales multiples
Integrales multiplesIntegrales multiples
Integrales multiplesTensor
 
Gaussian quadratures
Gaussian quadraturesGaussian quadratures
Gaussian quadraturesTarun Gehlot
 
Gauss Divergence Therom
Gauss Divergence TheromGauss Divergence Therom
Gauss Divergence TheromVC Infotech
 
Inner product spaces
Inner product spacesInner product spaces
Inner product spacesEasyStudy3
 
Vector Spaces,subspaces,Span,Basis
Vector Spaces,subspaces,Span,BasisVector Spaces,subspaces,Span,Basis
Vector Spaces,subspaces,Span,BasisRavi Gelani
 
08 interpolation lagrange
08 interpolation   lagrange08 interpolation   lagrange
08 interpolation lagrangeMohammad Tawfik
 
Gradient divergence curl
Gradient divergence curlGradient divergence curl
Gradient divergence curlVikas Vikram
 
Differential geometry three dimensional space
Differential geometry   three dimensional spaceDifferential geometry   three dimensional space
Differential geometry three dimensional spaceSolo Hermelin
 
Lecture 09 interference for sound waves. beats. doppler effect
Lecture 09   interference for sound waves. beats. doppler effectLecture 09   interference for sound waves. beats. doppler effect
Lecture 09 interference for sound waves. beats. doppler effectAlbania Energy Association
 

La actualidad más candente (20)

Inner product spaces
Inner product spacesInner product spaces
Inner product spaces
 
Vector Space.pptx
Vector Space.pptxVector Space.pptx
Vector Space.pptx
 
Aula11
Aula11Aula11
Aula11
 
Persamaan Differensial Biasa 2014
Persamaan Differensial Biasa 2014 Persamaan Differensial Biasa 2014
Persamaan Differensial Biasa 2014
 
Generador de señales seno en un microcontrolador
Generador de señales seno en un microcontroladorGenerador de señales seno en un microcontrolador
Generador de señales seno en un microcontrolador
 
Hausdorff and Non-Hausdorff Spaces
Hausdorff and Non-Hausdorff SpacesHausdorff and Non-Hausdorff Spaces
Hausdorff and Non-Hausdorff Spaces
 
Integrales multiples
Integrales multiplesIntegrales multiples
Integrales multiples
 
FDTD Presentation
FDTD PresentationFDTD Presentation
FDTD Presentation
 
Gaussian quadratures
Gaussian quadraturesGaussian quadratures
Gaussian quadratures
 
Gauss Divergence Therom
Gauss Divergence TheromGauss Divergence Therom
Gauss Divergence Therom
 
Vector spaces
Vector spaces Vector spaces
Vector spaces
 
Dyadics
DyadicsDyadics
Dyadics
 
Inner product spaces
Inner product spacesInner product spaces
Inner product spaces
 
Vector space
Vector spaceVector space
Vector space
 
Vector Spaces,subspaces,Span,Basis
Vector Spaces,subspaces,Span,BasisVector Spaces,subspaces,Span,Basis
Vector Spaces,subspaces,Span,Basis
 
Electromagnetics
ElectromagneticsElectromagnetics
Electromagnetics
 
08 interpolation lagrange
08 interpolation   lagrange08 interpolation   lagrange
08 interpolation lagrange
 
Gradient divergence curl
Gradient divergence curlGradient divergence curl
Gradient divergence curl
 
Differential geometry three dimensional space
Differential geometry   three dimensional spaceDifferential geometry   three dimensional space
Differential geometry three dimensional space
 
Lecture 09 interference for sound waves. beats. doppler effect
Lecture 09   interference for sound waves. beats. doppler effectLecture 09   interference for sound waves. beats. doppler effect
Lecture 09 interference for sound waves. beats. doppler effect
 

Destacado

Mi primer sitio web con Drupal
Mi primer sitio web con DrupalMi primer sitio web con Drupal
Mi primer sitio web con DrupalHeissen López
 
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
 
Curso de Liferay 6.2: Unidad didáctica 04 Gestión de un Sitio Web
Curso de Liferay 6.2: Unidad didáctica 04 Gestión de un Sitio WebCurso de Liferay 6.2: Unidad didáctica 04 Gestión de un Sitio Web
Curso de Liferay 6.2: Unidad didáctica 04 Gestión de un Sitio WebDavid Vaquero
 
Curso de Liferay 6.2: Unidad Didáctica 00 Introducción
Curso de Liferay 6.2: Unidad Didáctica 00 IntroducciónCurso de Liferay 6.2: Unidad Didáctica 00 Introducción
Curso de Liferay 6.2: Unidad Didáctica 00 IntroducciónDavid Vaquero
 
Curso Liferay 6.2: Unidad Didáctica 07 Colaboración
Curso Liferay 6.2: Unidad Didáctica 07 ColaboraciónCurso Liferay 6.2: Unidad Didáctica 07 Colaboración
Curso Liferay 6.2: Unidad Didáctica 07 ColaboraciónDavid Vaquero
 
Curso Liferay 6.2: Unidad Didáctica 05 Workflow
Curso Liferay 6.2: Unidad Didáctica 05 WorkflowCurso Liferay 6.2: Unidad Didáctica 05 Workflow
Curso Liferay 6.2: Unidad Didáctica 05 WorkflowDavid Vaquero
 
Curso Liferay 6.2: Unidad Didáctica 06 Gestion de Documentos
Curso Liferay 6.2: Unidad Didáctica 06 Gestion de DocumentosCurso Liferay 6.2: Unidad Didáctica 06 Gestion de Documentos
Curso Liferay 6.2: Unidad Didáctica 06 Gestion de DocumentosDavid Vaquero
 
INTRODUCCIÓN A SQL SERVER MANAGEMENT STUDIO 2008
INTRODUCCIÓN A SQL SERVER MANAGEMENT STUDIO 2008INTRODUCCIÓN A SQL SERVER MANAGEMENT STUDIO 2008
INTRODUCCIÓN A SQL SERVER MANAGEMENT STUDIO 2008Edwin Arias
 
Curso de liferay 6.2: Unidad didáctica 02 Funcionalidades Principales
Curso de liferay 6.2: Unidad didáctica 02 Funcionalidades PrincipalesCurso de liferay 6.2: Unidad didáctica 02 Funcionalidades Principales
Curso de liferay 6.2: Unidad didáctica 02 Funcionalidades PrincipalesDavid Vaquero
 
Curso de Liferay 6.2: Unidad didáctica 01 Instalación
Curso de Liferay 6.2: Unidad didáctica 01 InstalaciónCurso de Liferay 6.2: Unidad didáctica 01 Instalación
Curso de Liferay 6.2: Unidad didáctica 01 InstalaciónDavid Vaquero
 
Curso de Magento 1.9: Unidad Didáctica 08 Estructura de un Tema
Curso de Magento 1.9: Unidad Didáctica 08 Estructura de un TemaCurso de Magento 1.9: Unidad Didáctica 08 Estructura de un Tema
Curso de Magento 1.9: Unidad Didáctica 08 Estructura de un TemaDavid Vaquero
 
Liferay 6.2: Unidad Didáctica 03 Administración básica
Liferay 6.2: Unidad Didáctica 03 Administración básicaLiferay 6.2: Unidad Didáctica 03 Administración básica
Liferay 6.2: Unidad Didáctica 03 Administración básicaDavid Vaquero
 
Introducción a los sistemas de gestion de contenidos (CMS)
Introducción a los sistemas de gestion de contenidos (CMS)Introducción a los sistemas de gestion de contenidos (CMS)
Introducción a los sistemas de gestion de contenidos (CMS)Daniel Primo
 
Introducción a los Sistemas de Gestión de Contenidos (CMS)
Introducción a los Sistemas de Gestión de Contenidos (CMS)Introducción a los Sistemas de Gestión de Contenidos (CMS)
Introducción a los Sistemas de Gestión de Contenidos (CMS)Julio Santillán-Aldana
 
Visual 2010 sql server 2008
Visual 2010 sql server 2008Visual 2010 sql server 2008
Visual 2010 sql server 2008Alex Vasquez
 
Proyectos de Base de Datos con Visual Studio 2013
Proyectos de Base de Datos con Visual Studio 2013Proyectos de Base de Datos con Visual Studio 2013
Proyectos de Base de Datos con Visual Studio 2013Rodolfo Finochietti
 

Destacado (20)

Mi primer sitio web con Drupal
Mi primer sitio web con DrupalMi primer sitio web con Drupal
Mi primer sitio web con Drupal
 
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
 
Desarrollo web
Desarrollo webDesarrollo web
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 04 Gestión de un Sitio WebCurso de Liferay 6.2: Unidad didáctica 04 Gestión de un Sitio 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 de Liferay 6.2: Unidad Didáctica 00 IntroducciónCurso de Liferay 6.2: Unidad Didáctica 00 Introducción
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 07 ColaboraciónCurso Liferay 6.2: Unidad Didáctica 07 Colaboració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 05 WorkflowCurso Liferay 6.2: Unidad Didáctica 05 Workflow
Curso Liferay 6.2: Unidad Didáctica 05 Workflow
 
Curso Liferay 6.2: Unidad Didáctica 06 Gestion de Documentos
Curso Liferay 6.2: Unidad Didáctica 06 Gestion de DocumentosCurso Liferay 6.2: Unidad Didáctica 06 Gestion de Documentos
Curso Liferay 6.2: Unidad Didáctica 06 Gestion de Documentos
 
INTRODUCCIÓN A SQL SERVER MANAGEMENT STUDIO 2008
INTRODUCCIÓN A SQL SERVER MANAGEMENT STUDIO 2008INTRODUCCIÓN A SQL SERVER MANAGEMENT STUDIO 2008
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 02 Funcionalidades PrincipalesCurso de liferay 6.2: Unidad didáctica 02 Funcionalidades Principales
Curso de liferay 6.2: Unidad didáctica 02 Funcionalidades Principales
 
Curso de Liferay 6.2: Unidad didáctica 01 Instalación
Curso de Liferay 6.2: Unidad didáctica 01 InstalaciónCurso de Liferay 6.2: Unidad didáctica 01 Instalación
Curso de Liferay 6.2: Unidad didáctica 01 Instalación
 
Curso de Magento 1.9: Unidad Didáctica 08 Estructura de un Tema
Curso de Magento 1.9: Unidad Didáctica 08 Estructura de un TemaCurso de Magento 1.9: Unidad Didáctica 08 Estructura de un Tema
Curso de Magento 1.9: Unidad Didáctica 08 Estructura de un Tema
 
Liferay 6.2: Unidad Didáctica 03 Administración básica
Liferay 6.2: Unidad Didáctica 03 Administración básicaLiferay 6.2: Unidad Didáctica 03 Administración básica
Liferay 6.2: Unidad Didáctica 03 Administración básica
 
Introducción a los sistemas de gestion de contenidos (CMS)
Introducción a los sistemas de gestion de contenidos (CMS)Introducción a los sistemas de gestion de contenidos (CMS)
Introducción a los sistemas de gestion de contenidos (CMS)
 
Conceptos y Generalidades de Android
Conceptos y Generalidades de AndroidConceptos y Generalidades de Android
Conceptos y Generalidades de Android
 
Introducción a los Sistemas de Gestión de Contenidos (CMS)
Introducción a los Sistemas de Gestión de Contenidos (CMS)Introducción a los Sistemas de Gestión de Contenidos (CMS)
Introducción a los Sistemas de Gestión de Contenidos (CMS)
 
Visual 2010 sql server 2008
Visual 2010 sql server 2008Visual 2010 sql server 2008
Visual 2010 sql server 2008
 
Proyectos de Base de Datos con Visual Studio 2013
Proyectos de Base de Datos con Visual Studio 2013Proyectos de Base de Datos con Visual Studio 2013
Proyectos de Base de Datos con Visual Studio 2013
 
Consultas en sql básico
Consultas en sql básicoConsultas en sql básico
Consultas en sql básico
 
Drupal 7
Drupal 7Drupal 7
Drupal 7
 

Similar a Creando módulos en Drupal 7

J!D Barcelona 2009 - Taller Plantillas Avanzado
J!D Barcelona 2009 - Taller Plantillas AvanzadoJ!D Barcelona 2009 - Taller Plantillas Avanzado
J!D Barcelona 2009 - Taller Plantillas AvanzadoSergioIglesiasNET
 
Introduccion técnica a Drupal
Introduccion técnica a DrupalIntroduccion técnica a Drupal
Introduccion técnica a DrupalPedro Cambra
 
Joomla!Day 2011 España - Taller desarrollo de plantillas Joomla! - Sergio Igl...
Joomla!Day 2011 España - Taller desarrollo de plantillas Joomla! - Sergio Igl...Joomla!Day 2011 España - Taller desarrollo de plantillas Joomla! - Sergio Igl...
Joomla!Day 2011 España - Taller desarrollo de plantillas Joomla! - Sergio Igl...SergioIglesiasNET
 
Mis primeros pasos con Symfony 2
Mis primeros pasos con Symfony 2Mis primeros pasos con Symfony 2
Mis primeros pasos con Symfony 2Edgar Dueñas
 
Drupal conceptos básicos y su alcance en proyectos
Drupal conceptos básicos y su alcance en proyectosDrupal conceptos básicos y su alcance en proyectos
Drupal conceptos básicos y su alcance en proyectosWalter Herrera
 
Taller de drupal7
Taller de drupal7Taller de drupal7
Taller de drupal7Rojomorgan
 
UDA-Componentes RUP dialogo.v2.4.0
UDA-Componentes RUP dialogo.v2.4.0UDA-Componentes RUP dialogo.v2.4.0
UDA-Componentes RUP dialogo.v2.4.0Ander Martinez
 
UDA-Componentes RUP. Diálogo (v2.1.0 deprecado)
UDA-Componentes RUP. Diálogo  (v2.1.0 deprecado)UDA-Componentes RUP. Diálogo  (v2.1.0 deprecado)
UDA-Componentes RUP. Diálogo (v2.1.0 deprecado)Ander Martinez
 
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.
 
Desarrollar un módulo para joomla
Desarrollar un módulo para joomlaDesarrollar un módulo para joomla
Desarrollar un módulo para joomlaivanGorL
 
Windows power shell modules presentacion benito y oswaldo
Windows power shell modules presentacion benito y oswaldoWindows power shell modules presentacion benito y oswaldo
Windows power shell modules presentacion benito y oswaldobenito96
 
¡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
 
Joomladay 2008 Madrid - desarrollo de extensiones
Joomladay 2008 Madrid - desarrollo de extensionesJoomladay 2008 Madrid - desarrollo de extensiones
Joomladay 2008 Madrid - desarrollo de extensionesdeivit86
 

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

Manual del desarrollador
Manual del desarrolladorManual del desarrollador
Manual del desarrollador
 
J!D Barcelona 2009 - Taller Plantillas Avanzado
J!D Barcelona 2009 - Taller Plantillas AvanzadoJ!D Barcelona 2009 - Taller Plantillas Avanzado
J!D Barcelona 2009 - Taller Plantillas Avanzado
 
Introduccion técnica a Drupal
Introduccion técnica a DrupalIntroduccion técnica a Drupal
Introduccion técnica a Drupal
 
Joomla!Day 2011 España - Taller desarrollo de plantillas Joomla! - Sergio Igl...
Joomla!Day 2011 España - Taller desarrollo de plantillas Joomla! - Sergio Igl...Joomla!Day 2011 España - Taller desarrollo de plantillas Joomla! - Sergio Igl...
Joomla!Day 2011 España - Taller desarrollo de plantillas Joomla! - Sergio Igl...
 
Mis primeros pasos con Symfony 2
Mis primeros pasos con Symfony 2Mis primeros pasos con Symfony 2
Mis primeros pasos con Symfony 2
 
Drupal conceptos básicos y su alcance en proyectos
Drupal conceptos básicos y su alcance en proyectosDrupal conceptos básicos y su alcance en proyectos
Drupal conceptos básicos y su alcance en proyectos
 
Taller de drupal7
Taller de drupal7Taller de drupal7
Taller de drupal7
 
Taller de drupal7
Taller de drupal7Taller de drupal7
Taller de drupal7
 
UDA-Componentes RUP dialogo.v2.4.0
UDA-Componentes RUP dialogo.v2.4.0UDA-Componentes RUP dialogo.v2.4.0
UDA-Componentes RUP dialogo.v2.4.0
 
UDA-Componentes RUP. Diálogo (v2.1.0 deprecado)
UDA-Componentes RUP. Diálogo  (v2.1.0 deprecado)UDA-Componentes RUP. Diálogo  (v2.1.0 deprecado)
UDA-Componentes RUP. Diálogo (v2.1.0 deprecado)
 
Drupal
DrupalDrupal
Drupal
 
Taller de Drupal - Sesión 3
Taller de Drupal - Sesión 3Taller de Drupal - Sesión 3
Taller de Drupal - Sesión 3
 
Desarrollar un módulo para joomla
Desarrollar un módulo para joomlaDesarrollar un módulo para joomla
Desarrollar un módulo para joomla
 
Windows power shell modules presentacion benito y oswaldo
Windows power shell modules presentacion benito y oswaldoWindows power shell modules presentacion benito y oswaldo
Windows power shell modules presentacion benito y oswaldo
 
Framework
FrameworkFramework
Framework
 
Introduccion drupal
Introduccion drupalIntroduccion drupal
Introduccion drupal
 
Frameworks de templates y xml
Frameworks de templates y xmlFrameworks de templates y xml
Frameworks de templates y xml
 
¡This is drupal! - Global Training Days
¡This is drupal! - Global Training Days¡This is drupal! - Global Training Days
¡This is drupal! - Global Training Days
 
Joomladay 2008 Madrid - desarrollo de extensiones
Joomladay 2008 Madrid - desarrollo de extensionesJoomladay 2008 Madrid - desarrollo de extensiones
Joomladay 2008 Madrid - desarrollo de extensiones
 
¡This is drupal!
¡This is drupal!¡This is drupal!
¡This is drupal!
 

Último

Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfsoporteupcology
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIAWilbisVega
 
Hernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxHernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxJOSEMANUELHERNANDEZH11
 
Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024GiovanniJavierHidalg
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan JosephBRAYANJOSEPHPEREZGOM
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdfIsabellaMontaomurill
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíassuserf18419
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)GDGSucre
 
9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudianteAndreaHuertas24
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafiosFundación YOD YOD
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesFundación YOD YOD
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricKeyla Dolores Méndez
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveFagnerLisboa3
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx241521559
 
Plan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxPlan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxpabonheidy28
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...silviayucra2
 

Último (16)

Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdf
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
 
Hernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxHernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptx
 
Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Joseph
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdf
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnología
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)
 
9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafios
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento Protégeles
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx
 
Plan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxPlan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docx
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
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. ●
  • 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