Drupal возвращает число результатов в представлении
У меня есть представление в Drupal, которое фильтрует мой контент. Он возвращает 7 строк. Все, что я хочу вернуть, - это число или результаты, возвращаемые (7). Возможно ли это?
Я попытался использовать счетчик результатов просмотра, но он возвращает число для каждого результата
1
2
3
4
5
6
7
Мне просто нужна 7 часть.
Итак, в SQL я бы сделал select count (*)
Ответы
Ответ 1
что вы можете сделать, это активировать php для заголовка/нижнего колонтитула views и добавить к нему следующий фрагмент:
<?php
$view = views_get_current_view();
print $view->total_rows;
?>
Это будет напечатать общее количество строк.
Если вам нужен результат в качестве поля, вы можете использовать "Пользовательское поле" Просмотры " module, добавить php-поле и запустить тот же фрагмент.
С уважением
Mike
Ответ 2
Если вы хотите получить счет за пределами представления, вы можете использовать этот
$view = views_get_view('MY_VIEW_NAME');
$view->set_display('MY_DISPLAY'); // like 'block_1'
$view->render();
print sizeof($view->result);
Примечание. Не используйте это в представлении. Это будет накладные расходы. Если вы используете его в пределах просмотра, проверьте другие ответы.
Ответ 3
Если вы используете views_get_view
в Views 3, вы можете использовать этот фрагмент:
$view = views_get_view('MY_VIEW');
$view->set_display('MY_DISPLAY');
// Execute first
$result = $view->preview('MY_DISPLAY');
// Output result only if rows > 0
if (count($view->result) > 0) {
print $result;
}
Ответ 4
Это хорошо работает для меня и занимается проблемами пейджера. Поместите эту функцию в свой пользовательский модуль, переименуйте/форматируйте по мере необходимости и вызовите его из файлов views-view - * view_name_goes_here *.tpl.php.
function get_view_rowcount(){
$view = views_get_current_view();
$page_total = count($view->result);
if(isset($view->total_rows)){
return "<strong>Displaying " . $page_total . " of " . $view->total_rows . " total rows.</strong>";
} else {
return "<strong>Displaying " . $page_total . " of " . $page_total . " total rows.</strong>";
}
}
Ответ 5
С Views 3 вам может понадобиться
$view->get_total_rows = TRUE;
$total_items = $view->query->pager->get_total_items();
Ответ 6
с drupal 7 - в настройках пейджера у вас есть возможность
Экспортировать элементы на страницу
При проверке пользователи могут определить, сколько элементов на странице отображается в представлении