Programación de módulos para Drupal 7
Upcoming SlideShare
Loading in...5
×
 

Programación de módulos para Drupal 7

on

  • 2,028 views

Programación de módulos en Drupal 7.

Programación de módulos en Drupal 7.

Statistics

Views

Total Views
2,028
Views on SlideShare
2,028
Embed Views
0

Actions

Likes
2
Downloads
25
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Programación de módulos para Drupal 7 Programación de módulos para Drupal 7 Presentation Transcript

    • 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