WebToDate/Referenční/Navigace a transformace: Porovnání verzí
| Řádek 40: | Řádek 40: | ||
Ve formuláři jsou obvyklá tlačítka pro manipulaci se záznamem. Mazání je možné, jen když transformace není použita v nějaké navigaci, duplikace vytvoří jednoduchou kopii záznamu. | Ve formuláři jsou obvyklá tlačítka pro manipulaci se záznamem. Mazání je možné, jen když transformace není použita v nějaké navigaci, duplikace vytvoří jednoduchou kopii záznamu. | ||
=== Zařazení transformací === | |||
Do databáze transformací se vkládají všechny transformace, které může WebToDate nebo jeho moduly použít. Jedná se o následující typy (kategorie) transformací: | |||
* '''Navigace''' - transformace je určena pro generování WebToDate navigací | |||
* '''XML import''' - transformace je určená pro import v modulu [[../../XML export - import/Reference|XML export - import]] | |||
* '''XML export''' - transformace je určená pro export v modulu [[../../XML export - import/Reference|XML export - import]] | |||
* '''Fulltext Google''' - transformace je určena pro zobrazení výsledků hledání v modulu [[../../Fulltext Google|Fulltext Google]] | |||
* '''Jiná''' - transformace je určená pro jiné účely | |||
Vybrat správné zařazení transformace je důležité, protože v modulech se nabízejí v příslušných formulářích kontextově jen ty typy transformací, které odpovídají danému modulu. | |||
=== XML kód struktury strom kategorií === | === XML kód struktury strom kategorií === | ||
Verze z 24. 2. 2010, 11:02
WebToDate podporuje od verze 4.0 automatické generování navigačních nabídek. Typicky se jedná o hlavní navigaci webu, drobečkovou navigaci, případné další prvky stejného charakteru (může jít např. i o generování názvů stránek) a rovněž mapa webu, která je v tomto chápání v postatě pouze zobrazením kompletní navigace stránek.
Princip je takový, že jako podklad definující strukturu se bere strom kategorií WebToDate a jako odkazy v navigaci se berou URL definovaná v jednotlivých uzlech stromu (buď URL výchozí stránky, nebo explicitně zadané jakékoliv URL). Tyto informace se převedou do XML struktury, na kterou se při sestavování stránky aplikuje XSLT transformace, která generuje požadovaný HTML kód navigace. Jako další parametr uvedený v XML kódu pro transformaci je uvedeno ID aktivní kategorie, čímž se rozumí buď kategorie, ve které se nachází sestavovaná stránka, nebo výchozí kategorie zobrazované zprávy. Tuto informaci o čísle aktivní kategorie lze v transformaci použít k tomu, aby se strom navigací zobrazil v závislosti na této kategorii, a to vždy v jiném tvaru, se zvýrazněným či naopak neuvedeným odkazem na aktivní kategorii apod.
Další vysvětlení tohoto principu je uvedeno v kapitole Strom kategorií a navigace webu.
Navigace se používají na stránkách analogicky jako jiné podobné elementy (zprávy, fragmenty, seznamy) – přiřadí se na oblast na stránce a spustí se generování stránky. Na následujícím otisku obrazovky jsou dvě navigace přiřazené na dvě různé oblasti na stránce.

V rámci přiřazení navigace na stránku se pouze nedefinuje WebToDate styl – ten zde nemá smysl, tvar navigace je dán XSLT transformací.
Pracovní postup při vytváření navigací je zhruba následující:
- Nejprve definujte alespoň část stromu kategorií a vygenerujte si pro účely testování XML kód stromu (viz další kapitoly).
- Připravte si příslušnou XSLT transformaci či transformace. Tyto kódy odlaďte na XML kódu získaném v předchozím kroku.
- Do databáze transformací WebToDate vložte vytvořené transformace
- Založte v databázi navigací odpovídající navigace
- Otestujte tyto navigace nejprve pomocí ladících funkcí formuláře pro navigace, následně pak umístěním na stránkách pomocí náhledů stránek
- Vložte vytvořené navigace na odpovídající oblasti na stránkách.
Vytvoření a úprava transformace
Vkládání transformací
Transformace se vkládají vyvoláním nabídky Vzhled / Transformace. Obsah se zpracovává ve WebToDate běžným způsobem, v horní části okna je seznam vložených transformací, ve spodní části se zobrazuje formulář pro vkládání a úpravy.

