Descubra la herramienta de gestión de contenidos para páginas web.
Drupal es una de las herramientas más sofisticadas para el diseño y desarrollo web de contenidos.
2. Contenido
■ Introducción
■ Instalación de XAMPP
■ Instalación de DRUPAL
■ Estructura de Directorios
■ Instalar un modulo o tema
■ Arquitectura
■ Nodos
■ Módulos
Preparador por: Jorge Luque Chambi - JLSITEC 2
3. Introducción
Drupal es un gestor de contenidos web ( Web CMS o Web
Content Managment System ), es decir una aplicación que
ofrece un conjunto de funcionalidades para la edición,
almacenamiento y publicación de diferentes tipos de
información utilizando páginas web como interfaz.
Preparador por: Jorge Luque Chambi - JLSITEC 3
4. Introducción
A medida que un CMS se especializa en una determinada dirección (
e-commerce, e-learning, wiki, blog … ) aumentan sus prestaciones y
facilidad de configuración en esa dirección, pero disminuye su
flexibilidad lo que hace muy difícil hacer modificaciones para
implementar funcionalidades que caen fuera de “lo previsto”.
Preparador por: Jorge Luque Chambi - JLSITEC 4
6. Instalación de XAMPP
Antes de instalar Drupal en el equipo de pruebas, deberemos disponer
de un servidor web (p.ej Apache) y de un motor de base de datos (p.ej
MySQL) correctamente instalados. El servidor web es el encargado de
gestionar el intercambio de información entre el cliente (navegador web
del visitante) y el servidor así como de llamar a los módulos que
interpretan el código PHP que implementa las funcionalidades del CMS.
Preparador por: Jorge Luque Chambi - JLSITEC 6
7. Instalación de DRUPAL
■ Ir a la página oficial de Drupal ( www.drupal.org ) , descargar la ultima versión
del CMS y luego descomprimirla en la carpeta que corresponda ( que debe coincidir
con la establecida al configurar XAMPP).
■ Ir a la carpeta donde se ha descomprimido Drupal y localizar el fichero “…/ sites
/default/ default.settings.php”, que se deberá copiar con el nombre settings.php.
También lo deberemos editar insertando o descomentando la linea “ $base_url =
'http://localhost/drupal'; “. Este fichero debe tener permisos de escritura por el
servidor de Apache.
■ Editar el fichero .htaccess que se encuentra en la raíz de Drupal descomentando la
línea “RewriteBase /drupal” o insertándola si no está.
Preparador por: Jorge Luque Chambi - JLSITEC 7
8. Instalación de DRUPAL
■ Crear la base de datos que albergará las tablas en las que Drupal guardará sus
variables internas y los contenidos entrados por los usuarios. En Windows la podemos
crear desde MS-DOS con la llamada “ mysqladmin -u root -p create nombre_bbdd “. De
todas formas, la manera más sencilla es desde el front end PHPMyAdmin yendo a
“Bases de datos > Crear nueva base de datos” e indicando el nombre que queramos (
nombre_bbdd ).
■ Crear un usuario con todos los privilegios en la base de datos que se acaba de crear. Lo
podemos hacer ejecutando el siguiente fragmento SQL en PHPMyAdmin: “ GRANT ALL
PRIVILEGES ON nombre_bbdd.* TO nombre_usuario_bbdd@'localhost' IDENTIFIED BY
'contrasena_bbdd' WITH GRANT OPTION; FLUSH PRIVILEGES; ”
Preparador por: Jorge Luque Chambi - JLSITEC 8
9. Instalación de DRUPAL
■ Llegados a este punto ya se encuentra listo el entorno formado por el
servidor web , el gestor de base de datos y Drupal. Ahora queda indicar a
Drupal como ha de acceder a la base de datos en la guardará toda la
información del sitio. Para ello hay que arrancar todos los servicios de
XAMPP, y luego abrir un navegador web y escribir:
“http://localhost/drupal” lo que nos llevara a la página web de
bienvenida de nuestra instalación Durpal, donde deberemos seleccionar
“Install Drupal in English” y luego indicar sobre que base de datos ha de
trabajar, con que usuario y con que password podrá acceder a ella:
Preparador por: Jorge Luque Chambi - JLSITEC 9
10. Instalación de DRUPAL
■ Database configuration:
Database name: nombre_bbdd
Database username: nombre_usuario_bbdd
Database password: contrasena_bbdd
Configure site:
Site name: nombre del sitio web
Site e-mail address: mimail@midominio.com
Username: nombre_usuario
E-mail address: nombre_usuario@tolaemon.com
Password: contrasena
Default time zone: …
Clean URL: Enabled ( para que no inserte simbolos extraños como “?=” en las URLs )
Preparador por: Jorge Luque Chambi - JLSITEC 10
11. Estructura de directorios
Drupal se estructura en un conjunto agrupado de
carpetas que contienen el código PHP, imágenes y
ficheros de configuración necesarios para su
funcionamiento. Cada vez que algún usuario
accede al sitio web, el servidor web ( p.ej apache )
accede a esta carpeta, interpreta el código y
realiza las acciones pertinentes.
Preparador por: Jorge Luque Chambi - JLSITEC 11
12. Estructura de directorio
■ Los ficheros install.php y update.php que se hallan en la raíz, son los que
realizan las tareas de instalación y actualización del sitio web. Ambos
ficheros van acompañados de sus guías de uso en formato TXT y para
ejecutarlos basta con abrir el navegador y escribir la dirección base del
sitio web seguido de install.php o update.php.
■ También en la raíz aparece el fichero cron.php. Este contiene el código
encargado de la ejecución de las tareas periódicas de mantenimiento del
sitio (cron jobs). En función del tipo de SO se deberá instalar un daemon o
servicio que ejectue este código cada intervalo de tiempo.
Preparador por: Jorge Luque Chambi - JLSITEC 12
13. Estructura de directorio
■ Tambien en la raíz de Drupal se encuentran las carpetas Modules y
Themes en las que Drupal guarda los Modules y Themes que trae por
defecto. Allí podríamos guardar también los módulos y temas que
bajemos para nuestro sitio, pero a pesar de que funcionaría, no es lo
correcto ya que Drupal limpia esas carpetas cada vez que se actualiza.
Lo correcto es crear dos carpetas diferenciadas ( themes y modules )
en “…/sites/all” lo que evitará que se puedan borrar cada vez que se
actualice el Core. Ademas esto ayudará a mantener los ficheros de
nuestros Modules y Themes más ordenados y controlados.
Preparador por: Jorge Luque Chambi - JLSITEC 13
14. Instalar un modulo o tema
■ Drupal hace uso de módulos ( modules ) o temas ( themes ) para ampliar sus funcionalidades y
apariencia gráfica. Por defecto trae un conjunto de módulos y temas, a los que se denomina
“Core modules” y “Core themes”. A parte existen infinidad de módulos y temas desarrollados por
gente de la comunidad Drupal que otorgan funcionalidades muy interesantes. Estos son los
“Contributed Modules” y “Contributed Themes”.
■ Para activar un “Core module” hay que ir a “Administer>Site building>Modules”, luego en el
subapartado “Core – optional” marcar la casilla del modulo que queremos activar y por ultimo
pulsar sobre “Save configuration”. Para los “Core themes”, hay que hacer algo similar: vamos a
“Administer>Site building>Themes” , una vez allí debemos especificar que temas queremos que
estén disponibles para los demás usuarios y cual de ellos sea el que aparece activo por defecto.
Luego, en función de cómo estén configurados los permisos, los demás usuarios podrán escoger
entre alguno de los temas activos.
Preparador por: Jorge Luque Chambi - JLSITEC 14
15. Instalar un modulo o tema
■ En cuanto a los “Contributed modules” y “Contributed themes”, primero de todo deberemos
descargarlos de Internet. Existen varias páginas con Modules y Themes pero sin duda la más
importante es la porpia web de Drupal (www.drupal.org). Allí podemos encontrar y descargar los
más populares. Estos se encuentran comprimidos en formato .ZIP, por lo que tras descargarlos
deberemos descomprimirlos .
■ Los “Contributed Modules” deben guardarse en su carpeta, en la ruta “.sitesallmodules” . Es
decir que si nos bajamos el modulo Acme, deberemos copiar todos los ficheros de este en la
carpeta “.sitesallmodulesacme”, Con los Themes sucede algo similar, pero en la ruta
“.sitesallthemes”, de forma que si nos bajamos el tema Dharma deberemos guardar todos
los ficheros del .ZIP en la carpeta “.sitesallthemesdharma”. Si las carpetas
“.sitesallmodules” y “.sitesallthemes” no existen deberemos crearlas nosotros.
Preparador por: Jorge Luque Chambi - JLSITEC 15
16. Instalar un modulo o tema
■ Una vez instalados deberemos activarlos siguiendo los mismos
pasos que en los de tipo Core. Así para los “Contributed
Modules” vamos a “Administer>Site building>Modules”, una vez
allí marcamos la casilla del Module que queremos activar y por
ultimo pulsamos sobre “Save configuration”. Con los Themes,
igual: vamos a “Administer>Site building>Themes” , una vez allí
debemos activar el Theme que acabamos de instalar.
Preparador por: Jorge Luque Chambi - JLSITEC 16
17. Arquitectura
El secreto de Drupal para conseguir su reconocida flexibilidad y facilidad
en la creación de sitios web es la abstracción y organización en capas
que aplica en el tratamiento de los contenidos. En lugar de considerar el
sitio web como un conjunto de páginas interrelacionadas, Drupal
estructura los contenidos en una serie de elementos básicos. Estos son
los nodos ( nodes ) , modulos ( modules ), bloques y menus ( blocks &
menus) , permisos de usuario y plantillas ( templates ).
Preparador por: Jorge Luque Chambi - JLSITEC 17
19. Arquitectura
■ Los Nodes son los elementos básicos en que Drupal almacena la información, los contenidos. Así
a medida que el sitio web crece, lo va haciendo el número de Nodes los cuales van formando un
“depósito de Nodes” cada vez mayor. Se puede decir que la primera capa de la estructura de
Drupal la forma este “deposito” de Nodes.
■ Los Modules son los elementos que operan sobre los Nodes y otorgan funcionalidad a Drupal
permitiendo incrementar sus capacidades o adaptarlas a las necesidades de cada sitio
web. Son como Plug-Ins que se instalan en el sitio web proporcionándole nuevas funcionalides.
■ La siguiente capa de Drupal la consitituyen los “Blocks & Menus”. Estos permiten estructurar y
organizar los contenidos en la página web. Es decir que son los elementos que albergan y
permiten acceder al usuario a la salida generada y procesada por los módulos a partir de la
información almacenada en los nodos.Preparador por: Jorge Luque Chambi - JLSITEC 19
20. Arquitectura
■ La siguiente capa importante en Drupal es la de control de usuarios y permisos. Actualmente, la
mayor parte de sitios web son multiusuario, por lo que la seguridad y control de los usuarios es un
punto clave para garantizar la integridad de la información almacenada. Con esta finalidad Drupal
dispone de un registro de usuarios y de roles que permiten especificar que tareas pueden realizar
y a que contenidos puede acceder cada tipo de usuario. Es decir que las operaciones que se
pueden realizar sobre los elementos provenientes de las capas inferiores ( lectura, modificación,
creación … ) se encuentran limitadas por la capa de control de usuarios y permisos de Drupal.
■ La ultima capa, es la capa de “Themes” y es la que establece la apariencia gráfica o estilo de la
información que se le muestra al usuario. Esta separación entre información y aspecto gráfico
permite cambiar el diseño u apariencia del sitio web sin necesidad de modificar los contenidos, lo
que es muy práctico si lo único que queremos es renovar la apariencia de un sitio web.
Preparador por: Jorge Luque Chambi - JLSITEC 20
21. Arquitectura
■ Cron es otro elemento importante en Drupal. Es una aplicación que se ejecuta
periódicamente con la finalidad de realizar las tareas básicas de mantenimiento
del sitio web, como limpiar los logs, indexar los nuevos contenidos, etc. La
configuración de Cron variará dependiendo del SO en que estemos trabajando, no
obstante existen algunas alternativas, menos efectivas, pero más sencillas de
utilizar Cron. Una de ellas es ejecutarlo manualmente yendo a "Administer >
Reports > Status repport > Run cron Manually". Otra opción es utilizar el
“Contributed module” “Poormanscron”. Este módulo hace que Cron se ejecute cada
vez que el sitio recibe una visita, en lugar de hacerlo de forma preriódica cada X
tiempo.
Preparador por: Jorge Luque Chambi - JLSITEC 21
22. Nodos
■ Los nodos ( nodes ) son la unidad de información básica en los que Drupal guarda sus
contenidos. Un nodo contiene los siguientes elementos de información:
– Autor
– Fecha de creación
– Título
– Cuerpo ( sumario, y cuerpo completo )
■ Así el contenido de los sitios web realizados con Drupal se guarda en un “depósito de nodos” que
va creciendo a medida que los usuarios del sitio web van generando nuevos contenidos. Estos
nodos no guardan ninguna información de formato, únicamente guardan contenido, y es cuando
el usuario consulta la información, que Drupal organiza y presenta los datos de la forma
adecuada.
Preparador por: Jorge Luque Chambi - JLSITEC 22
23. Nodos
■ En realidad los nodos son una abstracción que se corresponde con una estructura de tablas
interelacionadas ( node, node _access, node_revisions … ) contenidas en la base de datos del
sitio web. La gestión de estas tablas es enteramente realizada por Drupal y no debemos
preocuparnos por ellas a no ser que seamos administradores y deseemos realizar alguna tarea
de mantenimiento muy concreta, pero aun siendo administradores esto no debería ocurrir.
■ Además existen diferentes herramientas que permiten crear nuevos tipos nodos para guardar
nuevos tipos de información que se adapten a las necesidades de cada sitio web. P.ej podemos
hacer que a parte de los elementos anteriores ( autor, fecha, titulo …), un nodo pueda guardar
también imágenes, o ficheros. Drupal incorpora de serie algunos mecanismos para crear nuevos
tipos de nodos “Administer>Content managment>Content types”, pero existen además otras
herramientas que también permiten adaptar y modificar los tipos de nodo ya existentes, un
ejemplo es el módulo “CCK”.
Preparador por: Jorge Luque Chambi - JLSITEC 23
24. Nodos
■ Cada tipo de nodo se puede denominar también “Content type” puesto que permite
guardar un determinado tipo de contenido. Al contenido almacenado en los nodos se le
denomina “Content”.
■ Drupal viene por defecto con 2 tipos de nodos o “Content types” : “Page” y “Story” . La
única diferencia entre ambos es que el de tipo “Page” se encuentra configurado para no
mostrar ninguna información del usuario ni la fecha de creación. Por tanto, aparte de los
campos Autor, Fecha, Titulo…, un nodo tiene asociadas algunas otras opciones que
pueden ser usadas o no ( opción Published, Tracking etc.) Por ejemplo si activamos la
opción “Prometed to front page” de los nodos estos aparecerán en la página de inicio.
Preparador por: Jorge Luque Chambi - JLSITEC 24
25. Contenido y Tipos de Contenido
■ Como se ha dicho, en Drupal los nodos son los contenedores básicos de información en los que se guardan
los contenidos ( “Content”). Así, modificando la estructura interna de los nodos podremos guardar diferentes
tipos de contenidos (“Content types”). Mediante la opción “Administer>Content Managment>Content types”
podemos gestionar, crear o borrar diferentes “Content Types”.
■ Cada contenido de la web, es decir cada nodo, puede ser accedido a través de una URL del estilo
“www.ejemplo.com/?q=node/1” que puede ser referenciado también con otra URL que nosotros le
indiquemos, o por el sistema de renombrado automático ( revisar los módulos “Path” o “Path Auto” ). Esta
URL es de gran utilidad para poder enlazar desde fuera los contenidos del sitio web (p.ej buscadores) , o en
el propio sitio web desde alguno de los siguientes elementos:
– Menu de navegación
– Links primarios ( suelen estar arriba en la pagina, aunque esto puede variar en función del Theme )
– Links secundarios ( estan por debajo de los links primarios )
Preparador por: Jorge Luque Chambi - JLSITEC 25
26. Contenido y Tipos de Contenido
■ Como se ha dicho, en Drupal los nodos son los contenedores básicos de información en los que se guardan
los contenidos ( “Content”). Así, modificando la estructura interna de los nodos podremos guardar diferentes
tipos de contenidos (“Content types”). Mediante la opción “Administer>Content Managment>Content types”
podemos gestionar, crear o borrar diferentes “Content Types”.
■ Cada contenido de la web, es decir cada nodo, puede ser accedido a través de una URL del estilo
“www.ejemplo.com/?q=node/1” que puede ser referenciado también con otra URL que nosotros le
indiquemos, o por el sistema de renombrado automático ( revisar los módulos “Path” o “Path Auto” ). Esta
URL es de gran utilidad para poder enlazar desde fuera los contenidos del sitio web (p.ej buscadores) , o en
el propio sitio web desde alguno de los siguientes elementos:
– Menu de navegación
– Links primarios ( suelen estar arriba en la pagina, aunque esto puede variar en función del Theme )
– Links secundarios ( estan por debajo de los links primarios )
Preparador por: Jorge Luque Chambi - JLSITEC 26
27. Comentarios
Comentarios ( comments ) son como nodos pero más reducidos, y solo existen
subordinados a un nodo. Al igual que los nodos estos pueden ser ampliados
mediante el correspondiente modulo. Si queremos que los nodos de un determinado
tipo no tengan comentarios basta con ir “Administer>Content managment>Content
types” editar el tipo de nodo o “Content Type” y en “Comment settings”
desactivarlos.
Preparador por: Jorge Luque Chambi - JLSITEC 27
28. Módulos
Como ya se ha dicho anteriormente, los módulos ( modules ) son los elementos que
permiten añadir nuevas funcionalidades a Drupal para adaptarlo a las necesidades de
cada sitio web. Es decir que, son “plugins” que amplian sus posibilidades y funcionalidades.
Los módulos se clasifican en 2 grandes tipos: los “Core Modules” y los “Contributed
Modules”. Los “Core módules” son los que vienen por defecto con Drupal , y son minoría
aunque seguramente los más necesarios. Los “Contributed modules” son los módulos
desarrollados por la comunidad que da a soporte a Drupal y que no vienen por defecto con
Drupal. Para conseguir este tipo de modulos deberemos visitar la web oficial de Drupal,
descargarlos e instalarlos.
Preparador por: Jorge Luque Chambi - JLSITEC 28
29. Módulos
■ ADMINISTRATION MENU: "Contributed Module" Añade un barra de menus desplegables
que agilizan las tareas de mantenimiento de un sitio web.
■ BLOG: "Core Module". Para crear un Blog
■ CALENDAR: “Contributed Module”. Añade un nuevo tipo de view que muestra los
resultados en forma de calendario.
■ CCK: "Contributed Module". Permite crear contenidos propios añadiendo campos
a los nodos.
■ CONTACT FORM: "Core Module". Añade un formulario mediante el que los usuarios de
un sitio web pueden enviar mensajes a la dirección de correo que se configure.
Preparador por: Jorge Luque Chambi - JLSITEC 29
30. Módulos
■ CONTENT TRANSLATION: "Core Module". Incorpora herramientas para la gestión de
contenidos en diferentes idiomas.
■ CUSTOM PAGERS: "Contributed Module". Para añadir paginadores a los contenidos.
■ DATE: “Contributed Module”. Permite incorporar y utilizar fechas en los Content
Types que creemos.
■ DIFF: "Contributed Module ". Permite realizar comparaciones entre versiones de
un mismo contenido.
■ FCKEditor: "Contributed Module". Permite insertar texto con formato HTML en un
contenido.
Preparador por: Jorge Luque Chambi - JLSITEC 30
31. Módulos
■ FILEFIELD: "Contributed Module". Permite relacionar ficheros a un nodo.
■ FLAG: “Contributed Module”. Permite a los usuarios marcar contenidos, estableciendo un
vínculo entre éste y el contenido marcado.
■ FREELINKING: "Contributed Module ". Para facilitar la creación de enlaces entre los
contenidos de un sitio web, y permite también crear enlaces a contenidos que aún no existen.
■ I18N INTERNATIONALIZATION: "Contributed Module". Es una agrupación de submódulos,
cada uno de los cuales está especializado en la traducción de un determinado tipo de elemento
( usarios, bloques, taxonomía etc.)
■ IMAGECACHE: "Contributed Module". Para añadir funcionalidades de proceso de
imágenes.
Preparador por: Jorge Luque Chambi - JLSITEC 31
32. Módulos
■ MARKDOWN FILTER: "Contributed Module ". Ofrece una forma alternativa más
sencilla que el HTML para dar formato a los contenidos.
■ PANELS: “Contributed Module”. Para mostrar los contenidos ordenados de forma
alternativa a los que por defecto ofrece Drupal.
■ PATH: "Core Module ". Para asignar una URL alternativa a todos los contenidos que
creamos convenientes.
■ PATH AUTO: "Contributed Module ". Para generar URLs “legibles” de los contenidos de
forma automática
■ SEARCH: “Core Module ". Buscar contenido en la web
Preparador por: Jorge Luque Chambi - JLSITEC 32
33. Módulos
■ TAGADELIC: "Contributed Module" Permite crear TAG CLOUDS de los terms más
populares
■ TAXONOMY: "Core Module". Categorización y clasificación de los contenidos de la web
■ TOKENS: "Contributed Module ". Ofrece información o fragmentos de los contenidos a
otros módulos para que estos la puedan utilizar.
■ TRIGER: "Core Module". Para ejecutar determinadas acciones cada vez que tenga
lugar algún evento concreto.
■ UBERCART: “Contributed Module”. Paquete muy grande de módulos que implementan
las diferentes funcionalidades necesarias en una tienda virtual.
Preparador por: Jorge Luque Chambi - JLSITEC 33
34. Módulos
■ VIEW BULK OPERATIONS: "Contributed Module". Ofrece la posibilidad de realizar una
operación concreta de forma masiva sobre los elementos mostrados en una View
■ VIEWS: "Contributed Module". Para realizar consultas sobre todos los contenidos del
sitio web y mostrarlos de forma organizada.
■ WORKFLOW: "Contributed Module". Permite el control de estados de edición
contenidos.
■ WORKSPACE: "Contributed Module". Ofrece a los usuarios vistas personalizadas
con sus contenidos.
Preparador por: Jorge Luque Chambi - JLSITEC 34