Nuevo módulo para Drupal: mostrar taxonomías ordenadas.

public
group: Argentina
EduardoMercovic... - Tue, 2008-04-08 17:09

Buen día a todos.

La gente de I+D de Openware (http://openware.biz) acaba de terminar un pequeño, simple y hermoso módulo que esperamos que sea de utilidad para muchos. :-)

El módulo facilita el mostrado y visualización de las taxonomías en la vista completa de un nodo, generando una tablita con el nombre de cada vocabulario y su/s valor/es.

Resultado del módulo Ordered Taxonomy Display

En la administración, se puede:

  • elegir qué vocabulario/s se muestra/n,
  • en qué orden, y
  • si se muestran los vocabularios vacíos.

Administración del módulo Ordered Taxonomy Display

Antes de abrirlo a toda la comunidad, nos pareció lógico y adecuado circularlo en un grupo menor, para hacer una primera prueba.

Pueden bajarlo de http://inspiro.com.ar/taxi/taxi-5.x-0.5c.zip.

Los próximos pasos pensados para este módulo (taxi, para los amigos) es la selección de tipos de nodos en los que aplica y el cacheo para mejorar el rendimiento.

Con toda humildad, nos encantaría oír vuestras críticas y opiniones. :-)

Desde ya, muchas gracias y saludos...

--
Eduardo Mercovich

Mañana les cuento mis experiencias

victorkane@drupal.org's picture
victorkane@drup... - Wed, 2008-04-09 14:46

Me viene bárbaro para un trabajo que estoy haciendo, aparte es interesantísimo el módulo.

Victor Kane
http://awebfactory.com.ar


Tengo cierta dificultad...

victorkane@drupal.org's picture
victorkane@drup... - Thu, 2008-04-10 16:19

... en lograr que ande en las instalaciones de Drupal 5.x que tengo functionando (cuando fijo opciones en admin, al confirmar, se de-seleccionan...).

Pero voy a hacer una instalación fresca de Drupal 5.x y les comento.

Unos puntos que ya estuve mirando:

  1. el archivo es.po debería ir a un subdirectorio "po". (pequeñez, pero...)
  2. sería muy lindo que se utilice una función theme_taxi_table() o algo así que sería overrideable y llamable desde themes customizados.
  3. Asume que el tipo de contenido tiene "body": la mayoría no tiene body, si uno usa CCK para construir nodos, y como "body" es "deprecated" (no se va a usar más) yo nunca lo uso.

Ahora bien, phptemplate implementa hook_link para obtener sus variables $taxonomy y $terms, entonces una solución sería que el módulo haga lo mismo, pero habría que ver. Del phptemplate.engine:

  if (module_exists('taxonomy')) {
    $taxonomy = taxonomy_link('taxonomy terms', $node);
  }
  else {
    $taxonomy = array();
  }
...
   'terms'          => theme('links', $taxonomy, array('class' => 'links inline')),

Pero, interesantísimo!

Victor Kane
http://awebfactory.com.ar


Buenas!

Lisandro - Thu, 2008-04-10 17:13

Qué tal; me presento, soy Lisandro, el que hizo el modulito éste para OW.

