Campos en Drupal 7: sembrar para recoger

En esta época del año se cerraba antiguamente las tareas del campo y por eso la gente, ante la llegada del frío, se reunía y celebraba todo lo recogido. Los campos en Drupal no tienen que ver con la agricultura, pero son un concepto que bien entendido nos permitirá sembrar estructuras y funciones que a la larga veremos que nos permitirán recoger grandes beneficios. Es un momento interesante para repasarlas empezando en este una serie de artículos sobre este tema.

Una de las funcionalidades más importantes asociadas a Drupal siempre ha sido la posibilidad de añadir campos de forma sencilla a las estructuras de datos con las que mostrar contenidos. Esta función que empezó en Drupal 5, fue incluida en el núcleo de Drupal en la versión 6 y en la 7 ha sido extendida a todas sus capas. Lo que empezó en Drupal 5 y ha sido incorporado en otros gestores de contenidos es la posibilidad de crear "tipos de contenido" y añadirles campos sin necesidad de programar.

El concepto de "Tipo de contenido" está muy ligado a Drupal y consiste en que en la administración del CMS hay una sección donde es fácil diferenciar los tipos de páginas que quiero mostrar: noticias, productos, oficinas, bibliografía, patentes, destinos turísticos, blog, proyectos, o cualquier otra cosa que queramos mostrar en la web. Esto es muy útil porque permite definir listados distintos para cada tipo y así poder empezar a organizar la web en secciones distintas. En Drupal 6 el interface para añadir campos a nuestra voluntad, campos de imagen, de archivos descargables, desplegable, de texto, de vídeo, numéricos, de dirección, de votación, de fecha, y muchísimos tipos más, permitía crear estructuras de tipos de páginas muy ricas en posibilidades y nos daba a los consultores incluso muchas posibilidades de organizar webs muy potentes.

Mucha gente con experiencia en Drupal conoce estas funcionalidades y hoy en día otros gestores de contenidos populares han empezado a incorporarlas. Un complemento extraordinario a esta funcionalidad es el creador de listados "Views", una herramienta para hacer listados sin tener que programar sentencias SQL. Tradicionalmente se ha considerado a la suma de añadir campos (entorno denominado CCK, de "Content Construction Kit") una herramienta potente pero difícil, que alejaba a los usuarios con pocos conocimientos informáticos de Drupal. En Innodus nuestra experiencia es que aquellos equipos que nos han solicitado formación sobre Drupal siempre han entendido muy bien este sistema con nuestro enfoque. Nosotros no entendemos porque la gente considera Drupal díficil cuando nos parece que bien explicado es muy sencillo de entender.

En cualquier caso en Drupal 7 todo dió un paso hacia adelante muy potente. En el anterior Drupal 6 los campos solo funcionaban con los tipos de contenidos, con los nodos en nomenclatura Drupal. En Drupal 7 esta funcionalidad se extendió a cualquier estructura de datos que se pudiese crear: nodos (tipos de páginas), los usuarios, las taxonomías, pero también los pedidos en el eCommerce, elementos del carrito, grupos de campos múltiples, o cualquier estructura de datos que nos queramos imaginar. Y lo mejor de todo ello es que el sistema es tan flexible que un campo podría ser compartido por todas esas estructuras. A este sistema se le llama "Entidades", elementos que pueden contener campos.

Este paso en Drupal 7 lleva las posibilidades muy lejos y ya empiezan a haber sistemas para generar estructuras de datos basadas en campos que no tienen porque ser páginas vistas, sinó sistemas para recoger y clasificar estos datos. Eso quiere decir que Drupal 7 no solo está orientado a mostrar páginas, a ser un gestor de contenidos, Drupal 7 permite plantearse tener dentro de la web cualquier estructura de datos, organizarla, extenderla, clasificarla y acceder fácilmente a ella. Un ejemplo podría ser que los resultados de un trabajo de campo de unos científicos se puede construir con una estructura de campos, a los que se les puede añadir el gadget de votación, para que un equipo posteriormente los valore. Para resumir a veces digo que Drupal 7 es el Access o el FileMaker de la web. Drupal 7 ya no es solo un gestor de contenidos, es un ECM, un Enterprise Content Management, una potente herramienta de trabajo en grupo.

Este formato de construcción de estructuras de datos (que ya no son simplemente contenidos) es muy extensible gracias a la arquitectura de Drupal. Se puede construir un formulario para recoger los datos de este trabajo de campo mencionado anteriormente y se puede ampliar en cualquier momento, porque su entorno es totalmente gráfico. O se puede seguir programando, para aquellos a los que les hace falta desarrollar funcionalidades muy complejas que no sea posible alcanzar con la configuración gráfica. Y esto se puede extender en cualquier momento, no son estructuras rígidas, se pueden añadir o quitar campos o gadgets, se pueden mover de posición, se pueden cambiar ciertos parámetros de su configuración, se pueden crear nuevas vinculaciones entre ellos, se puede compartir y reaprovechar cualquier campo con cualquier otra entidad anterior o futura. Óbviamente cuanto más se sepa de ello más lejos se llegará.

Los beneficios se pueden recoger tras mucho tiempo después de haber sembrado estos campos, incluso la comunidad de desarrolladores están ofreciendo gratuitamente muchos módulos nuevos que amplian el sistema de campos en cualquier de sus puntos: configuración, visualización o aparición en listados, reacciones antes eventos y disparadores. Estos resultados los recogeremos gracias a otros complementos como los formatters, Views, Rules, Search API o Feeds, para mencionar algunos. En próximas entradas veremos como recoger resultados con los campos de Drupal.