проблема пейджера с друпалом и таксономией - PullRequest
0 голосов
/ 09 апреля 2010

Хорошо, так что это, вероятно, глупый вопрос, но я подумал, что в любом случае поставлю его:
Я знаю, что это странное решение простой проблемы, но мне нужно было контролировать список узлов на страницах таксономии, но я не чувствовал, что получил традиционный способ. Итак, я пошел дальше и создал модуль, который выбирает узлы на основе таксономии (taxonomy_select_nodes ()), и я хотел, чтобы пейджер согласился с этим.

Вот код:
function theModule_recipeList(){ $path = drupal_get_path_alias($_GET['q']); $args = explode("/",$path); $themePath = drupal_get_path("theme", "theTheme");</p> <pre><code>$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;

}

Теперь модуль работает так, как я планировал, и все (хотя я знаю, что это своего рода решение для клейкой ленты), и пейджер печатает и работает. Проблема в том, что пейджер печатает раньше всего.

Я подозреваю, что это потому, что я вызываю taxonomy_select_nodes до того, как возвращается $ output, но мне это нужно, чтобы получить нужные мне узлы.

Пожалуйста, любые предложения приветствуются.

/ Anders

Ответы [ 2 ]

1 голос
/ 10 апреля 2010

Как предложил Никит, я бы порекомендовал использовать модуль views для создания вашего списка. Вы можете использовать аргумент, чтобы выбрать соответствующий термин таксономии из пути. Таким образом, вы получаете желаемую функциональность без необходимости писать и поддерживать код.

0 голосов
/ 09 апреля 2010

В соответствии с подходом клейкой ленты, вы можете использовать CSS, чтобы переместить пейджер ниже вашего контента.

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

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