【发布时间】:2019-07-30 09:43:05
【问题描述】:
我必须避免在视图中出现重复的搜索结果,所以我正在尝试使用预渲染挂钩来更改视图。并删除重复它工作正常,但问题在于结果的计数。它显示了执行查询的计数,这也包括重复的项目。另外,我启用了页面限制为 5 的分页。那么计数似乎很奇怪,它正在计算每个页面中显示的元素的计数
function search_helper_views_pre_render(\Drupal\views\ViewExecutable $view) {
if ($view->id() == "all_news" || $view->id() == "all_publications" || $view->id() == "all_events" || $view->id() == "global_search") {
$unique_nids = $d_nids = $new_results = array();
// Loop through results and filter out duplicate results.
foreach($view->result as $key => $result) {
if(!in_array($result->nid, $unique_nids)) {
$unique_nids[] = $result->nid;
}
else {
unset($view->result[$key]);
}
}
$view->total_rows = count($view->result);
//$view->pager->total_items = count($view->result);
$view->pager->updatePageInfo();
}
}
$view->total_rows 的预期输出必须是结果的总计数,而不是页面中显示的元素计数。
【问题讨论】:
标签: drupal drupal-8 drupal-views