diff --git a/plugins/views_plugin_query_default.inc b/plugins/views_plugin_query_default.inc index dc8e3d53cbbe41fe6bfced184978c7ca6a83e5d6..44252fd189d16b5af3ad11bc3f9a950f2b5a1748 100644 --- a/plugins/views_plugin_query_default.inc +++ b/plugins/views_plugin_query_default.inc @@ -1482,7 +1482,7 @@ function execute(&$view) { $this->pager->post_execute($view->result); - if ($this->pager->use_pager()) { + if ($this->pager->use_count_query() || !empty($view->get_total_rows)) { $view->total_rows = $this->pager->get_total_items(); } } diff --git a/tests/views_pager.test b/tests/views_pager.test index 5954e2be1db3181c36198db2c7517e1508feec33..fef4915373617454f183a703e7f92265f8503abf 100644 --- a/tests/views_pager.test +++ b/tests/views_pager.test @@ -175,6 +175,25 @@ class ViewsPagerTest extends ViewsSqlTest { return $view; } + public function testViewTotalRowsWithoutPager() { + $this->createNodes(23); + + $view = $this->viewsPagerNoLimit(); + $view->get_total_rows = TRUE; + $view->set_display('default'); + $this->executeView($view); + + $this->assertEqual($view->total_rows, 23, "'total_rows' is calculated when pager type is 'none' and 'get_total_rows' is TRUE."); + } + + public function createNodes($count) { + if ($count >= 0) { + for ($i = 0; $i < $count; $i++) { + $this->drupalCreateNode(); + } + } + } + /** * Tests the some pager plugin. */