SlideShare ist ein Scribd-Unternehmen logo
1 von 31
MÓDULO 7
Ampliar la funcionalidad del gestor de
             contenidos.
        Creación de módulos
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
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.
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
                                        );
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
                                   */
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.
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();
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";
                           }
                           ?>                           }
                                                        ?>
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;
                                         ?>
MÓDULO 7:
Creación de módulos con Drupal

  Php:

  • Sentencia do-while:
   <?php
   $i = 0;
   do {
      echo $i;
   } while ($i > 0);
   ?>
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;
         }
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
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;
                                                 }
                                                 ?>
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;
      }
      ?>
  •
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.'
         ?>
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");
      ?>
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);
 ?>
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;
 }
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”].
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>
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">
MÓDULO 7:
Creación de módulos con Drupal


 Formularios:
  • Datos ocultos (campos hidden)
      <input type=hidden name="sitio" value="www.terra.es">
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
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).
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 …
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" .
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
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)
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
MÓDULO 7:
Creación de módulos con Drupal

  Módulos:

 • Devel.
 • Drupal for Firebug
 • Coder
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.

Weitere ähnliche Inhalte

Was ist angesagt?

Caracteristicas generales de PHP
Caracteristicas generales de PHPCaracteristicas generales de PHP
Caracteristicas generales de PHPMiguel Pinto
 
Intro aplicaciones web con php
Intro aplicaciones web con phpIntro aplicaciones web con php
Intro aplicaciones web con phpFer Nando
 
Perl (practical extraction and report language)
Perl (practical extraction and report language)Perl (practical extraction and report language)
Perl (practical extraction and report language)Oliver Centeno
 
Informe grupal f_arinango_ cuenca
Informe grupal f_arinango_ cuencaInforme grupal f_arinango_ cuenca
Informe grupal f_arinango_ cuencapaulcuenca9
 
Curso Javascript profesionales
Curso Javascript profesionalesCurso Javascript profesionales
Curso Javascript profesionalesRedradix
 
Guía práctica desarrollo web con php 5 y my sql
Guía práctica desarrollo web con php 5 y my sqlGuía práctica desarrollo web con php 5 y my sql
Guía práctica desarrollo web con php 5 y my sqlJesus Machicado Gomez
 
05. Creando e implementando objetos y métodos
05. Creando e implementando objetos y métodos05. Creando e implementando objetos y métodos
05. Creando e implementando objetos y métodosDanae Aguilar Guzmán
 
Guia N3 Proyectos Web Php Css, Js
Guia N3   Proyectos Web   Php Css, JsGuia N3   Proyectos Web   Php Css, Js
Guia N3 Proyectos Web Php Css, JsJose Ponce
 
Tutorial3 Desymfony - La Vista. Twig
Tutorial3 Desymfony - La Vista. TwigTutorial3 Desymfony - La Vista. Twig
Tutorial3 Desymfony - La Vista. TwigMarcos Labad
 
ORM Doctrine
ORM DoctrineORM Doctrine
ORM DoctrineDecharlas
 

Was ist angesagt? (20)

Caracteristicas generales de PHP
Caracteristicas generales de PHPCaracteristicas generales de PHP
Caracteristicas generales de PHP
 
Curso php y_my_sql
Curso php y_my_sqlCurso php y_my_sql
Curso php y_my_sql
 
Php Basico
Php BasicoPhp Basico
Php Basico
 
Intro aplicaciones web con php
Intro aplicaciones web con phpIntro aplicaciones web con php
Intro aplicaciones web con php
 
3 Introducción al lenguaje PHP
3 Introducción al lenguaje PHP3 Introducción al lenguaje PHP
3 Introducción al lenguaje PHP
 
Funciones en php
Funciones en phpFunciones en php
Funciones en php
 
Perl (practical extraction and report language)
Perl (practical extraction and report language)Perl (practical extraction and report language)
Perl (practical extraction and report language)
 
