Introduccion técnica a Drupal

3,353 views

Published on

Introducción técnica a Drupal, cómo se instala, cómo funciona, conceptos, programación...

Introduccion técnica a Drupal

  1. 1. Introducción a Drupal http://www.flickr.com/photos/gaborhojtsy/279354231/
  2. 2. Sobre mí ● Formador y consultor en Neurotic Web Development. ● Presidente de la asociación española de Drupal. ● Miembro permanente de laPedro Cambrahttp://cambrico.net junta en drupal.cat.http://twitter.com/pcambra ● Co-organizador de lahttp://drupal.org/user/122101 drupalcamp spain 2010.
  3. 3. Sobre Neurotic Especialistas en Drupal. Servicios de consultoría y formación. Comercio electrónico.http://www.neurotic.es http://www.gorile.com
  4. 4. Arquitectura de Drupal Drupal Drupal Apache Apache
  5. 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. 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
  7. 7. Estructura de directorios
  8. 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. 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. 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. 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. 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. 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. 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. 15. Módulos: SelecciónEn ocasiones, podemos encontrar variosmódulos que aparentemente cumplen lamisma 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. 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. 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. 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. 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. 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. 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. 22. Módulos contribuidos SEODrupal tiene soporte en el núcleo para ciertasmejoras de posicionamiento, como las URL limpias,pero hay módulos contribuidos que ayudan a esteobjetivo, 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. 23. Módulos contribuidos CONTROL DE FLUJOExisten varios módulos para realizar tareasbasadas en eventos, algunos de ellos, comoTriggers y Actions están incluidos en el núcleo,pero se puede extender su funcionalidad utilizandolos módulos Rules o Workflow para eventos yacciones avanzadas.
  24. 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. 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 elTambién pueden existir ficherosREADME.txt y CHANGELOG.txt código que ejecuta elpara documentación, además de módulo.ficheros .inc para inclusiones deotro código, css, js...
  26. 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. 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. 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. 29. Módulos: Best Practices● Drupal coding standards● Módulos Devel y Coder● Organización de directorios● Documentación y Doxygen● Drush module builder
  30. 30. ¿Preguntas? @pcambra pedro@neurotic.es

×