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
Autor článku: Jan Polzer

Tvůrce webů z Brna se specializací na Drupal a Symfony. Obojí také školím spolu se základy SEO. Jsem Acquia Certified Developer a Site Builder a napsal jsem několik knih o Drupalu. Ve volných chvílích cestuji a podnikám výlety. Více se dozvíte na mém firemním webu.

reklama

Komentáře k článku

Přidat komentář

Filtered HTML

  • Povolené HTML značky: <a href hreflang> <em> <strong> <cite> <code> <ul type> <ol start type> <li> <dl> <dt> <dd> <p> <br>
  • Řádky a odstavce se zalomí automaticky.
  • Web page addresses and email addresses turn into links automatically.

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

reklama
Sledujte Maxiorla na Facebooku

Maxiorel na Facebooku

Poslední komentáře
reklama
Nové diskuze
reklama
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.

Knihy o Drupalu

Kniha Drupal 8 Kniha Drupal 7 333 tipů a triků pro Drupal
Více na KnihyPolzer.cz

Co píší na Interval.cz
@maxiorel na Twitteru

Maxiorel na Twitteru