[Решено] D7: Лимит выборки материалов по таксономии - почему не больше 10?

Главные вкладки

Аватар пользователя Dr.Dru Dr.Dru 10 июля 2012 в 8:21

Приветствую,
Есть несколько материалов, отмеченных чекбоксами по словарю таксономии. Теперь их нужно отобразить. Вот так делаем выборку массивов материалов в соответствии с выбранными значениями по словарю таксономии.

$terms = taxonomy_get_tree(3);
echo "<div class='specnames'>";
$nnn=0;
foreach ($terms as $term)
{
        $nnn++;
        echo "<div class='specname".($nnn==1?" sactive":"")."' onclick='javascript:jQuery(\".specname\").removeClass(\"sactive\");jQuery(this).addClass(\"sactive\");jQuery(\".descript\").hide();jQuery(\".d{$term->tid}\").show();resizewrap();'><span>$term->name</span></div>";
        $arrNodes[$term->tid] = node_load_multiple(taxonomy_select_nodes($term->tid));
        $arrTermIds[]=$term->tid;
}
echo "</div>";

В итоге если выводить значения количества элементов полученных массивов: echo " arrNodes=",count($arrNodes[$term->tid]);

то получается не больше 10, хотя отмеченных материалов точно больше. Меньше выводит, больше - нет. Вопрос: это баг друпала или это ограничение где-то прописано?

Комментарии

Аватар пользователя Dr.Dru Dr.Dru 10 июля 2012 в 10:29

Проблема решена. Возможно и другим пригодится.

Оказалось, что taxonomy_select_nodes() просто расширяет PagerDefault, а этот класс использует ограничение в 10, если не указано иное. Если добавляем необязательный параметр FALSE, тем самым снимаем данное ограничение. Таким образом наш вызов будет иметь следующий вид:

$arrNodes[$term->tid] = node_load_multiple(taxonomy_select_nodes($term->tid, FALSE));

PS: Решение, кстати, было найдено здесь (похожая проблема).