Integración de módulos en Drupal
Puede que usted alguna vez se haya preguntado, ¿Como puedo colaborar con esta comunidad inmensa? Puede que no se lo haya preguntado, no se preocupe, si pasa el tiempo suficiente utilizando Drupal, usted solo se dará cuenta de lo importante que es su aporte.
Si usted es programador, tal vez la forma más simple de colaborar sea creando módulos. Sin embargo, esto trae varios problemas aparejados.
En primer lugar, hacer un módulo entero puede resultar una tarea compleja. Estoy hablando de algo realmente útil, que tenga un propósito concreto y no sea un packman para Drupal.
En segundo lugar, incluso habiendo creado el módulo, usted debe tener la capacidad de dar soporte para sus módulos. A muchos desarrolladores de la comunidad les está pasando que poseen demasiados módulos para mantener y mejorar. Y simplemente no dan a basto.
Por otro lado, para programar un módulo completo hay que conocer muy bien como funciona Drupal. Si no, su módulo posiblemente sirva, pero será poco elegante y seguramente tendrá fallas de seguridad en varios lugares.
No quiero desanimar a nadie a programar sus propios módulos. Yo mismo a dos años de utilizar Drupal, y dedicarme casi exclusivamente a la programación, no he liberado mi primer módulo por las primeras dos razones citadas.
Entonces, ¿Qué hago?
Por empezar puede crear parches, los parches son fundamentales para alivianar la tarea a los desarrolladores.
Pero si realmente quiere hacer algo útil, y no quiere meterse con el núcleo de Drupal, lo que usted debería evaluar seriamente es... integración.
Integración de módulos.

Cada módulo puede permitir o no, que otros trabajen con él. Por ejemplo, views, le permite a todos los demás módulos crear plugins que interactúen con él.
A continuación veremos entonces, cuales son las principales formas de integración.
Integración con CCK.
Esta forma de integración generalmente supone la creación de nuevos campos o widgets para estos.
Un programador puede programar para el Kit de Construcción de Contenidos un parche para que, por ejemplo, el módulo fivestar sea un campo CCK. De hecho esto ya fue programado hace tiempo, así que tendrá que pensar en otra cosa :)
La integración con CCK trae dos ventajas fundamentales para cualquier módulo. Primero, una flexibilidad en la configuración desde el lado del usuario. Por el otro, una solidez en lo que refiere a seguridad del API utilizado en la integración.

Integración con Views
Atención, aquí hay mucho trabajo por hacer!. Views 2 permite en su nuevo diseño que los módulos creen sus propios plugins y handlers para integrarse con Views.
A mi criterio, el 80% de los módulos existentes para Drupal podrían tener por más pequeña que sea, su integración con views.
¿El módulo almacena algún tipo de dato útil para el usuario? Pues permita listarlo con views. Y además utilizar ese valor para filtrar listados.

Existen muchísimos módulos que aún no tienen soporte, solo es cuestión de buscar la frase “Views integration” en Drupal, y verá una lista de las tareas disponibles.
Integración con Mailhandler.
Este módulo tal vez sea desconocido por algunos. Permite la creación de contenidos a través del procesamiento de emails en una casilla de correo.
Esto quiere decir, usted envía un mail a la cuenta x. Y al poco tiempo ese email es convertido en un nodo en un sitio en particular.
Un ejemplo de integración con este módulo el Messaging. Un sistema fabuloso de mensajería para Drupal. Haciendo uso de Mailhandler evita reescribir código.
Usted puede crear parches para integrar otros módulos a mailhandler. Especialmente a la hora de reconocer comandos encerrados entre [corchetes]
No recuerdo si ya está implementado el rellenado de campos CCK con este tipo de comandos.
Integración con Imagecache.
¿Le gusta el diseño gráfico? Tal vez haya creado algún tipo de proceso que permita modificar imágenes al vuelo. Supongamos, pasar una imagen a un formato tipo polaroid. Recuerde que ImageCache es el módulo encargado de proveer un API para este tipo de procesamientos.

Extendiendo ImageCache le da la posibilidad a los administradores de aplicar más filtros sin la intervención del usuario.
Integración con Voting API:
Hoy en día es común ver sitios con encuestas complejas en los sitios web. Preguntas que dependen de otras, o formas de votación complicadas.
Recuerde que cualquier módulo que termine o empiece con API, seguramente le dará soporte para extender y hacer uso de su código.
Voting API permite justamente extender el sistema de votaciones. Un ejemplo claro de integración con este módulo es Advanced Poll. Que extiende las opciones para encuestas.

Integración con Rules:
Otro ejemplo magnífico de modulo extensible es Rules. Como indiqué en este video Rules permite ejecutar acciones cuando un evento se dispara y se cumplen ciertas condiciones.
La buena noticia es que los eventos pueden crearse. Por ejemplo, usted podría crear un nuevo evento que se dispare cuando un contenido es traducido a un idioma determinado. O cuando una revisión es aprobada con node revisions, o cuando un usuario cancela su voto con advanced poll. Los eventos que puede crear son incontables.

