introducción a drupal

94
Introducción a Drupal Oficinas certificadas: Bilbao y Madrid Introducción a Drupal Fecha: 21/01/2010 Autor: Ruben Egiguren

Upload: keopx

Post on 18-Nov-2014

13.056 views

Category:

Technology


0 download

DESCRIPTION

Curso de Introducción a Drupal. Formación interna realizada en Bilbomática.

TRANSCRIPT

Page 1: Introducción a Drupal

Introducción a DrupalOficinas certificadas: Bilbao y Madrid

Introducción a Drupal

Fecha: 21/01/2010

Autor: Ruben Egiguren

Page 2: Introducción a Drupal

2Introducción a Drupal

Oficinas certificadas: Bilbao y Madrid

• 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

ÍNDICE

Page 3: Introducción a Drupal

3Introducción a Drupal

Oficinas certificadas: Bilbao y Madrid

Introducción a Drupal

Page 4: Introducción a Drupal

4Introducción a Drupal

Oficinas certificadas: Bilbao y Madrid

¿Qué es Drupal?

DefiniciónDrupal 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

Page 5: Introducción a Drupal

5Introducció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,...)

Page 6: Introducción a Drupal

6Introducció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.

Page 7: Introducción a Drupal

7Introducció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/

Page 8: Introducción a Drupal

8Introducción a Drupal

Oficinas certificadas: Bilbao y Madrid

¿Qué es Drupal?

Multiplataforma (LAMP / WAMP /XAMP)

Page 9: Introducción a Drupal

9Introducció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.

Page 10: Introducción a Drupal

10Introducció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.

Page 11: Introducción a Drupal

11Introducción a Drupal

Oficinas certificadas: Bilbao y Madrid

¿Qué es Drupal?

Arquitectura

Page 12: Introducción a Drupal

12Introducción a Drupal

Oficinas certificadas: Bilbao y Madrid

¿Qué es Drupal?Directorios

Page 13: Introducción a Drupal

13Introducció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'.

Page 14: Introducción a Drupal

14Introducción a Drupal

Oficinas certificadas: Bilbao y Madrid

¿Qué puedo hacer con él?

• Portales corporativos.

• Intranets.

• Blogs.

• Foros.

• Comunidades.

• Wikis.

• Eventos.

• Galerías de fotos.

• Galerías de vídeos.

• E-commerce.

• E-learning.

• Aplicaciones.

• ...

Page 15: Introducción a Drupal

15Introducció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/)

• …

Page 16: Introducción a Drupal

16Introducció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.

Page 17: Introducción a Drupal

17Introducció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)

Page 18: Introducción a Drupal

18Introducció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.

Page 19: Introducción a Drupal

19Introducció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.

• …

Page 20: Introducción a Drupal

20Introducció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.

Page 21: Introducción a Drupal

21Introducció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.

Page 22: Introducción a Drupal

22Introducció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.

Page 23: Introducción a Drupal

23Introducció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.

Page 24: Introducción a Drupal

24Introducció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

Page 25: Introducción a Drupal

25Introducción a Drupal

Oficinas certificadas: Bilbao y Madrid

Cliente

• HTML – XHTML

• CSS

• JavaScript

• jQuery

¿Qué tecnológicas están involucradas en un buen sitio de Drupal?

Page 26: Introducción a Drupal

26Introducción a Drupal

Oficinas certificadas: Bilbao y Madrid

Diseño

• Libres– Gimp– Inkscape

• Propietarias– Adobe Photoshop– Adobe Illustrator

¿Qué tecnológicas están involucradas en un buen sitio de Drupal?

Page 27: Introducción a Drupal

27Introducción a Drupal

Oficinas certificadas: Bilbao y Madrid

Servidor

• Sistema operativo

– Linux (recomendado)

– Windows

– Mac OS X

• Servidor Web

– Apache (recomendado)

– IIS

• Base de datos

– MySQL (recomendado)

– PostgreSQL

• Red

¿Qué tecnológicas están involucradas en un buen sitio de Drupal?

Page 28: Introducción a Drupal

28Introducción a Drupal

Oficinas certificadas: Bilbao y Madrid

Algunos extras

• Ajax

• XML-RPC

• Servicios web

• XML

• Flash

¿Qué tecnológicas están involucradas en un buen sitio de Drupal?

Page 29: Introducción a Drupal

29Introducció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)

Page 30: Introducción a Drupal

30Introducció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

• …

Page 31: Introducción a Drupal

31Introducción a Drupal

Oficinas certificadas: Bilbao y Madrid

Herramientas de administración

Page 32: Introducción a Drupal

32Introducción a Drupal

Oficinas certificadas: Bilbao y Madrid

MySQL

• MySQL Admin

• MySQL Query Brownser

• Phpmyadmin

Page 33: Introducción a Drupal

33Introducción a Drupal

Oficinas certificadas: Bilbao y Madrid

Administración de ficheros

• FileZilla

• WinSCP

Page 34: Introducción a Drupal

34Introducción a Drupal

Oficinas certificadas: Bilbao y Madrid

Administración de sistemas

• Putty (comandos)

• VNC

• Escritorio remoto

Page 35: Introducción a Drupal

35Introducción a Drupal

Oficinas certificadas: Bilbao y Madrid

Administración de Drupal

• Firefox

• Opera

• Chrome – Chromium

• Internet Explorer

• Cualquier otro navegador web

Page 36: Introducción a Drupal

36Introducción a Drupal

Oficinas certificadas: Bilbao y Madrid

Instalación de Drupal

Page 37: Introducción a Drupal

37Introducció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

Page 38: Introducción a Drupal

38Introducció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

Page 39: Introducción a Drupal

39Introducción a Drupal

Oficinas certificadas: Bilbao y Madrid

