Módulos Custom. Flexibilizando Drupal.
Un año y medio después de haber conocido Drupal por primera vez. Incluso después de haber programado varios módulos, instalé el primer módulo Custom de Drupal. No puedo expresar con palabras la cantidad de posibilidades que disparó esto en mis desarrollos.
Antes de comenzar con el tema en cuestión es importante mencionar esto para los recién iniciados en Drupal. CCK, Views, Tokens, y los filtros de entrada son algunos de los módulos que seguramente utilizará en cuanto sitio construya con Drupal.
Las posibilidades de estos módulos son tan amplias que muchas veces bastan para diseñar un sitio casi completamente.
CCK permite crear tipos de contenidos, Views, generar listados, Token genera etiquetas reemplazables reutilizables y los filtros de entrada permiten aplicar etiquetas al cuerpo de los nodos.
Pero yo necesito...
Siempre hay alguien que necesita algo que Drupal no provee por defecto. De alguna forma la flexibilidad de CCK, Views y los demás módulos encuentra un límite.
Es por eso que algunos desarrolladores han construido los módulos Custom.
Un módulo Custom (custom = personalizado) expande las funcionalidades de los módulos por llamarlos de una manera “clásicos”, generalmente mediante el uso de PHP.
Computed CCK Field:
Comencemos con Computed Field. CCK posee una serie de módulos que permiten crear campos del tipo texto, numéricos, de fechas, de imágenes, de audio, y de muchas otras formas. Pero que sucede si alguien necesita algo realmente específico. Digamos por ejemplo, un campo que se obtenga a partir de los datos de otros campos. O quizás un select box que se llene con datos extraídos de una tabla.
Para eso existe Computed Field. Este módulo permite crear campos con valores obtenidos mediante PHP. Por ejemplo, un número correlativo. Para este sitio podría haber utilizado un campo custom para obtener el número de artículo, obtenido a través de una consulta SQL a la base de datos.

Este módulo además puede ser utilizado para mostrar un campo en determinadas ocasiones. Por ejemplo, sólo mostrar el valor de este campo cuando el usuario posee una cierta cantidad de comentarios en el sitio.
Por último es destacable la capacidad de elegir si este valor se debe guardar o no en la base de datos. Retomando el ejemplo del número de artículo no es necesario guardarlo, es un cálculo simplemente.

Computed Field se instala como un campo común en el sitio. Los nodos pueden entonces mostrar campos custom tal como si se trataran de campos numéricos o de texto.
Custom Token:
El módulo Token usualmente provee soporte para otros módulos. Creo que el ejemplo más claro es Pathauto. Los Tokens son etiquetas que toman un valor. Por ejemplo [nid] se reemplaza por el id del nodo. [title] por el título.

De esta manera, articulos/[title]_[nid].html sería reemplazado para este artículo como:
articulos/Módulos_Custom._Flexibilizando_Drupal_23.html
Pero, volviendo a la flexibilidad extrema. Como hacer para crear un token personalizado, por ejemplo el token [numero-aleatorio]
Para eso se puede utilizar el módulo Custom Tokens. Básicamente permite generar tokens utilizando PHP. Personalmente lo he utilizado en un proyecto en donde necesitaba obtener valores de un nodo y del cual solo poseía su id.

Es interesante el hecho de que al procesar el token, tenemos acceso al objeto sobre el cual trabajará el token. De esta forma se puede construir un token específico obteniendo antes la información del nodo o el usuario.
Custom Links
Este módulo permite agregar links personalizados en el mismo lugar que en donde aparece los links habituales. Por ejemplo un nodo podría tener su habitual “Agregar Comentario” y al lado, “Escribir mensaje al autor”

Custom Filters:
Al igual que Custom Tokens, existe una opción para generar filtros de entrada personalizados. El módulo se llama Custom Filters. (También existe CCFilter, que cumple funciones simliares pero de otra forma), no tiene mucho sentido hablar demasiado sobre este módulo, su funcionamiento es similar al de Custom Tokens.

Custom Breadcrums:
Otra de las cosas que se pueden personalizar en Drupal son los breadcrums. Con una traducción al español casi imposible, los breadcrumbs permiten indicarle al usuario donde esta parado y desde donde navegó para llegar hasta allí.

