SlideShare a Scribd company logo
1 of 16
Download to read offline
Programación de
módulos
para Drupal 7
Cristian Mamani @xjkwak
¿Qué es Drupal?
● Drupal es un CMS - CMF (respuesta rápida)
● Drupal es meta tool, una herramienta para
crear herramientas de administración de
contenido web.
● Drupal es una comunidad.
● Creado en el año 2000 por Dries Buytaert y
liberado con licencia GPL el año 2001.
Conceptos Drupal
● Entidades: Tipos de objetos a los que podemos

●
●
●
●

asociar campos
○ Los nodos(contenidos) , usuarios, taxonomías,
archivos y comentarios son entidades del núcleo.
Bloques: Trozos de contenido o código con distintas
funcionalidades se pueden colocar en cualquier región
del tema.
Menús: Grupo de enlaces que permiten acceso a
páginas o regiones de estas.
Temas: Permiten cambiar el aspecto gráfico.
Módulos: Añaden funcionalidad al core. Drupal es un
sistema modular que entrelaza funcionalidades
The Drupal Way
● Antes de intentar crear código propio:
○ Busca solucionar usando módulos populares en lo
posible.
○ Busca solucionar usando módulos que extiendan
módulos populares en vez que módulos aislados.

● Si es necesario que crees código propio
compártelo con la comunidad.
Módulos básicos
Busca antes de intentar programar...
● Views.- Permite sacar vistas de los contenidos.
● Panels.- Flexibilidad para la disposición de
●

elementos.
Rules.- Acciones y grupos condicionadas por
eventos.
Flag.- Marcado de contenidos.
Display Suite.- Modificar la presentación.
Pathauto.- Generación de alias de url/path

●
●
●
.... muchos más

Los módulos contribuidos se han desarrollado gracias a la
Módulos útiles para el desarrollo
● Devel.- Facilita la tareas de programación y
trae utilidades de administración.
● Coder.- Ayuda a seguir los estándares de
codificación Drupal.
● Admin_menu.- Permite acceder a todas las
opciones del menú de administración
rápidamente.
● Module_filter.- Un mejor listado de
módulos.
● Examples.- Ejemplos de código de las APIs
Entorno de desarrollo
Drupal es preferente de LAMP
Sistema Operativo: Linux, Windows, Mac_OS, ...
Servidor web: Apache, AOLServer, IIS, Tomcat, ...
DBMS: Mysql, MariaBD, postgresSQL, ...
Lenguaje: Php.
Editores: Eclipse, Netbeans, Vim, Vi, Emacs, ...
Control de Versiones: GIT, SVN
Drush: Línea de comandos para Drupal.
Arquitectura de Drupal
Secuencia de eventos cuando una solicitud es
procesada por Drupal:

