2010-04-09 5 views
0

Ok, donc c'est probablement une question stupide, mais je pensais que je l'aurais mis dehors de toute façon:
Je sais que c'est une solution étrange à un problème simple, mais je devais contrôler le liste des noeuds dans les pages de taxonomie, que je n'ai pas senti que j'ai obtenu la manière traditionnelle. Donc je suis allé de l'avant et j'ai créé un module qui récupère les nœuds en fonction de la taxonomie (taxonomy_select_nodes()), et je voulais un pager pour aller avec ça.problème de téléavertisseur avec drupal et taxonomie

Voici le code:
function theModule_recipeList(){ $path = drupal_get_path_alias($_GET['q']); $args = explode("/",$path); $themePath = drupal_get_path("theme", "theTheme");

$term = taxonomy_get_term_by_name($args[1]); 
$tid = $term[0]->tid; 
$nodes = taxonomy_select_nodes(array($tid)); 

$output = "<div id='recipeListWrapper'>"; 
while($row = db_fetch_object($nodes)){ 
    $node = node_load($row->nid); 

    if($node->uid != 1){ 
     $userClass="user"; 
    } 
    else{ 
     $userClass="admin"; 
    } 
    $output .= " 
     <div class='receptThumbnailWrapper'> 
      <div class='wrapper'> 
       <img src='".base_path().$themePath."/graphics/recept-default-small.png' /> 
       <h3><a href='".base_path() . $node->path."'>".$node->title."</a></h3> 
       <div class='recipeType $userClass'></div> 
      </div> 
     </div> 
    "; 
} 
$output .= "</div>"; 

return $output; 

}

Maintenant, le module fonctionne comme je l'ai prévu et tout (même si elle est une sorte de ruban adhésif de solution, je sais), et les impressions de téléavertisseur et de travaux. Le problème est que le pager imprime avant toute autre chose.

Je suppose que c'est parce que j'appelle taxonomy_select_nodes avant que $ output soit retourné, mais j'en ai besoin pour obtenir les nœuds que je veux.

S'il vous plaît, toutes les suggestions sont grandement appréciées.

/Anders

+0

Peut être en utilisant le module Vues sera mieux pour cela. Quoi qu'il en soit, taxonomy_select_nodes n'imprime pas le pager, c'est juste le paramètre catch pager dans la fonction. Où avez-vous appelé la fonctionModule_recipeList? – Nikit

+0

J'ai fait un bloc qui produit ce contenu, et c'est là que j'appelle la funktion ($ block ['recipeList'] ['content'] = theModule_recipeList()). La raison pour laquelle j'ai pensé que taxonomy_select_nodes a imprimé le pager, c'est parce qu'elle a disparu quand je l'ai commenté. – andersandersson666

Répondre

0

Conformément à l'approche du ruban adhésif, vous pouvez utiliser les CSS pour déplacer le Pager ci-dessous votre contenu.

#div-that-holds-pager-and-content { 
position: relative; 
padding-bottom: 50px; 
} 

#div-that-holds-pager { 
position: absolute; 
bottom: 10px; 
} 
+0

Oui, bien sûr, cette option m'a traversé l'esprit (en allant avec le truc de la bande adhésive :), mais je voudrais vraiment le résoudre d'une manière plus «correcte», car je pensais que j'apprendrais aussi quelque chose. Cependant, si rien ne se passe mieux, ce genre de solution serait probablement une option. – andersandersson666

1

Comme suggéré Nikit, je vous conseille d'utiliser le module views pour créer votre liste. Vous pouvez utiliser un argument pour sélectionner le terme de taxonomie approprié dans le chemin. De cette façon, vous avez la fonctionnalité que vous voulez sans avoir besoin d'écrire et de maintenir le code.

Questions connexes