Ve formuláři jsou následující položky:
- Název - název transformace, se kterým se pracuje v administračním rozhraní
- Popis - pomocný upřesňující textový popis
- Zařazení - účel užití transformace, neboli kategorizace vložených transformací. Pro účely generování WebToDate navigací se zde volí Navigace
- Kód - vlastní XML kód transformace
Do pole Kód lze zadat libovolný text, při ukládání formuláře se neprovádějí žádné kontroly. Po uložení transformace je k dispozici tlačítko Test, to kontroluje pouze validitu XML kódu, nikoliv to, že se jedná o validní a funkční transformaci.
Ve formuláři jsou obvyklá tlačítka pro manipulaci se záznamem. Mazání je možné, jen když transformace není použita v nějaké navigaci, duplikace vytvoří jednoduchou kopii záznamu.
Zařazení transformací
Do databáze transformací se vkládají všechny transformace, které může WebToDate nebo jeho moduly použít. Jedná se o následující typy (kategorie) transformací:
- Navigace - transformace je určena pro generování WebToDate navigací
- XML import - transformace je určená pro import v modulu XML export - import
- XML export - transformace je určená pro export v modulu XML export - import
- Fulltext Google - transformace je určena pro zobrazení výsledků hledání v modulu Fulltext Google
- Jiná - transformace je určená pro jiné účely
Vybrat správné zařazení transformace je důležité, protože v modulech se nabízejí v příslušných formulářích kontextově jen ty typy transformací, které odpovídají danému modulu.
XML kód struktury strom kategorií
XML kód stromu kategorií je vytvářen dle následujícího příkladu (pro zjednodušení neobsahuje popisy kategorií):
<?xml version="1.0" encoding="Windows-1250"?>
<categtree>
<categories>
<category name="Home CZ" url="default.htm" cid="1" level="0">
<category name="Domácí" url="/domaci/default.htm" cid="2" level="1">
<category name="Politika" url="/domaci/politika/default.htm" cid="3" level="2"/>
<category name="Vláda" url="/domaci/vlada/default.htm" cid="4" level="2"/>
<category name="Parlament" url="/domaci/parlament/default.htm" cid="5" level="2"/>
<category name="Senát" url="/domaci/senat/default.htm" cid="6" level="2"/>
<category name="Hrad" url="/domaci/hrad/default.htm" cid="7" level="2"/>
</category>
<category name="Zahraniční" url="/zahranicni/default.htm" cid="8" level="1">
<category name="Evropa" url="/zahranicni/evropa/default.htm" cid="9" level="2"/>
<category name="Asie" url="/zahranicni/asie/default.htm" cid="10" level="2"/>
<category name="Amerika" url="/zahranicni/amerika/default.htm" cid="11" level="2"/>
<category name="Austrálie" url="/zahranicni/australie/default.htm" cid="12" level="2"/>
<category name="Afrika" url="/zahranicni/afrika/default.htm" cid="13" level="2"/>
</category>
<category name="Ekonomika" url="/ekonomika/default.htm" cid="14" level="1">
<category name="Domácí ekonomika" url="/ekonomika/domaci/default.htm" cid="15" level="2"/>
<category name="Zahraniční ekonomika" url="/ekonomika/zahranicni/default.htm" cid="16" level="2">
<category name="Evropa" url="/ekonomika/zahranicni/evropa/default.htm" cid="17" level="3">
<category name="Západní Evropa" url="/ekonomika/zahranicni/evropa/zapadni/default.htm" cid="18" level="4">
<category name="Německo" url="/ekonomika/zahranicni/evropa/zapadni/de/default.htm" cid="19" level="5"/>
<category name="Francie" url="/ekonomika/zahranicni/evropa/zapadni/de/default.htm" cid="20" level="5"/>
</category>
<category name="Východní Evropa" url="/ekonomika/zahranicni/evropa/zapadni/default.htm" cid="21" level="4"/>
</category>
<category name="Asie" url="/ekonomika/zahranicni/asie/default.htm" cid="22" level="3"/>
<category name="Amerika" url="/ekonomika/zahranicni/amerika/default.htm" cid="23" level="3"/>
<category name="Austrálie" url="/ekonomika/zahranicni/australie/default.htm" cid="24" level="3"/>
<category name="Afrika" url="/ekonomika/zahranicni/afrika/default.htm" cid="25" level="3"/>
</category>
</category>
<category name="Sport" url="/sport/default.htm" cid="26" level="1">
<category name="Fotbal" url="/sport/fotbal/default.htm" cid="27" level="2">
<category name="Fotbal - muži" url="/sport/fotbal/muzi/default.htm" cid="28" level="3"/>
<category name="Fotbal - ženy" url="/sport/fotbal/muzi/zeny/default.htm" cid="29" level="3"/>
</category>
<category name="Hokej" url="/sport/hokej/default.htm" cid="30" level="2"/>
<category name="Tenis" url="/sport/tenis/default.htm" cid="31" level="2"/>
<category name="Golf" url="/sport/golf/default.htm" cid="32" level="2"/>
<category name="Basketbal" url="/sport/basketbal/default.htm" cid="33" level="2"/>
<category name="Volejbal" url="/sport/volejbal/default.htm" cid="34" level="2"/>
<category name="Lyžování" url="/sport/lyze/default.htm" cid="35" level="2"/>
<category name="Atletika" url="/sport/atletika/default.htm" cid="36" level="2"/>
<category name="Karate" url="/sport/karate/default.htm" cid="37" level="2"/>
<category name="Gymnastika" url="/sport/gymnastika/default.htm" cid="38" level="2"/>
</category>
</category>
<category name="Home CZ Server 2" url="default.htm" cid="50" level="0"/>
</categories>
</categtree>
Kořenovým elementem je element categtree.Pod kořenovým elementem následuje element categories, pod ním pak elementy category, které jsou vnořené do sebe ve struktuře odpovídající vnoření ve stromu kategorií. Jiné elementy se v XML kódu nevyskytují. Všechna data jsou uložená v atributech elementu category, seznam atributů je v následující tabulce.
| Atribut | Význam |
| name | Název položky menu |
| url | URL položky menu |
| cid | ID kategorie |
| level | Úroveň vnoření kategorie |
| desc | Popis kategorie |
Příklady transformací
V následujících příkladech jsou XML kódy stromu kategorií transformovány zpravidla do formy barevných HTML tabulek. Analogicky lze ovšem generovat HTML s využitím CSS designu bez tabulek, tento způsob byl v příkladech zvolen jen pro větší názornost.
Příklad 1
Chceme zobrazit jednu "nejvyšší" úroveň menu, přičemž ale strom kategorií má víc než jednu kategorii v nejvyšší úrovni vnoření (která nemá nadřazenou kategorii). Jedna část stromu pod uzlem "Home CZ" se využívá např. pro jeden virtuální server, druhá část pro jiný virtuální server či stránky patřící mimo běžné rubriky. Transformace vypadá následovně:
<?xml version="1.0" encoding="windows-1250"?>
<!--zobrazi pouze jednu uroven menu pod vybranym uzlem v nejvyssi urovni-->
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html" version="1.0" encoding="windows-1250" indent="yes"/>
<xsl:variable name="ac" select="//activecategory"/>
<xsl:template match="/">
<table border="0" cellpadding="2" cellspacing="2" width="120">
<xsl:apply-templates select="//categories/category[@cid=1]/category"/>
<!--@cid=1 vybira koren v nejvyssi urovni-->
</table>
</xsl:template>
<xsl:template match="category">
<tr>
<xsl:choose>
<xsl:when test="$ac = @cid">
<td bgcolor="#dddddd">
<a>
<xsl:attribute name="href"><xsl:value-of select="@url"/></xsl:attribute>
<xsl:value-of select="@name"/>
</a>
</td>
</xsl:when>
<xsl:otherwise>
<td bgcolor="#efefef">
<a>
<xsl:attribute name="href"><xsl:value-of select="@url"/></xsl:attribute>
<xsl:value-of select="@name"/>
</a>
</td>
</xsl:otherwise>
</xsl:choose>
</tr>
</xsl:template>
</xsl:stylesheet>
Výsledkem je následující HTML kód:
<table border="0" cellpadding="2" cellspacing="2" width="120">
<tr>
<td bgcolor="#efefef"><a href="/domaci/default.htm">Domácí</a></td>
</tr>
<tr>
<td bgcolor="#dddddd"><a href="/zahranicni/default.htm">Zahraniční</a></td>
</tr>
<tr>
<td bgcolor="#efefef"><a href="/ekonomika/default.htm">Ekonomika</a></td>
</tr>
<tr>
<td bgcolor="#efefef"><a href="/sport/default.htm">Sport</a></td>
</tr>
</table>
Navigace vypadá graficky takto (aktivní kategorie byla zvolena "Zahraniční"):

