Les termes les plus populaires dans la liste des forums

Catégories:

Bonjour,

J’aimerai pouvoir afficher, sous le titre d’un forum, la liste des termes les plus utilisés pour les sujets présent dans ce forum (un peu comme des sous-forums mais basé sur la taxonomie).

Je sais où faire mes modifications, par contre je ne sais pas comment faire. S’il existe des fonctions qui pourraient m’aider, ou au pire la requête SQL (je suis perdu entre nid, tid, vid, …).

Par avance, merci.

#

J’ai réussi à faire ce que je voulais :

<?php
function theme_preprocess_forum_list(&$variables) {
  foreach (
$variables['forums'] as $id => $forum) {
   
$variables['forums'][$id]->terms = array();
   
$result = db_query ("SELECT tn.nid FROM {term_node} tn WHERE tn.tid = $id");
    while (
$col = db_fetch_object($result)) {
     
$node = node_load ($col->nid);
     
$terms = taxonomy_node_get_terms ($node);
      foreach (
$node->taxonomy as $term) {
        if (
$term->vid == 1) {
         
$variables['forums'][$id]->terms[$term->tid] = l($term->name, ltrim($forum->link, '/'),
                                  array(
'query' => 'rubriques='.$term->name, 'absolute' => true));
        }
      }
      if (
count($variables['forums'][$id]->terms) >= 5)
      {
        break;
      }
    }
  }
}
?>

Par contre je risque d’avoir rapidement des problèmes de performance lorsque le nombre de nœud dans un forum va devenir important. Si vous avez une meilleure solution, je suis preneur !

Sans parler de l’identifiant du vocabulaire et du nombre maximum de pseudo sous-forum directement dans le code…

Syndiquer le contenu