Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Programación de módulos para Drupal 7

5,011 views

Published on

Programación de módulos en Drupal 7.

Published in: Technology
  • Be the first to comment

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

×