Příklad 2
Chceme zobrazit kompletně všechny položky tak, jak jsou v pořadí definovaném stromem kategorií, ale nezobrazovat graficky odsazení reprezentující úrovně vnoření kategorií.
Kód transformace vypadá např. takto:
<?xml version="1.0" encoding="windows-1250"?>
<!--zobrazi cely strom linearne-->
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html" version="1.0" encoding="windows-1250" indent="yes"/>
<xsl:variable name="ac" select="//activecategory"/>
<xsl:template match="/">
<table border="0" cellpadding="2" cellspacing="2">
<xsl:apply-templates select="//category"/>
</table>
</xsl:template>
<xsl:template match="category">
<tr>
<xsl:choose>
<xsl:when test="$ac = @cid">
<td bgcolor="#dddddd">
<a>
<xsl:attribute name="href"><xsl:value-of select="@url"/></xsl:attribute>
<xsl:attribute name="style">color:red;font-weight:bold;</xsl:attribute>
<xsl:value-of select="@name"/>
</a>
</td>
</xsl:when>
<xsl:otherwise>
<td bgcolor="#efefef">
<a>
<xsl:attribute name="href"><xsl:value-of select="@url"/></xsl:attribute>
<xsl:value-of select="@name"/>
</a>
</td>
</xsl:otherwise>
</xsl:choose>
</tr>
</xsl:template>
</xsl:stylesheet>
Výsledný HTML obsahuje tolik řádků tabulky, kolik je položek ve stromu kategorií, graficky se zobrazí takto (obrázek oříznut zespoda, aktivní kategorie "Politika"):