Informe grupal f_arinango_ cuenca
Informe grupal f_arinango_ cuencaInforme grupal f_arinango_ cuenca
Informe grupal f_arinango_ cuenca
 
Tema2[php]
Tema2[php]Tema2[php]
Tema2[php]
 
Curso Javascript profesionales
Curso Javascript profesionalesCurso Javascript profesionales
Curso Javascript profesionales
 
Guía práctica desarrollo web con php 5 y my sql
Guía práctica desarrollo web con php 5 y my sqlGuía práctica desarrollo web con php 5 y my sql
Guía práctica desarrollo web con php 5 y my sql
 
05. Creando e implementando objetos y métodos
05. Creando e implementando objetos y métodos05. Creando e implementando objetos y métodos
05. Creando e implementando objetos y métodos
 
Php1 sesión 6
Php1 sesión 6Php1 sesión 6
Php1 sesión 6
 
Guia N3 Proyectos Web Php Css, Js
Guia N3   Proyectos Web   Php Css, JsGuia N3   Proyectos Web   Php Css, Js
Guia N3 Proyectos Web Php Css, Js
 
Desymfony 2011 - Twig
Desymfony 2011 - TwigDesymfony 2011 - Twig
Desymfony 2011 - Twig
 
Cómo domar SonataAdminBundle
Cómo domar SonataAdminBundleCómo domar SonataAdminBundle
Cómo domar SonataAdminBundle
 
Tutorial3 Desymfony - La Vista. Twig
Tutorial3 Desymfony - La Vista. TwigTutorial3 Desymfony - La Vista. Twig
Tutorial3 Desymfony - La Vista. Twig
 
Backend (sf2Vigo)
Backend (sf2Vigo)Backend (sf2Vigo)
Backend (sf2Vigo)
 
ORM Doctrine
ORM DoctrineORM Doctrine
ORM Doctrine
 
Tutorial de php
Tutorial de phpTutorial de php
Tutorial de php
 

Andere mochten auch

Pasos para la instalacion de drupal 7
Pasos para la instalacion de drupal 7Pasos para la instalacion de drupal 7
Pasos para la instalacion de drupal 7Franklin Cando
 
Generar miles de seguidores para facebook
Generar miles de seguidores para facebook Generar miles de seguidores para facebook
Generar miles de seguidores para facebook Jose W. Silverio
 
Cómo hacer una página en facebook
Cómo hacer una página en facebookCómo hacer una página en facebook
Cómo hacer una página en facebookJL Akarregi
 
Taller de drupal7
Taller de drupal7Taller de drupal7
Taller de drupal7Rojomorgan
 
Creando módulos en Drupal 7
Creando módulos en Drupal 7Creando módulos en Drupal 7
Creando módulos en Drupal 7Edgar Dueñas
 
Tot_el_modul
Tot_el_modulTot_el_modul
Tot_el_modulESEC
 
Manual De Usuario Drupal
Manual De Usuario DrupalManual De Usuario Drupal
Manual De Usuario DrupalMarco Yandun
 
Drupal 7 (2)
Drupal 7 (2)Drupal 7 (2)
Drupal 7 (2)jecol59
 
Curso Facebook Avanzado - Webinar Semrush
Curso Facebook Avanzado - Webinar SemrushCurso Facebook Avanzado - Webinar Semrush
Curso Facebook Avanzado - Webinar SemrushUnai Benito
 
cómo crear una página oficial en facebook
cómo crear una página oficial en facebookcómo crear una página oficial en facebook
cómo crear una página oficial en facebookguest096994
 

Andere mochten auch (15)

Drupal
DrupalDrupal
Drupal
 
Pasos para la instalacion de drupal 7
Pasos para la instalacion de drupal 7Pasos para la instalacion de drupal 7
Pasos para la instalacion de drupal 7
 
