Introducción a Drupal

Keopx
Keopx Drupal Developer at Isarea
Introducción a Drupal




                                         Fecha: 21/01/2010
                                         Autor: Ruben Egiguren




Introducción a Drupal
                                                                 Oficinas certificadas: Bilbao y Madrid
ÍNDICE

       •   Introducción a Drupal
       •   Herramientas de administración
       •   Instalación de Drupal
       •   Configuración básica
       •   Módulos mas usados
       •   Diseño de un tema
       •   Modulo básico
       •   Fuentes




2
    Introducción a Drupal
                                            Oficinas certificadas: Bilbao y Madrid
Introducción a Drupal




3
    Introducción a Drupal
                                                    Oficinas certificadas: Bilbao y Madrid
¿Qué es Drupal?

       Definición
       Drupal es un programa libre, con licencia GNU/GPL, escrito en PHP, desarrollado y mantenido
       por una activa comunidad de usuarios. Destaca por la calidad de su código y de las páginas
       generadas, el respeto de los estándares de la web, y un énfasis especial en la usabilidad y
       consistencia de todo el sistema.

       Drupal es un sistema de gestión de contenido modular multiproposito y muy configurable que
       permite publicar artículos, imágenes, u otros archivos y servicios añadidos como foros, encuestas,
       votaciones, blogs y administración de usuarios y permisos. Drupal es un sistema dinámico: en
       lugar de almacenar sus contenidos en archivos estáticos en el sistema de ficheros del servidor de
       forma fija, el contenido textual de las páginas y otras configuraciones son almacenados en una
       base de datos y se editan utilizando un entorno Web.

       El diseño de Drupal es especialmente idóneo para construir y gestionar comunidades en Internet.
       No obstante, su flexibilidad y adaptabilidad, así como la gran cantidad de módulos adicionales
       disponibles, hace que sea adecuado para realizar muchos tipos diferentes de sitio web.

       Fuente: Wikipedia



4
    Introducción a Drupal
                                                                                                  Oficinas certificadas: Bilbao y Madrid
¿Qué es Drupal?

       CMS/CMF

       • Content Management System (Gestor de contenidos)
       • Content Management Framework (marco de trabajo, API,...)

       • Community Management System (creación de comunidades,... )
       • Communication Management System (sistemas de
           comunicación,...)




5
    Introducción a Drupal
                                                                    Oficinas certificadas: Bilbao y Madrid
¿Qué es Drupal?

       Drupal como CMS

       • Control sobre el flujo de creación, edición, borrado y
           publicación de contenidos.
       •   Categorización y organización de contenido.
       •   Gestión de usuarios y roles. Privacidad, control de
           acceso.
       •   Presentación de contenido en diversos formatos.
       •   Sistema ampliable y extensible.



6
    Introducción a Drupal
                                                             Oficinas certificadas: Bilbao y Madrid
¿Qué es Drupal?

       Drupal como Framework

       • Capa de abstracción sobre la base de datos.
       • Sistema de plantillas (themes) separado de la lógica.
       • Librerías ajax. Por defecto jQuery.
       • Seguridad, identificación de usuarios y configuración
         de permisos personalizable.
       • Herramientas de caché a varios niveles.
       • API para desarrolladores pública y disponible:
         http://api.drupal.org/


7
    Introducción a Drupal
                                                          Oficinas certificadas: Bilbao y Madrid
¿Qué es Drupal?

       Multiplataforma (LAMP / WAMP /XAMP)




8
    Introducción a Drupal
                                             Oficinas certificadas: Bilbao y Madrid
¿Qué es Drupal?

       Drupal es software libre
       •   Publicado bajo licencia GNU/GPL 2 o superior.
       •   Libre descarga, modificación y reutilización.
       •   Distribución bajo la misma licencia.
       •   Todos los plugins (módulos) y plantillas (temas) que
           se incluyen tanto en la descarga inicial como en las
           descargas desde el repositorio oficial tienen licencia
           GPL.



9
    Introducción a Drupal
                                                               Oficinas certificadas: Bilbao y Madrid
¿Qué es Drupal?
        Licencia GPL
        • Libertades del software libre
               – Artículo principal: Definición del Software Libre
        • De acuerdo con tal definición, el software es "libre" si garantiza las
              siguientes libertades:
          Libertad                                        Descripción
          0            la libertad de usar el programa, con cualquier propósito.
          1            la libertad de estudiar cómo funciona el programa y modificarlo, adaptándolo a
                       tus necesidades.
          2            la libertad de distribuir copias del programa, con lo cual puedes ayudar a tu
                       prójimo.
          3            la libertad de mejorar el programa y hacer públicas esas mejoras a los demás,
                       de modo que toda la comunidad se beneficie.
          Las libertades 1 y 3 requieren acceso al código fuente porque estudiar y modificar software sin su
                                          código fuente es muy poco viable.

10
     Introducción a Drupal
                                                                                                        Oficinas certificadas: Bilbao y Madrid
¿Qué es Drupal?

        Arquitectura




11
     Introducción a Drupal
                             Oficinas certificadas: Bilbao y Madrid
¿Qué es Drupal?
        Directorios




12
     Introducción a Drupal
                             Oficinas certificadas: Bilbao y Madrid
¿De dónde viene?

        Dries Buytaert
        •   Fundador de Drupal.
        •   Ciudadano Belga.
        •   Código fuente abierto en 2001.
        •   Publicado bajo licencia GNU/GPL 2 o superior.
        •   El dominio original, drop.org es un error tipográfico
            de su creador, Dries Buytaert.
        •   Drupal es el equivalente fonético en inglés a la
            palabra neerlandesa druppel que significa 'gota'.


13
     Introducción a Drupal
                                                                Oficinas certificadas: Bilbao y Madrid
¿Qué puedo hacer con él?

        •   Portales corporativos.   •   Galerías de fotos.
        •   Intranets.               •   Galerías de vídeos.
        •   Blogs.                   •   E-commerce.
        •   Foros.                   •   E-learning.
        •   Comunidades.             •   Aplicaciones.
        •   Wikis.                   •   ...
        •   Eventos.




14
     Introducción a Drupal
                                                               Oficinas certificadas: Bilbao y Madrid