Příklad 3
Chceme vykreslit celý rozbalený strom navigace, ale s omezením na jeden kořen, neboli všechno co je pod kategorií "Home CZ" včetně této kategorie. Transformace už je o něco složitější a využívá rekurze:
<?xml version="1.0" encoding="windows-1250"?>
<!--zobrazi cely strom odsazene-->
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html" version="1.0" encoding="windows-1250" indent="yes"/>
<xsl:variable name="ac" select="//activecategory"/>
<xsl:template match="/">
<table border="0" cellpadding="2" cellspacing="2">
<!--vyber pouze kategorie v nejvyšší úrovni-->
<xsl:apply-templates select="//categories/category[@cid=1]">
<!--...a předej parametr s indentem pro nejvyšší úroveň (v tomto případě prázdný řetězec)-->
<xsl:with-param name="indent"/>
</xsl:apply-templates>
</table>
</xsl:template>
<!--tato šablona se aplikuje na VŠECHNY elementy "category" bez ohledu na úroveň-->
<xsl:template match="category">
<xsl:param name="indent"/>
<tr>
<xsl:choose>
<xsl:when test="$ac = @cid">
<td bgcolor="#dddddd">
<xsl:value-of select="$indent"/>
<a>
<xsl:attribute name="href"><xsl:value-of select="@url"/></xsl:attribute>
<xsl:value-of select="@name"/>
</a>
</td>
</xsl:when>
<xsl:otherwise>
<td bgcolor="#efefef">
<xsl:value-of select="$indent"/>
<a>
<xsl:attribute name="href"><xsl:value-of select="@url"/></xsl:attribute>
<xsl:value-of select="@name"/>
</a>
</td>
</xsl:otherwise>
</xsl:choose>
</tr>
<!--rekurzivní volání dalších podúrovní-->
<xsl:apply-templates select="category">
<!--předej parametr s indent. Ten bude zase delší než v aktuání úrovni-->
<xsl:with-param name="indent">
<xsl:value-of select="concat($indent, ' ')"/>
</xsl:with-param>
</xsl:apply-templates>
</xsl:template>
</xsl:stylesheet>
Výsledek zobrazený v prohlížeči vypadá následovně (obrázek opět oříznut):

