Hlavní navigace

Šablony stránek pro Zope: úvod

Miloš Průdek

Webové aplikace (neboli dynamické webové stránky) vznikají často ve skriptovacích jazycích PHP nebo .ASP. Tyto jazyky poskytují velké množství užitečných funkcí, ale neoddělují výkonné (neboli logické) části programu od částí, které se starají o prezentaci dat. Oddělení logiky od prezentace je hlavním trendem moderních webových aplikací, protože usnadňuje údržbu a zpřehledňuje aplikaci.

Zope je aplikační server, poskytující technologie pro takový přehledný vývoj webových aplikací. Tyto technologie představím jednu po druhé, jak se postupně zapojují do řešení praktických problémů, v seriálu článků. První část seriálu představuje základní principy a jeden příklad. Pro porozumění obsahu seriálu budete potřebovat jen základní znalosti HTML a technologie cookies. Předpokládám že máte nainstalován Zope 2.6.1, že se můžete do Zope přihlásit jako správce (uživatel s právy administrátora) a že ovládáte základy práce v Zope, například vytvoření nové složky nebo vložení obrázku.

Pokud potřebujete úvod do ovládání Zope, poslouží vám starší, ale stále plně použitelný Úvod do Zope z Linuxových novin. Pro laiky (tedy pro vedoucí pracovníky ;-) je v češtině k dispozici souhrn výhod Zope ve srovnání s konkurencí a vysvětlení pojmu Aplikační server.

Šablony stránek

Oddělení logické části a prezentační části je možné díky šablonám stránek (Zope Page Templates, ZPT). Šablony jsou vybavené relativně jednoduchým jazykem, který umožňuje prezentaci dat, ale nemá prostředky pro zpracování dat. Pro zpracování dat se používá objektově orientovaný jazyk Python; jeho syntaxe se výrazně neliší od jiných známých procedurálních programovacích jazyků, jako je C nebo Perl. Šablony stránek používané pro prezentaci dat naproti tomu používají syntaxi dosti neobvyklou, na kterou si nejrychleji zvyknete, když mi dovolíte, abych vás hodil rovnou do vody.

Žbluňk!

Nejjednodušší šablona ZPT má jen jeden řádek. Je to šablona ve stylu „Hello world“ – prostě jen zobrazí svůj vlastní název. Nazveme ji moje_sablona:

<b tal:content="template/title">Název šablony</b>

Šablony vznikají z obyčejných webových stránek, tedy z normálního HTML. Výše uvedená moje_sablona vznikla z tohoto řádku HTML:

<b>Název šablony</b>

Šablona tedy vzniká tak, že vezmeme webovou stránku vytvořenou v HTML a přidáme nějaký zdrojový text podle pravidel ZPT. Text nemůžeme přidat na libovolné místo; musíme ho schovat do existující značky HTML (nebo vytvořit nějakou „prázdnou“ značku, jako např. <SPAN>). Stručněji řečeno, obohatíme některou značku HTML, jako třeba <b> ve výše uvedeném příkladu.

Zkuste si šablonu moje_sablona v praxi. V Zope si vytvořte složku (Folder) s názvem například „test“, ve které budete provádět své pokusy se Zope. V této složce pak vytvořte šablonu (Page Template) a do položky Id zadejte text „moje_sablona“. Po klepnutí na tlačítko Add and Edit se objeví implicitní zdrojový text, který vám Zope navrhuje. Smažte celý tento návrh zdrojového textu a vložte následující řádek:

<b tal:content="template/title">Název šablony</b>

Nezapomeňte vyplnit i položku Title. Napište do ní test „Moje šablona“ a uložte šablonu klepnutím na tlačítko Save.

Když nyní klepnete na odkaz Browse HTML source, zobrazí se obyčejná webová stránka s jedním tučným řádkem „Název šablony“. Takto se zdrojový text zobrazí v každém editoru webových stránek. Když ale klepnete na záložku Test, zobrazí se tučný řádek „Moje šablona“. Zope provedlo interpretaci vašeho kódu ZPT, přidaného do značky <b>.

Čím jsou šablony prospěšné?

Šablony kopírují a podporují správný styl tvorby dynamické webové aplikace.

  1. Webdesigner navrhne webové stránky ve statické podobě HTML.
  2. Programátor doplní do statického kódu HTML značky šablony ZPT.
  3. Programátor vytvoří potřebné programy ve skutečném programovacím jazyce (např. Java, Python, Perl, SQL…) a doplní do značek šablon volání těchto programů.
  4. Webdesigner může kdykoliv načíst zdrojový kód HTML obohacený o značky šablon a vše se mu zobrazí jako normální webová stránka, protože webové editory si nevšímají značek šablon ZPT. Místo dynamického obsahu vidí původní simulovaný obsah, který sám vytvořil. Čili konkrétně v našem příkladu vidí „Moje šablona“ místo „Název šablony“.
  5. Webdesigner může měnit vzhled webu, aniž by rozuměl programování. Když si nebude všímat značek ZPT, nemůže nic pokazit.

