0
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...
Conceptos Drupal
● Entidades: Tipos de objetos a los que podemos

●
●
●
●

asociar campos
○ Los nodos(contenidos) , usuari...
The Drupal Way
● Antes de intentar crear código propio:
○ Busca solucionar usando módulos populares en lo
posible.
○ Busca...
Módulos básicos
Busca antes de intentar programar...
● Views.- Permite sacar vistas de los contenidos.
● Panels.- Flexibil...
Módulos útiles para el desarrollo
● Devel.- Facilita la tareas de programación y
trae utilidades de administración.
● Code...
Entorno de desarrollo
Drupal es preferente de LAMP
Sistema Operativo: Linux, Windows, Mac_OS, ...
Servidor web: Apache, AO...
Arquitectura de Drupal
Secuencia de eventos cuando una solicitud es
procesada por Drupal:

An Introduction to Drupal Archi...
Hooks
Los Hooks (Ganchos) permiten a los módulos involucrarse
con lo que está sucediendo en el resto del sistema web
Drupa...
Hooks: ¿Como funcionan?
Usaremos un ejemplo básico para un módulo
llamado initialization:
/**
* Implements hook_init().
*/...
APIs del Core y algunos hooks
● Menu System
○ hook_menu()
○ hook_menu_alter()

● Theme System
○ hook_theme()

● Mail Syste...
Desarrollo de módulos
PHP Necesario:
● Elementalmente usaremos:
○ Arrays asociativos: Ej. creación de un botón submit
en u...
Desarrollo de módulos
Estándares de codificación
Tienen por objetivo permitir código legible y bien estructurado para pode...
Desarrollo de módulos
ARCHIVOS
● mi_modulo.info
información básica sobre el módulo
● mi_modulo.install
configuraciones y e...
Desarrollo de temas
ARCHIVOS
● mi_tema.info
Información básica sobre el tema

● template.php
Reescritura de hooks del core...
Referencias
Conceptos generales
http://drupal.org/node/19828

API Drupal
http://api.drupal.org

Ambiente de desarrollo
htt...
Upcoming SlideShare
Loading in...5
×

Programación de módulos para Drupal 7

2,886

Published on

Programación de módulos en Drupal 7.

Published in: Technology
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
2,886
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
49
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

Transcript of "Programación de módulos para Drupal 7"

  1. 1. Programación de módulos para Drupal 7 Cristian Mamani @xjkwak
  2. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×