Pero además también puede programar condiciones. Por ejemplo, usted puede programar una condición para evaluar si un usuario votó o no en una encuesta determinada.
Por último puede programar acciones. Las acciones estarán íntimamente relacionadas al módulo que las provea. Por ejemplo podría crear una acción para generar un pdf a partir del contenido de un nodo. Lo que se le ocurra.
Notas sobre la integración:
Los códigos de integración deberían figurar en los módulos que los implemententen. Esto es, si usted está programando una integración del módulo fivestar con views, el código de integración estará incluido obviamente en el módulo fivestar.
Sin embargo esto no siempre es así. Existen dos casos en los que se rompe este mecanismo y la integración se incluye en un modulo distinto al que se debería.
Primero, si su módulo implementa una característica realmente importante y novedosa para un sitio, como por ejemplo views, cck, o i18n, todas las integraciones con los demás módulos de su categoría, deberán incluirse en el mismo módulo. Por esta razón, la integración de cck con views está incluída en views y no en cck. ¿Por qué? Bueno, porque es demasiado trabajo para los desarrolladores de cck escribir todo el código para la integración con views, y además, ¿que sucede si en su sitio usa cck pero no views?
Y en segundo lugar, la integración de algún módulo del núcleo de Drupal no puede incluírse el el core. Suponga que quiere integrar el módulo blog al módulo rules. Es simplemente impensado que en el núcleo de drupal figure una implementación del un hook de rules. En ese caso, rules deberá incluir en su propio código las instrucciones necesarias para integrar blog a rules.
Manos a la obra.
Si le pareció buena la idea, simplemente ingrese a la página de proyectos de cada módulo y vea que integraciones son solicitadas o están en desarrollo.
En la mayoría de los casos, una integración con otro módulo es la implementación de un hook provisto por el propio módulo extensible.
Por ejemplo, para implementar un nuevo evento con rules, bastará hacer:
<?php
/**
* Implementation of hook_rules_event_info().
*/
function celuego_rules_event_info() {
return array(
'confirmar_email_luego' => array(
'label' => t('Usuario confirma su dirección de email'),
'module' => 'Confirmar Email Luego',
'arguments' => array(
'user' => array('type' => 'user', 'label' => t('Usuario que confirmó su cuenta de email.')),
),
'redirect' => TRUE,
);
}
?>- 3659 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
Soy nueva trabajndo en drupal
Soy nueva trabajndo en drupal me preguntaba si existe un modulo en drupal que me permita hacer una solicitud......en el sitio que estoy haciendo tengo informacion que para que el usuario pueda verla necesito que el lider del proyecto decida si puede acceder a ella o no, por lo que el deberia hacer una solicitud de obtener esa documentacion y por correo se le notificaria un user y pass para que pueda acceder a este......existe algun modulo para esto??????
saludos
Rosa
Hola, ante todo
Hola, ante todo bienvenida.
Tal como lo planteas, no hay nada así en un sólo módulo de Drupal. Es un comportamiento muy específico y nadie lo ha programado de esa forma.
Sin embargo hay una serie de módulos que podrían solucionar ese requerimiento. Protected Node permite poner contraseñas "por nodo", Advanced Contact permite mejorar los formularios de contacto. Rules podría configurarse para enviar el mensaje con los passwords.
La solución es posible aunque un tanto compleja, y desde ya no hay un simple modulo para hacer todo junto.
Espero que sea de ayuda, saludos.
Restrngir acceso a Libros
Saludos Mariano, es la segunda vez que visito Cuenco y no deja de sorprenderme. Debo reconocer el excelente trabajo que como drupalero has estado haciendo. No pretendo para nada seguir sus pasos y reconozco mis lagunas del conocimiento en el uso de drupal. Estoy desarrollando un sitio y tengo algunas dudas que quisiera ir resolviendo paulatinamente con su ayuda.
Al grano: recientemente he creado un libro nuevo y restringí con restric access cada una de sus páginas, sin éxito alguno, había limitado el acceso a rol anónimo y el autenticado, pretendía que solo estuviera accesible para otros roles no para los que mencioné. No logro hacerlo. Tal vez los libros no se pueden ocultar a los usuarios del sitio o algo así. Tienes idea de lo que esta ocurriendo. Puedes ayudar? Desde ahora agradezco su atención y pronta respuesta Gracias. Ochoa
Hola Ochoa: Lamentablemente
Hola Ochoa:
Lamentablemente no tengo experiencia utilizando Restric Access (de hecho busque el módulo y no lo he encontrado).
Puedo recomendarte que pruebes con Taxonomy Access Control Lite, básicamente permite definir permisos para nodos en base a categorías.
Por lo tanto podrías definir quien puede ver cada página del libro definiendo para cada pagina algunas categorías.
Espero que sea de ayuda.
Saludos
Restric access
Saludos Mariano, te agradezco su colaboración. Este módulo lo bajé del sitio de drupal junto a otro llamado access content, ha estado funcionando muy bien excepto con el libro Secretaría Docente, si accediste al Portal en http://190.202.102.245/mic/?q=docencia, podrás ver como ha estado funcionando. De todas formas veré la opción que propones, después le cuento. Un saludo afectuoso.
Ochoa
Saludos y consulta
<?phpecho "saludos y felicitaciones";
?>
Enviar un comentario nuevo