01
Oct 13

Creando Aplicaciones con Drupal 7

Creando Aplicaciones en Drupal 7

Por causa de la “desorganización” que tuvo el software freedom day aquí en Bogotá el 28 de septiembre de 2013, esta charla no pudo ser realizada. Aquí dejo el contenido de la misma. Aprovecho para invitar el próximo 8 de octubre al curso de Drupal que estaré dictando. Al final del contenido se encuentra para descargar los archivos de la presentación y de este artículo en formato pdf.

DrupalYa conocemos a Drupal como un administrador de contenido potente y escalable, y sabemos que podemos usarlo para sitios grandes sin ningún problema.

Otros usos para DrupalOtro de los usos que podemos darle a Drupal es para crear aplicaciones que manejen contenidos diferentes. Por ejemplo: sitio para manejo de calendario de eventos y registros; sitio para manejar solicitudes, quejas y reclamos; sitio para manejar atención al cliente en un centro de llamadas; entre otros.

Planear antes de empezar a trabajar en DrupalPara poder hacer esto, lo primero es planear lo que queremos y definir lo primordual que debe definirse en cualquier instalación de Drupal: los tipos de contenidos. ¿Qué es un tipo de contenido? Es como denominamos a cada uno de los grupos de información que vamos a trabajar en nuestro sitio, por ejemplo: vídeos, artículos, páginas, lugares. Cada uno de ellos se define por características propias que lo hacen diferente a los demás y permite agruparlos.

Después de saber cuál contenido, debemos definir qué llevaría cada contenido: un evento lleva una fecha y una descripción; un lugar un nombre y una posición en un mapa; una sugerencia un título y un contenido; un vídeo debe guardar el sitio de donde voy a mostrar el vídeo. Cada uno con nombre propio y si es posible (y necesario) con una ayuda para la persona que va a usar la herramienta. Igual se deben definir si hay relación entre el contenido, es decir, si tengo un tipo llamado eventos y otro llamado asistentes, debo reconocer la relación que hay: un asistente va a un evento.

Drupal - CCKYa finalizada esta planeación podemos iniciar a crear estos tipos de contenido en Drupal. Hasta Drupal 6 había sido un módulo que debía instalarse después de tener el sitio funcionando, pero a partir de la versión 7 fue incluido dentro de los móduos preinstalados de Drupal.Me refiero al “Content Construction Kit” que es el que permite que un simple tipo de contenido que por defecto lleva título y contenido, pueda creársele de forma fácil y visual nuevos campos de diferentes tipos: de texto, numérico, de fecha, de posición en un mapa.

