Scroll
Views kako ukloniti dupliranje nodova kada se koriste polja sa višestrukim vrednostima
Nedavno sam prikazivao listu kompanija preko Views i iz nekog razloga Views je prikazivao po 1-3 iste zapise, što je bilo prilično čudno. Pokušao sam da uklonim filtere i sortiranja, ali je i dalje duplirao. Problem je bio u tome što su node-ovi imali polje datuma sa višestrukim vrednostima. Zbog toga su se nodovi kompanija duplirali. Ispod je rešenje mog, a moguće i vašeg problema sa dupliranjem u Views:
Kreiramo novi modul, kod mene je to sitemade. Sadržaj fajla sitemade.info:
name = Views Remove Duplicates description = Uklanja duplikate nodova. Potrebno je uređivati fajl modula da biste odredili Views koje želite da promenite. package = "Views" core = 6.x dependencies[] = views
Zatim kreiram fajl 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;
}
}
}
Gde je 'companies' ime mog View-a, a 'page_1' ime prikaza stranice u mom view-u. Nakon ove izmene nodovi u view-u se više nisu duplirali.
Ovo je rešenje na engleskom, kao i druga rešenja za ovaj problem možete pronaći ovde: