Curso Drupal. Creacion de modulos en Drupal

5,463 views
5,350 views

Published on

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

No Downloads
Views
Total views
5,463
On SlideShare
0
From Embeds
0
Number of Embeds
324
Actions
Shares
0
Downloads
0
Comments
0
Likes
3
Embeds 0
No embeds

No notes for slide

Curso Drupal. Creacion de modulos en Drupal

  1. 1. MÓDULO 7Ampliar la funcionalidad del gestor de contenidos. Creación de módulos
  2. 2. MÓDULO 7:Creación de módulos con Drupal Índice: 1. Introducción 2. Introducción a PHP 3. Modulos con Drupal 4. Principales Hooks
  3. 3. MÓDULO 7:Creación de módulos con Drupal Introducción: En este módulo se pretende hacer una introducción a la creación de módulos con drupal. Se presentarán módulos que nos ayuden a la hora del desarrollo de nuestros módulos. Se presentarán los conceptos básicos de los módulos en Drupal. Se presentarán los Hooks más utilizados.
  4. 4. MÓDULO 7:Creación de módulos con Drupal Php: • Sensibilidad a mayúsculas y minúsculas: variables SI, funciones, clases y palabras reservadas NO. echo(“hola”); Equivalentes Echo(“hola”); • Las sentencias se separan con “;”. Sólo opcional antes de la etiqueta de cierre de PHP. • Los espacios en blanco no importan en php Buscar($a, $cadena) ; Buscar( $a, $cadena );
  5. 5. MÓDULO 7:Creación de módulos con Drupal Php: • Comentarios: • De una linea: “//” . $x = 17; // La variable x vale 17 • De varias lineas: “/* */” . /* En este trozo de código vamos a sumar dos variable */
  6. 6. MÓDULO 7: Creación de módulos con Drupal Php:• Variables: Comienzan siempre con el símbolo “$”.• Constantes: define(‘MI_CONSTANTE’, 20);• Tipos de datos: • Escalares: - Boolean: Verdadero o Falso. 1 y 0, TRUE FALSE - Integer: Números enteros. 65, 075(octal) 0x10 (hex) - Float: Decimales 3.14 0.314E1 - String: Cadenas. “Una cadena” , ‘ Una cadena’. • Compuestos: - Array: array ( key => value) Key: Integer o String, Value: Cualquier valor.
  7. 7. MÓDULO 7:Creación de módulos con Drupal Php: … - Object: class prueba { function acceder_prueba { echo “Hola"; } } $var = new prueba; $var->acceder_prueba();
  8. 8. MÓDULO 7: Creación de módulos con Drupal Php: • Sentencia If: if (expr) sentencia b) <?php c) <?phpa) <?php if ($a > $b) { if ($a > $b) {if ($a > $b) { echo "a es mayor que b"; echo "a es mayor que b"; echo "a es mayor que b"; } elseif ($a == $b) { } else { $b = $a; echo "a es igual que b"; echo "a NO es mayor que} } else { b";?> echo "a es menor que b"; } ?> } ?>
  9. 9. while (expr) sentencia MÓDULO 7: Creación de módulos con Drupal Php: • Sentencia while: while (expr) sentencia <?php $i = 1; $i = 1; while ($i <= 10): while ($i <= 10) { echo $i; echo $i++; $i++; } endwhile; ?>
  10. 10. MÓDULO 7:Creación de módulos con Drupal Php: • Sentencia do-while: <?php $i = 0; do { echo $i; } while ($i > 0); ?>
  11. 11. MÓDULO 7:Creación de módulos con Drupal Php: • Sentencia for: for (expr1; expr2; expr3) sentencia for ($i = 1; ; $i++) { if ($i > 10) { break; } echo $i; }
  12. 12. MÓDULO 7:Creación de módulos con Drupal Php: • Sentencia foreach: foreach (array_expression as $value) sentencias foreach (array_expression as $key => $value) sentencias
  13. 13. MÓDULO 7:Creación de módulos con Drupal Php: <?php • Sentencia switch: if ($i == 0) { switch ($i) { echo "i es igual a 0"; case 0: } elseif ($i == 1) { echo "i es igual a echo "i es igual a 1"; 0"; } elseif ($i == 2) { break; echo "i es igual a 2"; case 1: } echo "i es igual a 1"; break; case 2: echo "i es igual a 2"; break; } ?>
  14. 14. MÓDULO 7:Creación de módulos con Drupal Funciones: • Los nombres de las fuciones son insensibles a mayúsculas-minúsculas • Un nombre de función válido comienza con una letra o guión bajo, seguido de cualquier número de letras, números, o guiones bajos. • <?php function nombre_funcion($arg_1, $arg_2, /* ..., */ $arg_n) { echo "Función de ejemplo.n"; return $valordevuelto; } ?> •
  15. 15. MÓDULO 7:Creación de módulos con Drupal Funciones: (argumentos) • pasados por referencia: o Permite modificar los argumentos pasados a una funcion o hay que poner delante del nombre del argumento el signo ampersand (&) o <?php function añadir_algo(&$cadena) { $cadena .= y algo más.; } $cad = Esto es una cadena, ; añadir_algo($cad); echo $cad; // imprime Esto es una cadena, y algo más. ?>
  16. 16. MÓDULO 7:Creación de módulos con Drupal Funciones: (argumentos) • argumentos predeterminados: • <?php function hacercafe($tipo = "capuchino") { return "Hacer una taza de $tipo.n"; } echo hacercafe(); echo hacercafe(null); echo hacercafe("espresso"); ?>
  17. 17. MÓDULO 7:Creación de módulos con Drupal Funciones: (argumentos) • argumentos de longitud variable <?php function foo() { $num_args = func_num_args(); echo "Número de argumentos: $num_args<br />n"; if ($num_args >= 2) { echo "El segundo argumento es: " . func_get_arg(1) . "<br />n"; } } foo (1, 2, 3); ?>
  18. 18. MÓDULO 7:Creación de módulos con Drupal Funciones: function ordenación_de_burbuja($array){ $count = count($array); //Cuento los elementos del arreglo if ($count <= 0) return false; //Si no hay elementos entonces que voy ordenar? retorno falso for($i=0; $i<$count; $i++){//Recorro cada uno de los elementos for($j=$i+1; $j<$count; $j++){ if ($array[$j] < $array[$i]){//Comparo si hay un elemento del arreglo menor que el de la posicion i, si es asi intercambio posiciones $tmp = $array[$j]; $array[$j] = $array[$i]; $array[$i] = $tmp; } } } return $array; }
  19. 19. MÓDULO 7:Creación de módulos con Drupal Formularios: <FORM NAME=mi_formulario ACTION=procesar.php METHOD=POST> ........ </FORM> • NAME: el nombre del formulario para luego ser referenciado en el código. • ACTION: indica la página de destino a la que se deben mandar los datos del formulario. • METHOD: indica cómo se deben pasar los parámetros: • POST: se mandan como variables “ocultas”. • GET: las variables se mandan dentro de la URL de destino. • Los valores se recogerán en: • Si hemos usado METHOD=GET tendremos un array asociativo $_GET[“nombre_var”] para referenciar cada variable del formulario. • Si hemos usado METHOD=POST el array será $_POST[“nombre_var”].
  20. 20. MÓDULO 7:Creación de módulos con Drupal Formularios: • Etiqueta INPUT para texto corto <input type="text" name="nombre"> <input type="text" name="nombre" value="Perico Palotes"> • Etiqueta INPUT, modalidad de texto oculto <input type="password" name="nombre"> • Etiqueta TEXTAREA para texto largo <textarea name="comentario" rows="10" cols="40"></textarea> •Listas de opciones <select name="estacion"> <option value=“P”>Primavera</option> <option value=“V”>Verano</option> <option value=“O”>Otoño</option> <option value=“I”>Invierno</option> </select>
  21. 21. MÓDULO 7:Creación de módulos con Drupal Formularios: • Botones de radio <input type="radio" name="estacion" value="1">Primavera <br> <input type="radio" name="estacion" value="2">Verano <br> <input type="radio" name="estacion" value="3">Otoño <br> <input type="radio" name="estacion" value="4">Invierno • Cajas de validación <input type="checkbox" name="paella“ value=“YES”>Me gusta la paella • Botón de envío de formulario (botón de submit) <input type="submit" value="Enviar"> • Botón de borrado (botón de reset) <input type="reset" value="Borrar">
  22. 22. MÓDULO 7:Creación de módulos con Drupal Formularios: • Datos ocultos (campos hidden) <input type=hidden name="sitio" value="www.terra.es">
  23. 23. MÓDULO 7:Creación de módulos con Drupal Creacion de módulos: • A la hora de desarrollar un sitio o una aplicación web, aparecen una serie de funcionalidades que no son cubiertas por los módulos existentes. • No existe un módulo similar : • Desarrollar completamente el módulo. • Existe un módulo similar. • Funcionalidades adicionales a ese módulo a base de parches ("patches"). • Se puede optar por desarrollar un módulo nuevo, reutilizando código
  24. 24. MÓDULO 7:Creación de módulos con Drupal Creacion de módulos: Dónde los coloco? • Carpeta modules: No es recomendable y sólo debería usarse para los módulos que vienen por defecto con Drupal. • En la carpeta sites: Aquí hay varias opciones. • Carpeta Default (visible para el sitio por defecto de Drupal), en la • Carpeta All (visible para todos los sitios en caso de una instalación multisite) o lo podemos instalar en la carpeta de un sitio en concreto para que sólo sea visible para ese sitio. Como norma general los módulos se instalan en la carpeta sites/all/modules/nombremodulo.(En caso de no existir la carpeta modules/nombremodulo , la crearemos).
  25. 25. MÓDULO 7:Creación de módulos con Drupal Creacion de módulos: Qué archivos necesito? • nombremodulo.info : que contiene "metainformación del modulo". • nombremodulo.module: que contiene el código del módulo. • nombremodulo.install (opcional): que contiene parámetros de configuración, esquemas de la base de datos, información para desinstalación …
  26. 26. MÓDULO 7:Creación de módulos con Drupal Archivo .info ; $Id$ Obligatorios name = nombremodulo descripcion = Breve descripcion de lo que hace el módulo. core = 6.x (version de Drupal con la que es compatible) Opcionales dependencies[] = nombre del modulo del que depende (especifica el nombre del módulo o módulos que son necesarios para que nuestro módulo funcione correctamente). package = "grupo" .
  27. 27. MÓDULO 7:Creación de módulos con Drupal Sistema de Hooks: • El sistema de módulos de Drupal se basa en el concepto de "Hooks". • <nombremimodulo>_hook_name(). Ejemplo: hook_block() => nombremimodulo_block() • http://api.drupal.org/api/drupal/includes--module.inc/group/hooks/6
  28. 28. MÓDULO 7:Creación de módulos con Drupal Sistema de Hooks: • hook_menu() • hook_link($type, $object, $teaser = FALSE) • hook_perm() • hook_block($op = list, $delta = 0, $edit = array()) • hook_form_alter(&$form, &$form_state, $form_id) • hook_nodeapi(&$node, $op, $a3 = NULL, $a4 = NULL)
  29. 29. MÓDULO 7:Creación de módulos con Drupal Funciones: • Forms Api de Drupal • drupal_get_form($form_id) • system_settings_form($form) • variable_get($name, $default) • variable_set($name, $value) • Database abstraction layer
  30. 30. MÓDULO 7:Creación de módulos con Drupal Módulos: • Devel. • Drupal for Firebug • Coder
  31. 31. MÓDULO 7:Creación de módulos con Drupal RESUMEN: En este módulo hemos aprendido a: • Usar herramientas que nos ayuden a la creación de módulos en drupal. • Los “hooks” más habituales a la hora de creación de módulos. • La utilización de la API de Drupal.

×