¿Quién lo está usando?
        •   Medios. (http://www.vt4.be/)
        •   Corporativos. (http://www.bilbomatica.es)
        •   Organizaciones sin animo de lucro. (http://www.amnesty.org/)
        •   Educación. (http://www.harvardscience.harvard.edu/)
        •   Software. (http://www.spreadfirefox.com/)
        •   Políticos. (http://www.premier.fgov.be) Primer Ministro Belga.
        •   Gobiernos. (http://www.whitehouse.gov/)
        •   Artistas. (http://www.ericclapton.com/)
        •   Sanidad. (http://www.uzleuven.be/)
        •   Revistas. (http://clint.be/)
        •   Noticias. (http://www.france24.com/)
        •   …

15
     Introducción a Drupal
                                                                        Oficinas certificadas: Bilbao y Madrid
¿Quién es quién en Drupal?

        Dries Buytaert
        • Fundador y desarrollador
            líder de Drupal.
        •   Mantenedor principal del
            núcleo.
        •   Creador y propietario de la
            marca.




16
     Introducción a Drupal
                                          Oficinas certificadas: Bilbao y Madrid
¿Quién es quién en Drupal?

        Mantenedores de la ramas
                    • Neil Drumm (D5)
                                              • Gabor Hojtsy (D6)




                             • Angie Byron (D7)
17
     Introducción a Drupal
                                                              Oficinas certificadas: Bilbao y Madrid
¿Quién es quién en Drupal?

        Mantenedores y colaboradores
        •   Mantenedores.
        •   Colaboradores del núcleo.
        •   Colaboradores de módulos.
        •   Colaboradores del temas.
        •   Colaboradores de de traducciones.
        •   Colaboradores de documentación.
        •   Equipo de seguridad.



18
     Introducción a Drupal
                                                Oficinas certificadas: Bilbao y Madrid
Algunas características interesantes
        •   Creación de contenidos.
        •   Taxonomías.
        •   Menús.
        •   Estados de publicación.
        •   Gestión de usuarios.
        •   Permisos.
        •   RSS.
        •   Multilenguaje.
        •   Traducción de contenidos.
        •   Formularios.
        •   Multisitios.
        •   …

19
     Introducción a Drupal
                                            Oficinas certificadas: Bilbao y Madrid
Algunas características interesantes

        Puntos fuertes de Drupal
        • Extensible: gran cantidad de módulos contribuidos y una
            buena API para desarrollos propios.
        •   Flexible.
        •   Seguridad: equipo dedicado a la seguridad, granularidad
            de permisos, …
        •   Sistema de plantillas muy potente.
        •   Comunidad: centralizada, activa y numerosa.
        •   Soporte: una comunidad activa y disponibilidad de
            profesionales.
        •   Software libre y gratuito.

20
     Introducción a Drupal
                                                                 Oficinas certificadas: Bilbao y Madrid
Algunas características interesantes

        Puntos débiles de Drupal


        • Curva de aprendizaje inicial pronunciada.

        • Interfaz por defecto poco amigable.

        • Compatibilidad inversa.



21
     Introducción a Drupal
                                                      Oficinas certificadas: Bilbao y Madrid
¿Cómo construir un sitio de Drupal?

        Antes de comenzar

        •   Análisis de requisitos.
        •   Arquitectura de información.
        •   Usabilidad.
        •   Diseño.




22
     Introducción a Drupal
                                           Oficinas certificadas: Bilbao y Madrid
¿Cómo construir un sitio de Drupal?

        Tareas a realizar

        • Seleccionar módulos existentes que implementen la
            funcionalidad solicitada.
        •   Adaptar módulos con funcionalidades inexistentes.
        •   Crear módulos a medida. (El objetivo es desarrollar lo menos
            posible y utilizar el máximo de módulos desarrollados por la
            comunidad, esto conlleva menor trabajo de desarrollo)
        •   Instalación y configuración.
        •   Crear o adaptar un tema para personalizar la apariencia.
        •   Personalizar y adaptar entorno visual. (Bloques, menús,...).
        •   Lanzamiento.
        •   Mantenimiento.
23
     Introducción a Drupal
                                                                    Oficinas certificadas: Bilbao y Madrid
¿Qué tecnológicas están involucradas
     en un buen sitio de Drupal?
        Programación


        • PHP

        • API de Drupal




24
     Introducción a Drupal
                                            Oficinas certificadas: Bilbao y Madrid
¿Qué tecnológicas están involucradas
     en un buen sitio de Drupal?
        Cliente


        •   HTML – XHTML
        •   CSS
        •   JavaScript
        •   jQuery




25
     Introducción a Drupal
                                            Oficinas certificadas: Bilbao y Madrid
¿Qué tecnológicas están involucradas
     en un buen sitio de Drupal?
        Diseño
        • Libres
             – Gimp
             – Inkscape
        •   Propietarias
             – Adobe Photoshop
             – Adobe Illustrator




26
     Introducción a Drupal
                                            Oficinas certificadas: Bilbao y Madrid
¿Qué tecnológicas están involucradas
     en un buen sitio de Drupal?
        Servidor

        • Sistema operativo
           – Linux (recomendado)
           – Windows
           – Mac OS X
        • Servidor Web
           – Apache (recomendado)
           – IIS
        • Base de datos
           – MySQL (recomendado)
           – PostgreSQL
        • Red
27
     Introducción a Drupal
                                            Oficinas certificadas: Bilbao y Madrid
¿Qué tecnológicas están involucradas
     en un buen sitio de Drupal?
        Algunos extras
        •   Ajax
        •   XML-RPC
        •   Servicios web
        •   XML
        •   Flash




28
     Introducción a Drupal
                                            Oficinas certificadas: Bilbao y Madrid
¿Cual es el estado actual de Drupal?


        • Drupal 5
             – En mantenimiento (antigua)
        •   Drupal 6
             – En mantenimiento (actual)
        •   Drupal 7
             – Congelada (en correcciones)




29
     Introducción a Drupal
                                             Oficinas certificadas: Bilbao y Madrid
¿Cual es el estado actual de Drupal?

        Algunos premios ganados
        •   Webware 100 2007
        •   Webware 100 2008
        •   Webware 100 2009
        •   Overall Open Source CMS 2007
        •   Overall Open Source CMS 2008
        •   Best Open Source PHP CMS 2009
        •   Hall of Fame 2009
        •   …

30
     Introducción a Drupal
                                            Oficinas certificadas: Bilbao y Madrid
Herramientas de administración




31
     Introducción a Drupal
                                                  Oficinas certificadas: Bilbao y Madrid
MySQL



        • MySQL Admin

        • MySQL Query Brownser

        • Phpmyadmin




32
     Introducción a Drupal
                                 Oficinas certificadas: Bilbao y Madrid
Administración de ficheros



        • FileZilla

        • WinSCP




33
     Introducción a Drupal
                                  Oficinas certificadas: Bilbao y Madrid
Administración de sistemas



        • Putty (comandos)

        • VNC

        • Escritorio remoto




34
     Introducción a Drupal
                                  Oficinas certificadas: Bilbao y Madrid
Administración de Drupal



        •   Firefox
        •   Opera
        •   Chrome – Chromium
        •   Internet Explorer
        •   Cualquier otro navegador web




35
     Introducción a Drupal
                                           Oficinas certificadas: Bilbao y Madrid
Instalación de Drupal




36
     Introducción a Drupal
                                                     Oficinas certificadas: Bilbao y Madrid
GNU/Linux

        Se recomienda que los servidores de producción corran
        sobre la siguiente arquitectura:

        •   GNU/Linux
        •   Apache
        •   MySQL
        •   PHP




37
     Introducción a Drupal
                                                         Oficinas certificadas: Bilbao y Madrid
GNU/Linux
        Instalación de paquetes
        • Abrir terminal e instalar Apache2, PHP 5 y MySQL 5.1.
        $ sudo aptitude install apache2 mysql-server-5.1     php5 php5-mysql


        Instalación de herramientas
        • Herramientas de administración para MySQL y cliente FTP/SFTP
           (FileZilla).
        $ sudo aptitude install mysql-query-browser mysql-client-5.1 mysql-admin
        mysql-workbench phpmyadmin


        Activar url limpias
        • Activar las url limpias para mejorar la indexación de las paginas y facilitar
           su lectura.
        $ sudo a2enmod rewrite




38
     Introducción a Drupal
                                                                                   Oficinas certificadas: Bilbao y Madrid
GNU/Linux
        Directorio virtual
        • Creamos un fichero con los parámetros de nuestros sitio.
        $ sudo nano /etc/apache2/sites-available/www.drupalexample.com


        <VirtualHost *:80>
               ServerAdmin email@bilbomatica.es
               ServerName www.drupalexample.com
               ServerAlias drupalexample.com
              DocumentRoot /home/usuario/Proyectos/drupalexample/
               <Directory />
                         Options FollowSymLinks
                         AllowOverride All
               </Directory>
               ErrorLog /var/log/apache2/error.log
               # Possible values include: debug, info, notice, warn, error, crit,
               # alert, emerg.
               LogLevel warn
               CustomLog /var/log/apache2/access.log combined
               ServerSignature On
        </VirtualHost>



        • www.drupalexample.com debe ser sustituido por el nombre original del sitio. Si no se realiza así
          a la hora de cambiar la URL dará algún que otro dolor de cabeza. Dependencia de la url.
        • Esta configuración solo es para un desarrollo local. En caso de producción seria recomendable
          crearlo en /var/www/


39
     Introducción a Drupal
                                                                                                    Oficinas certificadas: Bilbao y Madrid
GNU/Linux

        Enlace simbólico
        • Crear el enlace para activar el nuevo sitio creado.
        $ sudo ln -s /etc/apache2/sites-available/www.drupalexample.com
        /etc/apache2/sites-enabled/www.drupalexample.com



        Editar hosts y reiniciar red
        • Editar hosts para el desarrollo en local y así decir en que
            ip esta la web sin pasar por el DNS.
        $ sudo nano /etc/hosts
        89.0.x.x         www.drupalexample.com



        • Reiniciar red
        $ sudo /etc/init.d/networking restart


40
     Introducción a Drupal
                                                                          Oficinas certificadas: Bilbao y Madrid
GNU/Linux

        Crear Base de Datos
        • Abrir la terminal y ejecutar.
        $ mysql -u root -p


        mysql> create database drupalexample CHARACTER SET utf8;
        mysql> GRANT ALL PRIVILEGES ON drupalexample.* TO drupaldbuser@localhost IDENTIFIED
        BY 'fuffy';
        mysql> flush privileges;
        mysql> q
        Bye




41
     Introducción a Drupal
                                                                                     Oficinas certificadas: Bilbao y Madrid
GNU/Linux

        Ficheros de Drupal
        • Abrir terminal e ir a la carpeta del proyecto.
        $ cd /home/usuario/Proyectos/

        • Descargar Drupal.
        $ wget http://ftp.drupal.org/files/projects/drupal-6.15.tar.gz

        • Descomprimir Drupal.
        $ tar xvfz drupal-6.15.tar.gz

        • Renombrar Drupal al nombre del proyecto.
        $ mv drupal-6.15 drupalexample



        Reiniciar Apache
        • Reiniciamos apache para que cargue todas las modificaciones.
        $ sudo /etc/init.d/apache2 restart




42
     Introducción a Drupal
                                                                         Oficinas certificadas: Bilbao y Madrid
Windows

        Para la instalación de windows utilizaremos WAMP.
        Resulta mas fácil la instalación y configuración de:

        • Apache
        • MySQL
        • PHP                     Apache 2.2.11
                                   PHP 5.3.0
                                  MySQL 5.1.36
                                  Phpmyadmin
                                   size: 16Mo



43
     Introducción a Drupal
                                                               Oficinas certificadas: Bilbao y Madrid
Windows

        Descargar e instalar WAMP
        • Descargar WAMP:
        http://downloads.sourceforge.net/project/wampserver/WampServer%202/WampServer
        %202.0/WampServer2.0i.exe?use_mirror=heanet

        • Utilizaremos esta versión del WAMP debido a que Drupal
            6 no soporta PHP 5.3 o superior. Esta instalación
            contiene PHP 5.2.11
        •   Descargar PHP 5.2.11 para WAMP
        http://downloads.sourceforge.net/project/wampserver/WampServer%202%20-
        %20Extensions/PHP/WampServer2-PHP5211.exe?use_mirror=kent

        • Cuando iniciemos WAMP vamos a php y le cambiamos el
            PHP a utilizar.
        •   Tras descargar activamos el modulo rewrite_module.

44
     Introducción a Drupal
                                                                                        Oficinas certificadas: Bilbao y Madrid
Windows

        Directorio virtual
        • Activamos el modulo vhost_alias_module.
        • Editar el fichero httpd.conf y descomentar la siguiente linea:
        Include conf/extra/httpd-vhosts.conf



        • www.drupalexample.com debe ser sustituido por el nombre
          original del sitio. Si no se realiza así a la hora de cambiar la
          URL dará algún que otro dolor de cabeza. Dependencia de la
          url. Hay solución al mismo que se vera mas adelante.
        • Editamos el fichero
          C:wampbinapacheApache2.2.11confextrahttpd-
          vhosts.conf y añadimos solo:


45
     Introducción a Drupal
                                                                      Oficinas certificadas: Bilbao y Madrid
Windows
        NameVirtualHost *:80
        <VirtualHost *:80>
           ServerAdmin webmaster@localhost
           DocumentRoot "c:/wamp/www"
           ServerName localhost
           ErrorLog "logs/localhost-error.log"
           CustomLog "logs/localhost-access.log" common
        </VirtualHost>
        <VirtualHost *:80>
        ServerAdmin email@bilbomatica.es
               ServerName www.drupalexample.com
               ServerAlias drupalexample.com
               DocumentRoot "c:/wamp/www/drupalexample/"
               <Directory "c:/wamp/www/drupalexample/">
                         Options Indexes FollowSymLinks MultiViews
                         AllowOverride All
               </Directory>
               ErrorLog "c:/wamp/logs/apache_error.log"
               # Possible values include: debug, info, notice, warn, error, crit,
               # alert, emerg.
               LogLevel warn
               CustomLog "c:/wamp/logs/access.log" combined
               ServerSignature On
        </VirtualHost>



46
     Introducción a Drupal
                                                                                    Oficinas certificadas: Bilbao y Madrid
Windows
        Editar hosts y reiniciar red
        Con en mismo bloc de notas y editamos
        C:WINDOWSsystem32driversetchosts y añadimos lo siguiente para
        decir en que ip esta la web sin pasar por el DNS:
        89.0.x.x       www.drupalexample.com

        Crear Base de Datos
        • Accedemos mediante WAMP a la consola de MySQL que nos
              proporciona.
        $ mysql -u root -p


        mysql> create database drupalexample CHARACTER SET utf8;
        mysql> GRANT ALL PRIVILEGES ON drupalexample.* TO drupaldbuser@localhost IDENTIFIED BY
        'fuffy';
        mysql> flush privileges;
        mysql> q
        Bye


47
     Introducción a Drupal
                                                                                            Oficinas certificadas: Bilbao y Madrid
Windows

        Ficheros de Drupal

        • Descargamos y descomprimimos (winrar o similar) el fichero en
          c:/wamp/www/ y renombramos la carpeta de drupal-6.15 a
          drupalexample.
        • Descarga: http://ftp.drupal.org/files/projects/drupal-6.15.tar.gz

        Reiniciar Apache

        • Mediantes la herramienta de WAMP reiniciamos los servicios.


48
     Introducción a Drupal
                                                                         Oficinas certificadas: Bilbao y Madrid
Instalando aplicación de Drupal
        Estructura directorios




49
     Introducción a Drupal
                                       Oficinas certificadas: Bilbao y Madrid
Instalando aplicación de Drupal


        •   Vamos a sites.
        •   Copiamos la carpeta default y la llamamos www.drupalexample.com.
        •   Entramos dentro de www.drupalexample.com.
        •   Renombramos default.settings.php a settings.php.
        •   Para sistemas GNU/Linux realizamos lo siguiente
             – settings.php tiene que tener permisos de escritura.
               • chmod 666 settings.php
            – Tras la instalación del portal tenemos que quitarle permisos de escritura.
               • chmod 444 settings.php

        • Creamos la carpeta files en nuestra web (.sites/www.drupalexample.com/files).
            – Cambiar los permisos en GNU/Linux.
               • chmod -R 777 files

        • Creamos la carpeta modules en nuestra web (.sites/www.drupalexample.com/modules).
        • Creamos la carpeta themes en nuestra web (.sites/www.drupalexample.com/themes).
        • Accedemos con cualquier navegador, preferiblemente firefox.

50
     Introducción a Drupal
                                                                                           Oficinas certificadas: Bilbao y Madrid
Instalando aplicación de Drupal
        Perfil
        •   Abrir navegador e ir a http://www.drupalexample.com/install.php.




        •   Elegimos siempre el perfil en ingles para evitar posibles errores posteriores.

51
     Introducción a Drupal
                                                                                             Oficinas certificadas: Bilbao y Madrid
Instalando aplicación de Drupal

        Base de datos




52
     Introducción a Drupal
                                       Oficinas certificadas: Bilbao y Madrid
Instalando aplicación de Drupal

        Configuración del sitio




53
     Introducción a Drupal
                                       Oficinas certificadas: Bilbao y Madrid
Instalando aplicación de Drupal

        Finalizada la instalación




        •   Recordad el cambio de permisos de settings.php
54
     Introducción a Drupal
                                                             Oficinas certificadas: Bilbao y Madrid
Configuración básica




55
     Introducción a Drupal
                                                    Oficinas certificadas: Bilbao y Madrid
Panel administración
     •   Panel general para administrar el portal: http://www.drupalexample.com/es/admin.




56
     Introducción a Drupal
                                                                                            Oficinas certificadas: Bilbao y Madrid
Página de estado
     •   Estado del portal, actualizaciones, versiones, ...: http://www.drupalexample.com/es/admin/reports/status.




57
     Introducción a Drupal
                                                                                                          Oficinas certificadas: Bilbao y Madrid
Módulos
     •   Listado de módulos disponibles y estado de los mismos: http://www.drupalexample.com/es/admin/build/modules.




58
     Introducción a Drupal
                                                                                                            Oficinas certificadas: Bilbao y Madrid
Temas
     •   Listado de temas disponibles, activos y estado de los mismos: http://www.drupalexample.com/es/admin/build/themes.




59
     Introducción a Drupal
                                                                                                             Oficinas certificadas: Bilbao y Madrid
Bloques
     •   Disposición de bloques y configuración de los mismos: http://www.drupalexample.com/es/admin/build/block.




60
     Introducción a Drupal
                                                                                                             Oficinas certificadas: Bilbao y Madrid
Usuarios, roles y permisos
     •   Gestión de usuarios, roles y permisos para el control de los usuarios:
          –   Usuarios: http://www.drupalexample.com/es/admin/user/user.




61
     Introducción a Drupal
                                                                                  Oficinas certificadas: Bilbao y Madrid
Usuarios, roles y permisos
         –   Roles: http://www.drupalexample.com/es/admin/user/roles.




62
     Introducción a Drupal
                                                                        Oficinas certificadas: Bilbao y Madrid
Usuarios, roles y permisos
         –   Permisos de los roles: http://www.drupalexample.com/es/admin/user/permissions.




63
     Introducción a Drupal
                                                                                              Oficinas certificadas: Bilbao y Madrid
Rendimiento/Cache
     •   Configuración para la optimización en la ejecución y consulta de paginas:
         http://www.drupalexample.com/es/admin/settings/performance.




64
     Introducción a Drupal
                                                                                     Oficinas certificadas: Bilbao y Madrid
Actualizar url
            Como se comentaba anteriormente Drupal es dependiente de la url y el cambiar la url afecta directamente a la
        • plataforma. Para cambiar la url se ha de ejecutar unas sentencias SQL.
            Los campos están serializados (s:xx:) con la longitud total del campo (xx es el valor del campo). Al cambiar la
        • url es necesario el adaptar campo numérico con el valor real de la linea.

        UPDATE system SET filename = REPLACE(filename, 'www.example.com', 'www.drupalexample.com');
        UPDATE files SET filepath = REPLACE(filepath, 'www.example.com', 'www.drupalexample.com');
        UPDATE node_revisions SET body = REPLACE(body , 'www.example.com', 'www.drupalexample.com');
        UPDATE node_revisions SET teaser = REPLACE(teaser, 'www.example.com', 'www.drupalexample.com');
        UPDATE variable SET value = REPLACE(value, 's:36:"sites/www.example.com', 's:42:"sites/www.drupalexample.com');
        UPDATE variable SET value = REPLACE(value, 's:31:"sites/www.example.com', 's:37:"sites/www.drupalexample.com');
        UPDATE variable SET value = REPLACE(value, 's:27:"sites/www.example.com', 's:33:"sites/www.drupalexample.com');
        UPDATE variable SET value = REPLACE(value, 's:21:"sites/www.example.com', 's:27:"sites/www.drupalexample.com');
        UPDATE variable SET value = REPLACE(value, 's:46:"sites/www.example.com', 's:52:"sites/www.drupalexample.com');


            En este caso vemos que la diferencia entre www.example.com y www.drupalexample.com es de tan solo 6
        • caracteres. Con modificar el valor s:xx: es suficiente para corregirlo.
            Posteriormente accedemos un par de veces a las siguientes url para que actualice todos los datos.
        •
               www.drupalexample.com/update.php
             –
               www.drupalexample.com/cron.php
             –




65
     Introducción a Drupal
                                                                                                                          Oficinas certificadas: Bilbao y Madrid
Módulos mas usados




66
     Introducción a Drupal
                                                  Oficinas certificadas: Bilbao y Madrid
Módulos más usados

        Estos son algunos de los módulos más usados en Drupal. Se deben
        seleccionar aquellos que sean necesarios para las necesidades del
        proyecto.
        • Visitar: http://drupal.org/project/usage
           – Backup and Migrate: http://drupal.org/project/backup_migrate
           – Poormanscron: http://drupal.org/project/poormanscron
           – Content Construction Kit (CCK): http://drupal.org/project/cck
           – Views: http://drupal.org/project/views
           – Wysiwyg: http://drupal.org/project/wysiwyg
           – Token: http://drupal.org/project/token
           – Pathauto: http://drupal.org/project/pathauto
           – Transliteration: http://drupal.org/project/usage/transliteration
           –…

67
     Introducción a Drupal
                                                                            Oficinas certificadas: Bilbao y Madrid
Diseño de un tema




68
     Introducción a Drupal
                                                 Oficinas certificadas: Bilbao y Madrid
Por qué utilizar ZEN

        • Diseño básico creado para ser adaptado.
        • Provee varios subtemas básicos diseñados para extender.
        • Ficheros CSS base para extender.
             – IDs creadas y posibilidad de extender.
             – Clases creadas y posibilidad de extender.
        •   Contiene layout básicas.
             – Anchura fija.
             – Anchura dinámica.
        •   Capas html básicas para extender.
        •   Capacidad de añadir nuevas:
             – Plantillas.
             – IDs.
             – Clases.
             – Ficheros javascript.

69
     Introducción a Drupal
                                                                    Oficinas certificadas: Bilbao y Madrid
Utilizar como base ZEN
        Instalación

        •   Diseño básico creado para adaptar.
        •   Proyecto: http://drupal.org/project/zen
        •   Documentación: http://drupal.org/node/193318
        •   Descargamos ZEN de:
             – http://ftp.drupal.org/files/projects/zen-6.x-1.1.tar.gz
        •   Descomprimimos el fichero en la carpeta de temas
             – ./drupalexample/sites/www.drupalexample.com/th
               emes

70
     Introducción a Drupal
                                                                  Oficinas certificadas: Bilbao y Madrid
Utilizar como base ZEN
        Crear subtema de Zen
        • Diseño básico creado para adaptar.
        • Documentación subtema: http://drupal.org/node/226507
        • Antes de continuar deshabilita la optimización de CSS y Javascript.
          Visite admin/settings/performance y deshabilite "Optimize CSS files"
          y "Optimize Javascript files".
        • Copia la carpeta STARTERKIT fuera de la carpeta zen/ y renombrela
          como vaya a llamar a tu subtema. IMPORTANTE: solo utilizar
          minúsculas.
           – Por ejemplo, copia la carpeta sites/all/themes/zen/STARTERKIT y
             renombrela a sites/all/themes/foo.
               • ¿Por qué? Cada tema debe residir en su propia carpeta. A
                 diferencia de Drupal 5, los sub-temas pueden (y deben) residir
                 en una carpeta separada de tu tema base.

71
     Introducción a Drupal
                                                                          Oficinas certificadas: Bilbao y Madrid
Utilizar como base ZEN


        • En la carpeta del nuevo subtema, renombra el fichero STARTERKIT.info.txt por el
          incluido en el nombre de tu nuevo subtema. A continuación, edita el archivo .info para
          cambiar cualquier coincidencia de STARTERKIT con el nombre de tu subtema y edita
          el nombre y el campo de descripción.
           – Por ejemplo, cambia el nombre foo/STARTERKIT.info.txt por foo/foo.info. Edita el
             fichero foo.info y cambia "STARTERKIT.css" por "foo.css", cambia “name = Zen
             Sub-theme Starter Kit" a "name = foo", y cambia “description = Read..." a
             "description = A Zen sub-theme".
               • ¿Por qué? El fichero .info describe la información básica sobre tu tema: su
                 nombre, descripción, características, regiones de plantilla, los archivos CSS, y
                 los archivos de JavaScript. Ver Drupal 6 Theme Guide para más información.
           – A continuación, visita en su sitio web admin/build/themes para refrescar la caché
             de Drupal 6 de archivo de datos .info.




72
     Introducción a Drupal
                                                                                           Oficinas certificadas: Bilbao y Madrid
Utilizar como base ZEN

        • Si deseas un diseño dinámico (liquid) para tu tema, copia el esquema de liquid.css de la
            zen/zen y colócala en la carpeta de tu subtema. Si deseas un diseño de ancho fijo para tu
            tema, copia el esquema de fixed.css de la carpeta zen/zen y colócala en la carpeta de tu
            subtemas. Camba el nombre de la hoja de estilo de diseño a "layout.css".
             – Por ejemplo, copia zen/zen/layout-fixed.css y renómbrelo por foo/layout.css. Ten en
               cuenta que el archivo .info ya tiene una entrada para el archivo layout.css.
                • ¿Por qué? En los temas de Drupal 6, si se desea modificar una hoja de estilos
                  incluidos en el tema base o a través un módulo, se debería copiar el estilo del tema
                  base o del directorio de módulos al directorio de tu subtema, y luego agregar la
                  información de su hoja de estilo a archivo. Ver Drupal 6 Theme Guide para más
                  información.
        •   Copia la hoja de estilo zen de la carpeta de zen y colócala en la carpeta de tu subtema.
            Cambia el nombre por el de tu subtema.
             – Por ejemplo, copia zen/zen/zen.css y renombrala a foo/foo.css. Ten en cuenta que el
               archivo .info ya tiene una entrada para el archivo de foo.css y que tu archivo .info
               elimina el archivo zen.css el tema base.




73
     Introducción a Drupal
                                                                                                Oficinas certificadas: Bilbao y Madrid
Utilizar como base ZEN
        • Copia la hoja de estilos de impresión de la carpeta zen y colócala en la carpeta de
            tu subtema.
             – Por ejemplo, copia zen/zen/print.css a foo/print.css. Ten en cuenta que en el
                fichero .info ya existe una entrada print.css.
        •   Copia la hoja de estilos html-elements stylesheet de la carpeta y colócala en la
            carpeta de tu subtema.
             – Por ejemplo, copia zen/zen/html-elements.css a foo/html-elements.css. Ten en
                cuenta que en el fichero .info ya existe una entrada html-elements.css.
        •   Edita los ficheros template.php y settings.php de directorio del subtema;
            reemplaza todas las coincidencias "STARTERKIT" con el nombre de tu subtema.
             – Por ejemplo, edita foo/template.php y foo/theme-settings.php y reemplaza
                "STARTERKIT" por "foo".
        •   Inicie sesión como administrador en el sitio de Drupal y ve a Administer > Site
            building > Themes (admin/build/themes) y activa su nuevo subtema.




74
     Introducción a Drupal
                                                                                        Oficinas certificadas: Bilbao y Madrid
Utilizar como base ZEN
        Opcional
        • Modificar las hojas de estilos del núcleo de Zen: Si decides modificar
           cualquiera de las hojas de estilo en la carpeta de Zen, cópialos a la carpeta
           del subtema antes de hacer cualquier cambio. Además, asegúrate de que la
           nueva hoja de estilo se incluye en el archivo de .info y que ha reconstruido el
           registro de tema.
            – Por ejemplo, copia zen/zen/block-editing.css a foo/block-editing.css. Edita
              foo/foo.info y descomenta la siguiente linea para activarlo:
                • ;stylesheets[all][] = block-editing.css
                • a:
                • stylesheets[all][] = block-editing.css
            – A continuación, visita en su sitio web admin/build/themes para refrescar la
              caché de Drupal 6 de archivo de datos .info.




75
     Introducción a Drupal
                                                                                     Oficinas certificadas: Bilbao y Madrid
Utilizar como base ZEN
        • Modificando los fichero template del núcleo de Zen: Si decides que deseas modificar
          cualquiera de los ficheros plantilla .tpl.php en la carpeta zen, cópialos a la carpeta
          del subtema antes de realizar los cambios. Después reconstruye el regitro de temas.
           – Por ejemplo, copia zen/zen/page.tpl.php a foo/page.tpl.php.
        • Tematizando el formulario de búsqueda en Drupal: Copia el fichero plantilla search-
          theme-form.tpl.php de la carpeta modules/search/ y colócala en la carpeta de su
          subtema. Después reconstruye el regitro de temas.
           – ¿Por qué? Los temas en Drupal, si deseas modificar una plantilla incluida en un
             módulo, deberías copiar el archivo de plantilla desde el directorio del módulo a su
             directorio de subtemas, y luego reconstruir el registro de tema. Ver
             Drupal 6 Theme Guide para más información.
        • Mas ampliaciones para su subtema: Descubre nuevas formas para ampliar tu
          subtema leyendo Drupal 6's Theme Guide.




76
     Introducción a Drupal
                                                                                           Oficinas certificadas: Bilbao y Madrid
Elegir layout y clases
        • Layout para subtema a elegir.
             – Liquid: anchura dinámica, recomendado.
             – Fixed: anchura fija.
            Page.tpl.php: pagina principal de diseño, contiene los campos y áreas principales. Dispone de
        •
            los ids y clases principales. Todas ellas pueden ser adaptadas.
             – Clases genéricas: existe la posibilidad de añadir nuevas clases como pueden ser el idioma.
             – Ids genéricas: existe la posibilidad de añadir nuevas como pueden ser el idioma.
            Node.tpl.php: contenido de los nodos y su presentación. Al igual que el page.tpl.php es
        •
            extensible y adaptable.
            Existen otros componentes que también pueden ser adaptados.
        •
             – Frontpage.tpl.php: pagina principal.
             – node-xxx.tpl.php: nodo especifico de una ruta.
             – views-xxx.tpl.php: vistas de un contenido especifico.
             – maintenance-page.tpl.php: pagina mantenimiento.
             – ….
            Logo.
        •
            Hojas de estilo.
        •
            ...
        •

77
     Introducción a Drupal
                                                                                                    Oficinas certificadas: Bilbao y Madrid
Modulo básico




78
     Introducción a Drupal
                                             Oficinas certificadas: Bilbao y Madrid
Ficheros básicos

        • nombre_modulo.info
             – Información sobre el modulo.
        •   nombre_modulo.install
             – Parámetros de instalación del modulo.
             – Ejemplo: crear tabla.
        •   nombre_modulo.module
             – Código principal de modulo.




79
     Introducción a Drupal
                                                       Oficinas certificadas: Bilbao y Madrid
Hooks
        • Permite a los módulos interactuar con el núcleo de Drupal.

        • El sistema de módulos de Drupal está basado en el concepto de "hook". Un “hook”
          es una función PHP que se denomina foo_bar (), donde foo es el nombre del módulo
          (cuyo nombre puede ser, foo.module) y "bar" es el nombre del “hook”. Cada hook
          tiene un conjunto definido de parámetros y un tipo de resultado especificado.


        • Para extender Drupal, un módulo simplemente necesita implementar un hook.
          Cuando Drupal desea permitir la intervención de los módulos, determinará que hook
          implementará de un modulo y le llamará en todos los módulos activos que lo
          implemente.


        • Los hooks disponibles para la implementación se explican en la sección de hooks de
          la documentación del desarrollador. La cadena de "hook" se utiliza como marcador
          de posición para el nombre del módulo en las definiciones del hook. Por ejemplo, si
          el archivo se llama módulo de example.module, entonces hook_help (), aplicado por
          dicho módulo se define como example_help ().

        • http://api.drupal.org/api/group/hooks
80
     Introducción a Drupal
                                                                                        Oficinas certificadas: Bilbao y Madrid
Modulo básico de ejemplo
        example.info

        $Id: README.txt,v 1.0 2010/01/21 12:58:46 example Exp $
        name = Example
        description = Módulo de ejemplo para formación
        package = Ejemplo
        core = 6.x


        ; Información para el modulo
        version = "6.x.1-dev"
        core = "6.x"
        project = "Example"
        datestamp = ""




81
     Introducción a Drupal
                                                                  Oficinas certificadas: Bilbao y Madrid
Modulo básico de ejemplo
        example.install
        • En principio no es necesario incluir código a menos
             que el modulo lo requiera.

        <?php
        /*
         * Fichero de instalación
         */




82
     Introducción a Drupal
                                                           Oficinas certificadas: Bilbao y Madrid
Modulo básico de ejemplo
        example.module
        • Las cadenas de texto en la función t() siempre deben de ir en ingles, para
            evitar posibles errores posteriores..

        <?php //Se inicia el php pero no se cierra


        /**
         * Implementacion de hook_menu().
         */
        function example_menu() {
            $items['menu_example'] = array (
                    'title' => 'Ejemplo de una vez',
                    'description' => 'Prueba de Ejemplo',
                    'page callback' => '_example_hello', //"_" para aquellas que son privadas.
                    'access callback' => TRUE,
                    //'type' => MENU_CALLBACK, no aparecerá en el menú
                    'type' => MENU_NORMAL_ITEM, //aparecerá en el menú
            );
            return $items;
        }

83
     Introducción a Drupal
                                                                                            Oficinas certificadas: Bilbao y Madrid
Modulo básico de ejemplo

         /**
         * Ejemplo básico con parámetro en Url
         */
        function _example_hello ($dato = '') {
        //$dato primer parámetro después de "../menu_example/loquesea"
            $retorno = '';
            if ($dato == '') {
                $retorno = 'Hola Mundo';
            } else {
                $retorno = $dato;
            }
            return $retorno;
        }



84
     Introducción a Drupal
                                                                         Oficinas certificadas: Bilbao y Madrid
Modulo con formulario
        example.info

        $Id: README.txt,v 1.0 2010/01/21 12:58:46 example Exp $
        name = Example
        description = Módulo de ejemplo para formación
        package = Ejemplo
        core = 6.x


        ; Información para el modulo
        version = "6.x.1-dev"
        core = "6.x"
        project = "Example"
        datestamp = ""




85
     Introducción a Drupal
                                                                  Oficinas certificadas: Bilbao y Madrid
Modulo con formulario
        example.install
        • En principio no es necesario incluir código a menos
             que el modulo lo requiera.

        <?php
        /*
         * Fichero de instalación
         */




86
     Introducción a Drupal
                                                           Oficinas certificadas: Bilbao y Madrid
Modulo con formulario
        example.module
        • Las cadenas de texto en la función t() siempre deben de ir en ingles, para
           evitar posibles errores posteriores..

        <?php //Se inicia el php pero no se cierra


        /**
         * Implementacion de hook_menu().
         */
        function example_menu() {
              $items['menu_example'] = array (
                      'title' => 'Ejemplo de una vez',
                      'description' => 'Prueba de Ejemplo',
                      'page callback' => '_example_hello', //"_" para aquellas que son privadas.
                      'access callback' => TRUE,
                      //'type' => MENU_CALLBACK, no aparecerá en el menú
                      'type' => MENU_NORMAL_ITEM, //aparecerá en el menú
              );

                                                              Continua en la siguiente diapositiva       →
87
     Introducción a Drupal
                                                                                               Oficinas certificadas: Bilbao y Madrid
Modulo con formulario
            ← Continuación de la anterior diapositiva


            $items['menu_mas'] = array (
                     'title' => 'Ejemplo con formulario',
                     'description' => 'Prueba de Ejemplo',
                     'page callback' => 'drupal_get_form',
                     'page arguments' => array('example_form'),
                     'access callback' => TRUE,
                     'type' => MENU_NORMAL_ITEM,
                     'file' => 'example.pages.inc',
            );
            return $items;
        }




88
     Introducción a Drupal
                                                                  Oficinas certificadas: Bilbao y Madrid
Modulo con formulario
        example.pages.inc
        <?php
        // $Id$


        /**
            * Definir el formulario.
            */
        function example_form() {
             $form['user_name'] = array(
                      '#title' => t('Your name'),
                      '#type' => 'textfield',
                      '#description' => t('Please enter your name.'), //Siempre en ingles
             );
             $form['submit'] = array(
                      '#type' => 'submit',
                      '#value' => t('Submit')
             );


        }
             return $form;
                                                                 Continua en la siguiente diapositiva       →
89
     Introducción a Drupal
                                                                                                  Oficinas certificadas: Bilbao y Madrid
Modulo con formulario
            ← Continuación de la anterior diapositiva
        /**
         * Validar el formulario.
         */
        function example_form_validate($form, &$form_state) {
           $name = $form_state['values']['user_name'];
            if ($form_state['values']['user_name'] == 'Ruben Egiguren') {
               // Notificamos al API de formulario que el campo a fallado.
                // Campo error, texto error
                form_set_error('user_name',t('%name is not allowed to use this form.',
                        array('%name' => $name))); //Siempre en ingles
            }
        }
        /**
         * Manejador de post-envío del formulario de validación.
         */
        function example_form_submit($form, &$form_state) {
            $name = $form_state['values']['user_name'];
            drupal_set_message(t('Thanks for filling out the form, %name',
                     array('%name' => $name))); //Siempre en ingles
        }

90
     Introducción a Drupal
                                                                                         Oficinas certificadas: Bilbao y Madrid
Fuentes




91
     Introducción a Drupal
                                       Oficinas certificadas: Bilbao y Madrid
Fuentes

        •   http://drupal.org/
        •   http://drupal.org/books
             – Listado amazon
             – Pro Drupal Development, Second Edition
             – Learning Drupal 6 Module Development
        •   http://es.wikipedia.org/
        •   http://www.drupalcoder.com/story/529-introduction-to-drupal-presentation-slides
        •   http://www.slideshare.net/neurotic/taller-drupal-php-conference
        •   http://www.flickr.com/photos/raincitystudios/97420788/
        •   http://buytaert.net/album/drupalcon-sunnyvale-2007/angela-byron
        •   http://www.flickr.com/photos/sebastian_bergmann/79011031/sizes/m/




92
     Introducción a Drupal
                                                                                              Oficinas certificadas: Bilbao y Madrid
Licencia
                   • Usted es libre de
                    –     copiar, distribuir y comunicar públicamente la obra.


                    –     hacer obras derivadas.


                   • Bajo las condiciones siguientes
                    –     Reconocimiento ― Debe reconocer los créditos de la obra de la
                          manera especificada por el autor o el licenciador (pero no de una
                          manera que sugiera que tiene su apoyo o apoyan el uso que
                          hace de su obra).
                    –     No comercial ― No puede utilizar esta obra para fines
                          comerciales.
                    –     Compartir bajo la misma licencia ― Si altera o transforma esta
                          obra, o genera una obra derivada, sólo puede distribuir la obra
                          generada bajo una licencia idéntica a ésta.
                   • Licencia completa
                        – http://creativecommons.org/licenses/by-nc-sa/3.0/es/legalcode.es
93
     Introducción a Drupal
                                                                                      Oficinas certificadas: Bilbao y Madrid
FIN


94
     Introducción a Drupal
                                   Oficinas certificadas: Bilbao y Madrid
1 of 94

Recommended

Virtualizacion by
VirtualizacionVirtualizacion
VirtualizacionPaco Orozco
13.6K views63 slides
Presentación onedrive by
Presentación onedrivePresentación onedrive
Presentación onedriveitzelrodriguez06
3.8K views7 slides
Protocolo arp by
Protocolo arpProtocolo arp
Protocolo arpLarry Ruiz Barcayola
12.5K views13 slides
Firebirdbasededatos by
FirebirdbasededatosFirebirdbasededatos
FirebirdbasededatosJosé Chacón
1.1K views21 slides
OSPF MULTIAREA by
OSPF  MULTIAREAOSPF  MULTIAREA
OSPF MULTIAREADavid Narváez
926 views20 slides
PPT HERRAMIENTAS DE INTERNET by
 PPT HERRAMIENTAS DE INTERNET PPT HERRAMIENTAS DE INTERNET
PPT HERRAMIENTAS DE INTERNETSandra Gonzalez
1.9K views8 slides

More Related Content

What's hot

Linea del tiempo de los frameworks by
Linea del tiempo de los frameworksLinea del tiempo de los frameworks
Linea del tiempo de los frameworksJose Alejandro
2.5K views33 slides
IDEs y Frameworks mas utilizados by
IDEs y Frameworks mas utilizadosIDEs y Frameworks mas utilizados
IDEs y Frameworks mas utilizadosGeorge Navarro Gomez
8.7K views26 slides
Cisco CCNA v5 Lab by
Cisco CCNA v5 LabCisco CCNA v5 Lab
Cisco CCNA v5 Labant09_sain
2.4K views544 slides
Diapositivas sobre el internet by
Diapositivas sobre el  internetDiapositivas sobre el  internet
Diapositivas sobre el internetNíikolas Perdomo
20.7K views13 slides
Abarrotes by
AbarrotesAbarrotes
Abarrotesalejandra cisneros
6.3K views14 slides
sistema de gestión base de datos by
sistema de gestión base de datossistema de gestión base de datos
sistema de gestión base de datosMaria Alejandra
4.7K views14 slides

What's hot(20)

Linea del tiempo de los frameworks by Jose Alejandro
Linea del tiempo de los frameworksLinea del tiempo de los frameworks
Linea del tiempo de los frameworks
Jose Alejandro2.5K views
Cisco CCNA v5 Lab by ant09_sain
Cisco CCNA v5 LabCisco CCNA v5 Lab
Cisco CCNA v5 Lab
ant09_sain2.4K views
sistema de gestión base de datos by Maria Alejandra
sistema de gestión base de datossistema de gestión base de datos
sistema de gestión base de datos
Maria Alejandra4.7K views
Gestión de archivos by eduardoed5
Gestión de archivosGestión de archivos
Gestión de archivos
eduardoed534.1K views
Presentation on samba server by Veeral Bhateja
Presentation on samba serverPresentation on samba server
Presentation on samba server
Veeral Bhateja10.5K views
Cuadro comparativo de manejadores de la base de datos by Maria Garcia
Cuadro comparativo de manejadores de la base de datos Cuadro comparativo de manejadores de la base de datos
Cuadro comparativo de manejadores de la base de datos
Maria Garcia9.6K views
Comandos de configuracion de dispositivos cisco by CISCO NETWORKING
Comandos de configuracion de dispositivos ciscoComandos de configuracion de dispositivos cisco
Comandos de configuracion de dispositivos cisco
CISCO NETWORKING601.8K views
Chapter 4 slides by lara_ays
Chapter 4 slidesChapter 4 slides
Chapter 4 slides
lara_ays1.3K views
Diferencia entre pagina web y sitios web by Noryab001
Diferencia entre pagina web y sitios webDiferencia entre pagina web y sitios web
Diferencia entre pagina web y sitios web
Noryab00188.9K views
Cuadro comparativo de SMBD by Jazmin Glez.
Cuadro comparativo de SMBD Cuadro comparativo de SMBD
Cuadro comparativo de SMBD
Jazmin Glez.10.1K views
Tipos plataformas web by Astrid Valdes
Tipos plataformas webTipos plataformas web
Tipos plataformas web
Astrid Valdes3.5K views

Viewers also liked

Inciación a Drupal 8 by
Inciación a Drupal 8Inciación a Drupal 8
Inciación a Drupal 8Julian Valero
2.6K views46 slides
Introducción a Wordpress, Joomla y Drupal. by
Introducción a Wordpress, Joomla y Drupal.Introducción a Wordpress, Joomla y Drupal.
Introducción a Wordpress, Joomla y Drupal.Interlat
2.1K views37 slides
Drupal - Introducción by
Drupal - IntroducciónDrupal - Introducción
Drupal - IntroducciónDanilo Domínguez
1.9K views43 slides
COMO COMPRAR CASA EN USA by
COMO COMPRAR CASA EN USACOMO COMPRAR CASA EN USA
COMO COMPRAR CASA EN USAAradio Zambrano
297 views1 slide
Drupal summer Barcelona 2016: How to be a Drupal dealer aka sin hype estamos... by
Drupal summer Barcelona 2016:  How to be a Drupal dealer aka sin hype estamos...Drupal summer Barcelona 2016:  How to be a Drupal dealer aka sin hype estamos...
Drupal summer Barcelona 2016: How to be a Drupal dealer aka sin hype estamos...David (davidjguru) Rodríguez
258 views23 slides
Curso de Magento 1.9: Unidad Didáctica 05 importación exportación by
Curso de Magento 1.9: Unidad Didáctica 05 importación exportaciónCurso de Magento 1.9: Unidad Didáctica 05 importación exportación
Curso de Magento 1.9: Unidad Didáctica 05 importación exportaciónDavid Vaquero
6.7K views13 slides

Viewers also liked(20)

Inciación a Drupal 8 by Julian Valero
Inciación a Drupal 8Inciación a Drupal 8
Inciación a Drupal 8
Julian Valero2.6K views
Introducción a Wordpress, Joomla y Drupal. by Interlat
Introducción a Wordpress, Joomla y Drupal.Introducción a Wordpress, Joomla y Drupal.
Introducción a Wordpress, Joomla y Drupal.
Interlat 2.1K views
Curso de Magento 1.9: Unidad Didáctica 05 importación exportación by David Vaquero
Curso de Magento 1.9: Unidad Didáctica 05 importación exportaciónCurso de Magento 1.9: Unidad Didáctica 05 importación exportación
Curso de Magento 1.9: Unidad Didáctica 05 importación exportación
David Vaquero6.7K views
Curso de Struts 2: Unidad Didáctica 05 Convenciones y Anotaciones by David Vaquero
Curso de Struts 2: Unidad Didáctica 05 Convenciones y AnotacionesCurso de Struts 2: Unidad Didáctica 05 Convenciones y Anotaciones
Curso de Struts 2: Unidad Didáctica 05 Convenciones y Anotaciones
David Vaquero6.2K views
Struts 2: Unidad Didáctica 06 Integracion con Hibernate by David Vaquero
Struts 2: Unidad Didáctica 06 Integracion con HibernateStruts 2: Unidad Didáctica 06 Integracion con Hibernate
Struts 2: Unidad Didáctica 06 Integracion con Hibernate
David Vaquero6K views
Curso de Magento 1.9: Unidad Didáctica 03 Catalogo. Categorías y Atributos by David Vaquero
Curso de Magento 1.9: Unidad Didáctica 03 Catalogo. Categorías y AtributosCurso de Magento 1.9: Unidad Didáctica 03 Catalogo. Categorías y Atributos
Curso de Magento 1.9: Unidad Didáctica 03 Catalogo. Categorías y Atributos
David Vaquero7.1K views
Magento 1.9: Unidad Didáctica 04 Productos by David Vaquero
Magento 1.9: Unidad Didáctica 04 ProductosMagento 1.9: Unidad Didáctica 04 Productos
Magento 1.9: Unidad Didáctica 04 Productos
David Vaquero6.9K views
Curso de Magento 1.9: Unidad Didáctica 02 Administracion Básica by David Vaquero
Curso de Magento 1.9: Unidad Didáctica 02 Administracion BásicaCurso de Magento 1.9: Unidad Didáctica 02 Administracion Básica
Curso de Magento 1.9: Unidad Didáctica 02 Administracion Básica
David Vaquero6.4K views
Curso de Magento 1.9: Unidad Didáctica 06 Magento Connect by David Vaquero
Curso de Magento 1.9: Unidad Didáctica 06 Magento ConnectCurso de Magento 1.9: Unidad Didáctica 06 Magento Connect
Curso de Magento 1.9: Unidad Didáctica 06 Magento Connect
David Vaquero6.6K views
Curso de Magento 1.9: Unidad Didáctica 07 Manejo de Plantillas by David Vaquero
Curso de Magento 1.9: Unidad Didáctica 07 Manejo de PlantillasCurso de Magento 1.9: Unidad Didáctica 07 Manejo de Plantillas
Curso de Magento 1.9: Unidad Didáctica 07 Manejo de Plantillas
David Vaquero7.6K views
Curso de Liferay 6.2: Unidad didáctica 04 Gestión de un Sitio Web by David Vaquero
Curso de Liferay 6.2: Unidad didáctica 04 Gestión de un Sitio WebCurso de Liferay 6.2: Unidad didáctica 04 Gestión de un Sitio Web
Curso de Liferay 6.2: Unidad didáctica 04 Gestión de un Sitio Web
David Vaquero56.2K views
Curso de Liferay 6.2: Unidad Didáctica 00 Introducción by David Vaquero
Curso de Liferay 6.2: Unidad Didáctica 00 IntroducciónCurso de Liferay 6.2: Unidad Didáctica 00 Introducción
Curso de Liferay 6.2: Unidad Didáctica 00 Introducción
David Vaquero57.1K views
Curso Liferay 6.2: Unidad Didáctica 07 Colaboración by David Vaquero
Curso Liferay 6.2: Unidad Didáctica 07 ColaboraciónCurso Liferay 6.2: Unidad Didáctica 07 Colaboración
Curso Liferay 6.2: Unidad Didáctica 07 Colaboración
David Vaquero55.4K views
Curso Liferay 6.2: Unidad Didáctica 05 Workflow by David Vaquero
Curso Liferay 6.2: Unidad Didáctica 05 WorkflowCurso Liferay 6.2: Unidad Didáctica 05 Workflow
Curso Liferay 6.2: Unidad Didáctica 05 Workflow
David Vaquero58.3K views
Curso Liferay 6.2: Unidad Didáctica 06 Gestion de Documentos by David Vaquero
Curso Liferay 6.2: Unidad Didáctica 06 Gestion de DocumentosCurso Liferay 6.2: Unidad Didáctica 06 Gestion de Documentos
Curso Liferay 6.2: Unidad Didáctica 06 Gestion de Documentos
David Vaquero55.6K views
Curso de liferay 6.2: Unidad didáctica 02 Funcionalidades Principales by David Vaquero
Curso de liferay 6.2: Unidad didáctica 02 Funcionalidades PrincipalesCurso de liferay 6.2: Unidad didáctica 02 Funcionalidades Principales
Curso de liferay 6.2: Unidad didáctica 02 Funcionalidades Principales
David Vaquero55.2K views

Similar to Introducción a Drupal

Presentando Drupal en el Flisol Xalapa by
Presentando Drupal en el Flisol XalapaPresentando Drupal en el Flisol Xalapa
Presentando Drupal en el Flisol XalapaMedio y forma
753 views21 slides
Introduccion a Drupal 6 e-ghost by
Introduccion a Drupal 6 e-ghostIntroduccion a Drupal 6 e-ghost
Introduccion a Drupal 6 e-ghostKeopx
444 views110 slides
Drupal mas que un cms by
Drupal mas que un cmsDrupal mas que un cms
Drupal mas que un cmseccutpl
537 views32 slides
Presentación Drupal by
Presentación DrupalPresentación Drupal
Presentación DrupalMedio y forma
1.8K views17 slides
Conociendo drupal by
Conociendo drupalConociendo drupal
Conociendo drupalVictor M Gutierrez
467 views27 slides
Drupal 7: mucho más que una nueva versión (para desarrolladores) by
Drupal 7: mucho más que una nueva versión (para desarrolladores)Drupal 7: mucho más que una nueva versión (para desarrolladores)
Drupal 7: mucho más que una nueva versión (para desarrolladores)Ymbra
1.8K views34 slides

Similar to Introducción a Drupal(20)

Presentando Drupal en el Flisol Xalapa by Medio y forma
Presentando Drupal en el Flisol XalapaPresentando Drupal en el Flisol Xalapa
Presentando Drupal en el Flisol Xalapa
Medio y forma753 views
Introduccion a Drupal 6 e-ghost by Keopx
Introduccion a Drupal 6 e-ghostIntroduccion a Drupal 6 e-ghost
Introduccion a Drupal 6 e-ghost
Keopx 444 views
Drupal mas que un cms by eccutpl
Drupal mas que un cmsDrupal mas que un cms
Drupal mas que un cms
eccutpl537 views
Drupal 7: mucho más que una nueva versión (para desarrolladores) by Ymbra
Drupal 7: mucho más que una nueva versión (para desarrolladores)Drupal 7: mucho más que una nueva versión (para desarrolladores)
Drupal 7: mucho más que una nueva versión (para desarrolladores)
Ymbra1.8K views
Presentacion Drupal Ccrtv by Pedro Cambra
Presentacion Drupal CcrtvPresentacion Drupal Ccrtv
Presentacion Drupal Ccrtv
Pedro Cambra1.4K views
Introducción general a Drupal by Pedro Cambra
Introducción general a DrupalIntroducción general a Drupal
Introducción general a Drupal
Pedro Cambra2.4K views
Taller drupal 8 tuxtepec by Medio y forma
Taller drupal 8 tuxtepecTaller drupal 8 tuxtepec
Taller drupal 8 tuxtepec
Medio y forma454 views
Gestión del Conocimiento y Tecnologías Emergentes de la Web (Drupal) by Yoder Aguirre
Gestión del Conocimiento y Tecnologías Emergentes de la Web (Drupal)Gestión del Conocimiento y Tecnologías Emergentes de la Web (Drupal)
Gestión del Conocimiento y Tecnologías Emergentes de la Web (Drupal)
Yoder Aguirre816 views
Drupal 7: mucho más que una nueva versión by Ymbra
Drupal 7: mucho más que una nueva versiónDrupal 7: mucho más que una nueva versión
Drupal 7: mucho más que una nueva versión
Ymbra767 views
Taller Drupal Php Conference by SEAT, S.A.
Taller Drupal Php ConferenceTaller Drupal Php Conference
Taller Drupal Php Conference
SEAT, S.A.1K views
Dn12 u3 a30_mpjm by metalerooo
Dn12 u3 a30_mpjmDn12 u3 a30_mpjm
Dn12 u3 a30_mpjm
metalerooo200 views
Presentando drupal en xalapa by Medio y forma
Presentando drupal en xalapaPresentando drupal en xalapa
Presentando drupal en xalapa
Medio y forma1.1K views
Por qué Drupal es un potente gestor de contenidos by Juampy NR
Por qué Drupal es un potente gestor de contenidosPor qué Drupal es un potente gestor de contenidos
Por qué Drupal es un potente gestor de contenidos
Juampy NR940 views

More from Keopx

[DrupalCampSpain2023] Introducción al desarrollo de módulos en Drupal 10 by
[DrupalCampSpain2023] Introducción al desarrollo de módulos en Drupal 10[DrupalCampSpain2023] Introducción al desarrollo de módulos en Drupal 10
[DrupalCampSpain2023] Introducción al desarrollo de módulos en Drupal 10Keopx
163 views41 slides
[DrupalCampSpain2022] Introducción al desarrollo de módulos en Drupal 9 by
[DrupalCampSpain2022] Introducción al desarrollo de módulos en Drupal 9[DrupalCampSpain2022] Introducción al desarrollo de módulos en Drupal 9
[DrupalCampSpain2022] Introducción al desarrollo de módulos en Drupal 9Keopx
236 views50 slides
Fucking copyright by
Fucking copyrightFucking copyright
Fucking copyrightKeopx
265 views27 slides
Segurtasuna sarean by
Segurtasuna sareanSegurtasuna sarean
Segurtasuna sareanKeopx
348 views40 slides
[DrupalCampSpain2018] CircleCI by
[DrupalCampSpain2018] CircleCI[DrupalCampSpain2018] CircleCI
[DrupalCampSpain2018] CircleCIKeopx
771 views38 slides
[DrupalCampSpain2018] Trabajando en remoto by
[DrupalCampSpain2018] Trabajando en remoto[DrupalCampSpain2018] Trabajando en remoto
[DrupalCampSpain2018] Trabajando en remotoKeopx
558 views26 slides

More from Keopx (20)

[DrupalCampSpain2023] Introducción al desarrollo de módulos en Drupal 10 by Keopx
[DrupalCampSpain2023] Introducción al desarrollo de módulos en Drupal 10[DrupalCampSpain2023] Introducción al desarrollo de módulos en Drupal 10
[DrupalCampSpain2023] Introducción al desarrollo de módulos en Drupal 10
Keopx 163 views
[DrupalCampSpain2022] Introducción al desarrollo de módulos en Drupal 9 by Keopx
[DrupalCampSpain2022] Introducción al desarrollo de módulos en Drupal 9[DrupalCampSpain2022] Introducción al desarrollo de módulos en Drupal 9
[DrupalCampSpain2022] Introducción al desarrollo de módulos en Drupal 9
Keopx 236 views
Fucking copyright by Keopx
Fucking copyrightFucking copyright
Fucking copyright
Keopx 265 views
Segurtasuna sarean by Keopx
Segurtasuna sareanSegurtasuna sarean
Segurtasuna sarean
Keopx 348 views
[DrupalCampSpain2018] CircleCI by Keopx
[DrupalCampSpain2018] CircleCI[DrupalCampSpain2018] CircleCI
[DrupalCampSpain2018] CircleCI
Keopx 771 views
[DrupalCampSpain2018] Trabajando en remoto by Keopx
[DrupalCampSpain2018] Trabajando en remoto[DrupalCampSpain2018] Trabajando en remoto
[DrupalCampSpain2018] Trabajando en remoto
Keopx 558 views
[DrupalCampSpain2018] Contribuir a Drupal by Keopx
[DrupalCampSpain2018] Contribuir a Drupal[DrupalCampSpain2018] Contribuir a Drupal
[DrupalCampSpain2018] Contribuir a Drupal
Keopx 446 views
DrupalDay Bilbao 2014: Publica tu proyecto en drupal.org by Keopx
DrupalDay Bilbao 2014: Publica tu proyecto en drupal.orgDrupalDay Bilbao 2014: Publica tu proyecto en drupal.org
DrupalDay Bilbao 2014: Publica tu proyecto en drupal.org
Keopx 217 views
El poder de webform (antes yaml form) by Keopx
El poder de webform (antes yaml form)El poder de webform (antes yaml form)
El poder de webform (antes yaml form)
Keopx 691 views
Docker - Entorno de trabajo configurado en 1 minuto [WCBilbao] by Keopx
Docker - Entorno de trabajo configurado en 1 minuto [WCBilbao]Docker - Entorno de trabajo configurado en 1 minuto [WCBilbao]
Docker - Entorno de trabajo configurado en 1 minuto [WCBilbao]
Keopx 1.8K views
[Drupal campspain2017] Contribuir a Drupal, de 0 a 100 by Keopx
[Drupal campspain2017] Contribuir a Drupal, de 0 a 100[Drupal campspain2017] Contribuir a Drupal, de 0 a 100
[Drupal campspain2017] Contribuir a Drupal, de 0 a 100
Keopx 820 views
Contribuir a Drupal by Keopx
Contribuir a DrupalContribuir a Drupal
Contribuir a Drupal
Keopx 673 views
Contribuir a Drupal - Entorno by Keopx
Contribuir a Drupal - EntornoContribuir a Drupal - Entorno
Contribuir a Drupal - Entorno
Keopx 249 views
Uso practico de git by Keopx
Uso practico de gitUso practico de git
Uso practico de git
Keopx 1.3K views
WorkShop: Introducción a GIT by Keopx
WorkShop: Introducción a GITWorkShop: Introducción a GIT
WorkShop: Introducción a GIT
Keopx 2.3K views
Drupal 8 WorkShop - e-Ghost 2015 by Keopx
Drupal 8 WorkShop - e-Ghost 2015  Drupal 8 WorkShop - e-Ghost 2015
Drupal 8 WorkShop - e-Ghost 2015
Keopx 860 views
Drupal 8 WorkShop by Keopx
Drupal 8 WorkShopDrupal 8 WorkShop
Drupal 8 WorkShop
Keopx 791 views
Herramientas de trabajo para entorno LAMP by Keopx
Herramientas de trabajo para entorno LAMPHerramientas de trabajo para entorno LAMP
Herramientas de trabajo para entorno LAMP
Keopx 2.3K views
Drupal Day Bilbao 2014 - Sesión de cierre by Keopx
Drupal Day Bilbao 2014 - Sesión de cierreDrupal Day Bilbao 2014 - Sesión de cierre
Drupal Day Bilbao 2014 - Sesión de cierre
Keopx 632 views
Drupal Day Bilbao 2014 - Sesión de apertura by Keopx
Drupal Day Bilbao 2014 - Sesión de aperturaDrupal Day Bilbao 2014 - Sesión de apertura
Drupal Day Bilbao 2014 - Sesión de apertura
Keopx 360 views

Recently uploaded

DELITOS INFORMATICOS EFRAIN CAMACHO 27462611 INFORMATICA III.pptx by
DELITOS INFORMATICOS EFRAIN CAMACHO 27462611 INFORMATICA III.pptxDELITOS INFORMATICOS EFRAIN CAMACHO 27462611 INFORMATICA III.pptx
DELITOS INFORMATICOS EFRAIN CAMACHO 27462611 INFORMATICA III.pptxdavidsalazar63484
5 views6 slides
Fundamentos de Electricidad y Electronica 9-3 (1).docx by
Fundamentos de Electricidad y Electronica 9-3 (1).docxFundamentos de Electricidad y Electronica 9-3 (1).docx
Fundamentos de Electricidad y Electronica 9-3 (1).docxSamuel709479
7 views26 slides
MVelazco_Internet, Origenes y Evolucion.pptx by
MVelazco_Internet, Origenes  y Evolucion.pptxMVelazco_Internet, Origenes  y Evolucion.pptx
MVelazco_Internet, Origenes y Evolucion.pptxal223915
6 views39 slides
Christian Novoa by
Christian NovoaChristian Novoa
Christian NovoaChristian Novoa
5 views11 slides
SOrtiz_Origenes y evolución de internet.ppsx by
SOrtiz_Origenes y evolución de internet.ppsxSOrtiz_Origenes y evolución de internet.ppsx
SOrtiz_Origenes y evolución de internet.ppsxARIADNAYJIMENACRUZOR
6 views9 slides
Seguridad de los sistemas operativos..pptx by
Seguridad de los sistemas operativos..pptxSeguridad de los sistemas operativos..pptx
Seguridad de los sistemas operativos..pptxdayanelismarquez
23 views7 slides

Recently uploaded(20)

DELITOS INFORMATICOS EFRAIN CAMACHO 27462611 INFORMATICA III.pptx by davidsalazar63484
DELITOS INFORMATICOS EFRAIN CAMACHO 27462611 INFORMATICA III.pptxDELITOS INFORMATICOS EFRAIN CAMACHO 27462611 INFORMATICA III.pptx
DELITOS INFORMATICOS EFRAIN CAMACHO 27462611 INFORMATICA III.pptx
Fundamentos de Electricidad y Electronica 9-3 (1).docx by Samuel709479
Fundamentos de Electricidad y Electronica 9-3 (1).docxFundamentos de Electricidad y Electronica 9-3 (1).docx
Fundamentos de Electricidad y Electronica 9-3 (1).docx
Samuel7094797 views
MVelazco_Internet, Origenes y Evolucion.pptx by al223915
MVelazco_Internet, Origenes  y Evolucion.pptxMVelazco_Internet, Origenes  y Evolucion.pptx
MVelazco_Internet, Origenes y Evolucion.pptx
al2239156 views
Seguridad de los sistemas operativos..pptx by dayanelismarquez
Seguridad de los sistemas operativos..pptxSeguridad de los sistemas operativos..pptx
Seguridad de los sistemas operativos..pptx
dayanelismarquez23 views
Cuadros comparativos Herramientas tecnologicas III.pdf by DarlingGalan1
Cuadros comparativos Herramientas tecnologicas III.pdfCuadros comparativos Herramientas tecnologicas III.pdf
Cuadros comparativos Herramientas tecnologicas III.pdf
DarlingGalan17 views
actividadanlisisdeartefactos1-230424222159-fef7d8f3 (1).docx by MaraJos722801
actividadanlisisdeartefactos1-230424222159-fef7d8f3 (1).docxactividadanlisisdeartefactos1-230424222159-fef7d8f3 (1).docx
actividadanlisisdeartefactos1-230424222159-fef7d8f3 (1).docx
MaraJos7228015 views
Tecnologías para la enseñanza virtual_cdc.pptx by CarmenerdelHuasco
Tecnologías para la enseñanza virtual_cdc.pptxTecnologías para la enseñanza virtual_cdc.pptx
Tecnologías para la enseñanza virtual_cdc.pptx
Fundamentos de Electricidad y Electronica 9-3 (1).docx by Samuel709479
Fundamentos de Electricidad y Electronica 9-3 (1).docxFundamentos de Electricidad y Electronica 9-3 (1).docx
Fundamentos de Electricidad y Electronica 9-3 (1).docx
Samuel7094795 views
Fundamentos de electricidad y electrónica.docx by DilanTabares
Fundamentos de electricidad y electrónica.docxFundamentos de electricidad y electrónica.docx
Fundamentos de electricidad y electrónica.docx
DilanTabares5 views
fundamentos de electricidad electronica by Kevin619029
fundamentos de electricidad electronicafundamentos de electricidad electronica
fundamentos de electricidad electronica
Kevin6190295 views
TALLER DE ANÁLISIS DE ARTEFACTOS_.docx by DilanTabares
TALLER DE ANÁLISIS DE ARTEFACTOS_.docxTALLER DE ANÁLISIS DE ARTEFACTOS_.docx
TALLER DE ANÁLISIS DE ARTEFACTOS_.docx
DilanTabares6 views
cuadros comparativos intranet/ EXTRANET, datos/información, navegador/ buscador by lopezyetsiree
cuadros comparativos intranet/ EXTRANET, datos/información, navegador/ buscadorcuadros comparativos intranet/ EXTRANET, datos/información, navegador/ buscador
cuadros comparativos intranet/ EXTRANET, datos/información, navegador/ buscador
lopezyetsiree12 views
Los principios de la Antropometria y Ergonomia.pdf by BenisBorges
Los principios de la Antropometria y Ergonomia.pdfLos principios de la Antropometria y Ergonomia.pdf
Los principios de la Antropometria y Ergonomia.pdf
BenisBorges6 views
Tecnologías para la enseñanza virtual by mpachecocodem
Tecnologías para la enseñanza virtual Tecnologías para la enseñanza virtual
Tecnologías para la enseñanza virtual
mpachecocodem9 views

Introducción a Drupal

  • 1. Introducción a Drupal Fecha: 21/01/2010 Autor: Ruben Egiguren Introducción a Drupal Oficinas certificadas: Bilbao y Madrid
  • 2. ÍNDICE • Introducción a Drupal • Herramientas de administración • Instalación de Drupal • Configuración básica • Módulos mas usados • Diseño de un tema • Modulo básico • Fuentes 2 Introducción a Drupal Oficinas certificadas: Bilbao y Madrid
  • 3. Introducción a Drupal 3 Introducción a Drupal Oficinas certificadas: Bilbao y Madrid
  • 4. ¿Qué es Drupal? Definición Drupal es un programa libre, con licencia GNU/GPL, escrito en PHP, desarrollado y mantenido por una activa comunidad de usuarios. Destaca por la calidad de su código y de las páginas generadas, el respeto de los estándares de la web, y un énfasis especial en la usabilidad y consistencia de todo el sistema. Drupal es un sistema de gestión de contenido modular multiproposito y muy configurable que permite publicar artículos, imágenes, u otros archivos y servicios añadidos como foros, encuestas, votaciones, blogs y administración de usuarios y permisos. Drupal es un sistema dinámico: en lugar de almacenar sus contenidos en archivos estáticos en el sistema de ficheros del servidor de forma fija, el contenido textual de las páginas y otras configuraciones son almacenados en una base de datos y se editan utilizando un entorno Web. El diseño de Drupal es especialmente idóneo para construir y gestionar comunidades en Internet. No obstante, su flexibilidad y adaptabilidad, así como la gran cantidad de módulos adicionales disponibles, hace que sea adecuado para realizar muchos tipos diferentes de sitio web. Fuente: Wikipedia 4 Introducción a Drupal Oficinas certificadas: Bilbao y Madrid
  • 5. ¿Qué es Drupal? CMS/CMF • Content Management System (Gestor de contenidos) • Content Management Framework (marco de trabajo, API,...) • Community Management System (creación de comunidades,... ) • Communication Management System (sistemas de comunicación,...) 5 Introducción a Drupal Oficinas certificadas: Bilbao y Madrid
  • 6. ¿Qué es Drupal? Drupal como CMS • Control sobre el flujo de creación, edición, borrado y publicación de contenidos. • Categorización y organización de contenido. • Gestión de usuarios y roles. Privacidad, control de acceso. • Presentación de contenido en diversos formatos. • Sistema ampliable y extensible. 6 Introducción a Drupal Oficinas certificadas: Bilbao y Madrid
  • 7. ¿Qué es Drupal? Drupal como Framework • Capa de abstracción sobre la base de datos. • Sistema de plantillas (themes) separado de la lógica. • Librerías ajax. Por defecto jQuery. • Seguridad, identificación de usuarios y configuración de permisos personalizable. • Herramientas de caché a varios niveles. • API para desarrolladores pública y disponible: http://api.drupal.org/ 7 Introducción a Drupal Oficinas certificadas: Bilbao y Madrid
  • 8. ¿Qué es Drupal? Multiplataforma (LAMP / WAMP /XAMP) 8 Introducción a Drupal Oficinas certificadas: Bilbao y Madrid
  • 9. ¿Qué es Drupal? Drupal es software libre • Publicado bajo licencia GNU/GPL 2 o superior. • Libre descarga, modificación y reutilización. • Distribución bajo la misma licencia. • Todos los plugins (módulos) y plantillas (temas) que se incluyen tanto en la descarga inicial como en las descargas desde el repositorio oficial tienen licencia GPL. 9 Introducción a Drupal Oficinas certificadas: Bilbao y Madrid
  • 10. ¿Qué es Drupal? Licencia GPL • Libertades del software libre – Artículo principal: Definición del Software Libre • De acuerdo con tal definición, el software es "libre" si garantiza las siguientes libertades: Libertad Descripción 0 la libertad de usar el programa, con cualquier propósito. 1 la libertad de estudiar cómo funciona el programa y modificarlo, adaptándolo a tus necesidades. 2 la libertad de distribuir copias del programa, con lo cual puedes ayudar a tu prójimo. 3 la libertad de mejorar el programa y hacer públicas esas mejoras a los demás, de modo que toda la comunidad se beneficie. Las libertades 1 y 3 requieren acceso al código fuente porque estudiar y modificar software sin su código fuente es muy poco viable. 10 Introducción a Drupal Oficinas certificadas: Bilbao y Madrid
  • 11. ¿Qué es Drupal? Arquitectura 11 Introducción a Drupal Oficinas certificadas: Bilbao y Madrid
  • 12. ¿Qué es Drupal? Directorios 12 Introducción a Drupal Oficinas certificadas: Bilbao y Madrid
  • 13. ¿De dónde viene? Dries Buytaert • Fundador de Drupal. • Ciudadano Belga. • Código fuente abierto en 2001. • Publicado bajo licencia GNU/GPL 2 o superior. • El dominio original, drop.org es un error tipográfico de su creador, Dries Buytaert. • Drupal es el equivalente fonético en inglés a la palabra neerlandesa druppel que significa 'gota'. 13 Introducción a Drupal Oficinas certificadas: Bilbao y Madrid
  • 14. ¿Qué puedo hacer con él? • Portales corporativos. • Galerías de fotos. • Intranets. • Galerías de vídeos. • Blogs. • E-commerce. • Foros. • E-learning. • Comunidades. • Aplicaciones. • Wikis. • ... • Eventos. 14 Introducción a Drupal Oficinas certificadas: Bilbao y Madrid
  • 15. ¿Quién lo está usando? • Medios. (http://www.vt4.be/) • Corporativos. (http://www.bilbomatica.es) • Organizaciones sin animo de lucro. (http://www.amnesty.org/) • Educación. (http://www.harvardscience.harvard.edu/) • Software. (http://www.spreadfirefox.com/) • Políticos. (http://www.premier.fgov.be) Primer Ministro Belga. • Gobiernos. (http://www.whitehouse.gov/) • Artistas. (http://www.ericclapton.com/) • Sanidad. (http://www.uzleuven.be/) • Revistas. (http://clint.be/) • Noticias. (http://www.france24.com/) • … 15 Introducción a Drupal Oficinas certificadas: Bilbao y Madrid
  • 16. ¿Quién es quién en Drupal? Dries Buytaert • Fundador y desarrollador líder de Drupal. • Mantenedor principal del núcleo. • Creador y propietario de la marca. 16 Introducción a Drupal Oficinas certificadas: Bilbao y Madrid
  • 17. ¿Quién es quién en Drupal? Mantenedores de la ramas • Neil Drumm (D5) • Gabor Hojtsy (D6) • Angie Byron (D7) 17 Introducción a Drupal Oficinas certificadas: Bilbao y Madrid
  • 18. ¿Quién es quién en Drupal? Mantenedores y colaboradores • Mantenedores. • Colaboradores del núcleo. • Colaboradores de módulos. • Colaboradores del temas. • Colaboradores de de traducciones. • Colaboradores de documentación. • Equipo de seguridad. 18 Introducción a Drupal Oficinas certificadas: Bilbao y Madrid
  • 19. Algunas características interesantes • Creación de contenidos. • Taxonomías. • Menús. • Estados de publicación. • Gestión de usuarios. • Permisos. • RSS. • Multilenguaje. • Traducción de contenidos. • Formularios. • Multisitios. • … 19 Introducción a Drupal Oficinas certificadas: Bilbao y Madrid
  • 20. Algunas características interesantes Puntos fuertes de Drupal • Extensible: gran cantidad de módulos contribuidos y una buena API para desarrollos propios. • Flexible. • Seguridad: equipo dedicado a la seguridad, granularidad de permisos, … • Sistema de plantillas muy potente. • Comunidad: centralizada, activa y numerosa. • Soporte: una comunidad activa y disponibilidad de profesionales. • Software libre y gratuito. 20 Introducción a Drupal Oficinas certificadas: Bilbao y Madrid
  • 21. Algunas características interesantes Puntos débiles de Drupal • Curva de aprendizaje inicial pronunciada. • Interfaz por defecto poco amigable. • Compatibilidad inversa. 21 Introducción a Drupal Oficinas certificadas: Bilbao y Madrid
  • 22. ¿Cómo construir un sitio de Drupal? Antes de comenzar • Análisis de requisitos. • Arquitectura de información. • Usabilidad. • Diseño. 22 Introducción a Drupal Oficinas certificadas: Bilbao y Madrid
  • 23. ¿Cómo construir un sitio de Drupal? Tareas a realizar • Seleccionar módulos existentes que implementen la funcionalidad solicitada. • Adaptar módulos con funcionalidades inexistentes. • Crear módulos a medida. (El objetivo es desarrollar lo menos posible y utilizar el máximo de módulos desarrollados por la comunidad, esto conlleva menor trabajo de desarrollo) • Instalación y configuración. • Crear o adaptar un tema para personalizar la apariencia. • Personalizar y adaptar entorno visual. (Bloques, menús,...). • Lanzamiento. • Mantenimiento. 23 Introducción a Drupal Oficinas certificadas: Bilbao y Madrid
  • 24. ¿Qué tecnológicas están involucradas en un buen sitio de Drupal? Programación • PHP • API de Drupal 24 Introducción a Drupal Oficinas certificadas: Bilbao y Madrid
  • 25. ¿Qué tecnológicas están involucradas en un buen sitio de Drupal? Cliente • HTML – XHTML • CSS • JavaScript • jQuery 25 Introducción a Drupal Oficinas certificadas: Bilbao y Madrid
  • 26. ¿Qué tecnológicas están involucradas en un buen sitio de Drupal? Diseño • Libres – Gimp – Inkscape • Propietarias – Adobe Photoshop – Adobe Illustrator 26 Introducción a Drupal Oficinas certificadas: Bilbao y Madrid
  • 27. ¿Qué tecnológicas están involucradas en un buen sitio de Drupal? Servidor • Sistema operativo – Linux (recomendado) – Windows – Mac OS X • Servidor Web – Apache (recomendado) – IIS • Base de datos – MySQL (recomendado) – PostgreSQL • Red 27 Introducción a Drupal Oficinas certificadas: Bilbao y Madrid
  • 28. ¿Qué tecnológicas están involucradas en un buen sitio de Drupal? Algunos extras • Ajax • XML-RPC • Servicios web • XML • Flash 28 Introducción a Drupal Oficinas certificadas: Bilbao y Madrid
  • 29. ¿Cual es el estado actual de Drupal? • Drupal 5 – En mantenimiento (antigua) • Drupal 6 – En mantenimiento (actual) • Drupal 7 – Congelada (en correcciones) 29 Introducción a Drupal Oficinas certificadas: Bilbao y Madrid
  • 30. ¿Cual es el estado actual de Drupal? Algunos premios ganados • Webware 100 2007 • Webware 100 2008 • Webware 100 2009 • Overall Open Source CMS 2007 • Overall Open Source CMS 2008 • Best Open Source PHP CMS 2009 • Hall of Fame 2009 • … 30 Introducción a Drupal Oficinas certificadas: Bilbao y Madrid
  • 31. Herramientas de administración 31 Introducción a Drupal Oficinas certificadas: Bilbao y Madrid
  • 32. MySQL • MySQL Admin • MySQL Query Brownser • Phpmyadmin 32 Introducción a Drupal Oficinas certificadas: Bilbao y Madrid
  • 33. Administración de ficheros • FileZilla • WinSCP 33 Introducción a Drupal Oficinas certificadas: Bilbao y Madrid
  • 34. Administración de sistemas • Putty (comandos) • VNC • Escritorio remoto 34 Introducción a Drupal Oficinas certificadas: Bilbao y Madrid
  • 35. Administración de Drupal • Firefox • Opera • Chrome – Chromium • Internet Explorer • Cualquier otro navegador web 35 Introducción a Drupal Oficinas certificadas: Bilbao y Madrid
  • 36. Instalación de Drupal 36 Introducción a Drupal Oficinas certificadas: Bilbao y Madrid
  • 37. GNU/Linux Se recomienda que los servidores de producción corran sobre la siguiente arquitectura: • GNU/Linux • Apache • MySQL • PHP 37 Introducción a Drupal Oficinas certificadas: Bilbao y Madrid
  • 38. GNU/Linux Instalación de paquetes • Abrir terminal e instalar Apache2, PHP 5 y MySQL 5.1. $ sudo aptitude install apache2 mysql-server-5.1 php5 php5-mysql Instalación de herramientas • Herramientas de administración para MySQL y cliente FTP/SFTP (FileZilla). $ sudo aptitude install mysql-query-browser mysql-client-5.1 mysql-admin mysql-workbench phpmyadmin Activar url limpias • Activar las url limpias para mejorar la indexación de las paginas y facilitar su lectura. $ sudo a2enmod rewrite 38 Introducción a Drupal Oficinas certificadas: Bilbao y Madrid
  • 39. GNU/Linux Directorio virtual • Creamos un fichero con los parámetros de nuestros sitio. $ sudo nano /etc/apache2/sites-available/www.drupalexample.com <VirtualHost *:80> ServerAdmin email@bilbomatica.es ServerName www.drupalexample.com ServerAlias drupalexample.com DocumentRoot /home/usuario/Proyectos/drupalexample/ <Directory /> Options FollowSymLinks AllowOverride All </Directory> ErrorLog /var/log/apache2/error.log # Possible values include: debug, info, notice, warn, error, crit, # alert, emerg. LogLevel warn CustomLog /var/log/apache2/access.log combined ServerSignature On </VirtualHost> • www.drupalexample.com debe ser sustituido por el nombre original del sitio. Si no se realiza así a la hora de cambiar la URL dará algún que otro dolor de cabeza. Dependencia de la url. • Esta configuración solo es para un desarrollo local. En caso de producción seria recomendable crearlo en /var/www/ 39 Introducción a Drupal Oficinas certificadas: Bilbao y Madrid
  • 40. GNU/Linux Enlace simbólico • Crear el enlace para activar el nuevo sitio creado. $ sudo ln -s /etc/apache2/sites-available/www.drupalexample.com /etc/apache2/sites-enabled/www.drupalexample.com Editar hosts y reiniciar red • Editar hosts para el desarrollo en local y así decir en que ip esta la web sin pasar por el DNS. $ sudo nano /etc/hosts 89.0.x.x www.drupalexample.com • Reiniciar red $ sudo /etc/init.d/networking restart 40 Introducción a Drupal Oficinas certificadas: Bilbao y Madrid
  • 41. GNU/Linux Crear Base de Datos • Abrir la terminal y ejecutar. $ mysql -u root -p mysql> create database drupalexample CHARACTER SET utf8; mysql> GRANT ALL PRIVILEGES ON drupalexample.* TO drupaldbuser@localhost IDENTIFIED BY 'fuffy'; mysql> flush privileges; mysql> q Bye 41 Introducción a Drupal Oficinas certificadas: Bilbao y Madrid
  • 42. GNU/Linux Ficheros de Drupal • Abrir terminal e ir a la carpeta del proyecto. $ cd /home/usuario/Proyectos/ • Descargar Drupal. $ wget http://ftp.drupal.org/files/projects/drupal-6.15.tar.gz • Descomprimir Drupal. $ tar xvfz drupal-6.15.tar.gz • Renombrar Drupal al nombre del proyecto. $ mv drupal-6.15 drupalexample Reiniciar Apache • Reiniciamos apache para que cargue todas las modificaciones. $ sudo /etc/init.d/apache2 restart 42 Introducción a Drupal Oficinas certificadas: Bilbao y Madrid
  • 43. Windows Para la instalación de windows utilizaremos WAMP. Resulta mas fácil la instalación y configuración de: • Apache • MySQL • PHP Apache 2.2.11 PHP 5.3.0 MySQL 5.1.36 Phpmyadmin size: 16Mo 43 Introducción a Drupal Oficinas certificadas: Bilbao y Madrid
  • 44. Windows Descargar e instalar WAMP • Descargar WAMP: http://downloads.sourceforge.net/project/wampserver/WampServer%202/WampServer %202.0/WampServer2.0i.exe?use_mirror=heanet • Utilizaremos esta versión del WAMP debido a que Drupal 6 no soporta PHP 5.3 o superior. Esta instalación contiene PHP 5.2.11 • Descargar PHP 5.2.11 para WAMP http://downloads.sourceforge.net/project/wampserver/WampServer%202%20- %20Extensions/PHP/WampServer2-PHP5211.exe?use_mirror=kent • Cuando iniciemos WAMP vamos a php y le cambiamos el PHP a utilizar. • Tras descargar activamos el modulo rewrite_module. 44 Introducción a Drupal Oficinas certificadas: Bilbao y Madrid
  • 45. Windows Directorio virtual • Activamos el modulo vhost_alias_module. • Editar el fichero httpd.conf y descomentar la siguiente linea: Include conf/extra/httpd-vhosts.conf • www.drupalexample.com debe ser sustituido por el nombre original del sitio. Si no se realiza así a la hora de cambiar la URL dará algún que otro dolor de cabeza. Dependencia de la url. Hay solución al mismo que se vera mas adelante. • Editamos el fichero C:wampbinapacheApache2.2.11confextrahttpd- vhosts.conf y añadimos solo: 45 Introducción a Drupal Oficinas certificadas: Bilbao y Madrid
  • 46. Windows NameVirtualHost *:80 <VirtualHost *:80> ServerAdmin webmaster@localhost DocumentRoot "c:/wamp/www" ServerName localhost ErrorLog "logs/localhost-error.log" CustomLog "logs/localhost-access.log" common </VirtualHost> <VirtualHost *:80> ServerAdmin email@bilbomatica.es ServerName www.drupalexample.com ServerAlias drupalexample.com DocumentRoot "c:/wamp/www/drupalexample/" <Directory "c:/wamp/www/drupalexample/"> Options Indexes FollowSymLinks MultiViews AllowOverride All </Directory> ErrorLog "c:/wamp/logs/apache_error.log" # Possible values include: debug, info, notice, warn, error, crit, # alert, emerg. LogLevel warn CustomLog "c:/wamp/logs/access.log" combined ServerSignature On </VirtualHost> 46 Introducción a Drupal Oficinas certificadas: Bilbao y Madrid
  • 47. Windows Editar hosts y reiniciar red Con en mismo bloc de notas y editamos C:WINDOWSsystem32driversetchosts y añadimos lo siguiente para decir en que ip esta la web sin pasar por el DNS: 89.0.x.x www.drupalexample.com Crear Base de Datos • Accedemos mediante WAMP a la consola de MySQL que nos proporciona. $ mysql -u root -p mysql> create database drupalexample CHARACTER SET utf8; mysql> GRANT ALL PRIVILEGES ON drupalexample.* TO drupaldbuser@localhost IDENTIFIED BY 'fuffy'; mysql> flush privileges; mysql> q Bye 47 Introducción a Drupal Oficinas certificadas: Bilbao y Madrid
  • 48. Windows Ficheros de Drupal • Descargamos y descomprimimos (winrar o similar) el fichero en c:/wamp/www/ y renombramos la carpeta de drupal-6.15 a drupalexample. • Descarga: http://ftp.drupal.org/files/projects/drupal-6.15.tar.gz Reiniciar Apache • Mediantes la herramienta de WAMP reiniciamos los servicios. 48 Introducción a Drupal Oficinas certificadas: Bilbao y Madrid
  • 49. Instalando aplicación de Drupal Estructura directorios 49 Introducción a Drupal Oficinas certificadas: Bilbao y Madrid
  • 50. Instalando aplicación de Drupal • Vamos a sites. • Copiamos la carpeta default y la llamamos www.drupalexample.com. • Entramos dentro de www.drupalexample.com. • Renombramos default.settings.php a settings.php. • Para sistemas GNU/Linux realizamos lo siguiente – settings.php tiene que tener permisos de escritura. • chmod 666 settings.php – Tras la instalación del portal tenemos que quitarle permisos de escritura. • chmod 444 settings.php • Creamos la carpeta files en nuestra web (.sites/www.drupalexample.com/files). – Cambiar los permisos en GNU/Linux. • chmod -R 777 files • Creamos la carpeta modules en nuestra web (.sites/www.drupalexample.com/modules). • Creamos la carpeta themes en nuestra web (.sites/www.drupalexample.com/themes). • Accedemos con cualquier navegador, preferiblemente firefox. 50 Introducción a Drupal Oficinas certificadas: Bilbao y Madrid
  • 51. Instalando aplicación de Drupal Perfil • Abrir navegador e ir a http://www.drupalexample.com/install.php. • Elegimos siempre el perfil en ingles para evitar posibles errores posteriores. 51 Introducción a Drupal Oficinas certificadas: Bilbao y Madrid
  • 52. Instalando aplicación de Drupal Base de datos 52 Introducción a Drupal Oficinas certificadas: Bilbao y Madrid
  • 53. Instalando aplicación de Drupal Configuración del sitio 53 Introducción a Drupal Oficinas certificadas: Bilbao y Madrid
  • 54. Instalando aplicación de Drupal Finalizada la instalación • Recordad el cambio de permisos de settings.php 54 Introducción a Drupal Oficinas certificadas: Bilbao y Madrid
  • 55. Configuración básica 55 Introducción a Drupal Oficinas certificadas: Bilbao y Madrid
  • 56. Panel administración • Panel general para administrar el portal: http://www.drupalexample.com/es/admin. 56 Introducción a Drupal Oficinas certificadas: Bilbao y Madrid
  • 57. Página de estado • Estado del portal, actualizaciones, versiones, ...: http://www.drupalexample.com/es/admin/reports/status. 57 Introducción a Drupal Oficinas certificadas: Bilbao y Madrid
  • 58. Módulos • Listado de módulos disponibles y estado de los mismos: http://www.drupalexample.com/es/admin/build/modules. 58 Introducción a Drupal Oficinas certificadas: Bilbao y Madrid
  • 59. Temas • Listado de temas disponibles, activos y estado de los mismos: http://www.drupalexample.com/es/admin/build/themes. 59 Introducción a Drupal Oficinas certificadas: Bilbao y Madrid
  • 60. Bloques • Disposición de bloques y configuración de los mismos: http://www.drupalexample.com/es/admin/build/block. 60 Introducción a Drupal Oficinas certificadas: Bilbao y Madrid
  • 61. Usuarios, roles y permisos • Gestión de usuarios, roles y permisos para el control de los usuarios: – Usuarios: http://www.drupalexample.com/es/admin/user/user. 61 Introducción a Drupal Oficinas certificadas: Bilbao y Madrid
  • 62. Usuarios, roles y permisos – Roles: http://www.drupalexample.com/es/admin/user/roles. 62 Introducción a Drupal Oficinas certificadas: Bilbao y Madrid
  • 63. Usuarios, roles y permisos – Permisos de los roles: http://www.drupalexample.com/es/admin/user/permissions. 63 Introducción a Drupal Oficinas certificadas: Bilbao y Madrid
  • 64. Rendimiento/Cache • Configuración para la optimización en la ejecución y consulta de paginas: http://www.drupalexample.com/es/admin/settings/performance. 64 Introducción a Drupal Oficinas certificadas: Bilbao y Madrid
  • 65. Actualizar url Como se comentaba anteriormente Drupal es dependiente de la url y el cambiar la url afecta directamente a la • plataforma. Para cambiar la url se ha de ejecutar unas sentencias SQL. Los campos están serializados (s:xx:) con la longitud total del campo (xx es el valor del campo). Al cambiar la • url es necesario el adaptar campo numérico con el valor real de la linea. UPDATE system SET filename = REPLACE(filename, 'www.example.com', 'www.drupalexample.com'); UPDATE files SET filepath = REPLACE(filepath, 'www.example.com', 'www.drupalexample.com'); UPDATE node_revisions SET body = REPLACE(body , 'www.example.com', 'www.drupalexample.com'); UPDATE node_revisions SET teaser = REPLACE(teaser, 'www.example.com', 'www.drupalexample.com'); UPDATE variable SET value = REPLACE(value, 's:36:"sites/www.example.com', 's:42:"sites/www.drupalexample.com'); UPDATE variable SET value = REPLACE(value, 's:31:"sites/www.example.com', 's:37:"sites/www.drupalexample.com'); UPDATE variable SET value = REPLACE(value, 's:27:"sites/www.example.com', 's:33:"sites/www.drupalexample.com'); UPDATE variable SET value = REPLACE(value, 's:21:"sites/www.example.com', 's:27:"sites/www.drupalexample.com'); UPDATE variable SET value = REPLACE(value, 's:46:"sites/www.example.com', 's:52:"sites/www.drupalexample.com'); En este caso vemos que la diferencia entre www.example.com y www.drupalexample.com es de tan solo 6 • caracteres. Con modificar el valor s:xx: es suficiente para corregirlo. Posteriormente accedemos un par de veces a las siguientes url para que actualice todos los datos. • www.drupalexample.com/update.php – www.drupalexample.com/cron.php – 65 Introducción a Drupal Oficinas certificadas: Bilbao y Madrid
  • 66. Módulos mas usados 66 Introducción a Drupal Oficinas certificadas: Bilbao y Madrid
  • 67. Módulos más usados Estos son algunos de los módulos más usados en Drupal. Se deben seleccionar aquellos que sean necesarios para las necesidades del proyecto. • Visitar: http://drupal.org/project/usage – Backup and Migrate: http://drupal.org/project/backup_migrate – Poormanscron: http://drupal.org/project/poormanscron – Content Construction Kit (CCK): http://drupal.org/project/cck – Views: http://drupal.org/project/views – Wysiwyg: http://drupal.org/project/wysiwyg – Token: http://drupal.org/project/token – Pathauto: http://drupal.org/project/pathauto – Transliteration: http://drupal.org/project/usage/transliteration –… 67 Introducción a Drupal Oficinas certificadas: Bilbao y Madrid
  • 68. Diseño de un tema 68 Introducción a Drupal Oficinas certificadas: Bilbao y Madrid
  • 69. Por qué utilizar ZEN • Diseño básico creado para ser adaptado. • Provee varios subtemas básicos diseñados para extender. • Ficheros CSS base para extender. – IDs creadas y posibilidad de extender. – Clases creadas y posibilidad de extender. • Contiene layout básicas. – Anchura fija. – Anchura dinámica. • Capas html básicas para extender. • Capacidad de añadir nuevas: – Plantillas. – IDs. – Clases. – Ficheros javascript. 69 Introducción a Drupal Oficinas certificadas: Bilbao y Madrid
  • 70. Utilizar como base ZEN Instalación • Diseño básico creado para adaptar. • Proyecto: http://drupal.org/project/zen • Documentación: http://drupal.org/node/193318 • Descargamos ZEN de: – http://ftp.drupal.org/files/projects/zen-6.x-1.1.tar.gz • Descomprimimos el fichero en la carpeta de temas – ./drupalexample/sites/www.drupalexample.com/th emes 70 Introducción a Drupal Oficinas certificadas: Bilbao y Madrid
  • 71. Utilizar como base ZEN Crear subtema de Zen • Diseño básico creado para adaptar. • Documentación subtema: http://drupal.org/node/226507 • Antes de continuar deshabilita la optimización de CSS y Javascript. Visite admin/settings/performance y deshabilite "Optimize CSS files" y "Optimize Javascript files". • Copia la carpeta STARTERKIT fuera de la carpeta zen/ y renombrela como vaya a llamar a tu subtema. IMPORTANTE: solo utilizar minúsculas. – Por ejemplo, copia la carpeta sites/all/themes/zen/STARTERKIT y renombrela a sites/all/themes/foo. • ¿Por qué? Cada tema debe residir en su propia carpeta. A diferencia de Drupal 5, los sub-temas pueden (y deben) residir en una carpeta separada de tu tema base. 71 Introducción a Drupal Oficinas certificadas: Bilbao y Madrid
  • 72. Utilizar como base ZEN • En la carpeta del nuevo subtema, renombra el fichero STARTERKIT.info.txt por el incluido en el nombre de tu nuevo subtema. A continuación, edita el archivo .info para cambiar cualquier coincidencia de STARTERKIT con el nombre de tu subtema y edita el nombre y el campo de descripción. – Por ejemplo, cambia el nombre foo/STARTERKIT.info.txt por foo/foo.info. Edita el fichero foo.info y cambia "STARTERKIT.css" por "foo.css", cambia “name = Zen Sub-theme Starter Kit" a "name = foo", y cambia “description = Read..." a "description = A Zen sub-theme". • ¿Por qué? El fichero .info describe la información básica sobre tu tema: su nombre, descripción, características, regiones de plantilla, los archivos CSS, y los archivos de JavaScript. Ver Drupal 6 Theme Guide para más información. – A continuación, visita en su sitio web admin/build/themes para refrescar la caché de Drupal 6 de archivo de datos .info. 72 Introducción a Drupal Oficinas certificadas: Bilbao y Madrid
  • 73. Utilizar como base ZEN • Si deseas un diseño dinámico (liquid) para tu tema, copia el esquema de liquid.css de la zen/zen y colócala en la carpeta de tu subtema. Si deseas un diseño de ancho fijo para tu tema, copia el esquema de fixed.css de la carpeta zen/zen y colócala en la carpeta de tu subtemas. Camba el nombre de la hoja de estilo de diseño a "layout.css". – Por ejemplo, copia zen/zen/layout-fixed.css y renómbrelo por foo/layout.css. Ten en cuenta que el archivo .info ya tiene una entrada para el archivo layout.css. • ¿Por qué? En los temas de Drupal 6, si se desea modificar una hoja de estilos incluidos en el tema base o a través un módulo, se debería copiar el estilo del tema base o del directorio de módulos al directorio de tu subtema, y luego agregar la información de su hoja de estilo a archivo. Ver Drupal 6 Theme Guide para más información. • Copia la hoja de estilo zen de la carpeta de zen y colócala en la carpeta de tu subtema. Cambia el nombre por el de tu subtema. – Por ejemplo, copia zen/zen/zen.css y renombrala a foo/foo.css. Ten en cuenta que el archivo .info ya tiene una entrada para el archivo de foo.css y que tu archivo .info elimina el archivo zen.css el tema base. 73 Introducción a Drupal Oficinas certificadas: Bilbao y Madrid
  • 74. Utilizar como base ZEN • Copia la hoja de estilos de impresión de la carpeta zen y colócala en la carpeta de tu subtema. – Por ejemplo, copia zen/zen/print.css a foo/print.css. Ten en cuenta que en el fichero .info ya existe una entrada print.css. • Copia la hoja de estilos html-elements stylesheet de la carpeta y colócala en la carpeta de tu subtema. – Por ejemplo, copia zen/zen/html-elements.css a foo/html-elements.css. Ten en cuenta que en el fichero .info ya existe una entrada html-elements.css. • Edita los ficheros template.php y settings.php de directorio del subtema; reemplaza todas las coincidencias "STARTERKIT" con el nombre de tu subtema. – Por ejemplo, edita foo/template.php y foo/theme-settings.php y reemplaza "STARTERKIT" por "foo". • Inicie sesión como administrador en el sitio de Drupal y ve a Administer > Site building > Themes (admin/build/themes) y activa su nuevo subtema. 74 Introducción a Drupal Oficinas certificadas: Bilbao y Madrid
  • 75. Utilizar como base ZEN Opcional • Modificar las hojas de estilos del núcleo de Zen: Si decides modificar cualquiera de las hojas de estilo en la carpeta de Zen, cópialos a la carpeta del subtema antes de hacer cualquier cambio. Además, asegúrate de que la nueva hoja de estilo se incluye en el archivo de .info y que ha reconstruido el registro de tema. – Por ejemplo, copia zen/zen/block-editing.css a foo/block-editing.css. Edita foo/foo.info y descomenta la siguiente linea para activarlo: • ;stylesheets[all][] = block-editing.css • a: • stylesheets[all][] = block-editing.css – A continuación, visita en su sitio web admin/build/themes para refrescar la caché de Drupal 6 de archivo de datos .info. 75 Introducción a Drupal Oficinas certificadas: Bilbao y Madrid
  • 76. Utilizar como base ZEN • Modificando los fichero template del núcleo de Zen: Si decides que deseas modificar cualquiera de los ficheros plantilla .tpl.php en la carpeta zen, cópialos a la carpeta del subtema antes de realizar los cambios. Después reconstruye el regitro de temas. – Por ejemplo, copia zen/zen/page.tpl.php a foo/page.tpl.php. • Tematizando el formulario de búsqueda en Drupal: Copia el fichero plantilla search- theme-form.tpl.php de la carpeta modules/search/ y colócala en la carpeta de su subtema. Después reconstruye el regitro de temas. – ¿Por qué? Los temas en Drupal, si deseas modificar una plantilla incluida en un módulo, deberías copiar el archivo de plantilla desde el directorio del módulo a su directorio de subtemas, y luego reconstruir el registro de tema. Ver Drupal 6 Theme Guide para más información. • Mas ampliaciones para su subtema: Descubre nuevas formas para ampliar tu subtema leyendo Drupal 6's Theme Guide. 76 Introducción a Drupal Oficinas certificadas: Bilbao y Madrid
  • 77. Elegir layout y clases • Layout para subtema a elegir. – Liquid: anchura dinámica, recomendado. – Fixed: anchura fija. Page.tpl.php: pagina principal de diseño, contiene los campos y áreas principales. Dispone de • los ids y clases principales. Todas ellas pueden ser adaptadas. – Clases genéricas: existe la posibilidad de añadir nuevas clases como pueden ser el idioma. – Ids genéricas: existe la posibilidad de añadir nuevas como pueden ser el idioma. Node.tpl.php: contenido de los nodos y su presentación. Al igual que el page.tpl.php es • extensible y adaptable. Existen otros componentes que también pueden ser adaptados. • – Frontpage.tpl.php: pagina principal. – node-xxx.tpl.php: nodo especifico de una ruta. – views-xxx.tpl.php: vistas de un contenido especifico. – maintenance-page.tpl.php: pagina mantenimiento. – …. Logo. • Hojas de estilo. • ... • 77 Introducción a Drupal Oficinas certificadas: Bilbao y Madrid
  • 78. Modulo básico 78 Introducción a Drupal Oficinas certificadas: Bilbao y Madrid
  • 79. Ficheros básicos • nombre_modulo.info – Información sobre el modulo. • nombre_modulo.install – Parámetros de instalación del modulo. – Ejemplo: crear tabla. • nombre_modulo.module – Código principal de modulo. 79 Introducción a Drupal Oficinas certificadas: Bilbao y Madrid
  • 80. Hooks • Permite a los módulos interactuar con el núcleo de Drupal. • El sistema de módulos de Drupal está basado en el concepto de "hook". Un “hook” es una función PHP que se denomina foo_bar (), donde foo es el nombre del módulo (cuyo nombre puede ser, foo.module) y "bar" es el nombre del “hook”. Cada hook tiene un conjunto definido de parámetros y un tipo de resultado especificado. • Para extender Drupal, un módulo simplemente necesita implementar un hook. Cuando Drupal desea permitir la intervención de los módulos, determinará que hook implementará de un modulo y le llamará en todos los módulos activos que lo implemente. • Los hooks disponibles para la implementación se explican en la sección de hooks de la documentación del desarrollador. La cadena de "hook" se utiliza como marcador de posición para el nombre del módulo en las definiciones del hook. Por ejemplo, si el archivo se llama módulo de example.module, entonces hook_help (), aplicado por dicho módulo se define como example_help (). • http://api.drupal.org/api/group/hooks 80 Introducción a Drupal Oficinas certificadas: Bilbao y Madrid
  • 81. Modulo básico de ejemplo example.info $Id: README.txt,v 1.0 2010/01/21 12:58:46 example Exp $ name = Example description = Módulo de ejemplo para formación package = Ejemplo core = 6.x ; Información para el modulo version = "6.x.1-dev" core = "6.x" project = "Example" datestamp = "" 81 Introducción a Drupal Oficinas certificadas: Bilbao y Madrid
  • 82. Modulo básico de ejemplo example.install • En principio no es necesario incluir código a menos que el modulo lo requiera. <?php /* * Fichero de instalación */ 82 Introducción a Drupal Oficinas certificadas: Bilbao y Madrid
  • 83. Modulo básico de ejemplo example.module • Las cadenas de texto en la función t() siempre deben de ir en ingles, para evitar posibles errores posteriores.. <?php //Se inicia el php pero no se cierra /** * Implementacion de hook_menu(). */ function example_menu() { $items['menu_example'] = array ( 'title' => 'Ejemplo de una vez', 'description' => 'Prueba de Ejemplo', 'page callback' => '_example_hello', //"_" para aquellas que son privadas. 'access callback' => TRUE, //'type' => MENU_CALLBACK, no aparecerá en el menú 'type' => MENU_NORMAL_ITEM, //aparecerá en el menú ); return $items; } 83 Introducción a Drupal Oficinas certificadas: Bilbao y Madrid
  • 84. Modulo básico de ejemplo /** * Ejemplo básico con parámetro en Url */ function _example_hello ($dato = '') { //$dato primer parámetro después de "../menu_example/loquesea" $retorno = ''; if ($dato == '') { $retorno = 'Hola Mundo'; } else { $retorno = $dato; } return $retorno; } 84 Introducción a Drupal Oficinas certificadas: Bilbao y Madrid
  • 85. Modulo con formulario example.info $Id: README.txt,v 1.0 2010/01/21 12:58:46 example Exp $ name = Example description = Módulo de ejemplo para formación package = Ejemplo core = 6.x ; Información para el modulo version = "6.x.1-dev" core = "6.x" project = "Example" datestamp = "" 85 Introducción a Drupal Oficinas certificadas: Bilbao y Madrid
  • 86. Modulo con formulario example.install • En principio no es necesario incluir código a menos que el modulo lo requiera. <?php /* * Fichero de instalación */ 86 Introducción a Drupal Oficinas certificadas: Bilbao y Madrid
  • 87. Modulo con formulario example.module • Las cadenas de texto en la función t() siempre deben de ir en ingles, para evitar posibles errores posteriores.. <?php //Se inicia el php pero no se cierra /** * Implementacion de hook_menu(). */ function example_menu() { $items['menu_example'] = array ( 'title' => 'Ejemplo de una vez', 'description' => 'Prueba de Ejemplo', 'page callback' => '_example_hello', //"_" para aquellas que son privadas. 'access callback' => TRUE, //'type' => MENU_CALLBACK, no aparecerá en el menú 'type' => MENU_NORMAL_ITEM, //aparecerá en el menú ); Continua en la siguiente diapositiva → 87 Introducción a Drupal Oficinas certificadas: Bilbao y Madrid
  • 88. Modulo con formulario ← Continuación de la anterior diapositiva $items['menu_mas'] = array ( 'title' => 'Ejemplo con formulario', 'description' => 'Prueba de Ejemplo', 'page callback' => 'drupal_get_form', 'page arguments' => array('example_form'), 'access callback' => TRUE, 'type' => MENU_NORMAL_ITEM, 'file' => 'example.pages.inc', ); return $items; } 88 Introducción a Drupal Oficinas certificadas: Bilbao y Madrid
  • 89. Modulo con formulario example.pages.inc <?php // $Id$ /** * Definir el formulario. */ function example_form() { $form['user_name'] = array( '#title' => t('Your name'), '#type' => 'textfield', '#description' => t('Please enter your name.'), //Siempre en ingles ); $form['submit'] = array( '#type' => 'submit', '#value' => t('Submit') ); } return $form; Continua en la siguiente diapositiva → 89 Introducción a Drupal Oficinas certificadas: Bilbao y Madrid
  • 90. Modulo con formulario ← Continuación de la anterior diapositiva /** * Validar el formulario. */ function example_form_validate($form, &$form_state) { $name = $form_state['values']['user_name']; if ($form_state['values']['user_name'] == 'Ruben Egiguren') { // Notificamos al API de formulario que el campo a fallado. // Campo error, texto error form_set_error('user_name',t('%name is not allowed to use this form.', array('%name' => $name))); //Siempre en ingles } } /** * Manejador de post-envío del formulario de validación. */ function example_form_submit($form, &$form_state) { $name = $form_state['values']['user_name']; drupal_set_message(t('Thanks for filling out the form, %name', array('%name' => $name))); //Siempre en ingles } 90 Introducción a Drupal Oficinas certificadas: Bilbao y Madrid
  • 91. Fuentes 91 Introducción a Drupal Oficinas certificadas: Bilbao y Madrid
  • 92. Fuentes • http://drupal.org/ • http://drupal.org/books – Listado amazon – Pro Drupal Development, Second Edition – Learning Drupal 6 Module Development • http://es.wikipedia.org/ • http://www.drupalcoder.com/story/529-introduction-to-drupal-presentation-slides • http://www.slideshare.net/neurotic/taller-drupal-php-conference • http://www.flickr.com/photos/raincitystudios/97420788/ • http://buytaert.net/album/drupalcon-sunnyvale-2007/angela-byron • http://www.flickr.com/photos/sebastian_bergmann/79011031/sizes/m/ 92 Introducción a Drupal Oficinas certificadas: Bilbao y Madrid
  • 93. Licencia • Usted es libre de – copiar, distribuir y comunicar públicamente la obra. – hacer obras derivadas. • Bajo las condiciones siguientes – Reconocimiento ― Debe reconocer los créditos de la obra de la manera especificada por el autor o el licenciador (pero no de una manera que sugiera que tiene su apoyo o apoyan el uso que hace de su obra). – No comercial ― No puede utilizar esta obra para fines comerciales. – Compartir bajo la misma licencia ― Si altera o transforma esta obra, o genera una obra derivada, sólo puede distribuir la obra generada bajo una licencia idéntica a ésta. • Licencia completa – http://creativecommons.org/licenses/by-nc-sa/3.0/es/legalcode.es 93 Introducción a Drupal Oficinas certificadas: Bilbao y Madrid
  • 94. FIN 94 Introducción a Drupal Oficinas certificadas: Bilbao y Madrid