SlideShare una empresa de Scribd logo
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

Más contenido relacionado

PDF
Creando módulos en Drupal 7
PDF
Taller de Drupal - Sesión 4
PDF
Taller de Drupal - Sesion 1
PDF
Taller de Drupal - Sesión 3
DOCX
Trabajo practico 2
PDF
Taller de Drupal - Sesión 2
PPTX
Componentes y Librerías - Tópicos avanzados de programación.
PPTX
Drupal conceptos básicos y su alcance en proyectos
Creando módulos en Drupal 7
Taller de Drupal - Sesión 4
Taller de Drupal - Sesion 1
Taller de Drupal - Sesión 3
Trabajo practico 2
Taller de Drupal - Sesión 2
Componentes y Librerías - Tópicos avanzados de programación.
Drupal conceptos básicos y su alcance en proyectos

La actualidad más candente (19)

PDF
Guia herramientas de bd
DOC
codigos HTLM
DOC
Manual del desarrollador
DOCX
Php
PDF
Arrays renderizables y Estándares de codificación en Drupal
PDF
Acceso a-base-de-datos-en-php
PPTX
PPT
PHP IUTE
PDF
Desarrollar un módulo para joomla
DOC
Trabajo practico 2
PDF
Generalidades php
ODP
Iniciación PHP 5. PHP y MySQL
PPTX
Framework
PDF
Semana 4 Estructura y componentes SPA
PDF
Taller Drupal Php Conference
PDF
Yupa cesar 6_s_t1_2
DOCX
Tutorial de teamviewer3
PPTX
Presentación1
Guia herramientas de bd
codigos HTLM
Manual del desarrollador
Php
Arrays renderizables y Estándares de codificación en Drupal
Acceso a-base-de-datos-en-php
PHP IUTE
Desarrollar un módulo para joomla
Trabajo practico 2
Generalidades php
Iniciación PHP 5. PHP y MySQL
Framework
Semana 4 Estructura y componentes SPA
Taller Drupal Php Conference
Yupa cesar 6_s_t1_2
Tutorial de teamviewer3
Presentación1
Publicidad

Destacado (20)

PDF
Curso Liferay 6.2: Unidad Didáctica 05 Workflow
PDF
Curso de Liferay 6.2: Unidad didáctica 04 Gestión de un Sitio Web
PDF
Curso Liferay 6.2: Unidad Didáctica 07 Colaboración
PDF
Curso de Liferay 6.2: Unidad Didáctica 00 Introducción
PDF
Curso Liferay 6.2: Unidad Didáctica 06 Gestion de Documentos
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
Curso de Magento 1.9: Unidad Didáctica 08 Estructura de un Tema
PDF
Liferay 6.2: Unidad Didáctica 03 Administración básica
PDF
BBCON 2011 - Sharing Work: Independent Schools using Online Campus Community
PDF
The Lindorff European Credit Outlook 2015
PDF
Recursos energetics (I)
PDF
Manual de instalación drupal 7.2 mejorado Universidad de Los Andes
PPTX
(2015-09-29) DOCTOR, QUIERO DEJAR DE FUMAR (PPT)
PDF
Creating Voice Powered Apps with Ribbit
DOCX
Inglés básico i inicial i - goicochea
PDF
CBRE EMEA GBS - Interview with Maciej Piwowarczyk | (8-13 page) Outsourcing M...
PPTX
Métodos de programación, diagramas y pseudocódigos
PPTX
Programacion Modular
PPT
Programación Modular y Estructyrada
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 Liferay 6.2: Unidad Didáctica 07 Colaboración
Curso de Liferay 6.2: Unidad Didáctica 00 Introducción
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 01 Instalación
Curso de Magento 1.9: Unidad Didáctica 08 Estructura de un Tema
Liferay 6.2: Unidad Didáctica 03 Administración básica
BBCON 2011 - Sharing Work: Independent Schools using Online Campus Community
The Lindorff European Credit Outlook 2015
Recursos energetics (I)
Manual de instalación drupal 7.2 mejorado Universidad de Los Andes
(2015-09-29) DOCTOR, QUIERO DEJAR DE FUMAR (PPT)
Creating Voice Powered Apps with Ribbit
Inglés básico i inicial i - goicochea
CBRE EMEA GBS - Interview with Maciej Piwowarczyk | (8-13 page) Outsourcing M...
Métodos de programación, diagramas y pseudocódigos
Programacion Modular
Programación Modular y Estructyrada
Publicidad

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