An Introduction to Drupal Architecture - John VanDyk (DrupalCamp Des Moines, lowa
Hooks
Los Hooks (Ganchos) permiten a los módulos involucrarse
con lo que está sucediendo en el resto del sistema web
Drupal.
Los Hooks son el medio de comunicarle a Drupal que
hacer y cuando hacerlo.
Ejemplo: Un usuario inicia sesión => Drupal llama a la
función hook_user_login() en la cual podemos validar su
zona horaria y decirle por su nombre buenos días o buenas
tardes.
Hooks: ¿Como funcionan?
Usaremos un ejemplo básico para un módulo
llamado initialization:
/**
* Implements hook_init().
*/
function initialization_init() {
if (drupal_is_front_page()) {
drupal_set_message(t("Hello world!"));
}
}
APIs del Core y algunos hooks
● Menu System
○ hook_menu()
○ hook_menu_alter()

● Theme System
○ hook_theme()

● Mail System
○ hook_mail()

● BlockAPI
○ hook_block_info()
○ hook_block_view()

...más en...
Desarrollo de módulos
PHP Necesario:
● Elementalmente usaremos:
○ Arrays asociativos: Ej. creación de un botón submit
en un formulario:
$form['submit'] = array(
'#type' => 'submit',
'#value' => t('Submit')
);
○ Funciones. (Los hooks son funciones.)
● Se puede emplear POO y todo lo que se sabe en php
pero la forma de comunicarse con drupal será mediante
Desarrollo de módulos
Estándares de codificación
Tienen por objetivo permitir código legible y bien estructurado para poder ser
compartido.
●
●
●

Identación con 2 espacios. No se usan tabs
Todos los operadores binarios (+, -, =, !=, etc.) tienen un espacio a ambos
lados.
Las estructuras de control (if, for, while, shitch, etc) de la forma:

if (condition1 || condition2) {
}
● Módulos inician siempre con <?php y no se cierra el tag.
Revisar http://drupal.org/coding-standards
Desarrollo de módulos
ARCHIVOS
● mi_modulo.info
información básica sobre el módulo
● mi_modulo.install
configuraciones y estructuras
● mi_modulo.module
código del módulo, en forma de funciones PHP
● Archivos de documentación
README.txt, INSTALL.txt,...

● OTROS: .tpl Librerias, clases o funciones, .css, .js
Desarrollo de temas
ARCHIVOS
● mi_tema.info
Información básica sobre el tema

● template.php
Reescritura de hooks del core. Con esto podemos añadir
compartamientos adicionales dependiendo el proposito del tema.

● Archivos tpl.php
Rescritura de tipos de nodos, bloques, vistas, etc. podemos hacer
una carpeta llamada "templates/" y colocar dentro todos los tpl.php
que vayamos a reescribir.
Otros: logo.png, screenshot.png, color.inc, etc..

●

Más información: http://drupal.org/node/171194
Referencias
Conceptos generales
http://drupal.org/node/19828

API Drupal
http://api.drupal.org

Ambiente de desarrollo
http://drupal.org/setting-up-development-environment

Estándares de codificación
http://drupal.org/coding-standards

Ejemplos de módulos
http://api.drupal.org/api/search/7/example

More Related Content

What's hot

What's hot (19)

Guia herramientas de bd
Guia herramientas de bdGuia herramientas de bd
Guia herramientas de bd
 
codigos HTLM
codigos HTLMcodigos HTLM
codigos HTLM
 
Manual del desarrollador
Manual del desarrolladorManual del desarrollador
Manual del desarrollador
 
Php
PhpPhp
Php
 
Arrays renderizables y Estándares de codificación en Drupal
Arrays renderizables y Estándares de codificación en DrupalArrays renderizables y Estándares de codificación en Drupal
Arrays renderizables y Estándares de codificación en Drupal
 
Html
HtmlHtml
Html
 
Acceso a-base-de-datos-en-php
Acceso a-base-de-datos-en-phpAcceso a-base-de-datos-en-php
Acceso a-base-de-datos-en-php
 
Drupal
DrupalDrupal
Drupal
 
PHP IUTE
PHP IUTEPHP IUTE
PHP IUTE
 
Desarrollar un módulo para joomla
Desarrollar un módulo para joomlaDesarrollar un módulo para joomla
Desarrollar un módulo para joomla
 
Trabajo practico 2
Trabajo practico 2Trabajo practico 2
Trabajo practico 2
 
Generalidades php
Generalidades phpGeneralidades php
Generalidades php
 
Iniciación PHP 5. PHP y MySQL
Iniciación PHP 5. PHP y MySQLIniciación PHP 5. PHP y MySQL
Iniciación PHP 5. PHP y MySQL
 
Framework
FrameworkFramework
Framework
 
Semana 4 Estructura y componentes SPA
Semana 4  Estructura y componentes SPASemana 4  Estructura y componentes SPA
Semana 4 Estructura y componentes SPA
 
Taller Drupal Php Conference
Taller Drupal Php ConferenceTaller Drupal Php Conference
Taller Drupal Php Conference
 
Yupa cesar 6_s_t1_2
Yupa cesar 6_s_t1_2Yupa cesar 6_s_t1_2
Yupa cesar 6_s_t1_2
 
Tutorial de teamviewer3
Tutorial de teamviewer3Tutorial de teamviewer3
Tutorial de teamviewer3
 
Presentación1
Presentación1Presentación1
Presentación1
 

Viewers also liked

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 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 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 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 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
 
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
 
BBCON 2011 - Sharing Work: Independent Schools using Online Campus Community
BBCON 2011 - Sharing Work: Independent Schools using Online Campus CommunityBBCON 2011 - Sharing Work: Independent Schools using Online Campus Community
BBCON 2011 - Sharing Work: Independent Schools using Online Campus CommunityRachel Welsh
 
Gimp magazine número 7
Gimp magazine número 7Gimp magazine número 7
Gimp magazine número 7Huehue 1
 
Manual de instalación drupal 7.2 mejorado Universidad de Los Andes
Manual de instalación drupal 7.2 mejorado Universidad de Los AndesManual de instalación drupal 7.2 mejorado Universidad de Los Andes
Manual de instalación drupal 7.2 mejorado Universidad de Los AndesBrox Technology
 
(2015-09-29) DOCTOR, QUIERO DEJAR DE FUMAR (PPT)
(2015-09-29) DOCTOR, QUIERO DEJAR DE FUMAR (PPT)(2015-09-29) DOCTOR, QUIERO DEJAR DE FUMAR (PPT)
(2015-09-29) DOCTOR, QUIERO DEJAR DE FUMAR (PPT)UDMAFyC SECTOR ZARAGOZA II
 
Creating Voice Powered Apps with Ribbit
Creating Voice Powered Apps with RibbitCreating Voice Powered Apps with Ribbit
Creating Voice Powered Apps with RibbitJames Williams
 
Inglés básico i inicial i - goicochea
Inglés básico i   inicial i - goicocheaInglés básico i   inicial i - goicochea
Inglés básico i inicial i - goicocheaJim Guimac
 
CBRE EMEA GBS - Interview with Maciej Piwowarczyk | (8-13 page) Outsourcing M...
CBRE EMEA GBS - Interview with Maciej Piwowarczyk | (8-13 page) Outsourcing M...CBRE EMEA GBS - Interview with Maciej Piwowarczyk | (8-13 page) Outsourcing M...
CBRE EMEA GBS - Interview with Maciej Piwowarczyk | (8-13 page) Outsourcing M...Maciej Piwowarczyk
 
Métodos de programación, diagramas y pseudocódigos
Métodos de programación, diagramas y pseudocódigos Métodos de programación, diagramas y pseudocódigos
Métodos de programación, diagramas y pseudocódigos kira-akira
 

Viewers also liked (20)

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 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 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 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 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
 
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
 
BBCON 2011 - Sharing Work: Independent Schools using Online Campus Community
BBCON 2011 - Sharing Work: Independent Schools using Online Campus CommunityBBCON 2011 - Sharing Work: Independent Schools using Online Campus Community
BBCON 2011 - Sharing Work: Independent Schools using Online Campus Community
 
The Lindorff European Credit Outlook 2015
The Lindorff European Credit Outlook 2015The Lindorff European Credit Outlook 2015
The Lindorff European Credit Outlook 2015
 
Gimp magazine número 7
Gimp magazine número 7Gimp magazine número 7
Gimp magazine número 7
 
Recursos energetics (I)
Recursos energetics (I)Recursos energetics (I)
Recursos energetics (I)
 
Manual de instalación drupal 7.2 mejorado Universidad de Los Andes
Manual de instalación drupal 7.2 mejorado Universidad de Los AndesManual de instalación drupal 7.2 mejorado Universidad de Los Andes
Manual de instalación drupal 7.2 mejorado Universidad de Los Andes
 
(2015-09-29) DOCTOR, QUIERO DEJAR DE FUMAR (PPT)
(2015-09-29) DOCTOR, QUIERO DEJAR DE FUMAR (PPT)(2015-09-29) DOCTOR, QUIERO DEJAR DE FUMAR (PPT)
(2015-09-29) DOCTOR, QUIERO DEJAR DE FUMAR (PPT)
 
Creating Voice Powered Apps with Ribbit
Creating Voice Powered Apps with RibbitCreating Voice Powered Apps with Ribbit
Creating Voice Powered Apps with Ribbit
 
Inglés básico i inicial i - goicochea
Inglés básico i   inicial i - goicocheaInglés básico i   inicial i - goicochea
Inglés básico i inicial i - goicochea
 
CBRE EMEA GBS - Interview with Maciej Piwowarczyk | (8-13 page) Outsourcing M...
CBRE EMEA GBS - Interview with Maciej Piwowarczyk | (8-13 page) Outsourcing M...CBRE EMEA GBS - Interview with Maciej Piwowarczyk | (8-13 page) Outsourcing M...
CBRE EMEA GBS - Interview with Maciej Piwowarczyk | (8-13 page) Outsourcing M...
 
Métodos de programación, diagramas y pseudocódigos
Métodos de programación, diagramas y pseudocódigos Métodos de programación, diagramas y pseudocódigos
Métodos de programación, diagramas y pseudocódigos
 
Programacion Modular
Programacion ModularProgramacion Modular
Programacion Modular
 

Similar to Programación de módulos para Drupal 7

Introduccion técnica a Drupal
Introduccion técnica a DrupalIntroduccion técnica a Drupal
Introduccion técnica a DrupalPedro Cambra
 
¡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
 
Drupal 7: mucho más que una nueva versión (para desarrolladores)
Drupal 7: mucho más que una nueva versión (para desarrolladores)Drupal 7: mucho más que una nueva versión (para desarrolladores)
Drupal 7: mucho más que una nueva versión (para desarrolladores)Ymbra
 
Presentacion Drupal Ccrtv
Presentacion Drupal CcrtvPresentacion Drupal Ccrtv
Presentacion Drupal CcrtvPedro Cambra
 
Diagramas de uml generacion de codigos
Diagramas de uml generacion de codigosDiagramas de uml generacion de codigos
Diagramas de uml generacion de codigosJesus Rodriguez
 
Un vistazo al mundo Drupal
Un vistazo al mundo DrupalUn vistazo al mundo Drupal
Un vistazo al mundo DrupalFederico Antón
 
Drupal como cms
Drupal como cmsDrupal como cms
Drupal como cmsHugo Peña
 
I summit01
I summit01I summit01
I summit01Utpl
 
Estructuras Básicas en C++
Estructuras Básicas en C++Estructuras Básicas en C++
Estructuras Básicas en C++EmilyLeal6
 
Taller de drupal7
Taller de drupal7Taller de drupal7
Taller de drupal7Rojomorgan
 
Drupal para bibliotecas, archivos y lo que sea menester
Drupal para bibliotecas, archivos y lo que sea menesterDrupal para bibliotecas, archivos y lo que sea menester
Drupal para bibliotecas, archivos y lo que sea menesterSocialBiblio
 
Arquitectura de proyectos Drupal
Arquitectura de proyectos DrupalArquitectura de proyectos Drupal
Arquitectura de proyectos DrupalYmbra
 
Zanjai-como-entorno-de-programacion
Zanjai-como-entorno-de-programacionZanjai-como-entorno-de-programacion
Zanjai-como-entorno-de-programacionjuanpi1991
 

Similar to Programación de módulos para Drupal 7 (20)

Introduccion drupal
Introduccion drupalIntroduccion drupal
Introduccion drupal
 
Drupal - Introducción
Drupal - IntroducciónDrupal - Introducción
Drupal - Introducción
 
Introduccion técnica a Drupal
Introduccion técnica a DrupalIntroduccion técnica a Drupal
Introduccion técnica a Drupal
 
This is Drupal! (Basics)
This is Drupal! (Basics)This is Drupal! (Basics)
This is Drupal! (Basics)
 
¡This is drupal! - Global Training Days
¡This is drupal! - Global Training Days¡This is drupal! - Global Training Days
¡This is drupal! - Global Training Days
 
Drupal 7: mucho más que una nueva versión (para desarrolladores)
Drupal 7: mucho más que una nueva versión (para desarrolladores)Drupal 7: mucho más que una nueva versión (para desarrolladores)
Drupal 7: mucho más que una nueva versión (para desarrolladores)
 
Presentacion Drupal Ccrtv
Presentacion Drupal CcrtvPresentacion Drupal Ccrtv
Presentacion Drupal Ccrtv
 
¡This is drupal!
¡This is drupal!¡This is drupal!
¡This is drupal!
 
Diagramas de uml generacion de codigos
Diagramas de uml generacion de codigosDiagramas de uml generacion de codigos
Diagramas de uml generacion de codigos
 
Un vistazo al mundo Drupal
Un vistazo al mundo DrupalUn vistazo al mundo Drupal
Un vistazo al mundo Drupal
 
Drupal como cms
Drupal como cmsDrupal como cms
Drupal como cms
 
I summit01
I summit01I summit01
I summit01
 
Estructuras Básicas en C++
Estructuras Básicas en C++Estructuras Básicas en C++
Estructuras Básicas en C++
 
Taller de drupal7
Taller de drupal7Taller de drupal7
Taller de drupal7
 
Taller de drupal7
Taller de drupal7Taller de drupal7
Taller de drupal7
 
Drupal Sitebuilding 101
Drupal Sitebuilding 101Drupal Sitebuilding 101
Drupal Sitebuilding 101
 
Drupal para bibliotecas, archivos y lo que sea menester
Drupal para bibliotecas, archivos y lo que sea menesterDrupal para bibliotecas, archivos y lo que sea menester
Drupal para bibliotecas, archivos y lo que sea menester
 
Arquitectura de proyectos Drupal
Arquitectura de proyectos DrupalArquitectura de proyectos Drupal
Arquitectura de proyectos Drupal
 
DRUPAL
DRUPALDRUPAL
DRUPAL
 
Zanjai-como-entorno-de-programacion
Zanjai-como-entorno-de-programacionZanjai-como-entorno-de-programacion
Zanjai-como-entorno-de-programacion
 

More from Cristian Mamani

Keycloak - Tu guarura para dar seguridad a tus aplicaciones de Backend y Fron...
Keycloak - Tu guarura para dar seguridad a tus aplicaciones de Backend y Fron...Keycloak - Tu guarura para dar seguridad a tus aplicaciones de Backend y Fron...
Keycloak - Tu guarura para dar seguridad a tus aplicaciones de Backend y Fron...Cristian Mamani
 
El futuro de PHP y Drupal
El futuro de PHP y DrupalEl futuro de PHP y Drupal
El futuro de PHP y DrupalCristian Mamani
 
Freelancer Day Cochabamba - La importancia de las comunidades para las empresas
Freelancer Day Cochabamba - La importancia de las comunidades para las empresasFreelancer Day Cochabamba - La importancia de las comunidades para las empresas
Freelancer Day Cochabamba - La importancia de las comunidades para las empresasCristian Mamani
 
Drupal camp São Paulo - A vizinhança do drupal 8
Drupal camp São Paulo  - A vizinhança do drupal 8Drupal camp São Paulo  - A vizinhança do drupal 8
Drupal camp São Paulo - A vizinhança do drupal 8Cristian Mamani
 
Distribuições no Drupal
Distribuições no DrupalDistribuições no Drupal
Distribuições no DrupalCristian Mamani
 
Ahora si nos tocó el 8 - Lo nuevo de Drupal 8 y predicciones
Ahora si nos tocó el 8 - Lo nuevo de Drupal 8 y prediccionesAhora si nos tocó el 8 - Lo nuevo de Drupal 8 y predicciones
Ahora si nos tocó el 8 - Lo nuevo de Drupal 8 y prediccionesCristian Mamani
 
Domando a Drupal con Drush
Domando a Drupal con DrushDomando a Drupal con Drush
Domando a Drupal con DrushCristian Mamani
 
Drupal, mucho más que un CMS
Drupal, mucho más que un CMSDrupal, mucho más que un CMS
Drupal, mucho más que un CMSCristian Mamani
 
La comunidad Drupal en Bolivia
La comunidad Drupal en BoliviaLa comunidad Drupal en Bolivia
La comunidad Drupal en BoliviaCristian Mamani
 
Instalación de wysiwyg en drupal 7
Instalación de wysiwyg en drupal 7Instalación de wysiwyg en drupal 7
Instalación de wysiwyg en drupal 7Cristian Mamani
 
Un vistazo a la administración web de drupal 7
Un vistazo a la administración web de drupal 7Un vistazo a la administración web de drupal 7
Un vistazo a la administración web de drupal 7Cristian Mamani
 
Comercio electrónico con Drupal - Un vistazo a Drupal Commerce
Comercio electrónico con Drupal - Un vistazo a Drupal CommerceComercio electrónico con Drupal - Un vistazo a Drupal Commerce
Comercio electrónico con Drupal - Un vistazo a Drupal CommerceCristian Mamani
 
Instalación de drupal 7 en windows y en ubuntu
Instalación de drupal 7 en windows y en ubuntuInstalación de drupal 7 en windows y en ubuntu
Instalación de drupal 7 en windows y en ubuntuCristian Mamani
 
Drupal empezando con drupal
Drupal   empezando con drupalDrupal   empezando con drupal
Drupal empezando con drupalCristian Mamani
 

More from Cristian Mamani (16)

Keycloak - Tu guarura para dar seguridad a tus aplicaciones de Backend y Fron...
Keycloak - Tu guarura para dar seguridad a tus aplicaciones de Backend y Fron...Keycloak - Tu guarura para dar seguridad a tus aplicaciones de Backend y Fron...
Keycloak - Tu guarura para dar seguridad a tus aplicaciones de Backend y Fron...
 
El futuro de PHP y Drupal
El futuro de PHP y DrupalEl futuro de PHP y Drupal
El futuro de PHP y Drupal
 
Freelancer Day Cochabamba - La importancia de las comunidades para las empresas
Freelancer Day Cochabamba - La importancia de las comunidades para las empresasFreelancer Day Cochabamba - La importancia de las comunidades para las empresas
Freelancer Day Cochabamba - La importancia de las comunidades para las empresas
 
Drupal camp São Paulo - A vizinhança do drupal 8
Drupal camp São Paulo  - A vizinhança do drupal 8Drupal camp São Paulo  - A vizinhança do drupal 8
Drupal camp São Paulo - A vizinhança do drupal 8
 
Distribuições no Drupal
Distribuições no DrupalDistribuições no Drupal
Distribuições no Drupal
 
Ahora si nos tocó el 8 - Lo nuevo de Drupal 8 y predicciones
Ahora si nos tocó el 8 - Lo nuevo de Drupal 8 y prediccionesAhora si nos tocó el 8 - Lo nuevo de Drupal 8 y predicciones
Ahora si nos tocó el 8 - Lo nuevo de Drupal 8 y predicciones
 
Domando a Drupal con Drush
Domando a Drupal con DrushDomando a Drupal con Drush
Domando a Drupal con Drush
 
Drupal, mucho más que un CMS
Drupal, mucho más que un CMSDrupal, mucho más que un CMS
Drupal, mucho más que un CMS
 
La comunidad Drupal en Bolivia
La comunidad Drupal en BoliviaLa comunidad Drupal en Bolivia
La comunidad Drupal en Bolivia
 
Instalación de wysiwyg en drupal 7
Instalación de wysiwyg en drupal 7Instalación de wysiwyg en drupal 7
Instalación de wysiwyg en drupal 7
 
Dristribuciones Drupal
Dristribuciones DrupalDristribuciones Drupal
Dristribuciones Drupal
 
Un vistazo a la administración web de drupal 7
Un vistazo a la administración web de drupal 7Un vistazo a la administración web de drupal 7
Un vistazo a la administración web de drupal 7
 
Comercio electrónico con Drupal - Un vistazo a Drupal Commerce
Comercio electrónico con Drupal - Un vistazo a Drupal CommerceComercio electrónico con Drupal - Un vistazo a Drupal Commerce
Comercio electrónico con Drupal - Un vistazo a Drupal Commerce
 
Instalación de drupal 7 en windows y en ubuntu
Instalación de drupal 7 en windows y en ubuntuInstalación de drupal 7 en windows y en ubuntu
Instalación de drupal 7 en windows y en ubuntu
 
Drupal empezando con drupal
Drupal   empezando con drupalDrupal   empezando con drupal
Drupal empezando con drupal
 
Autopistas en Bolivia
Autopistas en BoliviaAutopistas en Bolivia
Autopistas en Bolivia
 

Recently uploaded

pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITMaricarmen Sánchez Ruiz
 
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdfRefrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdfvladimiroflores1
 
Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxLolaBunny11
 
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
 
Modulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdfModulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdfAnnimoUno1
 
Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanamcerpam
 
Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estossgonzalezp1
 
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
 
presentacion de PowerPoint de la fuente de poder.pptx
presentacion de PowerPoint de la fuente de poder.pptxpresentacion de PowerPoint de la fuente de poder.pptx
presentacion de PowerPoint de la fuente de poder.pptxlosdiosesmanzaneros
 
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
 
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptxEL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptxMiguelAtencio10
 
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxPROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxAlan779941
 
Presentación de elementos de afilado con esmeril
Presentación de elementos de afilado con esmerilPresentación de elementos de afilado con esmeril
Presentación de elementos de afilado con esmerilJuanGallardo438714
 
Desarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfDesarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfJulian Lamprea
 
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
 

Recently uploaded (15)

pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNIT
 
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdfRefrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
 
Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptx
 
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
 
Modulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdfModulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdf
 
Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvana
 
Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estos
 
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
 
presentacion de PowerPoint de la fuente de poder.pptx
presentacion de PowerPoint de la fuente de poder.pptxpresentacion de PowerPoint de la fuente de poder.pptx
presentacion de PowerPoint de la fuente de poder.pptx
 
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
 
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptxEL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
 
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxPROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
 
Presentación de elementos de afilado con esmeril
Presentación de elementos de afilado con esmerilPresentación de elementos de afilado con esmeril
Presentación de elementos de afilado con esmeril
 
Desarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfDesarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdf
 
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
 

Programación de módulos para Drupal 7

  • 1. Programación de módulos para Drupal 7 Cristian Mamani @xjkwak
  • 2. ¿Qué es Drupal? ● Drupal es un CMS - CMF (respuesta rápida) ● Drupal es meta tool, una herramienta para crear herramientas de administración de contenido web. ● Drupal es una comunidad. ● Creado en el año 2000 por Dries Buytaert y liberado con licencia GPL el año 2001.
  • 3. Conceptos Drupal ● Entidades: Tipos de objetos a los que podemos ● ● ● ● asociar campos ○ Los nodos(contenidos) , usuarios, taxonomías, archivos y comentarios son entidades del núcleo. Bloques: Trozos de contenido o código con distintas funcionalidades se pueden colocar en cualquier región del tema. Menús: Grupo de enlaces que permiten acceso a páginas o regiones de estas. Temas: Permiten cambiar el aspecto gráfico. Módulos: Añaden funcionalidad al core. Drupal es un sistema modular que entrelaza funcionalidades
  • 4. The Drupal Way ● Antes de intentar crear código propio: ○ Busca solucionar usando módulos populares en lo posible. ○ Busca solucionar usando módulos que extiendan módulos populares en vez que módulos aislados. ● Si es necesario que crees código propio compártelo con la comunidad.
  • 5. Módulos básicos Busca antes de intentar programar... ● Views.- Permite sacar vistas de los contenidos. ● Panels.- Flexibilidad para la disposición de ● elementos. Rules.- Acciones y grupos condicionadas por eventos. Flag.- Marcado de contenidos. Display Suite.- Modificar la presentación. Pathauto.- Generación de alias de url/path ● ● ● .... muchos más Los módulos contribuidos se han desarrollado gracias a la
  • 6. Módulos útiles para el desarrollo ● Devel.- Facilita la tareas de programación y trae utilidades de administración. ● Coder.- Ayuda a seguir los estándares de codificación Drupal. ● Admin_menu.- Permite acceder a todas las opciones del menú de administración rápidamente. ● Module_filter.- Un mejor listado de módulos. ● Examples.- Ejemplos de código de las APIs
  • 7. Entorno de desarrollo Drupal es preferente de LAMP Sistema Operativo: Linux, Windows, Mac_OS, ... Servidor web: Apache, AOLServer, IIS, Tomcat, ... DBMS: Mysql, MariaBD, postgresSQL, ... Lenguaje: Php. Editores: Eclipse, Netbeans, Vim, Vi, Emacs, ... Control de Versiones: GIT, SVN Drush: Línea de comandos para Drupal.
  • 8. Arquitectura de Drupal Secuencia de eventos cuando una solicitud es procesada por Drupal: An Introduction to Drupal Architecture - John VanDyk (DrupalCamp Des Moines, lowa
  • 9. Hooks Los Hooks (Ganchos) permiten a los módulos involucrarse con lo que está sucediendo en el resto del sistema web Drupal. Los Hooks son el medio de comunicarle a Drupal que hacer y cuando hacerlo. Ejemplo: Un usuario inicia sesión => Drupal llama a la función hook_user_login() en la cual podemos validar su zona horaria y decirle por su nombre buenos días o buenas tardes.
  • 10. Hooks: ¿Como funcionan? Usaremos un ejemplo básico para un módulo llamado initialization: /** * Implements hook_init(). */ function initialization_init() { if (drupal_is_front_page()) { drupal_set_message(t("Hello world!")); } }
  • 11. APIs del Core y algunos hooks ● Menu System ○ hook_menu() ○ hook_menu_alter() ● Theme System ○ hook_theme() ● Mail System ○ hook_mail() ● BlockAPI ○ hook_block_info() ○ hook_block_view() ...más en...
  • 12. Desarrollo de módulos PHP Necesario: ● Elementalmente usaremos: ○ Arrays asociativos: Ej. creación de un botón submit en un formulario: $form['submit'] = array( '#type' => 'submit', '#value' => t('Submit') ); ○ Funciones. (Los hooks son funciones.) ● Se puede emplear POO y todo lo que se sabe en php pero la forma de comunicarse con drupal será mediante
  • 13. Desarrollo de módulos Estándares de codificación Tienen por objetivo permitir código legible y bien estructurado para poder ser compartido. ● ● ● Identación con 2 espacios. No se usan tabs Todos los operadores binarios (+, -, =, !=, etc.) tienen un espacio a ambos lados. Las estructuras de control (if, for, while, shitch, etc) de la forma: if (condition1 || condition2) { } ● Módulos inician siempre con <?php y no se cierra el tag. Revisar http://drupal.org/coding-standards
  • 14. Desarrollo de módulos ARCHIVOS ● mi_modulo.info información básica sobre el módulo ● mi_modulo.install configuraciones y estructuras ● mi_modulo.module código del módulo, en forma de funciones PHP ● Archivos de documentación README.txt, INSTALL.txt,... ● OTROS: .tpl Librerias, clases o funciones, .css, .js
  • 15. Desarrollo de temas ARCHIVOS ● mi_tema.info Información básica sobre el tema ● template.php Reescritura de hooks del core. Con esto podemos añadir compartamientos adicionales dependiendo el proposito del tema. ● Archivos tpl.php Rescritura de tipos de nodos, bloques, vistas, etc. podemos hacer una carpeta llamada "templates/" y colocar dentro todos los tpl.php que vayamos a reescribir. Otros: logo.png, screenshot.png, color.inc, etc.. ● Más información: http://drupal.org/node/171194
  • 16. Referencias Conceptos generales http://drupal.org/node/19828 API Drupal http://api.drupal.org Ambiente de desarrollo http://drupal.org/setting-up-development-environment Estándares de codificación http://drupal.org/coding-standards Ejemplos de módulos http://api.drupal.org/api/search/7/example