Příklad 4
Další příklad už je v praxi velmi dobře použitelný. Chceme zobrazit za každých okolností všechny kategorie nejvyšší úrovně, aktuální kategorii, všechny kategorie nadřazené aktuální kategorii, všechny kategorie na stejné úrovni jako daná kategorie v dané větvi stromu a všechny přímé podkategorie aktuální kategorie. Kód transformace je následující:
<?xml version="1.0" encoding="windows-1250"?>
<!--zobrazi celou prvni uroven a dale vsechny nadkategorie aktualni kategorie, vsechny kategorie stejne urovne a vsechny prime podkategorie-->
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html" version="1.0" encoding="windows-1250" indent="yes"/>
<xsl:variable name="ac" select="//activecategory"/>
<xsl:template match="/">
<table border="0" cellpadding="2" cellspacing="2">
<xsl:apply-templates select="//categories/category"/>
</table>
</xsl:template>
<!--prvni uroven-->
<xsl:template match="//categories/category">
<xsl:choose>
<!--aktivni kategorie-->
<xsl:when test="$ac = @cid">
<tr>
<td bgcolor="#ccccff">
<a>
<xsl:attribute name="href"><xsl:value-of select="@url"/></xsl:attribute>
<xsl:attribute name="style">font-weight:bold;</xsl:attribute>
<xsl:value-of select="@name"/>
</a>
</td>
</tr>
<!--primi potomci kategorie v nejvyssi urovni-->
<xsl:apply-templates select="category"/>
</xsl:when>
<!--neaktivni kategorie-->
<xsl:otherwise>
<tr>
<td bgcolor="#cccccc">
<a>
<xsl:attribute name="href"><xsl:value-of select="@url"/></xsl:attribute>
<xsl:attribute name="style">font-weight:bold;</xsl:attribute>
<xsl:value-of select="@name"/>
</a>
</td>
</tr>
</xsl:otherwise>
</xsl:choose>
<!--vsichni rodicove krome prvni urovne-->
<xsl:apply-templates select=".//category[@cid=$ac]/ancestor::category[parent::category]"/>
<!--predchazejici sourozenci-->
<xsl:apply-templates select=".//category[@cid=$ac]/preceding-sibling::*"/>
<!--tlacitko aktivni kategorie-->
<xsl:apply-templates select=".//category[@cid=$ac]"/>
<!--primi potomci-->
<xsl:apply-templates select=".//category[@cid=$ac]/child::*"/>
<!--nasledujici sourozenci-->
<xsl:apply-templates select=".//category[@cid=$ac]/following-sibling::*"/>
</xsl:template>
<!--kategorie v jine nez prvni urovni-->
<xsl:template match="category">
<tr>
<xsl:choose>
<!--aktivni kategorie-->
<xsl:when test="$ac = @cid">
<td bgcolor="#ccccff">
<xsl:for-each select="./ancestor::category">
</xsl:for-each>
<a>
<xsl:attribute name="href"><xsl:value-of select="@url"/></xsl:attribute>
<xsl:value-of select="@name"/>
</a>
</td>
</xsl:when>
<!--neaktivni kategorie-->
<xsl:otherwise>
<td bgcolor="#efefef">
<xsl:for-each select="./ancestor::category">
</xsl:for-each>
<a>
<xsl:attribute name="href"><xsl:value-of select="@url"/></xsl:attribute>
<xsl:value-of select="@name"/>
</a>
</td>
</xsl:otherwise>
</xsl:choose>
</tr>
</xsl:template>
</xsl:stylesheet>
Výsledek je na následujících obrázcích simulujících klikání na navigaci v různých úrovních.

Jsme na úvodní stránce (aktivní kategorie je "Home CZ")

Stav po kliknutí na "Ekonomika"

Stav po kliknutí na "Zahraniční ekonomika"
Příklad 5
Chceme zobrazit vodorovnou navigační lištu v obvyklé grafické prezentaci, tj. celou přímou cestu k dané kategorii, aktuální kategorii tučně. Kód transformace je poměrně krátký:
<?xml version="1.0" encoding="windows-1250"?>
<!--zobrazi vodorovnou navigacni listu s cestou k dane kategorii v ramci stromu-->
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html" version="1.0" encoding="windows-1250" indent="yes"/>
<xsl:variable name="ac" select="//activecategory"/>
<xsl:template match="/">
<!--vsichni rodicove-->
<xsl:apply-templates select=".//category[@cid=$ac]/ancestor::category"/>
<!--aktivni kategorie-->
<xsl:apply-templates select=".//category[@cid=$ac]"/>
</xsl:template>
<xsl:template match="category">
<xsl:if test="local-name(..)='category'">
<!--kdyz se rodicovsky element jmenuje category-->
>>
</xsl:if>
<xsl:choose>
<!--aktivni kategorie tucne-->
<xsl:when test="$ac = @cid">
<b>
<a>
<xsl:attribute name="href"><xsl:value-of select="@url"/></xsl:attribute>
<xsl:value-of select="@name"/>
</a>
</b>
</xsl:when>
<!--neaktivni kategorie normalne-->
<xsl:otherwise>
<a>
<xsl:attribute name="href"><xsl:value-of select="@url"/></xsl:attribute>
<xsl:value-of select="@name"/>
</a>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
</xsl:stylesheet>
Výsledek je na následujícím obrázku (aktivní kategorie "Západní Evropa"):

