Views : comment supprimer la duplication des nœuds lorsque des champs à valeurs multiples sont utilisés
Récemment, j'ai affiché une liste d'entreprises via Views et, pour une raison inconnue, Views affichait 1 à 3 enregistrements identiques, ce qui est assez étrange. J'ai essayé de supprimer les filtres, les tris, mais il y avait toujours des doublons. Le problème venait du fait que les nœuds possédaient un champ de date à valeurs multiples. Et ces nœuds d'entreprises étaient dupliqués. Voici la solution à mon problème, qui pourrait aussi être la vôtre concernant le doublonnement dans Views :
Nous créons un nouveau module, dans mon cas il s'appellera sitemade. Contenu du fichier sitemade.info :
name = Views Remove Duplicates description = Supprime les nœuds dupliqués. Nécessite de modifier le fichier du module pour identifier les vues que vous souhaitez affecter. package = "Views" core = 6.x dependencies[] = views
Puis je crée le fichier 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; } } }
Où 'companies' est le nom de ma vue, et 'page_1' le nom de l'affichage page de ma vue. Après cette insertion, les nœuds dans la vue n'étaient plus dupliqués.
Cette solution est en anglais, ainsi que d'autres solutions à ce problème que j'ai trouvées ici :