Dokonalý kontaktní formulář za 10 minut
Nette Framework má mnoho předností. Hlavní z nich je rychlá a efektivní tvorba kvalitních webových aplikací.
Už dávno jsou ty doby, kdy jsem v PHP půl odpoledne patlal obstojný formulář s kontrolou vyplněných textových polí, validitou e-mailové adresy a jakž-takž ucházejícím vzhledem odesílané zprávy.
V Nette je tvorba dokonalého a neprůstřelného kontaktního formuláře práce na 10 minut. Framework totiž obsahuje třídu jak pro práci s formuláři, tak třídu pro odeslání e-mailu (včetně podpory tvorby zprávy šablonovým způsobem).
Jak vypadá zdrojový kód takového formuláře? Vytvoříme si ho v továrničce v Presenteru:
Jednoduchým zavoláním makra widget vykreslíme formulář v té šabloně, kde ho chceme:
Napíšeme metodu, která se při odeslání formuláře zavolá (a dbáme při tom na pattern Post/Redirect/Get):
Napíšeme samotné odeslání e-mailu (včetně plnění souboru se šablonou):
A vytvoříme šablonu, jak bude e-mail vypadat (Mail.phtml):
To je celé. Máme formulář, který se neodešle, pokud nejsou vyplněna všechna povinná pole (včetně klientské validace Javascriptem), u kterého nebude hrozit vícenásobné odeslání pomocí F5 a který by nám zabral daleko více času, kdybychom se ho snažili vytvořit bez frameworku.
P.S. Vložit tento článek do mého CMS (tento blog jsem programoval půl roku před tím, než jsem začal s Nette dělat) se ukázalo jako daleko náročnější, než tvorba celého formuláře - neescapuje mi správně znaky (vyřešilo by dibi) a neobarví mi PHP kód (vyřešilo by Texy!). Davide, co bychom bez tebe dělali? :)
P.P.S. Začátkem října jsem celý blog přepsal do Nette, dibi a Texy, takže přesun článku a obarvení kódu v novém systému bylo daleko pohodlnější :)