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
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.
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

               Drupal
               Drupal




      Apache
      Apache
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
●
    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
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)
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.
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...
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.
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.
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.
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.
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

                                    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...
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
¿Preguntas?



  @pcambra

  pedro@neurotic.es

Introduccion técnica a Drupal

  • 1.
    Introducción a Drupal http://www.flickr.com/photos/gaborhojtsy/279354231/
  • 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
  • 4.
    Arquitectura de Drupal Drupal Drupal Apache Apache
  • 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ónbá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.
  • 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
  • 30.
    ¿Preguntas? @pcambra pedro@neurotic.es