Navigace se vkládají vyvoláním nabídky Vzhled / Navigace. Obsah se zpracovává ve WebToDate běžným způsobem, v horní části okna je seznam vložených navigací, ve spodní části se zobrazuje formulář pro vkládání a úpravy.

Ve formuláři zadejte název, nepovinně další upřesňující popis a dále vyberte pro tuto navigaci nějakou transformaci. Ve formuláři jsou obvyklá tlačítka pro manipulaci se záznamem. Mazání je možné jen když navigace není použita na nějaké stránce, duplikace vytvoří jednoduchou kopii záznamu.
Formulář dále obsahuje ladící nástroje:
- XML kód stromu - zobrazí v novém okně prohlížeče kompletní XML kód vytvořený podle stromu kategorií tak jak bude poskytován příslušným transformacím. Tento kód je kromě vizuální kontroly vhodný pro to, aby jej bylo možné nakopírovat do nějakého XML editoru a mimo prostředí WebToDate připravit a odladit transformaci.
- Testování navigace - tlačítko Test spouští vybranou transformaci na XML kód stromu kategorií, HTML výstup je zobrazen v novém okně prohlížeče. Pomocí tlačítka Vybrat lze zvolit kategorii ze stromu kategorií, která bude poskytována jako parametr vyznačující aktivní kategorii - to slouží pro to, aby bylo možné otestovat různé podoby navigace podle toho, která kategorie je zrovna aktivní.
Navigace se vkládá na stránku podobně jako třeba zpráva. Vyberte nějakou stránku tak, aby se zobrazila v záložce Vybraná stránka a zobrazte seznam transformací. Pomocí šipky v levém sloupci seznamu přiřaďte navigaci na stránku do zvolené oblasti. Ve formuláři na následujícím otisku obrazovky se volí jako parametry vložení navigace na stránku oblast a priorita.

Navigace se na stránku vloží při jejím generování.
Aby nebylo nutné spouštět transformace při každém generování stránky nebo dokonce při každém zobrazení zprávy, obsahuje WebToDate cache, do které ukládá vygenerované navigace. V jedné části cache se drží XML kód stromu kategorií, v jiné části cache se drží jednotlivé HTML kódy generované navigacemi. Jednoznačné určení kódu definuje trojice transformace - aktivní kategorie - jazyk. Pokud se jedna z těchto položek mění, dostáváme obecně jiný HTML kód navigace, proto cache ukládá obsah v závislosti na těchto kombinacích.
Cache je transparentní, to znamená, že její obsah se maže pokud se změní jakákoliv vstupní podmínka (změní se strom kategorií, změní se transformace apod.), uživatel by se tudíž ani neměl dozvědět, že do tohoto procesu je nějaká cache vložena.
V prvé řadě je třeba počítat s tím, že v prostředí WebToDate není možné vytvořit dostatečné ladící nástroje pro XSLT transformace. Pro vytvoření a ladění transformací použijte vhodný XML editor umožňující psát, spouštět a eventuálně i třeba krokovat tyto transformace. Teprve odladěný kód transformace vložte do databáze WebToDate, ušetříte tak spoustu času.
Navigace lze na stránky vkládat jako jiné objekty staticky i dynamicky. Navigace pro předlohy pro zprávy vkládejte na předlohu dynamicky, tak zajistíte, že se navigace bude kontextově měnit podle výchozí kategorie právě zobrazované zprávy. Naopak navigace na jiné typy stránek (především rubriky) vkládejte staticky, zde není důvod, aby se HTML kód navigací nevložil do stránky již ve chvíli generování.
Pokud vlastníte variantu Enterprise, využijte možnosti modulu Verifikace, který vyhledává potenciální problémy i ve funkčnostech navigací. Může se jednat např. o to, že URL v definici kategorie není zadáno, přesto je kategorie označena jako součást navigace. Pak se kategorie v navigacích objeví, ale odkaz je nefunkční, resp. prázdný. Modul Verifikace vás na takové stavy upozorní.