Algunos complementos a éste módulo son:

  • ImageField: Manejar imágenes en un campo. (https://drupal.org/project/imagefield)
  • Date: Campos de fechas (https://drupal.org/project/date)
  • Email Field: Campo de texto para correos electrónicos (https://drupal.org/project/email)
  • Fieldgroup: Permite crear grupos de campos. (https://drupal.org/project/fieldgroup)
  • Link: Para agregar enlaces a páginas (https://drupal.org/project/link)
  • Money Field (https://drupal.org/project/money) Requiere otros módulos.
  • Serial Field: Crear un campo con número consecutivo (https://drupal.org/project/serial)
  • Format Numbers Api: Campo numérico con formato (https://drupal.org/project/format_number)
  • Computed Field: Campos generados por fórmulas (https://drupal.org/project/computed_field)

Drupal - Referencias y EntidadesPara crear relaciones entre distintos tipos de contenido, el módulo Entity Api (https://drupal.org/project/entity) provee la parte básica de manejo de entidades en Drupal, entendiendo entidad como cada contenido creado independiente de su tipo. Usando las entidades creadas, podemos relacionarlas a partir un tipo de campo nuevo generado por el módulo “Entity Reference” (https://drupal.org/project/entityreference). Este campo ´permite enlazar tipos de contenido, creando un campo de búsqueda de autocompletado que relaciona los diferentes tipos. Podemos usar el módulo “Entityreference prepopulate” (https://drupal.org/project/entityreference_prepopulate) para llenar este campo automáticamente por la dirección web.

Drupal - Contenido funcionalEn este punto, ya hemos solucionado lo referente al ingreso de información y vista de contenido único, podemos buscar otros módulos que permitan organizar mejor esas pantallas de ingreso, como el “Node form Columns” (https://drupal.org/project/nodeformcols) que permite organizar el formulario de ingreso en dos columnas.

Drupal - ViewsEl siguiente paso es generar las páginas de lista de contenido, organizada por cada uno de los tipos creados y además que permita filtrar por medio de búsquedas. Uno de los módulos primordiales en cualquier sitio web en Drupal es el módulo de “Views” (https://drupal.org/project/views), que permite generar listados del contenido y filtrarlos y organizarlos libremente. Igualmente podemos añadir columnas que permitan crear filtros entre diferentes vistas a partir de campos generados usando el módulo “Token” (https://drupal.org/project/token) que permite reemplazar dinámicamente información en los campos mostrados. Las listas generadas pueden ser mostradas como tablas, como lista html, en formato json, un calendario con el uso del módulo “Date” e incluso en puntos de un mapa con la ayuda del módulo OpenLayers. También calcular totales con “Views calc”.

Creamos en los listados un campo que permita llamar a otra vista, a un contenido o a un formulario por un vínculo usando el código de la entidad en su url. Un ejemplo es llamar la lista de asistentes al evento usando el token nid: http://sitio.com/asistentes/[nid] el último parámetro es reemplazado por el módulo, asignando el código actual del nodo mostrado.

De esta forma ya podemos crear el menú del sitio y la navegación básica para ver contenido, filtrarlo, organizarlo, ver nodos completos y añadir información.

Drupal - Content AccessDrupal - UsuariosYa con el sitio en funcionamiento, el siguiente paso es definir los roles de usuarios y permisos. Quiénes añaden información y de cuál de los tipos creados, quién puede borrar, quién puede editar. “Content access” (https://drupal.org/project/content_access) que de forma fácil nos permite modificar permisos en cada uno de los tipos de contenido.

Drupal - Perfiles de UsuariosPodemos para finalizar usar otros módulos para diferentes tareas. “Profile2” (https://drupal.org/project/profile2) permite crear una página de usuario más completa y “Privatemsg” (https://drupal.org/project/privatemsg) que permite comunicación entre los usuarios de la plataforma y para notificaciones de los mensajes enviados a los usuarios “Private Message Growl” (https://drupal.org/project/pmgrowl).

Drupal - RulesPara agregar algo de interactividad al sitio podemos usar “Rules” (https://drupal.org/project/rules) que permite a los administradores generar acciones cuando ocurran ciertos eventos. Un ejemplo es enviar un mensaje a un usuario cuando un contenido ha cambiado, y otro crear un mensaje al administrador cuando se ha creado un usuario. Las posibilidades son muchas aprendiendo a trabajar con este módulo.
De esta forma damos por terminado esta rápida revisión a Drupal y algunos de sus módulos que permiten creación de sitios más allá del manejo de contenidos.

Gracias.

Este artículo en formato PDF
Presentación en formato PDF


Imágenes usadas en esta presentación, fueron tomadas de OpenClipart.org
• http://openclipart.org/detail/4710/calendar-by-aqeeliz
Calendar – aqeeliz
• http://openclipart.org/detail/183401/event-tickets-by-barrettward-183401
Event Tickets – barrettward
• http://openclipart.org/detail/81337/interaction-designers-by-mairin
Interaction Designers – mairin
• http://openclipart.org/detail/34351/architetto—-signorina-by-anonymous
Architetto – signorina – Anonymous
• http://openclipart.org/detail/167203/help-desk-by-damyon
Help Desk – damyon
• http://openclipart.org/detail/128125/user-by-hector-gomez
User – hector gomez
• http://openclipart.org/detail/177209/text-input-by-snodnipper-177209
text input – snodnipper
• http://openclipart.org/detail/171799/simple-text-editing-icon-set-by-diamonjohn-171799
Simple text-editing icon set – diamonjohn
• http://openclipart.org/detail/25499/image-by-anonymous-25499
Image – Anonymous
• http://openclipart.org/detail/17371/email-by-ytknick
Email – ytknick
• http://openclipart.org/detail/173842/money-symbol-by-matzekatze-173842
money symbol – matzekatze
• http://openclipart.org/detail/73963/html-simple-radiobutton-by-3701
html simple radiobutton – 3701
• http://openclipart.org/detail/73969/html-simple-select-by-3701
html simple select – 3701
• http://openclipart.org/detail/174534/administrator-by-lbear-174534
Administrator – lbear
• http://openclipart.org/detail/18599/people-biz—female-cyan-by-yyycatch
people biz – female cyan – yyycatch
• http://openclipart.org/detail/88009/calendar-file-icon-by-jhnri4
Calendar file icon – jhnri4
• http://openclipart.org/detail/10762/personal-information-by-hawk88
personal information – hawk88
• http://openclipart.org/detail/130969/html-file-icon-by-gsagri04
HTML file icon – gsagri04
• http://openclipart.org/detail/18597/people-biz—male-pink-by-yyycatch
people biz – male pink – yyycatch
• http://openclipart.org/detail/18601/people-biz—female-pink-by-yyycatch
people biz – female pink – yyycatch
• http://openclipart.org/detail/18595/people-biz—male-blue-by-yyycatch
people biz – male blue – yyycatch
• http://openclipart.org/detail/122107/default-profile-picture-by-dear_theophilus
Default Profile Picture – dear_theophilus
• http://openclipart.org/detail/109267/message-by-anonymous
message – Anonymous

Copyright © 2016 Silenceway
Proudly powered by WordPress, Free WordPress Themes

 Subscribe in a reader