Post on 12-Jun-2015
description
Introducción a Drupal
http://www.flickr.com/photos/gaborhojtsy/279354231/
Sobre mí
● Formador y consultor en Neurotic Web Development.
● Presidente de la asociación española de Drupal.
● Miembro permanente de la junta en drupal.cat.
● Co-organizador de la drupalcamp spain 2010.
http://cambrico.net
http://twitter.com/pcambra
http://drupal.org/user/122101
Pedro Cambra
Sobre Neurotic
Especialistas en Drupal.
Servicios de consultoría y formación.
Comercio electrónico.http://www.neurotic.es http://www.gorile.com
Arquitectura de Drupal
DrupalDrupalDrupal
ApacheApacheApacheApache
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● ...
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
Estructura de directorios
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.
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.
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.
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.
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.
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.
● ...
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.
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
Módulos contribuidos
● 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
CCK
Módulos contribuidos
● 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)
VIEWS
Módulos contribuidos
● 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.
TOKEN
Módulos contribuidos
● 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...
PATHAUTO
Módulos contribuidos
● 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.
IMAGECACHE
Módulos contribuidos
● 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.
PANELS
Módulos contribuidos
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.
SEO
Módulos contribuidos
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.
CONTROL DE FLUJO
Otros módulos contribuidos
● Devel – ayuda al desarrollo● Internacionalización – Sitios multilingües● Flag – Marcar contenido● Multimedia
● Embedded Media Field – Campo CCK● Audio● Video
Módulos: Estructura
demo.info
demo.install
demo.module
El fichero .info define la meta información del módulo.
El .install declara las acciones a realizar cuando se instala o desinstala un módulo.
El .module tiene el código que ejecuta el módulo.
También pueden existir ficheros README.txt y CHANGELOG.txt para documentación, además de ficheros .inc para inclusiones de otro código, css, js...
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')
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
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
Módulos: Best Practices
● Drupal coding standards● Módulos Devel y Coder● Organización de directorios● Documentación y Doxygen● Drush module builder