PDF
¡This is drupal!
PDF
Presentando drupal en xalapa
PDF
This is Drupal! (Basics)
PDF
Drupal - Introducción
PDF
¡This is drupal! - Global Training Days
PDF
[DrupalCampSpain2023] Introducción al desarrollo de módulos en Drupal 10
PDF
Presentando drupal
PDF
Taller drupal 8 tuxtepec
ODP
Presentación Drupal
PDF
DrupalCamp Spain 2014: Introducción al desarrollo de módulos en Drupal 7
PPTX
DRUPAL
ODP
Introduccion drupal
ODP
Presentando Drupal en el Flisol Xalapa
PDF
Introduccion técnica a Drupal
PDF
e-Ghost 2014: introducción al desarrollo de módulos en drupal 7
PDF
Taller de drupal7
PDF
PDF
Drupal para desarrolladores
PPT
Introduccion a Drupal
ODP
Drupal mas que un cms
¡This is drupal!
Presentando drupal en xalapa
This is Drupal! (Basics)
Drupal - Introducción
¡This is drupal! - Global Training Days
[DrupalCampSpain2023] Introducción al desarrollo de módulos en Drupal 10
Presentando drupal
Taller drupal 8 tuxtepec
Presentación Drupal
DrupalCamp Spain 2014: Introducción al desarrollo de módulos en Drupal 7
DRUPAL
Introduccion drupal
Presentando Drupal en el Flisol Xalapa
Introduccion técnica a Drupal
e-Ghost 2014: introducción al desarrollo de módulos en drupal 7
Taller de drupal7
Drupal para desarrolladores
Introduccion a Drupal
Drupal mas que un cms

Más de Cristian Mamani (16)

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

Último (20)

PDF
taller de informática - LEY DE OHM
PPTX
RAP01 - TECNICO SISTEMAS TELEINFORMATICOS.pptx
PDF
Estrategia de apoyo tecnología grado 9-3
PPTX
Presentación PASANTIAS AuditorioOO..pptx
PDF
Estrategia de apoyo tecnología miguel angel solis
PPTX
Propuesta BKP servidores con Acronis1.pptx
PPT
introduccion a las_web en el 2025_mejoras.ppt
PDF
Plantilla para Diseño de Narrativas Transmedia.pdf
PPTX
historia_web de la creacion de un navegador_presentacion.pptx
PDF
MÓDULO DE CALOR DE GRADO DE MEDIO DE FORMACIÓN PROFESIONAL
PPTX
ANCASH-CRITERIOS DE EVALUACIÓN-FORMA-10-10 (2).pptx
PDF
programa-de-estudios-2011-guc3ada-para-el-maestro-secundarias-tecnicas-tecnol...
PDF
CyberOps Associate - Cisco Networking Academy
PPTX
Power Point Nicolás Carrasco (disertación Roblox).pptx
PPTX
Acronis Cyber Protect Cloud para Ciber Proteccion y Ciber Seguridad LATAM - A...
PPT
Que son las redes de computadores y sus partes
PDF
Maste clas de estructura metálica y arquitectura
PPTX
Sesion 1 de microsoft power point - Clase 1
PDF
Liceo departamental MICRO BIT (1) 2.pdfbbbnn
PPTX
COMO AYUDAN LAS TIC EN LA EDUCACION SUPERIOR.pptx
taller de informática - LEY DE OHM
RAP01 - TECNICO SISTEMAS TELEINFORMATICOS.pptx
Estrategia de apoyo tecnología grado 9-3
Presentación PASANTIAS AuditorioOO..pptx
Estrategia de apoyo tecnología miguel angel solis
Propuesta BKP servidores con Acronis1.pptx
introduccion a las_web en el 2025_mejoras.ppt
Plantilla para Diseño de Narrativas Transmedia.pdf
historia_web de la creacion de un navegador_presentacion.pptx
MÓDULO DE CALOR DE GRADO DE MEDIO DE FORMACIÓN PROFESIONAL
ANCASH-CRITERIOS DE EVALUACIÓN-FORMA-10-10 (2).pptx
programa-de-estudios-2011-guc3ada-para-el-maestro-secundarias-tecnicas-tecnol...
CyberOps Associate - Cisco Networking Academy
Power Point Nicolás Carrasco (disertación Roblox).pptx
Acronis Cyber Protect Cloud para Ciber Proteccion y Ciber Seguridad LATAM - A...
Que son las redes de computadores y sus partes
Maste clas de estructura metálica y arquitectura
Sesion 1 de microsoft power point - Clase 1
Liceo departamental MICRO BIT (1) 2.pdfbbbnn
COMO AYUDAN LAS TIC EN LA EDUCACION SUPERIOR.pptx

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