Views - v tabulce jsou duplicitní řádky
Modul:
Pokud máte v Drupal 7 ve Views tabulku uzlů (nodes) a přidáte do ní pole z Paragraphs (přes Relationship / Relace), Views začne kvůli povaze databázového propojení (JOIN) duplikovat řádky. Každý uzel se v tabulce zobrazí tolikrát, kolik má v sobě položek Paragraphs. Tím pádem standardní počítadlo Views (Summary nebo Global: Result counter) ukazuje počet řádků v tabulce, nikoliv skutečný počet unikátních uzlů.
Pokud chcete, aby se uzly neduplikovaly a v tabulce byl každý uzel jen jednou (a počítadlo tak ukazovalo správné číslo):
- V pravém sloupci nastavení Views klikněte v sekci Advanced (Pokročilé) na Use aggregation: No (Použít agregaci: Ne) a změňte na Yes (Ano). Tím se řádky seskupí.
- Pokud se v tabulce stále zobrazuje více řádků pro jeden uzel (kvůli odlišným datům v Paragraphs), budete muset v nastavení konkrétního Paragraph pole ve Views změnit Aggregation type z Group results together na například Count nebo List, případně toto pole z tabulky odebrat, pokud není nezbytné.
Pokud potřebujete v tabulce zachovat data z Paragraphs (např. vypsaná v jedné buňce oddělená čárkou) a zároveň mít každý uzel pouze na jednom řádku:
- Nainstalujte a povolte modul Views Merge Rows.
- V nastavení formátu Views (Format: Table -> Settings) uvidíte novou sekci pro sloučení řádků.
- Nastavte uzel (Nid nebo Title) jako hlavní klíč pro sloučení (Merge filter) a u polí z Paragraphs zvolte možnost spojit hodnoty (např. Join values with comma).
- Počet řádků v tabulce pak bude přesně odpovídat počtu uzlů a standardní počítadlo v záhlaví/zápatí (Header/Footer) bude ukazovat správné číslo.