Aprecio muchísimo las impresiones y los puntos a tener en cuenta. Éste es el primer módulo de Drupal que hago. Hará una semana que me interoricé más en la programación de módulos que en el resto de Drupal. Un mes atrás, en menor profundidad, migramos la web de la empresa (http://www.openware.biz) utilizando Drupal.

Como dije recién, aprecio muchísimo los puntos a tener en cuenta, como iniciado en Drupal me son muy útiles, soy de los que creen que en general la mejor manera de aprender las convenciones y los usos comunes en un tema, es que te lleven de la mano, aunque nunca olvidando el hundir la nariz en la documentación respectiva cuando es necesario.

Voy a analizar las sugerencias e y implementar los cambios necesarios. Cuando esté, subo el nuevo módulo.

Les dejo un saludo. Gracias nuevamente.

Que bueno que la comunidad argentina de Drupal está creciendo

victorkane@drupal.org's picture
victorkane@drup... - Thu, 2008-04-10 19:42

Muy lindo el theme en www.openware.biz, buen uso de drupal, luego lo miro más a fondo.

Y muy meritorio el módulo, realmente, Drupal tiene una curva de aprendizaje muy dificil, sobre todo para sacarle el jugo como corresponde y palanquear productividad.

Excelentes progresos, tengo muchas ganas de ver la próxima versión!

Saludos,

Victor Kane
http://awebfactory.com.ar


Versión 0.7

EduardoMercovic... - Fri, 2008-04-11 18:49

Hola a todos.

Lisandro ya hizo varios cambios a la versión 0.5, incluidos un cache, una función propia (temable), el tema por el cual Víctor no veía la tabla, etc.

La pueden bajar desde http://inspiro.com.ar/taxi/taxi-5.x-0.7.tar.gz

Detalle (temporal):
* Tiene una dependencia del módulo Devel.
* Podría tener un print_r? de más.

Ambos detalles serán pulidos en breve.

Que la disfruten y saludos...

--
Eduardo Mercovich

Mi aporte

mariano86 - Fri, 2008-04-11 23:31

Bueno veo que lisandro finalmente ha dejado python y se dedica exlusivamente a drupal (chiste lisandro no te enojes)

Les paso un par de comentarios

El hook_perm deberia devolver una cadena sin t() creo que no es necesario traucir los permisos de los modulos.

<?php
 
// INSERTING taxi :-) in node content
  // Habra alguna forma menos 'intrusiva' ?
 
$node->content['taxi']['#value'] = $taxi;
 
$node->content['taxi']['#weight'] = -10;
?>

Tal vez seria interesante que permita elegir si modificar el contenido del nodo o agregarlo como un atributo más del objeto $node,
El modulo content template reconoce este atributo y permite especificar el lugar donde se mostrarían las categorias.

la implementacion del hook_nodeapi del modulo Fivestar da un ejemplo de eso.

El archivo taxi.unistall deberia ser borrado

y la funcion taxi.unistall reemplazada por taxi_unistall y copiarla dentro de taxi.install

A la implementación del hook_menu le podrían agregar el parámetro $may_cache

<?php
/**
* Implementation of hook_menu()
*/
function taxi_menu($may_cache) {
 
$items = array();

  if ($may_cache) {

  }
  return $items;
?>

En lo posible traten de usar las convenciones de drupal http://drupal.org/coding-standards
Y creo que nada más.

Felicitaciones por el módulo y saludos a los del altillo de openware.

Nos vemos
Mariano

Gracias...

Lisandro - Sat, 2008-04-12 07:47

...por la info y las sugerencias!

Un poco más en serio, yo la verdad programo en lo que surja, porque me gusta programar nomás... tengo en mi haber mucho Bash, bastante de Perl, algo de Python... hasta C++ con el API de OpenGL! Y como el Drupal está hecho en PHP, no me quedó otra, no le pude escapar :P igual sigo pensando en un módulo exec_perl o algo por el estilo :D en contra de cualquier convención!!

Te comento que varias de las cosas que me señalás ya están hechas, pero vamos a ser más puntuales:

  • Por qué no es necesario traducir los permisos de los módulos? Se genera algún conflicto? Sinceramente asumí que en todo caso, estando el Drupal en otro idioma, en la página de permisos aparecería el string traducido, y no más que eso.

  • Respecto de la tabla como un objeto más del nodo, ahora está así, y estaba pensando en hacer configurable el weight, para que pueda ser mostrada en distintos lugares

  • Lo del archivo taxi.uninstall y la función homónima, no tengo excusa! Si te fijás en el archivo taxi.install, ya hay una taxi_uninstall, que encima hace otra cosa :P. La taxi.uninstall me quedó de cuando empecé a hacer el módulo, igual debería llevar ese código a la otra (y arreglarlo, porque está mal)

  • A ver si entiendo: uso $may_cache, y defino los items del menú dentro de su estructura de control (porque definitivamente son estáticos, no cambian nunca), lo que los hace que el core los cachee, no?

Mañana le pego una mirada a las convenciones, ajusto el código y subo la última versión a algun lado. De cajón arreglé muchas cosas, y ahora no debería tener problemas. Tiene un caching primitivo de la estructura de la tablas (usando el API de caching de Drupal, pero le falta algo de workflow), y la tabla mostrada es themeable ahora, porque uso una función theme_taxi_table.

Les debo el módulo. Mañana lo subo a algún lado.

Mil gracias Mariano!

Un saludo.

Lisandro.

Ahora lo pruebo porque

Rosamunda's picture
Rosamunda - Sun, 2008-04-13 02:21

Ahora lo pruebo porque estaba necesitando algo así!!
La idea es excelente. Gracias por compartirlo.


v 0.8 lista

Lisandro - Sun, 2008-04-13 03:14

Gente, teniendo en cuenta las recomendaciones de Mariano y los reportes que muy gentilmente me ha pasado Victor, está lista la v0.8. Les dejo un link de rapidshare (es al único lugar donde pude subirlo, de todas formas anda). En el link, le dan click abajo a "Free" y de allí los lleva a una página que mediante un captcha los deja bajar el archivo.

http://rapidshare.de/files/39102198/taxi-5.x-0.8.tar.gz.html

Agregué a lo anterior un caching más inteligente y la posibilidad de seleccionar los content types sobre los que se mostrará la tabla.

Un saludo, y gracias de nuevo.

Edit: arreglé un detalle en el uninstall (una falla al deshabilitar el modulo) y volvi a subir el archivo. El link es nuevo.

Edit2: hay un pequeño problema, para que empiece a mostrar la tabla, es necesario hacer cambios en la config de los vocabularios en el modulo. Seguramente es algun variable_get que está mal. Para la próxima lo arreglo :P!

Versión 0.8 subida con las otras

EduardoMercovic... - Mon, 2008-04-14 11:50

Hola a todos.

Antes que nada, gracias a todos por los comentarios y felicitaciones a Lisandro por el módulo.

Sólo para que esté en algún lugar un poco más estable, hasta que lo publiquen en drupal.org/project, lo subí mientras tanto a
http://inspiro.com.ar/taxi/taxi-5.x-0.8.tar.gz

--
Eduardo Mercovich

0.8b

Lisandro - Mon, 2008-04-14 13:46

Subida con los problemas solucionados. Gracias Eduardo!

http://inspiro.com.ar/taxi/taxi-5.x-0.8b.tar.gz

¿Alguien más lo usó?

EduardoMercovic... - Wed, 2008-04-16 13:47

Antes de que lo publiquen -para bien o para mal- ¿hay más comentarios? ¿otros que lo hayan usado? ¿alguna experiencia, idea, sugerencia, o similar que valga la pena? :-)

Saludos...

--
Eduardo Mercovich

Taxi - Página del proyecto

Lisandro - Thu, 2008-05-08 20:51

Gente, mil gracias a todos. El proyecto tiene página como contrib en drupal, se las dejo.

http://drupal.org/project/taxi

Un saludo!