Drupal возвращает количество результатов в представлении - PullRequest
13 голосов
/ 04 июня 2010

У меня есть представление в Drupal, которое фильтрует мой контент. Это возвращает 7 рядов. Все, что я хочу вернуть, это число или возвращенные результаты (7). Возможно ли это?

Я пытался использовать счетчик результатов просмотра, но он возвращает число для каждого результата

1 2 3 4 5 6 7

Мне просто нужна 7 часть.

Так что в SQL я бы выбрал счетчик (*)

Ответы [ 6 ]

17 голосов
/ 07 июня 2010

что вы можете сделать, это активировать php для верхнего / нижнего колонтитула представлений и добавить к нему следующий фрагмент:

<?php
  $view = views_get_current_view();
  print $view->total_rows; 
?>

Это напечатает общее количество строк.

Если вам нужен результат в виде поля, вы можете использовать «Пользовательское поле Views» module , добавить поле php и запустить тот же фрагмент.

С уважением

Mike

5 голосов
/ 20 мая 2011

Если вы хотите получить счет за пределами представления, вы можете использовать это

$view = views_get_view('MY_VIEW_NAME');

$view->set_display('MY_DISPLAY'); // like 'block_1'    

$view->render();   

print sizeof($view->result);

Примечание: Не используйте это в представлении. Это будет накладные расходы. Если вы используете его в поле зрения, проверьте другие ответы.

3 голосов
/ 13 ноября 2013

Если вы используете 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;
    }
1 голос
/ 15 октября 2013

С Views 3 вам может понадобиться

$view->get_total_rows = TRUE;
$total_items = $view->query->pager->get_total_items();
1 голос
/ 04 октября 2012

Это хорошо работает для меня и касается проблем с пейджером. Поместите эту функцию в свой пользовательский модуль, переименуйте / отформатируйте, если необходимо, и вызовите ее из вашего view-view - * view_name_goes_here * .tpl.php files.

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>";
 }
}
0 голосов
/ 13 июля 2015

с drupal 7 - под пейджером у вас есть возможность Выставлять элементы на странице Если этот флажок установлен, пользователи могут определить, сколько элементов на странице отображается в представлении

...