Views come rimuovere la duplicazione dei nodi quando si utilizzano campi con valori multipli
Di recente ho visualizzato un elenco di aziende tramite Views e per qualche motivo Views mostrava 1–3 voci identiche, il che era piuttosto strano. Ho provato a rimuovere filtri e ordinamenti, ma continuava a duplicare i risultati. Il problema era che i nodi avevano un campo data con valori multipli, e queste aziende venivano quindi duplicate nella vista. Di seguito trovi la soluzione al mio (e forse anche al tuo) problema di duplicazione in Views:
Creiamo un nuovo modulo — nel mio caso lo chiamerò sitemade. Contenuto del file 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
Poi creiamo il file 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; } } }
Dove 'companies' è il nome della mia View e 'page_1' è il nome del display della pagina della View. Dopo aver aggiunto questo codice, i nodi nella View non venivano più duplicati.
Ho trovato questa soluzione (in inglese) e altre varianti del problema qui: