POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
Curso Drupal. Creacion de modulos en Drupal
1. MÓDULO 7
Ampliar la funcionalidad del gestor de
contenidos.
Creación de módulos
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. 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. 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. 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. 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. 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. MÓDULO 7:
Creación de módulos con Drupal
Php:
• Sentencia If: if (expr)
sentencia
b) <?php c) <?php
a) <?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. 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. MÓDULO 7:
Creación de módulos con Drupal
Php:
• Sentencia do-while:
<?php
$i = 0;
do {
echo $i;
} while ($i > 0);
?>
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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. MÓDULO 7:
Creación de módulos con Drupal
Módulos:
• Devel.
• Drupal for Firebug
• Coder
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.