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.
- Webdesigner navrhne webové stránky ve statické podobě HTML.
- Programátor doplní do statického kódu HTML značky šablony ZPT.
- 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ů.
- 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“.
- 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í.