Este documento presenta una introducción a Drupal, incluyendo una descripción de su arquitectura, el proceso de instalación, la estructura de directorios, y las principales funciones de administración como la gestión de contenido, usuarios, menús, bloques, módulos y configuración. También describe varios módulos contribuidos populares y la estructura y funcionalidad básica de los módulos personalizados en Drupal.
2. Sobre mí
●
Formador y consultor en
Neurotic Web Development.
●
Presidente de la asociación
española de Drupal.
●
Miembro permanente de la
Pedro Cambra
http://cambrico.net
junta en drupal.cat.
http://twitter.com/pcambra ●
Co-organizador de la
http://drupal.org/user/122101
drupalcamp spain 2010.
3. Sobre Neurotic
Especialistas en Drupal.
Servicios de consultoría y formación.
Comercio electrónico.
http://www.neurotic.es http://www.gorile.com
5. Instalación de Drupal: Descarga
●
Descarga desde drupal.org: Núcleo básico y
Perfiles de instalación.
●
Instaladores de tipo Stack: Bitnami / Acquia
●
Descarga desde el repositorio CVS.
●
Instaladores automáticos, como Fantastico.
●
Drupal Gardens
●
...
6. Proceso de instalación básico
●
Copiar el fichero default.settings.php en
settings.php (sites/default o
sites/misitio.com)
●
Modificar permisos de settings.php para
que lo pueda modificar todo el mundo.
●
Crear la base de datos y asignar permisos.
●
Realizar el proceso de instalación de Drupal.
●
Restaurar permisos de settings.php
8. Administración: Contenido
●
El contenido se organiza en unidades de
información denominadas nodos.
●
Los tipos de contenido permiten asignar
diferentes carácterísticas a los distintos
tipos de nodos.
●
La organización del contenido se puede
realizar a través de los vocabularios o
taxonomías.
9. Administración: Usuarios
●
La gestión de los usuarios (creación,
modificación, borrado) está integrada en la
interfaz de administración.
●
Es posible agrupar los usuarios a través de
roles, que definen los límites de permisos
de cada grupo de usuarios.
●
Los permisos se asignan a los roles y no a
los usuarios.
10. Administración: Construcción
●
Drupal permite la gestión de los menús
desde el interfaz.
●
Es posible configurar los alias de URL de
cada elemento.
●
La administración de bloques se utiliza para
situar elementos de la página en las
diferentes regiones.
●
Las plantillas sirven para modificar el
comportamiento gráfico de un sitio.
11. Administración: Módulos
●
Un módulo es un componente de código que
se integra con el resto de la aplicación
Drupal a través de los elementos del API del
núcleo o de otros módulos.
●
Es posible desarrollarlos desde cero, o
utilizar parte de otros módulos como base.
●
Se instalan a través de la interfaz de
Drupal.
12. Administración: Configuración
●
Opciones extra de módulos.
●
Gestión de ficheros.
●
Opciones de rendimiento.
●
Información del sitio.
●
Configuración de fecha.
●
Formatos de entrada.
13. Administración: Informes
●
El informe de estado muestra el estado
general del sitio con diferentes niveles de
aviso.
●
El watchdog informa de errores y eventos
importantes.
●
Consulta de las actualizaciones disponibles
para los módulos del núcleo y los
contribuidos: update status.
●
...
14. Módulos contribuidos
●
Existen más de 7000 módulos contribuidos
accesibles a través de drupal.org:
http://drupal.org/project/modules
●
Para encontrar los módulos que se adaptan
a nuestras necesidades se puede utilizar
http://drupalmodules.com/
●
Es recomendable revisar y probar estos
módulos, ya que pueden ocasionar
problemas de rendimiento o seguridad.
15. Módulos: Selección
En ocasiones, podemos encontrar varios
módulos que aparentemente cumplen la
misma funcionalidad buscada.
¿Cómo elegirlos?
●
Estadísticas de uso:
http://drupal.org/project/usage/views
●
Cola de issues:
http://drupal.org/project/issues/views?status=All&categories=All
●
Similar Module Review:
http://groups.drupal.org/similar-module-review
16. Módulos contribuidos
CCK
●
CCK = Content Construction Kit
http://drupal.org/project/cck
●
Permite crear campos sobre tipos de contenido
propios o de otros módulos
●
Provee una API para que otros módulos creen
tipos de campos.
http://drupal.org/project/link
http://drupal.org/project/date
17. Módulos contribuidos
VIEWS
●
Proporciona una interfaz flexible para presentar
listados de información a los usuarios.
●
Permite a los administradores de sitios Drupal
generar listados de contenido, usuarios, galerías
de imágenes, búsquedas personalizadas y mucho
más sin tocar código.
●
Es el módulo contribuido más utilizado para
proyectos Drupal (más de 240,000 sitios lo
utilizan)
18. Módulos contribuidos
TOKEN
●
Un token o patrón es un pequeño texto que se
sitúa dentro de un texto mayor y que es
reemplazado en el momento de visualizar.
●
Token es un módulo que no tiene interfaz pero se
integra con muchos otros, para generar nombres
de ficheros personalizados, rutas, etc.
19. Módulos contribuidos
PATHAUTO
●
Permite generar alias de URL automáticos para
diferentes elementos como nodos, usuarios,
taxonomías.
●
A través de un patrón de reemplazo gestionado por
el módulo Token, es posible generar alias de URL
basados en reemplazos dinámicos, como el título,
la categoría, el nombre de usuario...
20. Módulos contribuidos
IMAGECACHE
●
Permite generar imágenes de diferentes tamaños y
dimensiones a partir de una original.
●
A través de un interfaz gráfico, se pueden
programar una serie de modificaciones
denominadas presets, que permitirán mostrar una
misma imagen de formas distintas.
●
Además de tamaños y dimensiones, es posible
aplicar efectos más complejos. Como bordes
redondeados, marcas de agua...
●
Se integra con CCK y Views.
21. Módulos contribuidos
PANELS
●
Hace posible crear estructuras de páginas tanto
fijas como flexibles desde el interfaz de
administración.
●
Es posible incluir casi cualquier elemento dentro de
los paneles, vistas, nodos, campos de cck,
bloques...
●
Facilita el diseño de páginas con estructuras
complejas.
22. Módulos contribuidos
SEO
Drupal tiene soporte en el núcleo para ciertas
mejoras de posicionamiento, como las URL limpias,
pero hay módulos contribuidos que ayudan a este
objetivo, entre otros:
●
Pathauto
●
Xmlsitemap genera un mapa del sitio en XML.
●
MetaTags Proporciona meta tags a cada página.
●
Path Redirect ayuda a realizar redirecciones a
través del interfaz.
23. Módulos contribuidos
CONTROL DE FLUJO
Existen varios módulos para realizar tareas
basadas en eventos, algunos de ellos, como
Triggers y Actions están incluidos en el núcleo,
pero se puede extender su funcionalidad utilizando
los módulos Rules o Workflow para eventos y
acciones avanzadas.
24. Otros módulos contribuidos
●
Devel – ayuda al desarrollo
●
Internacionalización – Sitios multilingües
●
Flag – Marcar contenido
●
Multimedia
●
Embedded Media Field – Campo CCK
●
Audio
●
Video
25. Módulos: Estructura
El fichero .info define la
demo.info meta información del
módulo.
demo.install El .install declara las
acciones a realizar
demo.module cuando se instala o
desinstala un módulo.
El .module tiene el
También pueden existir ficheros
README.txt y CHANGELOG.txt
código que ejecuta el
para documentación, además de módulo.
ficheros .inc para inclusiones de
otro código, css, js...
26. Módulos: Hooks
●
Los hooks o “ganchos” indican a otros módulos de
Drupal si nuestro módulo personalizado tiene algo
que añadir y de esta forma se puede alterar el
funcionamiento de una acción determinada.
●
Se expresan como hook_* donde hook se reemplaza
por el nombre del módulo.
●
Los módulos invocan hooks utilizando la función
module_invoke_all('nombre_hook')
27. Módulos: Alters
●
Además de los hooks, muchos módulos permiten
modificar comportamientos y variables en algunas
funciones.
●
El ejemplo más común es hook_form_alter para
modificar formularios pero hay muchos más:
hook_link_alter, hook_menu_alter
28. Módulos: Form API
●
Drupal provee de una completa API para mostrar
formularios y realizar la validación y el envío de los
mismos.
●
Guía de Forms API:
http://api.drupal.org/api/file/developer/topics/forms_api.html/6
●
Referencia de Forms API:
http://api.drupal.org/api/file/developer/topics/forms_api_reference.html/6
29. Módulos: Best Practices
●
Drupal coding standards
●
Módulos Devel y Coder
●
Organización de directorios
●
Documentación y Doxygen
●
Drush module builder