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.

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

Buďme ve spojení, přihlaste se k newsletteru

Odesláním formuláře souhlasíte s podmínkami zpracováním osobních údajů. 
Více informací v Ochrana osobních údajů.

Autor článku: Jan Polzer

Tvůrce webů z Brna se specializací na Drupal, WordPress a Symfony. Acquia Certified Developer & Site Builder. Autor několika knih o Drupalu.
Web Development Director v Lesensky.cz. Ve volných chvílích podnikám výlety na souši i po vodě. Více se dozvíte na polzer.cz a mém LinkedIn profilu.

Komentáře k článku

Přidat komentář

Odesláním komentáře souhlasíte s podmínkami Ochrany osobních údajů

reklama
Moje kniha o CMS Drupal

 

Kniha 333 tipů a triků pro Drupal 9


Více na KnihyPolzer.cz

Sledujte Maxiorla na Facebooku

Maxiorel na Facebooku

Hosting pro Drupal a WordPress

Hledáte český webhosting vhodný nejenom pro redakční systém Drupal? Tak vyzkoušejte Webhosting C4 za 1200 Kč na rok s doménou v ceně, 20 GB prostoru a automatické navyšováním o 2 GB každý rok. Podrobnosti zde.

@maxiorel na Twitteru

Maxiorel na Twitteru