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.

Curso Drupal. Creacion de modulos en Drupal

  • Login to see the comments

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.

×