Publikováno z Máš důvod k vděčnosti! (https://www.papeweb.cz)

Domů > Views - v tabulce jsou duplicitní řádky

Views - v tabulce jsou duplicitní řádky

Modul: 
Views

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.