Views как убрать дублирование нод
09.08.2015
Views как убрать дублирование нод, когда используются поля со множественными значениями
Drupal 6
Создаем новый модуль
mymodule.info
name = Views Remove Duplicates
description = Removes duplicate nodes. Requires editing the module file
to identify the views you want to affect.
package = "Views"
core = 6.x
dependencies[] = views
mymodule.module
<?php
function mymodule_views_pre_render(&$view){
$used_nids = array();
if ($view->name == 'companies'){
if ($view->current_display == 'page_1'){
foreach ($view->result as $row){
if (!in_array($row->nid, $used_nids)){
$new_view_result[] = $row;
$used_nids[] = $row->nid;
}
}
$view->result = $new_view_result;
}
}
}
Drupal 7
function mymodule_query_alter($query) {
if (isset($query->alterMetaData)) {
if (isset($query->alterMetaData['view'])) {
if($query->alterMetaData['view']->name == 'node_search') {
$fields =& $query->getGroupBy();
// Указываем какое поле создает дубликаты
unset($fields['score']);
$query->groupBy('nid');
}
}
}
}
