Cela fait maintenant un mois que le module Associated Nodes a été crontribué sur drupal.org ; l'occasion de dresser un premier bilan :
- Développé initialement pour Drupal 5, ce module a rapidement été porté pour Drupal 6 et continue d'évoluer au fur et à mesure des remarques des utilisateurs.
- Associated Nodes est déjà utilisé sur plus de 80 sites Drupal, et ce n'est que le début ;)
Mais à quoi donc sert ce module ?
Drupal est un CMS dont les éléments de contenu sont désignés sous le nom générique de "noeuds". Le module permet de faire des rapprochements entre les noeuds en se basant sur différents critères comme la taxonomie ou les champs CCK (en réalité, n'importe quel critère puisqu'il est possible d'écrire des plugins pour Associated Nodes qui définissent leurs propres critères d'association)
Le premier site Internet à avoir utilisé Associated Nodes est celui de la librairie Lekti (http://www.lekti-ecriture.com/librairie). Ici, les noeuds sont des livres qui comportent divers champs CCK (auteur, éditeur, collection...) et qui sont organisés selon une taxonomie importante (Genre littéraire, Type de public...). Le but est de retrouver, pour un livre donné, des livres ayant des points communs avec ce dernier, les différents critères d'association étant pondérés selon leur importance.
Techniquement, le module Associated Nodes a necessité une reflexion importante sur son optimisation. En effet, le nombre de couples de noeuds que l'on veut comparer étant proportionnel au carré du nombre de noeuds, l'explosion combinatoire se révèle rédhibitoire dans des approches trop basiques. Le modèle actuel qui partage le calcul entre le module principal et les différents plugins permet une recherche des noeuds associés dans un temps raisonnable ; de plus, un système de mise en cache évite les recalculs inutiles pour les noeuds consultés plusieurs fois.
En conclusion, les points forts d'Associated Nodes par rapport aux autres modules de mise en relation de noeuds sont :
- le système de plugins pour définir de nouveaux critères,
- le système de mise en cache des noeuds associés,
- le système de pondération des critères selon leur importance,
- la possibilité d'associer des noeuds de types particuliers,
- le fait de pouvoir définir plusieurs associations avec chacune leurs propres critères,
- les critères d'exclusions (pour la librairie Lekti il était indispensable de ne pas associer un livre érotique à un livre pour enfant même s'ils ont le même auteur ou d'autres points communs).
Si ce module vous intéresse, rendez-vous sur http://drupal.org/project/associated_nodes
Une documentation en anglais est désormais disponible.
L'application web dont on parle régulièrement dans ce blog est openTIME.
Via un abonnement trimestriel en mode hébergé ou sur vos propres serveurs, elle permet de valoriser vos heures travaillées ou celles de vos employés.
Recevez GRATUITEMENT un dossier d'informations.