Drupal a Field Collection – více políček v jednom prakticky

Na minulém školení Drupalu jsem si potvrdil, že použití políček v Drupalu je fajn, ale v řadě případů vyvstane potřeba spojit více políček do jednoho. V tomto článku si tedy zkusíme jednoduchý příklad, jak něco podobného sestrojit na produktovém webu.

Reklama

Drupal 7 v sobě obsahuje moduly pro práci s políčky, s jejichž pomocí si definujete, jaké údaje se budou vkládat u toho kterého typu obsahu. Představte si, že máte firemní web (bez eshopu), do kterého vkládáte různé produkty do katalogu. To není nic složitého.

  1. Připravíte typ obsahu Produkt. Vytvoří se vám nadpis a pole pro vložení obsahu – přejmenujte jej na Popis produktu.
  2. Přidejte pole na nahrávání obrázku. Dále si můžete vyzkoušet třídění produktů do kategorií (nový slovník, v něm termíny a následně přidání políčka typu Odkaz na termín / Term reference).

Nyní si představte, že chcete ke každému produktu přidat záznam týkající se různých variant produktu. Možná někoho napadne vytvořit nový typ obsahu, dát k němu políčka, provázat to přes modul Entity reference. To má ale nevýhodu v tom, že vzniká další obsahový uzel, musíte řešit jeho URL a případně (ne)zobrazování.

Pro náš pomyslný firemní web budeme chtít ke každému produktu vkládat varianty obsahující:

  • Název varianty
  • Cenu
  • Odkaz na PDF s technickým popisem

Každý produkt přitom bude moci mít neomezený počet variant, které nechceme zobrazovat na samostatné URL. Jen je chceme vypsat u produktu, například ve formě tabulky, kdy údaje k variantě budou vždy na jednom řádku.

Tato konstrukce znamená, že nemůžete přidat samostatné políčko na variantu, samostatné zadávání ceny a samostatné nahrávání PDF. Vše je potřeba spojit do jednoho políčka, ve kterém se zadají tři údaje. Koukněme tedy, jak toho docílit s použitím modulu Field collection.

Field Collection, Drupal 7 a sestavení políčka s více údaji v praxi

Následující postup budu popisovat v instalaci smyšleného firemního webu s nastavením, které jsem popsal výše.

Entity v Drupalu

Jak vidíte, vytvoření „vícepolíčkového pole“ v Drupalu 7 není nijak moc složité, všechno je možné naklikat. Entity tvořící obsahové uzly, uživatele, komentáře či kategorie jsou velmi dobrý nápad a díky modulu Entity API je možné programově přidávat jakékoli další typy entit a využívat možnosti poskládat jejich zadávání ze standardních polí.

Toho právě využívá Field collection, kdy kolekci polí definuje jako novou entitu, do které jsme si pak standardním drupalovským postupem naklikali, co všechno chceme u variant produktu vkládat.

Tagy: 

Reklama

Přidat komentář