El modulo Custom Breadcrums permite modificar estos textos informativos para que queden más acordes a su sitio.

View Custom Field:
He dejado para lo último lo que considero la joya de la familia custom. No me diga que nunca necesitó mostrar algo en un views como un link personalizado por fila, un número de fila, una suma de valores, lo que sea.
Views Custom Field es el módulo que permite obtener valores personalizados para los listados hechos con views.
Al instalarlo permite agregar tres tipos nuevos de campos:

El primero en la lista permite agregar textos normales. Si tiene que agregar por alguna razón un texto como “Artículo publicado”, entonces esta tal vez sea una buena opción.
La segunda en la lista permite agregar campos que se construyan con PHP. Simplemente es perfecto. No solo puede crear algún valor con PHP sino que puede leer los valores de los demás campos de la fila, de esta forma puede variar su valor a mostrar dependiendo de los valores que haya en la fila. Las posibilidades son inmensas.
El siguiente código de ejemplo muestra como se puede mostrar un enlace "imprimir" cuando el tipo de contenido de la fila actual sea del tipo página.
<?php
// Id del nodo: $data->nid;
//Tipo de nodo: $data->node_type
if ($data->node_type == 'page') {
print l('Imprimir', 'print/' . $data->nid);
}
?>
Y el último tipo de campo, Custom ViewField: Row Number agrega números automáticamente a sus filas en sus listados. Algo que a veces puede resultar muy útil.
Conclusiones:
Como pueden observar, para cada módulo clásico de Drupal existe su par “personalizado”. Las posibilidades que estos módulos brindan hacen que hacer un sitio web de extrema complejidad con Drupal sea una tarea, por lo menos posible. No se puede decir, “fácil”, pero por lo menos es realizable.
Seguramente exista algún otro módulo Custom que me haya quedado en el tintero. Si conoce alguno más, por favor agreguelo en los comentarios.
- 3697 lecturas
Contenido Relacionado
Resumen
Este artículo explica como se configuraron los dos módulos más utilizados en cualquier sitio con Drupal. CCK y Views. Como se utiliza una versión de Drupal 6 se trabajará con CCK 2.x y Views 2.x
Inicio de sesión
Comentarios recientes
- no aparece la galeria de galerias
hace 17 horas 50 mins - dependencia de modulo desaparecida
hace 1 día 10 horas - Nombre del Sitio + Nombre de Carpeta
hace 1 semana 21 horas - Gracias
hace 14 semanas 4 días - Tutorial espectacular
hace 19 semanas 19 horas - Muchisimas gracias, realmente
hace 20 semanas 2 días - Re: no puedo ver los videos
hace 20 semanas 5 días - no puedo ver los videos
hace 20 semanas 5 días - Gracias
hace 21 semanas 2 días - Re: Añadir regiones en drupal 6
hace 22 semanas 1 día

Comentarios
Aupa compañero, sino recuerdo
Aupa compañero, sino recuerdo mal por lo menos los campos básicos de cck tienes la opción de Valores permitidos y dentro de los mismos puedes meter php para recuperar lo que necesites.
Un saludo y buen artículo
Oskar
Muy cierto. Bueno, hay dos
Muy cierto.
Bueno, hay dos posibilidades entonces :)
Aunque pensandolo bien, creo que Computed Field permite mostrar el resultado de una consulta SQL. Y CCK permitiría elegir uno de esos valores recuperados desde la base de datos. Creo que son cosas distintas.
Igualmente gracias por el comentario.
Saludos!
View Custom Field....
No sé si es el caso, pero en este momento necesito agregar el módulo "Compartir" (http://drupal.org/project/addthis) en cada ítem de mi "Vista". Creo que podría funcionar de esta forma.
Saludos!
Muy buen articulo Mariano yo diria buenisimo!!!
Muchas gracias por hacer estos artículos, justo estaba buscando un Token personalizado y Custom Token me viene perfecto, realmente creo estos módulos custom son buenísimos, gracias nuevamente.
excelente explicacion
Aunque no soy tan expero en php, tambien he echado mano de los custom una que otra vez... que el spagueti volador protega al barbudo de Stallman por haber hecho posible todo esto.
SEO London
Enviar un comentario nuevo