Šablony jsou užitečné, i když má jeden člověk na starosti tvorbu zdrojového kódu HTML i tvorbu dynamického webu. Ne každý programátor totiž touží znát všechna zákoutí HTML různých verzí. Díky technologii ZPT může vytvořit vzhled ve vizuálních editorech, jako je Dreamweaver, a plně se soustředit na samotné programování.

Našli jste v článku chybu?

24. 4. 2003 16:44

Milos Prudek (neregistrovaný)

1. DTML jsem neopominul. Tento serial clanku zkratka neni o celem Zope. Je zameren pouze na Zope Page Templates. Takze tam nebude podrobne rozebrano DTML, ZSQL, Structured Text, ZCatalog ani jine soucasti Zope. Budou zmineny strucne podle potreby, ale jejich popis nebude rozsahly.

2. O ESI jsem cetl jen zakladni informace.



24. 4. 2003 8:45

J. Lukeš (neregistrovaný)

Pridavam se k vyctu tech, ktere Zope zivi.

1. Proc jste opominul DTML? DTML neni mrtve jak si mysli skalni zastanci ZPT, naopak umoznuje daleko vice nez ZPT, navic je mnohem rychlesji. Pravda, zakladni filozofie nepocita tolik s duslednym oddelenim logiky a prezentace, nicmene co jste nam ukazal se ZPT neni vubec oddeleno, ba naopak je pevne integrovano do designu. DTML lze pri vhodnem zpusobu prace mit take oddelene od prezentace, jedine co designer uvidi, je proste "nejaky" tag. Takove stra…

DigiZone.cz: „Black Friday 2016“: závěrečné zhodnocení

„Black Friday 2016“: závěrečné zhodnocení

Podnikatel.cz: Přehledná titulka, průvodci, responzivita

Přehledná titulka, průvodci, responzivita

Vitalia.cz: Jsou čajové sáčky toxické?

Jsou čajové sáčky toxické?

Vitalia.cz: Znáte „černý detox“? Ani to nezkoušejte

Znáte „černý detox“? Ani to nezkoušejte

Měšec.cz: Zdravotní a sociální pojištění 2017: Připlatíte

Zdravotní a sociální pojištění 2017: Připlatíte

Měšec.cz: mBank cenzuruje, zrušila mFórum

mBank cenzuruje, zrušila mFórum

120na80.cz: Co všechno ovlivňuje ženskou plodnost?

Co všechno ovlivňuje ženskou plodnost?

Podnikatel.cz: Podnikatelům dorazí varování od BSA

Podnikatelům dorazí varování od BSA

Vitalia.cz: „Připluly“ z Německa a možná obsahují jed

„Připluly“ z Německa a možná obsahují jed

Vitalia.cz: I církev dnes vyrábí potraviny

I církev dnes vyrábí potraviny

Podnikatel.cz: K EET. Štamgast už peníze na stole nenechá

K EET. Štamgast už peníze na stole nenechá

Vitalia.cz: Jmenuje se Janina a žije bez cukru

Jmenuje se Janina a žije bez cukru

Měšec.cz: Kdy vám stát dá na stěhování 50 000 Kč?

Kdy vám stát dá na stěhování 50 000 Kč?

Podnikatel.cz: Zavře krám u #EET Malá pokladna a Teeta?

Zavře krám u #EET Malá pokladna a Teeta?

Podnikatel.cz: Snížení DPH na 15 % se netýká všech

Snížení DPH na 15 % se netýká všech

Lupa.cz: Insolvenční řízení kvůli cookies? Vítejte v ČR

Insolvenční řízení kvůli cookies? Vítejte v ČR

Lupa.cz: Co se dá měřit přes Internet věcí

Co se dá měřit přes Internet věcí

Vitalia.cz: Co pomáhá dítěti při zácpě?

Co pomáhá dítěti při zácpě?

Vitalia.cz: Taky věříte na pravidlo 5 sekund?

Taky věříte na pravidlo 5 sekund?

Měšec.cz: Air Bank zruší TOP3 garanci a zdražuje kurzy

Air Bank zruší TOP3 garanci a zdražuje kurzy