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

admin друпал drupal

Недавно выводил список компаний через VIews и почему-то Views выводил по 1-3 одинаковых записи, что довольно-таки странно. Ну что же попробывал удалить фильтры, сортировки, но все равно дублирует. Проблема в том что ноды имели поле даты со множественным значением. И эти ноды компаний дублировались. Ниже решение моей, а возможно и вашей проблемы дублирования во Views:

Создаем новый модуль, у меня это будет sitemade. Содержимое файла sitemade.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

Дальше создаю файл sitemade.module:

<?php
function sitemade_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;
    }
  }
}

Где 'companies' - имя моего View, а 'page_1' имя дисплея страницы моего вью. После этой вставки ноды во вью не дублировались.

Это решение на английском, а также другие решения этой проблемы я нашел здесь:

http://capellic.com/blog/cure-duplicate-nodes-in-a-view

Комментарии

Добавить комментарий

Войти, используя Loginza Google Account Yandex Mail.ru Vkontakte Facebook

Plain text

  • HTML-теги не обрабатываются и показываются как обычный текст
  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Строки и параграфы переносятся автоматически.