Generar miles de seguidores para facebook
Generar miles de seguidores para facebook Generar miles de seguidores para facebook
Generar miles de seguidores para facebook
 
Cómo hacer una página en facebook
Cómo hacer una página en facebookCómo hacer una página en facebook
Cómo hacer una página en facebook
 
Taller de drupal7
Taller de drupal7Taller de drupal7
Taller de drupal7
 
Facebook per empreses
Facebook per empresesFacebook per empreses
Facebook per empreses
 
Taller de Drupal 7
Taller de Drupal 7Taller de Drupal 7
Taller de Drupal 7
 
Creando módulos en Drupal 7
Creando módulos en Drupal 7Creando módulos en Drupal 7
Creando módulos en Drupal 7
 
Temas Drupal
Temas DrupalTemas Drupal
Temas Drupal
 
Tot_el_modul
Tot_el_modulTot_el_modul
Tot_el_modul
 
Redes sociales con drupal
Redes sociales con drupalRedes sociales con drupal
Redes sociales con drupal
 
Manual De Usuario Drupal
Manual De Usuario DrupalManual De Usuario Drupal
Manual De Usuario Drupal
 
Drupal 7 (2)
Drupal 7 (2)Drupal 7 (2)
Drupal 7 (2)
 
Curso Facebook Avanzado - Webinar Semrush
Curso Facebook Avanzado - Webinar SemrushCurso Facebook Avanzado - Webinar Semrush
Curso Facebook Avanzado - Webinar Semrush
 
cómo crear una página oficial en facebook
cómo crear una página oficial en facebookcómo crear una página oficial en facebook
cómo crear una página oficial en facebook
 

Ähnlich wie Curso Drupal. Creacion de modulos en Drupal (20)

Introducción a PHP - Programador PHP - UGR
Introducción a PHP - Programador PHP - UGRIntroducción a PHP - Programador PHP - UGR
Introducción a PHP - Programador PHP - UGR
 
Php1
Php1Php1
Php1
 
Php1
Php1Php1
Php1
 
Php1
Php1Php1
Php1
 
Php1
Php1Php1
Php1
 
Php
PhpPhp
Php
 
Php1
Php1Php1
Php1
 
Php
PhpPhp
Php
 
Php1
Php1Php1
Php1
 
Php1
Php1Php1
Php1
 
Manual basico de PHP
Manual basico de PHPManual basico de PHP
Manual basico de PHP
 
Manual de php basico
Manual de php basicoManual de php basico
Manual de php basico
 
0139-php-y-mysql-lenguaje-php-basico.pdf
0139-php-y-mysql-lenguaje-php-basico.pdf0139-php-y-mysql-lenguaje-php-basico.pdf
0139-php-y-mysql-lenguaje-php-basico.pdf
 
IntroducciónPHP.pptx
IntroducciónPHP.pptxIntroducciónPHP.pptx
IntroducciónPHP.pptx
 
Curso php-my sql-clase-3
Curso php-my sql-clase-3Curso php-my sql-clase-3
Curso php-my sql-clase-3
 
Mini manual php
Mini manual phpMini manual php
Mini manual php
 
Php informacion
Php informacion Php informacion
Php informacion
 
Introducción a php
Introducción a phpIntroducción a php
Introducción a php
 
Fundamento de poo en php
Fundamento de poo en phpFundamento de poo en php
Fundamento de poo en php
 
Php
PhpPhp
Php
 

Mehr von Mediaglobe Innova

Taller Arquitectura Web para Optimización SEO
Taller Arquitectura Web para Optimización SEOTaller Arquitectura Web para Optimización SEO
Taller Arquitectura Web para Optimización SEOMediaglobe Innova
 
Comercio Electronico con Drupal
Comercio Electronico con DrupalComercio Electronico con Drupal
Comercio Electronico con DrupalMediaglobe Innova
 
Sesion DrupalCamp Spain 2011
Sesion DrupalCamp Spain 2011Sesion DrupalCamp Spain 2011
Sesion DrupalCamp Spain 2011Mediaglobe Innova
 