GNU/LinuxDirectorio virtual

• Creamos un fichero con los parámetros de nuestros sitio.

$ sudo nano /etc/apache2/sites-available/www.drupalexample.com

<VirtualHost *:80>

ServerAdmin [email protected]

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/

Page 40: Introducción a Drupal

40Introducció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

Page 41: Introducción a Drupal

41Introducció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

Page 42: Introducción a Drupal

42Introducció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

Page 43: Introducción a Drupal

43Introducció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

Page 44: Introducción a Drupal

44Introducció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 WAMPhttp://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.

Page 45: Introducción a Drupal

45Introducció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:\wamp\bin\apache\Apache2.2.11\conf\extra\httpd-vhosts.conf y añadimos solo:

Page 46: Introducción a Drupal

46Introducció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 protected]

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>

Page 47: Introducción a Drupal

47Introducción a Drupal

Oficinas certificadas: Bilbao y Madrid

Windows

Editar hosts y reiniciar redCon en mismo bloc de notas y editamos C:\WINDOWS\system32\drivers\etc\hosts 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

Page 48: Introducción a Drupal

48Introducció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.

Page 49: Introducción a Drupal

49Introducción a Drupal

Oficinas certificadas: Bilbao y Madrid

Instalando aplicación de Drupal

Estructura directorios

Page 50: Introducción a Drupal

50Introducció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.

Page 51: Introducción a Drupal

51Introducción a Drupal

Oficinas certificadas: Bilbao y Madrid

Instalando aplicación de DrupalPerfil• Abrir navegador e ir a http://www.drupalexample.com/install.php.

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

Page 52: Introducción a Drupal

52Introducción a Drupal

Oficinas certificadas: Bilbao y Madrid

Instalando aplicación de Drupal

Base de datos

Page 53: Introducción a Drupal

53Introducción a Drupal

Oficinas certificadas: Bilbao y Madrid

Instalando aplicación de Drupal

Configuración del sitio

Page 54: Introducción a Drupal

54Introducció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

Page 55: Introducción a Drupal

55Introducción a Drupal

Oficinas certificadas: Bilbao y Madrid

Configuración básica

Page 56: Introducción a Drupal

56Introducción a Drupal

Oficinas certificadas: Bilbao y Madrid

Panel administración• Panel general para administrar el portal: http://www.drupalexample.com/es/admin.

Page 57: Introducción a Drupal

57Introducció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.

Page 58: Introducción a Drupal

58Introducció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.

Page 59: Introducción a Drupal

59Introducció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.

Page 60: Introducción a Drupal

60Introducció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.

Page 61: Introducción a Drupal

61Introducció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.

Page 62: Introducción a Drupal

62Introducción a Drupal

Oficinas certificadas: Bilbao y Madrid

Usuarios, roles y permisos– Roles: http://www.drupalexample.com/es/admin/user/roles.

Page 63: Introducción a Drupal

63Introducción a Drupal

Oficinas certificadas: Bilbao y Madrid

Usuarios, roles y permisos– Permisos de los roles: http://www.drupalexample.com/es/admin/user/permissions.

Page 64: Introducción a Drupal

64Introducció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.

Page 65: Introducción a Drupal

65Introducció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

Page 66: Introducción a Drupal

66Introducción a Drupal

Oficinas certificadas: Bilbao y Madrid

Módulos mas usados

Page 67: Introducción a Drupal

67Introducció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

– …

Page 68: Introducción a Drupal

68Introducción a Drupal

Oficinas certificadas: Bilbao y Madrid

Diseño de un tema

Page 69: Introducción a Drupal

69Introducció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.

Page 70: Introducción a Drupal

70Introducció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

Page 71: Introducción a Drupal

71Introducció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.

Page 72: Introducción a Drupal

72Introducció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.

Page 73: Introducción a Drupal

73Introducció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.

Page 74: Introducción a Drupal

74Introducció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.

Page 75: Introducción a Drupal

75Introducció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.

Page 76: Introducción a Drupal

76Introducció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.

Page 77: Introducción a Drupal

77Introducció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.

• ...

Page 78: Introducción a Drupal

78Introducción a Drupal

Oficinas certificadas: Bilbao y Madrid

Modulo básico

Page 79: Introducción a Drupal

79Introducció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.

Page 80: Introducción a Drupal

80Introducció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

Page 81: Introducción a Drupal

81Introducció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 = ""

Page 82: Introducción a Drupal

82Introducció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

*/

Page 83: Introducción a Drupal

83Introducción a Drupal

Oficinas certificadas: Bilbao y Madrid

Modulo básico de ejemploexample.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;

}

Page 84: Introducción a Drupal

84Introducció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;

}

Page 85: Introducción a Drupal

85Introducció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 = ""

Page 86: Introducción a Drupal

86Introducció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

*/

Page 87: Introducción a Drupal

87Introducción a Drupal

Oficinas certificadas: Bilbao y Madrid

Modulo con formularioexample.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 →

Page 88: Introducción a Drupal

88Introducción a Drupal

Oficinas certificadas: Bilbao y Madrid

Modulo con formulario

$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;

}

← Continuación de la anterior diapositiva

Page 89: Introducción a Drupal

89Introducció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 →

Page 90: Introducción a Drupal

90Introducción a Drupal

Oficinas certificadas: Bilbao y Madrid

Modulo con formulario

/**

* 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

}

← Continuación de la anterior diapositiva

Page 91: Introducción a Drupal

91Introducción a Drupal

Oficinas certificadas: Bilbao y Madrid

Fuentes

Page 92: Introducción a Drupal

92Introducció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/

Page 93: Introducción a Drupal

93Introducció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

Page 94: Introducción a Drupal

94Introducción a Drupal

Oficinas certificadas: Bilbao y Madrid

FIN