Jak změnit šablonu na základě konstanty
Možná jste se již setkali s požadavkem na webovou stránku, který zněl, že budoucí uživatel by si chtěl určovat, jak bude vypadat část webu. Tato změna by samozřejmě měla být co nejjednodušší.
Když mluvím o změně části vzhledu webu, tak mám na mysli velmi malou změnu na úrovni změny třídy u určitého prvku stránky. Jak si tyto dvě třídy nastylujeme už samozřejmě závisí jenom na nás.
V tomto příkladu obalíme hlavní obsah stránky jednou tagem DIV s třídou o-jedna a podruhé s třídou o-dva.
Na začátek si v konstantách šablony nadefinujeme konstantu, která nám dle své hodnoty (0/1) určí, jakou třídu zobrazit.
#cat=vzhled; type=text; label=Vzhled obsahu stránky: 0 pro vzhled jedna, 1 pro vzhled dva
typvzhledu = 1
Tuto konstantu tedy bude možné snadno editovat v "Constant Editoru" a do setupu šablony poté vložíme:
c = COA
c.10 = TEXT
c.10.value = [div id="obsah-jedna"]
c.10.if.equals = {$typvzhledu}
c.10.if.value = 1
c.10.if.negate = 1
c.15 = TEXT
c.15.value = [div id="obsah-dva"]
c.15.if.equals = {$typvzhledu}
c.15.if.value = 1
c.20 < styles.content.get
c.100 = TEXT
c.100.value = [/div]
page.10.subparts.CONTENT < c
#Hranaté závorky mají být samozřejmě špičaté. HTML editor to ale nějak nechtěl pochopit.
V případě, že naše konstanta má hodnotu 0, bude výsledek IF true, část 10 se zobrazí a část 15 ne. Pokud má konstanta hodnotu 1, bude výsledek samozřejmě opačný.
Toto řešení je pouze jedno z mnoha. Další, a asi také jednodušší, možností by bylo využít naší konstanty jako součásti názvu třídy. Na tomto příkladu si ale můžeme alespoň částečně ilustrovat, jak funguje vlastnost stdWrapu if.