Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Training: How begin Drupal 7 modules development? Introducción

Training: How begin Drupal 7 modules development? Introducción

Primera parte del curso, el objetivo es saber como empezar a desarrolllar módulos en drupal 7 y en entendimiendo del sistema de hooks.

1.Introducción
Módulos Drupal
Tipos de módulos
Estructura de un módulo Drupal
Flujo de desarrollo
Principios del código de Drupal
Errores comunes de programación en Drupal
Entendiendo el sistema de hooks de Drupal
2. Desarrollando el primer módulo Drupal
¿Cúal es la funcionalidad de nuestro módulo?
Escribiendo el archivo module.info
Escribiendo el archivo module.install
Desarrollando la lógica del módulo

igasi

June 17, 2014
Tweet

More Decks by igasi

Other Decks in Programming

Transcript

  1. Principios del código de Drupal • Modular y extensible •

    Código de calidad • Basado en estándar • Open Source • Uso fácil • Colaboración
  2. Errores comunes en Desarrollo • Desarrollar módulos custom para todo

    • Uso incorrecto del caché u olvidar que existe • Instalar módulos sin leer las instrucciones • No hacer un backup del sitio • Tener un desorden en el sitio
  3. Entendiendo el sistema de HOOKS • Un módulo Drupal es

    una colección de archivos que contienen alguna funcionalidad y esta escrita en PHP. • Un módulo no es diferente de un archivo PHP regular que puede ser creado y probado de forma independiente y luego se usa para conducir múltiples funcionalidades.
  4. HOOKS 2 • Este enfoque permite que el núcleo de

    Drupal para llamar a lugares específicos ciertas funciones definidas en módulos y mejorar la funcionalidad del núcleo. Los lugares donde se puede ejecutar código son llamados 'ganchos' y se definen mediante una interfaz fija.
  5. HOOKS 3 • Los ganchos son cómo los módulos pueden

    interactuar con el código del núcleo de Drupal. • Lista de hooks https://api.drupal. org/api/drupal/includes%21module. inc/group/hooks/7
  6. HOOKS 4 • Los hooks se producen en varios puntos

    en el subproceso de ejecución, donde Drupal busca las contribuciones de todos los módulos activados.
  7. Ejemplo Cuando un usuario visita una página de ayuda en

    un sitio de Drupal, como Drupal construye la página de ayuda se le dará a cada módulo de la oportunidad de contribuir documentación acerca de sí mismo. Lo hace mediante el escaneo de todo el código del módulo de funciones que tienen el nombre mymodule_help($ ruta, $ arg), donde ‘mymodule' es el nombre del módulo.
  8. HOOKS 5 • Un gancho puede ser pensado como un

    detector de eventos en el sentido de que un suceso active una acción. • Ejemplo: el evento en Drupal, como eliminar un nodo, desencadenaría el hook 'hook_delete'. Si el módulo implementado hook_delete, esa función se ejecutaría cuando se produjo una supresión de nodos.
  9. Desarrollando un módulo custom block Creando una carpeta custom_block1 Creando

    archivo custom_block1.info name= Custom block 1 by igasi description= "Custom block to show image and any content" core= "7.x" package= "Digizent Modules"
  10. Archivo custom_block1.module <?php /** * Implements hook_help(). */ function custom_block1_help($path,

    $arg) { if ($path == 'admin/help#custom_block1') { $output = '<h3>' . t('About') . '</h3>'; $output .= '<p>' . t('This module display an image and custom content') . '</p>'; $output .= '<p>' . t('and is my first module Drupal in Digizent.') . '</p>'; return $output; } }
  11. Definiendo block /** * Implements of hook_block_info() */ function custom_block1_block_info()

    { $blocks['customblock1'] = array ( 'info' => t('Custom block 1 by igasi'), ); return $blocks; }
  12. Configurando la vista /** * Implements of hook_block_view(); * $delta

    contains the block ids */ function custom_block1_block_view($delta='') { $block =array(); switch ($delta) { case 'customblock1': $block['subject'] = t('My first content in a block'); $block['content'] = _custom_block1_content(); break; } return $block; }
  13. Contenido del block /* * Function auxiliary for content block

    */ function _custom_block1_content(){ return ' <p><div class="body"> Hello World, this is a example custom Block <img src="http://blog.moigoi.com/wp-content/uploads/2013/04/win-win-win-win.jpg"> </div></p> '; }
  14. Habilitando Sólo resta… • Habilitar el módulo ◦ drush en

    -y custom_block1 • Podría ser necesario borrar cache ◦ drush cc all • Ir a admin/structure/block y colocar “My first content in a block” en alguna region • Saltar de alegría… XD