Jakmile zapnete modul Contact, vznikne vám na adrese contact jednoduchý formulář, pomocí kterého mohou uživatelé odeslat zprávu majiteli webu. Kontaktní formulář může obsahovat různé kategorie, přičemž platí, že co kategorie, to jedna z položek v rozbalovací nabídce ve formuláři. Podle toho, jakou položku si uživatel v této nabídce vybere, odešle se obsah formuláře na e-mailovou adresu spárovanou s danou kategorií.
V praxi tak není problém vytvořit kontaktní formulář, ve kterém čtenáři mohou vybírat, zda vám píší kvůli námětům na článek, s připomínkami k fungování webu nebo ohledně nějaké spolupráce. Podobně, jako je to v kontaktním formuláři zde na Maxiorlovi. V té nejjednodušší podobě vypadá kontaktní formulář podobně, jako na webu Crikvenica-Chorvatsko.cz, tedy bez výběru kategorií - je definována jediná a uživatel ji nevidí. Pokud se budete snažit, je možné pomocí kaskádových stylů upravit kontaktní formulář i do podoby, jaká je například na webu Auto-Veteran.com.
Ovšem problém nastává v okamžiku, kdy chcete rozšířit funkcionalitu kontaktního formuláře, například o přidání dalších políček nebo o přesměrování na konkrétní adresu poté, co uživatel odešle vzkaz zadaný do formuláře.
Jak přidat další políčka ke kontaktnímu formuláři v Drupalu
Úplně nejjednodušším příkladem potřeby rozšíření kontaktního formuláře o nové políčko, může být firemní web, na kterém potřebujete, aby na sebe uživatelé při odesílání zprávy zanechali kontakt, například číslo telefonu. Spoléhat na to, že jej uvedou do těla zprávy příliš nelze.
S podobným úkolem i mnoha složitějšími vám pomůže modul Contact form fields. Jakmile jej nakopírujete do Drupalu, přibude vám v přehledu modulů nová sekce Contact fields a v ní čtveřice položek. Kromě základní Contact fields pak zapněte takové, u kterých předpokládáte využití: Contact form list fields pro rozbalovací nabídky, Contact form radio/checkbox field pro zaškrtávací políčka a Contact form Text field pro textová políčka.
Jakmile máte zapnuty potřebné moduly, přejděte do administrační části Prvky webu > Kontaktní formulář a zde se přepněte na novou kartu Manage fields. Postup přidání nového políčka ke kontaktnímu formuláři v Drupalu je zde podobný, jako u práce s modulem CCK. Zadejte tedy název nového políčka, jeho strojové označení a z nabídky vyberte typ políčka.
Definice políček kontaktního formuláře
V upřesňujícím nastavení upravte, zda bude obsah tohoto políčka volitelný, nebo zda bude muset být vyplněno povinně, určete maximální délku zadaného textu a další vlastnosti. Po uložení políčka jej můžete v seznamu přetáhnout tak, abyste upravili pořadí položek v kontaktním formuláři. Změnu pořadí nezapomeňte uložit.
Kromě možnosti přidávat nová políčka vám v nastavení kontaktního formuláře přibude ještě karta Message template. Nechcete-li se spokojit s výchozí podobou e-mailové zprávy, která vám přijde po odeslání kontaktního formuláře, můžete zde definovat šablonu pro její tělo. Využijete přitom nahrazovací vzorky, jejichž seznam je uveden pod políčkem.
Jak přesměrovat kontaktní formulář v Drupalu
Další často uvažovanou funkcionalitou vylepšující kontaktní formulář v Drupalu, je přesměrování uživatele na konkrétní stránku poté, co kontaktní formulář vyplní a odešle. V základní podobě Drupal nic takového nenabízí, stačí však doplnit modul Contact redirect a potřebná funkce je na světě.
Po zapnutí tohoto modulu přejděte do nastavení kontaktního formuláře a rozklepněte úpravu některé z jeho připravených kategorií. Objeví se zde nové políčko Redirect, do kterého stačí zadat adresu, na kterou bude uživatel po odeslání formuláře přesměrován. Adresu zadáváte v relativním tvaru, bez lomítek na začátku a konci.
Nastavení přesměrování kontaktního formuláře
Alternativa? Webform
Obě popsaná vylepšení je množné realizovat též pomocí modulu Webform, se kterým v podstatě zapomenete na kontaktní formulář a celý si jej od začátku naklikáte znovu. Důvodem, proč Webform v tomto případě nepoužít, je jeho zbytečná složitost. Přeci jen je to nástroj pro tvorbu rozsáhlých formulářů, nikoli pro vytvoření jednoduché kontaktní stránky.
Máte tipy na další zajímavá vylepšení kontaktního formuláře v Drupalu? Napište do komentářů pod článkem a nebojte se uvést adresu webu, kde jste tato vylepšení implementovali.
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.
Podobné články
Komentáře k článku
Dobrý den, třeba modulem Contact form blocks. Udělá to z kontaktního formuláře blok, který lze vložit do regionu někde na webové stránce. Takže teoreticky by jej pak ve Vašem případě stačilo umístit do regionu Obsah.
Dobrý den,
nedokážu přijít na to, proč když vytvořím pro kategorii kontaktu blok, a ten umístím do regionu Obsahu, s tím, že se má zobrazit pouze na vybrané stránce, (např. node/5), obsah nodu se nahradí kontaktním formulářem, místo toho, aby se blok formuláře zobrazil nad/pod obsahem stránky. Kde dělám chybu?
S pozdravem
Körner
Dobrý den. Když ten formulář dáte do jiného regionu, tak vše funguje správně?
Kdepak. Prostě jakmile se na stránce má zobrazit blok kontaktního formuláře, libovolné kategorie, v libovolném regionu, tak se místo toho obsah přesměruje na node "contact".
Nicméně se domnívám, že to bude chyba v modulu, jelikož mi to dělá na D7.9 s Contact Form Blocks 7.x-1.x-dev.
Asi to budu muset řešit přes webform...
S pozdravem
Pavel Körner
Děkuji za zajímavý a poučný článek. Chtěl bych se zeptat jestli je možné kontaktní formulář zobrazit na vybrané stránce. Například stránka s popisem činnosti firmy a aby se kontatkní formulář zobrazil pod tímto textem.