Curso Drupal. Sitios multiidoma
Curso Drupal. Sitios multiidomaCurso Drupal. Sitios multiidoma
Curso Drupal. Sitios multiidomaMediaglobe Innova
 
Curso Drupal. Gestion de usuarios y control de acceso
Curso Drupal. Gestion de usuarios y control de accesoCurso Drupal. Gestion de usuarios y control de acceso
Curso Drupal. Gestion de usuarios y control de accesoMediaglobe Innova
 
Curso Drupal. Theming con Drupal
Curso Drupal. Theming con DrupalCurso Drupal. Theming con Drupal
Curso Drupal. Theming con DrupalMediaglobe Innova
 
Curso Drupal. Administración, instalación y configuración de módulos
Curso Drupal. Administración, instalación y configuración de módulosCurso Drupal. Administración, instalación y configuración de módulos
Curso Drupal. Administración, instalación y configuración de módulosMediaglobe Innova
 
Curso Drupal. Instalación y configuracion de Drupal
Curso Drupal. Instalación y configuracion de DrupalCurso Drupal. Instalación y configuracion de Drupal
Curso Drupal. Instalación y configuracion de DrupalMediaglobe Innova
 

Mehr von Mediaglobe Innova (11)

Drupal 8, presente y futuro
Drupal 8, presente y futuroDrupal 8, presente y futuro
Drupal 8, presente y futuro
 
Taller Arquitectura Web para Optimización SEO
Taller Arquitectura Web para Optimización SEOTaller Arquitectura Web para Optimización SEO
Taller Arquitectura Web para Optimización SEO
 
Comercio Electronico con Drupal
Comercio Electronico con DrupalComercio Electronico con Drupal
Comercio Electronico con Drupal
 
Aplicaciones Web con Drupal
Aplicaciones Web con DrupalAplicaciones Web con Drupal
Aplicaciones Web con Drupal
 
Sesion DrupalCamp Spain 2011
Sesion DrupalCamp Spain 2011Sesion DrupalCamp Spain 2011
Sesion DrupalCamp Spain 2011
 
Curso Drupal. SEO
Curso Drupal. SEOCurso Drupal. SEO
Curso Drupal. SEO
 
Curso Drupal. Sitios multiidoma
Curso Drupal. Sitios multiidomaCurso Drupal. Sitios multiidoma
Curso Drupal. Sitios multiidoma
 
Curso Drupal. Gestion de usuarios y control de acceso
Curso Drupal. Gestion de usuarios y control de accesoCurso Drupal. Gestion de usuarios y control de acceso
Curso Drupal. Gestion de usuarios y control de acceso
 
Curso Drupal. Theming con Drupal
Curso Drupal. Theming con DrupalCurso Drupal. Theming con Drupal
Curso Drupal. Theming con Drupal
 
Curso Drupal. Administración, instalación y configuración de módulos
Curso Drupal. Administración, instalación y configuración de módulosCurso Drupal. Administración, instalación y configuración de módulos
Curso Drupal. Administración, instalación y configuración de módulos
 
Curso Drupal. Instalación y configuracion de Drupal
Curso Drupal. Instalación y configuracion de DrupalCurso Drupal. Instalación y configuracion de Drupal
Curso Drupal. Instalación y configuracion de Drupal
 

Kürzlich hochgeladen

pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITMaricarmen Sánchez Ruiz
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)GDGSucre
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveFagnerLisboa3
 
Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxLolaBunny11
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíassuserf18419
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan JosephBRAYANJOSEPHPEREZGOM
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx241521559
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricKeyla Dolores Méndez
 
Desarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfDesarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfJulian Lamprea
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...silviayucra2
 

Kürzlich hochgeladen (10)

pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNIT
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
 
Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptx
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnología
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Joseph
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
 
Desarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfDesarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdf
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
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.