Globální pohled na šablony

Úvod
Prezentátor
Návrh
Návrh formátu šablon pro prezentátor
Globální pohled na šablony
Jmenné prostory prezentačního systému
Detailní návrh dotazu a iterační části

Counter

Výsledný dokument se bude skládat z části statické, která se bude vyskytovat vždy nezávisle na údajích z databáze, a z části dynamické, která bude obsahovat údaje z databáze.

Naším návrhem je ponechat základní statickou strukturu dokumentů beze změny. Dynamická část dokumentu pak bude generována na základě jednotlivých řádků z databáze. Předpokládáme, že každý řádek výsledku SQL dotazu se zobrazí do stejné struktury. Proto pro dynamický obsah použijeme část šablony, která bude označovat iteraci. Tato iterační část bude vlastně říkat následující: „Pro každý řádek z databáze statický text opište a odkazy na data nahraďte získanými hodnotami.“

Poddotazy se budou prezentovat analogicky rodičovským dotazům. Jejich prezentace však budou muset být podstromy rodičovských uzlů. Znamená to, že to budou opět iterační části v rámci iterační části rodičovského uzlu.

Protože je vhodné, aby dokumentů, které budou do systému vstupovat, bylo co nejméně, navrhujeme vkládat požadavky na data a způsob jejich formátování do té stejné šablony. Tento postup nám upraví logiku šablony jen mírně. Statická data zůstanou, ale přibudou zde elementy definující požadavky na data. Zřejmé je, že stromová struktura iteračních částí se musí shodovat se stromovou strukturou dotazů a poddotazů. V principu bychom mohli iterační části a dotazy (požadavky na data) skloubit dohromady. Tím bychom se však připravili o jednu možnou výhodu, a tou je možnost použít stejné iterační části v dokumentu pro více dotazů. Proto navrhujeme, aby iterační část vždy předcházela samotným dotazům na data, a aby výsledky dotazů na data byly formátovány podle bezprostředně nejbližší předcházející iterační části.

Při prezentaci celého dotazu se nemusí opakovat jen iterační části, ale často se opakuje i nějaký statický text. Proto navrhujeme vkládat iterační části do části, která se opíše vždy právě jednou při zpracovávání dotazu. Tato část bude sloužit jako hlavička pro následující výsledky dotazu.