Nový hlasovací formulář pro fankluby na Ujdeto.cz

28. ledna 2008

Moje weby

Externí hlasovací formuláře na Ujdeto. Věc, která pokud si dobře pamatuju napadla poprvé Filipouse, a která skýtá mnohé přínosy jak pro Ujdeto, tak pro různé fankluby. Úplně nejjednodušší realizace, která byla až do dnešního večera oficiálně doporučená, spočívala ve vytvoření "falešného" hlasovacího formuláře - předvyplněného formuláře, který posílal veškeré potřebné údaje stejným způsobem, jako kdyby byl odeslán oficiální formulář. Generování takového formuláře bylo snadné, proto jsem jej mohl dát na tlačítko hned vedle hlasovacího tlačítka. Asi dvacet webů se toho chytlo, ale stejně to pořád nebylo úplně ono. Formulář byl málo akční a jakmile vybrané skladby z hitparády vypadly, stal se formulář nepoužitelným. Navíc se vždy výsledky otevíraly do nového okna s plnohodnotnou stránkou Ujdeto.cz, což také dost odrazovalo. Na základě přání lidu (konkrétně děkujte Adél) jsem se proto rozhodl hlasovací formulář významným způsobem inovovat. Vlastně jsem jej udělal úplně znova.

Všechny výše uvedené problémy jsem vyřešil novým generátorem hlasovacích formulářů. Mezi hlavní vlastnosti nového hlasovacího formuláře patří:

  • autentifikace uživatelů na straně Ujdeto.cz přináší:
    • osvobození od vyplňování kontrolních kódů pro vyšší hodnosti na Ujdeto.cz
    • aktivní odpočítávání doby do dalšího hlasování
  • výběr skladeb na základě jmen interpretů a názvů skladeb přináší:
    • možnost vytvořit dynamický formulář pro určitý fanklub, kde se budou automaticky ukazovat aktuální hity
  • parametrizace kódu přináší:
    • možnost přeložit celý hlasovací formulář do libovolného jazyka
    • měnit formulář na základě uživatelských preferencí (možnost personalizovat formulář pro určitého fanouška)
    • širší možnosti stylování formuláře
  • speciální kód zpracovávající hlasování přináší:
    • možnost adresovat hlasování do elementu IFRAME, tzn. již se nemusí formulář otevírat do nového okna, ale tváří se opravdu jako součást stránek fanklubu

Problém nového hlasovacího formuláře spočívá v tom, že určité části kódu jsou spouštěny na stránce (doméně) fanklubu a určité části kódu musí být nutně spuštěny na stránce (doméně) Ujdeto.cz, přičemž obě části spolu musí nějakým způsobem komunikovat. Ochrana před XSS zabudovaná do všech moderních prohlížečů samozřejmě nic podobného nedovoluje, takže je zapotřebí tuto skutečnost nějakým způsobem obejít. V praxi to vypadá tak, že je na stránky fanklubu umístěn obal hlasovacího formuláře s nastavením proměnných, definicí kaskádových stylů a elementem IFRAME, který obsahuje výkonný kód spouštěný na straně Ujdeto serveru (ten se stará o vypsání formuláře a zpracování hlasování). Jelikož obsah spouštěný v tomto vnořeném rámci IFRAME nemůže přistupovat k obsahu stránky v rodičovském rámci, potřebuje se k němu dostat jiným způsobem. Za tímto účelem používám HTTP hlavičku Referer, která obsahuje adresu stránky v rodičovském rámci. Obsah této stránky se stáhne, přečtou se důležité hodnoty (sekce nastavení, kaskádové styly apod) a následně se s použitím těchto hodnot vytvoří HTML kód hlasovacího formuláře.

Toto řešení má však jeden háček - adresa v Refereru musí za každých okolností obsahovat alespoň fragment vygenerovaného hlasovacího formuláře (nastavení, css,...). V případě, že je obsah adresy generován na základě odeslaného formuláře metodou POST nebo na základě obsahu Sessions, ujdeto server nebude moci potřebné údaje přečíst. Nedostane se k nim. Samozřejmě se i tento problém dá nějakým způsobem řešit, ale rozhodně to není úplně banální a vhodné pro běžného Frantu uživatele, který spravuje nějaké phpBB forum. V případě, že budete chtít vložit hlasovací formulář na zaheslované stránky, můžete mě kontaktovat na [email schován].

No a na závěr nesmí chybět odkaz na nový generátor hlasovacího formuláře Ujdeto pro fankluby a pár ukázek:

Publikováno dne 28. 01. 2008 v kategorii Moje weby Odhadnutá klíčová slova BETA: hlasovací | hlasovací formulář | formuláře | html | hlasování | vytvoření
Mohlo by Vás zajímat BETA: Elektronický podpis a ePodání - daně elektronicky I

O kategorii Moje weby

Do této kategorie patří články, které se týkají mých vlastních internetových projektů. Kromě různých zajímavostí a zákulisních informací zde naleznete také velké procento vyloženě propagačních článků, které mají za cíl upozornit širokou veřejnost na různé nové funkce a vlastnosti.

Komentáře k článku

POZOR: K článku zatím nebyl vložen žádný komentář, takže s velkou pravděpodobností nikoho neurazil, nikoho nepobavil a už vůbec nikomu nepomohl.

Přidat vlastní komentář:
Jméno:
E-mail:
Sledovat diskusi:
Web:
Kontrolní kód:

Komentáře jsou v prvé řadě určeny ke kladení dotazů k tématu, upozornění na chybu, rozšíření obsahu článku a vůbec ke zpětné reakci na obsah těchto stránek. Mé reakce jsou barevně odlišeny.

V současné době není umožněno vkládat HTML tagy - pokud vložíte HTML kód, bude převeden na entity. K Vašemu komentáři se do databáze uloží čas vložení a Vaše aktuální IP adresa (54.163.22.209). IP adresa se nebude zobrazovat čtenářům, nicméně v případě, že bude Váš odkaz shledán právně závadným, může být Vaše IP adresa předána příslušným státním orgánům. Emailové adresy jsou ochráněny před běžnými spam roboty.

© Marek Demčák 2007 - 2018
Všechna práva dle Autorského zákona (č. 121/2000 Sb.) vyhrazena.