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.
Fuente: Wikipedia
4
Introducción a Drupal
Oficinas certificadas: Bilbao y Madrid
¿Qué es Drupal?
CMS/CMF
5
Introducción a Drupal
Oficinas certificadas: Bilbao y Madrid
¿Qué es Drupal?
6
Introducción a Drupal
Oficinas certificadas: Bilbao y Madrid
¿Qué es Drupal?
7
Introducción a Drupal
Oficinas certificadas: Bilbao y Madrid
¿Qué es Drupal?
8
Introducción a Drupal
Oficinas certificadas: Bilbao y Madrid
¿Qué es Drupal?
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?
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)
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
20
Introducción a Drupal
Oficinas certificadas: Bilbao y Madrid
Algunas características interesantes
• 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
• 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?
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
• 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
• 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
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
• Reiniciar red
$ sudo /etc/init.d/networking restart
40
Introducción a Drupal
Oficinas certificadas: Bilbao y Madrid
GNU/Linux
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
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
• 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
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
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:\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
47
Introducción a Drupal
Oficinas certificadas: Bilbao y Madrid
Windows
Ficheros de Drupal
Reiniciar Apache
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
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.
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
53
Introducción a Drupal
Oficinas certificadas: Bilbao y Madrid
Instalando aplicación de Drupal
Finalizada la instalación
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.
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
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
69
Introducción a Drupal
Oficinas certificadas: Bilbao y Madrid
Utilizar como base ZEN
Instalación
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
72
Introducción a Drupal
Oficinas certificadas: Bilbao y Madrid
Utilizar como base ZEN
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.
• http://api.drupal.org/api/group/hooks
80
Introducción a Drupal
Oficinas certificadas: Bilbao y Madrid
Modulo básico de ejemplo
example.info
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..
/**
* 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
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..
/**
* 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ú
);
$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.
94
Introducción a Drupal
Oficinas certificadas: Bilbao y Madrid