我在Drupal中有一个过滤我内容的视图。它带回了7行。我要返回的只是返回的数字或结果(7)。这可能吗?
我尝试使用查看结果计数器,但它为每个结果返回一个数字
1 2 3 4 五 6 7
我只需要7部分。
所以在SQL中我会做一个select count(*)
答案 0 :(得分:17)
您可以做的是为视图页眉/页脚激活php并将以下代码段添加到其中:
<?php
$view = views_get_current_view();
print $view->total_rows;
?>
这将打印总行数。
如果您需要将结果作为字段,则可以使用“视图自定义字段”module,添加php字段并运行相同的代码段。
问候
麦克
答案 1 :(得分:5)
如果您想在视图外获取计数,可以使用此
$view = views_get_view('MY_VIEW_NAME');
$view->set_display('MY_DISPLAY'); // like 'block_1'
$view->render();
print sizeof($view->result);
注意:请勿在视图中使用此功能。这将是一个开销。如果您在视图中使用它,请检查其他答案。
答案 2 :(得分:3)
如果在视图3中使用views_get_view
,则可以使用此代码段:
$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;
}
答案 3 :(得分:1)
这适用于我并处理寻呼机问题。将此函数放入自定义模块中,根据需要重命名/格式化,并从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>";
}
}
答案 4 :(得分:1)
使用视图3,您可能需要执行
$view->get_total_rows = TRUE;
$total_items = $view->query->pager->get_total_items();
答案 5 :(得分:0)
with drupal 7 - 在寻呼机选项下你可以选择 每页显示项目 选中后,用户可以确定每个页面在视图中显示的项目数