WebToDate/Kalendář akcí/Reference: Porovnání verzí

Z WebToDate
Skočit na navigaciSkočit na vyhledávání
m Nahrazení textu „[[Category:WebToDate 4.1“ textem „[[Category:WebToDate“
 
(Není zobrazeno 26 mezilehlých verzí od stejného uživatele.)
Řádek 44: Řádek 44:


:Kategorie
:Kategorie
:Svátky


:Kalendáře
:Kalendáře
Řádek 62: Řádek 64:
V této části nabídky je jako první sekce '''Globální''' – tato sekce sdružuje nastavení, která jsou společná pro všechny kalendáře. V tomto modulu se jedná pouze o navigační lištu.
V této části nabídky je jako první sekce '''Globální''' – tato sekce sdružuje nastavení, která jsou společná pro všechny kalendáře. V tomto modulu se jedná pouze o navigační lištu.


==== Navigační lišta ====
===== Navigační lišta =====
Ve formuláři '''Navigační lišta '''je definován vzhled lišty, která je používána pro stránkování seznamů položek.  
Ve formuláři '''Navigační lišta '''je definován vzhled lišty, která je používána pro stránkování seznamů položek.  


Řádek 97: Řádek 99:
Nastavení pro '''Seznam akcí''' se definuje v podstatě vždy, nastavení '''Jedna akce''' je třeba nadefinovat, pokud má být součástí grafického designu a funkcionality skutečně dvouúrovňové zobrazení seznam – detail. V praxi toto nemusí být vždy požadováno, pokud jsou např. popisky akcí tvořeny jednou či dvěma větami, je možné tyto popisky zobrazovat přímo v seznamu a vytvářet speciální typ stránky pro zobrazení informací o jedné akci pak není nutné.
Nastavení pro '''Seznam akcí''' se definuje v podstatě vždy, nastavení '''Jedna akce''' je třeba nadefinovat, pokud má být součástí grafického designu a funkcionality skutečně dvouúrovňové zobrazení seznam – detail. V praxi toto nemusí být vždy požadováno, pokud jsou např. popisky akcí tvořeny jednou či dvěma větami, je možné tyto popisky zobrazovat přímo v seznamu a vytvářet speciální typ stránky pro zobrazení informací o jedné akci pak není nutné.


==== Nastavení pro seznam akcí ====
===== Nastavení pro seznam akcí =====
Pomocí nastavení '''Seznam akcí''' v předpisu se definuje vzhled stránky prezentující seznamy akcí.
Pomocí nastavení '''Seznam akcí''' v předpisu se definuje vzhled stránky prezentující seznamy akcí.


[[Image:kalendar-sezakci-def.jpg|center]]
[[Image:kalendar-sezakci-def.png|center]]


Stránka se zobrazuje na veřejně přístupné části prezentace pomocí skriptu ''/scripts/modules/diary/default.php?calid=xxx'' a může obsahovat následující "aktivní" elementy (tj. prvky, do kterých se doplňují nějaká data dynamicky ve chvíli požadavku na zobrazení:
Stránka se zobrazuje na veřejně přístupné části prezentace pomocí skriptu ''/scripts/modules/diary/default.php?calid=xxx'' a může obsahovat následující "aktivní" elementy (tj. prvky, do kterých se doplňují nějaká data dynamicky ve chvíli požadavku na zobrazení:
Řádek 116: Řádek 118:
* '''Styl seznamu kategorií''' - WebToDate styl, kterým se formátuje seznam kategorií
* '''Styl seznamu kategorií''' - WebToDate styl, kterým se formátuje seznam kategorií
* '''Styl měsíčního kalendáře''' - WebToDate styl, kterým se formátuje měsíční kalendář.
* '''Styl měsíčního kalendáře''' - WebToDate styl, kterým se formátuje měsíční kalendář.
Pro měsíční kalendář lze kromě stylu zvolit, zda se čísla dnů budou vždy zobrazovat jako dvojciferná (tj. první den v měsíci bude zobrazen jako "01") nebo bez úvodní nuly.


Postup vytvoření prvních tří prvků je popsán v kapitole [[../Začínáme#Vytvoření výpisu seznamu akcí|Vytvoření výpisu seznamu akcí]], základní podoba stylu pro měsíční kalendář se nejjednodušeji získá tak, že se styl vygeneruje pomocí funkce [[#Nástroje|'''Nástroje''']] – '''Měsíční kalendář'''.
Postup vytvoření prvních tří prvků je popsán v kapitole [[../Začínáme#Vytvoření výpisu seznamu akcí|Vytvoření výpisu seznamu akcí]], základní podoba stylu pro měsíční kalendář se nejjednodušeji získá tak, že se styl vygeneruje pomocí funkce [[#Nástroje|'''Nástroje''']] – '''Měsíční kalendář'''.
Řádek 121: Řádek 125:
Pro toto zobrazení je třeba vždy definovat minimálně předlohu a seznam akcí, zobrazení ostatních výše uvedených elementů není povinné a nemusí být definováno ani používáno.
Pro toto zobrazení je třeba vždy definovat minimálně předlohu a seznam akcí, zobrazení ostatních výše uvedených elementů není povinné a nemusí být definováno ani používáno.


Pokud např. nechcete, aby se seznam kategorií v&nbsp;této stránce zobrazoval, stačí, aby odpovídající klíčové slovo <!--WTD_DIARY(LISTCATEGORIES)--> nebylo v&nbsp;HTML kódu předlohy uvedeno.
Pokud např. nechcete, aby se seznam kategorií v&nbsp;této stránce zobrazoval, stačí, aby odpovídající klíčové slovo <!--WTD_DIARY(LISTCATEGORIES)--> nebylo v&nbsp;HTML kódu předlohy uvedeno.


==== Nastavení pro zobrazení jedné akce ====
===== Nastavení pro zobrazení jedné akce =====
Druhým nastavením v předpisu je '''Jedna akce''', tento formulář definuje podobu stránky zobrazující detailní zobrazení záznamu jedné akce z kalendáře. Taková stránka se na veřejně přístupné části prezentace zobrazuje pomocí URL ''/scripts/modules/diary/action.php?id=xxx'', kde xxx je ID položky kalendáře. Tato stránka může zobrazovat následující prvky:
Druhým nastavením v předpisu je '''Jedna akce''', tento formulář definuje podobu stránky zobrazující detailní zobrazení záznamu jedné akce z kalendáře. Taková stránka se na veřejně přístupné části prezentace zobrazuje pomocí URL ''/scripts/modules/diary/action.php?id=xxx'', kde xxx je ID položky kalendáře. Tato stránka může zobrazovat následující prvky:


Řádek 132: Řádek 136:
* Seznam témat, ve kterých se akce nachází
* Seznam témat, ve kterých se akce nachází


[[Image:kalendar-jednakace-def.gif|center]]
[[Image:kalendar-jednakace-def.png|center]]


Ve formuláři '''Jedna akce''' se definuje:
Ve formuláři '''Jedna akce''' se definuje:
Řádek 138: Řádek 142:
* '''Předloha''' – šablona pro zobrazení detailních informací o jedné akci
* '''Předloha''' – šablona pro zobrazení detailních informací o jedné akci
* '''Styl seznamu kategorií''' - WebToDate styl, kterým se formátuje seznam kategorií kalendáře
* '''Styl seznamu kategorií''' - WebToDate styl, kterým se formátuje seznam kategorií kalendáře
* '''Styl měsíčního kalendáře''' - WebToDate styl, kterým se formátuje měsíční kalendář.
* '''Styl měsíčního kalendáře''' - WebToDate styl, kterým se formátuje měsíční kalendář; dále lze zvolit, zda se čísla dnů v kalendáři zobrazují vždy dvojciferně nebo běžným způsobem
* '''Styl seznamu kategorií, ve kterých se akce nachází''' - může vypsat seznam kategorií aktuálního kalendáře, do kterých je akce zařazena
* '''Styl seznamu kategorií, ve kterých se akce nachází''' - může vypsat seznam kategorií aktuálního kalendáře, do kterých je akce zařazena
* '''Styl seznamu témat, ve kterých se akce nachází''' - může vypsat seznam témat, do kterých je akce zařazena
* '''Styl seznamu témat, ve kterých se akce nachází''' - může vypsat seznam témat, do kterých je akce zařazena
Řádek 144: Řádek 148:
Postup vytvoření definice této stránky je podobný jako pro seznam akcí popsaný v&nbsp;kapitole [[../Začínáme|Začínáme]]. Pro vygenerování fragmentu, který obsahuje klíčová slova pro položky jedné akce, lze použít funkci [[#Nástroje|'''Nástroje''']] – '''Detail akce'''.
Postup vytvoření definice této stránky je podobný jako pro seznam akcí popsaný v&nbsp;kapitole [[../Začínáme|Začínáme]]. Pro vygenerování fragmentu, který obsahuje klíčová slova pro položky jedné akce, lze použít funkci [[#Nástroje|'''Nástroje''']] – '''Detail akce'''.


==== Nastavení pro samostatný kalendář ====
===== Nastavení pro samostatný kalendář =====
Pomocí nastavení '''Samostatný kalendář''' předpisu lze definovat styl, kterým se generuje měsíční kalendář na jiných stránkách, než na stránkách zobrazovaných přes skripty tohoto modulu.
Pomocí nastavení '''Samostatný kalendář''' předpisu lze definovat styl, kterým se generuje měsíční kalendář na jiných stránkách, než na stránkách zobrazovaných přes skripty tohoto modulu.


[[Image:kalendar-styl-mesicni.gif|center]]
[[Image:kalendar-styl-mesicni.png|center]]


V&nbsp;tomto nastavení se vybírá pouze styl, kterým se tento měsíční kalendář formátuje. Samotná funkce je podrobně popsána v&nbsp;kapitole [[#Extenze pro generování měsíčního kalendáře|Extenze pro generování měsíčního kalendáře]].
V&nbsp;tomto nastavení se vybírá pouze styl, kterým se tento měsíční kalendář formátuje. Samotná funkce je podrobně popsána v&nbsp;kapitole [[#Extenze pro generování měsíčního kalendáře|Extenze pro generování měsíčního kalendáře]].
Řádek 213: Řádek 217:


Mazat kategorie lze jen tehdy, pokud v kategorii není žádná akce.
Mazat kategorie lze jen tehdy, pokud v kategorii není žádná akce.
==== Svátky ====
Pro zobrazování měsíčního kalendáře je podporováno [[#Klíčová slova pro tělo stylu měsíčního kalendáře|vyznačování státních svátků]]. Pro tyto účely je třeba mít informace o státních svátcích v databázi modulu. Princip řešení je následující:
* V databázi modulu lze uchovávat seznam svátků. Ukládá se datum, název a jazyk. Nejde o opakující se události, pro každý rok se zadávají svátky zvlášť.
* Není k dispozici interface pro ruční zadávání svátků. Místo toho se provádí import seznamu svátků. Pro tyto účely se používá formát ''.hol'', který používá např. aplikace MS Outlook.
Formát ''.hol'' je jednoduchý textový soubor s cca následujícím obsahem:
<code>
[Státní svátky ČR] 28
Den obnovy samostatného českého státu (1993), 2008/1/1
Den obnovy samostatného českého státu (1993), 2009/1/1
Den obnovy samostatného českého státu (1993), 2010/1/1
Den obnovy samostatného českého státu (1993), 2011/1/1
Den vítězství (1945), 2008/5/8
Den vítězství (1945), 2009/5/8
Den vítězství (1945), 2010/5/8
Den vítězství (1945), 2011/5/8
Den slovanských věrozvěstů Cyrila a Metoděje (kolem 863), 2008/7/5
Den slovanských věrozvěstů Cyrila a Metoděje (kolem 863), 2009/7/5
Den slovanských věrozvěstů Cyrila a Metoděje (kolem 863), 2010/7/5
Den slovanských věrozvěstů Cyrila a Metoděje (kolem 863), 2011/7/5
[Ostatní svátky ČR] 24
Nový rok, 2008/1/1
Nový rok, 2009/1/1
Nový rok, 2010/1/1
Nový rok, 2011/1/1
Velikonoční pondělí, 2008/3/24
Velikonoční pondělí, 2009/4/13
Velikonoční pondělí, 2010/4/5
Velikonoční pondělí, 2011/4/25
Svátek práce, 2008/5/1
Svátek práce, 2009/5/1
Svátek práce, 2010/5/1
Svátek práce, 2011/5/1
</code>
Formát má následující vlastnosti:
* Každý řádek souboru je buď uvozující hlavička kategorie svátků, nebo jedním záznamem. Uvozující hlavička má v hranatých závorkách název kategorie a následuje počet položek v tomto bloku.
* Záznam má název a následuje datum ve formátu yyyy/m/d, datum je odděleno čárkou.
* Jako rozšíření tohoto formátu modul připouští řádek, který začíná čárkou a následuje datum, takový řádek vyznačuje, že pro dané datum a jazyk se existující záznam má z tabulky odstranit.
Soubor s kalendářem svátků je tedy třeba sestavit předem. Následně se importuje pomocí formuláře pro vložení seznamu svátků.
[[Image:kalendar-kalendare-svatky.png|center]]
Volí se jazyk, pro který chceme import provést, vybere se soubor na lokálním disku ve formátu ''.hol'' a tlačítkem se spustí import. Po provedení importu se zobrazuje informační hlášení o počtu importovaných záznamů nebo případně chybové hlášení. Pokud se mají pro různé jazyky zobrazovat stejné svátky, stačí importovat stejný soubor vícekrát s různou volbou jazyka, názvy svátků se importují, ale v prezentační části se nikde nepoužívají.


==== Správa obsahu kalendáře ====
==== Správa obsahu kalendáře ====
Řádek 498: Řádek 551:
| | ID zobrazovaného stavu
| | ID zobrazovaného stavu
| | Pro výpis toho, co se právě zobrazuje za seznam
| | Pro výpis toho, co se právě zobrazuje za seznam
|-
| | <nowiki><!--WTD_DIARY(LISTDATEFROM)--></nowiki>
| | Zobrazuje první den kritéria pro výpis informací, jaký časový interval je zobrazován
| | Lze použít i v hlavičce či patičce stylu seznamu akcí
|-
| | <nowiki><!--WTD_DIARY(LISTDATETO)--></nowiki>
| | Zobrazuje poslední den kritéria pro výpis informací, jaký časový interval je zobrazován
| | Lze použít i v hlavičce či patičce stylu seznamu akcí


|}
|}
Řádek 534: Řádek 597:
  <nowiki><!--WTD_IF(NOTSAMEDATE,"<td><!--WTD_DIARY(DATEFROM)--></td><td><!--WTD_DIARY(DATETO)--></td>")--></nowiki>
  <nowiki><!--WTD_IF(NOTSAMEDATE,"<td><!--WTD_DIARY(DATEFROM)--></td><td><!--WTD_DIARY(DATETO)--></td>")--></nowiki>
</code>
</code>
Pokud se zobrazuje seznam akcí a je dáno časové omezení, je možné vypisovat nad seznamem akcí informaci o tomto časovém omezení. Pokud bude vypisován jeden den tak nadpis může být např. "Akce konané dne 21.1.2001", pokud více dnů tak "Akce konané dne 21.1. 2001 – 23.1.2001". První den je známý vždy, pokud se např. pro skript neuvede žádný časový parametr, vypisují se akce od aktuálního dne. Poslední den kritéria může a nemusí být známý, proto lze navíc použít konstrukci
<nowiki><!--WTD_IF(LISTDATETONOTNULL,"…")--></nowiki>, které vkládá obsah v případě, že koncové datum je známé. Výše uvedené zobrazení nadpisu seznamu lze tedy zajistit např. kódem
<code>
<nowiki>Akce konané dne <!--WTD_DIARY(LISTDATEFROM)--><!--WTD_IF(LISTDATETONOTNULL," - <!--WTD_DIARY(LISTDATETO)-->")--></nowiki>
</code>


Jednoduchý kód předlohy pro seznam akcí tedy vypadá např. následovně:
Jednoduchý kód předlohy pro seznam akcí tedy vypadá např. následovně:
Řádek 877: Řádek 949:
# Seznam všech kategorií aktuálního kalendáře
# Seznam všech kategorií aktuálního kalendáře


=== Formátování data ===
=== Klíčová slova pro formátování ===
Je k dispozici možnost formátování data pomocí konstrukce
Modul dále podporuje [[../../Referenční/Klíčová slova WebToDate#Klíčová slova pro formátování|Klíčová slova pro formátování]] typu WTD_FORMAT, tedy např.
 
<nowiki><!--WTD_FORMAT(DATE,"formátovací předpis","formátovaný časový údaj")--></nowiki>


ve stejné syntaxi, jako se používá v samotném WebToDate (viz referenční příručka WebToDate). Výraz lze použít ve stránce se seznamem akcí i v detailu akce.
''<nowiki><!--WTD_FORMAT(SMAXLEN,"formátovací předpis","ořezávaný text")--></nowiki>''
''<nowiki><!--WTD_FORMAT(DATE,"formátovací předpis","formátovaný časový údaj")--></nowiki>''


Příklad vypisující pro počáteční datum akce pouze den a měsíc je:
apod.
 
<code>
<nowiki><!--WTD_FORMAT(DATE,"j.n.","<!--WTD_DIARY(DATEFROM)-->")--></nowiki>
</code>


=== Klíčová slova pro zobrazení měsíčního kalendáře ===
=== Klíčová slova pro zobrazení měsíčního kalendáře ===
Řádek 908: Řádek 975:
| | <nowiki><!--WTD_CALENDAR(CURRENTMONTHABBREV)--></nowiki>
| | <nowiki><!--WTD_CALENDAR(CURRENTMONTHABBREV)--></nowiki>
| | Zkratka zobrazovaného měsíce
| | Zkratka zobrazovaného měsíce
|-
| | <nowiki><!--WTD_CALENDAR(CURRENTMONTHNUMBER)--></nowiki>
| | Číslo zobrazovaného měsíce


|-
|-
| | <nowiki><!--WTD_CALENDAR(CURRENTYEARNAME)--></nowiki>
| | <nowiki><!--WTD_CALENDAR(CURRENTYEARNAME)--></nowiki>
| | Zobrazovaný rok
| | Zobrazovaný rok
|-
| | <nowiki><!--WTD_CALENDAR(CURRENTYEARNUMBER)--></nowiki>
| | Číslo právě zobrazovaného roku


|-
|-
Řádek 928: Řádek 1 003:
| | <nowiki><!--WTD_CALENDAR(NEXTYEARLINK)--></nowiki>
| | <nowiki><!--WTD_CALENDAR(NEXTYEARLINK)--></nowiki>
| | Odkaz na zobrazení následujícího roku
| | Odkaz na zobrazení následujícího roku
|-
| | <nowiki><!--WTD_CALENDAR(CURRENTMONTHOFFSET)--></nowiki>
| | Posun v měsících zobrazovaného měsíce vůči aktuálnímu měsíci
|-
| | <nowiki><!--WTD_CALENDAR(PREVMONTHOFFSET)--></nowiki>
| | Posun v měsících předchozího měsíce k zobrazovanému měsíci vůči aktuálnímu měsíci
|-
| | <nowiki><!--WTD_CALENDAR(NEXTMONTHOFFSET)--></nowiki>
| | Posun v měsících následujícího měsíce k zobrazovanému měsíci vůči aktuálnímu měsíci


|}
|}
Pokud např. chceme klepnutím na název měsíce v měsíčním kalendáři zobrazit akce z tohoto zvoleného měsíce, použijeme v hlavičce či patičce stylu odkaz ve tvaru
<code>
<nowiki>default.php?calid=1&calyear=<!--WTD_CALENDAR(CURRENTYEARNUMBER)-->&calmonth=<!--WTD_CALENDAR(CURRENTMONTHNUMBER)-->&calday=1</nowiki>
</code>
Klíčová slova <nowiki><!--WTD_CALENDAR(CURRENTMONTHOFFSET)--></nowiki>, <nowiki><!--WTD_CALENDAR(PREVMONTHOFFSET)--></nowiki> a <nowiki><!--WTD_CALENDAR(NEXTMONTHOFFSET)--></nowiki> má smysl použít v kombinaci s parametry ''cmonthfrom'' a ''cmonthto'' prezentačního skriptu pro seznam akcí, a to v případě, že chceme zajistit, aby přechod na jiný měsíc v měsíčním kalendáři znamenal automaticky i přechod na stejný měsíc ve výpisu seznamu akcí, a to bez výběru konkrétního dne v měsíčním kalendáři (tj. aby nebyl zvýrazněn konkrétní jeden den). V hlavičce stylu pro měsíční kalendář např. použijeme
<nowiki><a href="<!--WTD_CALENDAR(PREVMONTHLINK)-->&amp;cmonthfrom=<!--WTD_CALENDAR(PREVMONTHOFFSET)-->&amp;cmonthto=<!--WTD_CALENDAR(PREVMONTHOFFSET)-->"</nowiki>
<nowiki>title="Předchozí měsíc">Předchozí měsíc</a></nowiki>
jako odkaz na předchozí měsíc. Tento odkaz zajistí, že klikem na ''Předchozí měsíc'' se přejde na předchozí měsíc vůči aktuálně zobrazovanému nejen v měsíčním kalendáři, ale i v seznamu akcí. Analogicky
<nowiki><a href="<!--WTD_CALENDAR(NEXTMONTHLINK)-->&amp;cmonthfrom=<!--WTD_CALENDAR(NEXTMONTHOFFSET)-->&amp;cmonthto=<!--WTD_CALENDAR(NEXTMONTHOFFSET)-->"</nowiki>
<nowiki>title="Nadcházející měsíc">Nadcházející měsíc</a</nowiki>>
reprezentuje odkaz na následující měsíc.
Následující kód je pak příklad toho, jak na jméno aktuálně zobrazovaného měsíce umístit odkaz, který po vyvolání vždy zobrazí seznam akcí probíhajících v tomto měsíci zobrazovaném v měsíčním kalendáři.
<nowiki><a href="default.php?calyear=<!--WTD_CALENDAR(CURRENTYEARNUMBER)-->&amp;calmonth=<!--WTD_CALENDAR(CURRENTMONTHNUMBER)-->&amp;cmonthfrom=<!--WTD_CALENDAR(CURRENTMONTHOFFSET)--></nowiki>
<nowiki>&amp;cmonthto=<!--WTD_CALENDAR(CURRENTMONTHOFFSET)-->" target="_parent"><strong><!--WTD_CALENDAR(CURRENTMONTHNAME)--> <!--WTD_CALENDAR(CURRENTYEARNAME)--></strong></a></nowiki>
Odkazy na předchozí a následující měsíc lze vkládat i podmíněně podle toho, zda ještě existují akce, které se časově nacházejí před nebo za právě zobrazovaným měsícem. Tyto konstrukce jsou
<nowiki><!--WTD_IF(CALPREVMONTHEXIST,"...")--></nowiki> - kód se vloží, pokud před aktuálním měsícem existuje nějaká akce
<nowiki><!--WTD_IF(CALPREVMONTHNOTEXIST,"...")--></nowiki> - kód se vloží, pokud před aktuálním měsícem neexistuje žádná akce
<nowiki><!--WTD_IF(CALNEXTMONTHEXIST,"...")--></nowiki> - kód se vloží, pokud za aktuálním měsícem existuje nějaká akce
<nowiki><!--WTD_IF(CALNEXTMONTHNOTEXIST,"...")--></nowiki>  - kód se vloží, pokud za aktuálním měsícem neexistuje žádná akce
V praxi lze tedy použít např. konstrukci
<code>
<nowiki><!--WTD_IF(CALPREVMONTHEXIST,"<a href="<!--WTD_CALENDAR(PREVMONTHLINK)-->">&amp;laquo;</a>")-->
<!--WTD_IF(CALPREVMONTHNOTEXIST,"&amp;nbsp;")--></nowiki>
</code>
Existence akcí se v tomto případě vyhodnocuje přes všechny kalendáře najednou a nikoli přes jeden právě zobrazovaný kalendář.


==== Klíčová slova pro tělo stylu měsíčního kalendáře ====
==== Klíčová slova pro tělo stylu měsíčního kalendáře ====
Řádek 961: Řádek 1 089:
|-
|-
| | <nowiki><!--WTD_IF(CALCELLDAYONLY,"")--></nowiki>
| | <nowiki><!--WTD_IF(CALCELLDAYONLY,"")--></nowiki>
| | Kód se vkládá v&nbsp;případě, že se jedná o prázdnou buňku na začátku a na konci měsíčního kalendáře
| | Kód se vkládá v případě, že je třeba vložit jen číslo dne bez odkazu a nejedná se o aktuální ani vybraný den


|-
|-
| | <nowiki><!--WTD_IF(CALCELLDAYLINK,"")--></nowiki>
| | <nowiki><!--WTD_IF(CALCELLDAYLINK,"")--></nowiki>
| | Kód se vkládá v&nbsp;případě, že se jedná o prázdnou buňku na začátku a na konci měsíčního kalendáře
| | Kód se vkládá v případě, že je třeba vložit číslo dne s odkazem a nejedná se o aktuální ani vybraný den


|-
|-
| | <nowiki><!--WTD_IF(CALCELLCURRENTDAYONLY,"")--></nowiki>
| | <nowiki><!--WTD_IF(CALCELLCURRENTDAYONLY,"")--></nowiki>
| | Kód se vkládá v&nbsp;případě, že se jedná o prázdnou buňku na začátku a na konci měsíčního kalendáře
| | Kód se vkládá v případě, že je třeba vložit jen číslo dne bez odkazu a jedná se o aktuální den


|-
|-
| | <nowiki><!--WTD_IF(CALCELLCURRENTDAYLINK,"")--></nowiki>
| | <nowiki><!--WTD_IF(CALCELLCURRENTDAYLINK,"")--></nowiki>
| | Kód se vkládá v&nbsp;případě, že se jedná o prázdnou buňku na začátku a na konci měsíčního kalendáře
| | Kód se vkládá v případě, že je třeba vložit číslo dne s odkazem a jedná se o aktuální den


|-
|-
| | <nowiki><!--WTD_IF(CALCELLSELECTEDDAYLINK,"")--></nowiki>
| | <nowiki><!--WTD_IF(CALCELLSELECTEDDAYLINK,"")--></nowiki>
| | Kód se vkládá v&nbsp;případě, že se jedná o prázdnou buňku na začátku a na konci měsíčního kalendáře
| | Kód se vkládá v případě, že je třeba vložit číslo dne s odkazem a jedná se o vybraný den
 
|-
| | <nowiki><!--WTD_IF(CALCELLWEEKENDONLY,"")--></nowiki>
| | Kód se vkládá v případě, že je třeba vložit jen číslo víkendového dne bez odkazu a nejedná se o aktuální ani vybraný den
 
|-
| | <nowiki><!--WTD_IF(CALCELLWEEKENDLINK,"")--></nowiki>
| | Kód se vkládá v případě, že je třeba vložit číslo víkendového dne s odkazem a nejedná se o aktuální ani vybraný den
 
|-
| | <nowiki><!--WTD_IF(CALCELLHOLIDAYONLY,"")--></nowiki>
| | Kód se vkládá v případě, že je třeba vložit jen číslo dne státního svátku bez odkazu a nejedná se o aktuální ani vybraný den
 
|-
| | <nowiki><!--WTD_IF(CALCELLHOLIDAYLINK,"")--></nowiki>
| | Kód se vkládá v případě, že je třeba vložit číslo dne státního svátku s odkazem a nejedná se o aktuální ani vybraný den


|}
|}
Jiné než výše uvedené kombinace kritérií nejsou podporovány, tj. pokud např. je daný den zároveň aktuální a zároveň státním svátkem, formátuje se jako aktuální den (nezávisle na tom, že je to zároveň svátek).
Pokud ve stylu nejsou výrazy ''CALCELLWEEKENDONLY'' resp. ''CALCELLWEEKENDLINK'' přítomny, formátují se víkendy pomocí ''CALCELLDAYONLY'' resp. ''CALCELLDAYLINK'' (tedy vizuálně se neodlišuje, že jde o víkendové dny).


Příklad stylu pro kalendář využívajícího výše zmíněná klíčová slova je následující:
Příklad stylu pro kalendář využívajícího výše zmíněná klíčová slova je následující:
Řádek 1 164: Řádek 1 312:
| | dayfrom
| | dayfrom
| | Počet dní ve výpisu
| | Počet dní ve výpisu
| | Nastavuje počet dní od data zvoleného přes měsíční kalendář, pro které se akce zobrazují v seznamu akcí; 0 = pouze vybraný den, 1 = vybraný den + jeden následující kalendářní den atd.
| | Pokud je parametr uveden, znamená to, že se vypisuje daný počet dní od prvního skutečně zobrazovaného dne, tj. 0 = pouze vybraný den, 1 = vybraný den + jeden následující kalendářní den atd.
 
|-
| | cweekfrom
| | Výběr kalendářního týdne od
| | Např. ''default.php?cweekfrom=0'' zobrazuje akce od počátku aktuálního týdne (od pondělí) dál
 
|-
| | cweekto
| | Výběr kalendářního týdne do
| |
 
|-
| | cmonthfrom
| | Výběr kalendářního měsíce od
| |
 
|-
| | cmonthto
| | Výběr kalendářního měsíce do
| |


|}
|}
Při vyhodnocování parametrů pro časové kritérium může dojít ke konfliktu, proto se vyhodnocují v pořadí:
# datefrom, dateto
# dayfrom
# cweekfrom, cweekto
# cmonthfrom, cmonthto
To znamená, že pokud je např. uvedeno ''datefrom=5.8.2010'' a zároveň ''cweekfrom=0'', přednost má ''datefrom'' a vypíší se akce od 5.8.2010, nikoli od pondělka aktuálního týdne.
Parametry ''cweekfrom'', ''cweekto'', ''cmonthfrom'' a ''cmonthto'' se vždy vztahují vůči aktuálnímu datu, čili např. volba ''cweekfrom=-1&cweekto=-1'' zobrazuje vždy akce z předchozího kalendářního týdne oproti dnešnímu dni.
Pomocí parametru ''dayfrom'' lze definovat, kolik dní se vypisuje v&nbsp;seznamu akcí. Např. URL ''/scripts/modules/diary/default.php?calid=1&calyear=2008&calmonth=12&calday=18&dayfrom=0'' vypíše seznam akcí, které probíhají pouze dne 18.12.2008 a žádné další.
Parametry ''calyear'', ''calmonth'' a ''calday'' jsou primárně určeny k definici stavu měsíčního kalendáře. To znamená, že obsah výpisu seznamu akcí je těmito parametry ovlivněn jen pokud není výpis definován jinými časovými parametry. Např.:
* ''default.php?calyear=2011&calmonth=4'' vypisuje seznam akcí od 1.4.2011 dál
* ''default.php?calyear=2011&calmonth=4&calday=5'' vypisuje seznam akcí od 5.4.2011 dál
* ''default.php?calyear=2011&calmonth=4&calday=5&dayfrom=2'' vypisuje seznam akcí od 5.4.2011 do 7.4.2011
ale
* ''default.php?calyear=2011&calmonth=4&datefrom=15.4.2011'' vypisuje seznam akcí od 15.4.2011 dál
* ''default.php?calyear=2011&calmonth=4&calday=9&datefrom=15.4.2011'' vypisuje seznam akcí od 15.4.2011 dál
* ''default.php?calyear=2011&calmonth=4&calday=9&cmonthfrom=-2'' vypisuje seznam akcí od prvního dne v měsíci s posunem dvou měsíců do minulosti oproti aktuálnímu datu (čili např. od 1.3.2011 pokud je květen 2011)
apod.
Další příklady užití časový parametrů jsou:
* ''default.php?datefrom=25.9.2010&dayfrom=1'' zobrazuje 25.9. a 26.9.
* ''default.php?dayfrom=0'' zobrazuje akce z aktuálního dne.
* ''default.php?cweekfrom=0'' – zobrazuje akce od počátku aktuálního týdne (od pondělí) dál
* ''default.php?cweekfrom=0&cweekto=0'' – zobrazuje akce na aktuální týden (od pondělka do neděle)
* ''default.php?cweekfrom=-1&cweekto=1'' – zobrazuje akce za minulý, současný a následující týden
* ''default.php?cmonthfrom=0&cmonthto=0'' – zobrazuje akce na aktuální měsíc (od prvního tohoto měsíce do posledního dne v měsíci)


Jazykové nastavení objasňují následující příklady (používají se parametry pro zkratku jazyka ''locale'' resp. ''dlocale'', stejným způsobem se ale používají parametry pro ID jazyka ''lid'' resp. ''dlid'', jedná se vždy o stejný význam, tj. volbu jazyka, jde jen o způsob této volby):
Jazykové nastavení objasňují následující příklady (používají se parametry pro zkratku jazyka ''locale'' resp. ''dlocale'', stejným způsobem se ale používají parametry pro ID jazyka ''lid'' resp. ''dlid'', jedná se vždy o stejný význam, tj. volbu jazyka, jde jen o způsob této volby):
Řádek 1 187: Řádek 1 393:


Tím je zajištěno, že ve formuláři bude korektním způsobem uvedeno, jaký kalendář se prohledává a jaký předpis je případně zvolen v URL stránky.
Tím je zajištěno, že ve formuláři bude korektním způsobem uvedeno, jaký kalendář se prohledává a jaký předpis je případně zvolen v URL stránky.
Pomocí parametru ''dayfrom'' lze definovat, kolik dní se vypisuje v&nbsp;seznamu akcí. Např. URL ''/scripts/modules/diary/default.php?calid=1&calyear=2008&calmonth=12&calday=18&dayfrom=0'' vypíše seznam akcí, které probíhají pouze dne 18.12.2008 a žádné další. Aby byla volba intervalu pomocí ''dayfrom'' funkční, musí být uveden počáteční den, čili např. URL ''default.php?calid=1&calyear=2008&calmonth=12&dayfrom=0'' žádný den nevybere, stránka bude vypadat tak, že zobrazí měsíční kalendář na vybraný měsíc a seznam akcí ve výchozím tvaru, čili od aktuálního data dál.


==== Parametry skriptu pro detail akce ====
==== Parametry skriptu pro detail akce ====
Řádek 1 374: Řádek 1 578:


<div class="note">Tip: Pokud chcete zobrazit tento kalendář na více stránkách webové prezentace, umístěte příslušné klíčové slovo do stránky ve stromu šablon WebToDate, ze které jsou odvozeny všechny stránky, na kterých se má kalendář zobrazovat. V&nbsp;takovém případě se kód vygeneruje pouze jednou na tuto příslušnou stránku a všechny následné stránky tento HTML kód s&nbsp;kalendářem "zdědí". Aktualizaci pak lze provádět např. pomocí funkce '''Plánovač úloh''' WebToDate, která umožňuje periodické generování zvolené stránky včetně podstromu, čímž dojde k&nbsp;automatické aktualizaci kalendáře na všech potřebných stránkách.</div>
<div class="note">Tip: Pokud chcete zobrazit tento kalendář na více stránkách webové prezentace, umístěte příslušné klíčové slovo do stránky ve stromu šablon WebToDate, ze které jsou odvozeny všechny stránky, na kterých se má kalendář zobrazovat. V&nbsp;takovém případě se kód vygeneruje pouze jednou na tuto příslušnou stránku a všechny následné stránky tento HTML kód s&nbsp;kalendářem "zdědí". Aktualizaci pak lze provádět např. pomocí funkce '''Plánovač úloh''' WebToDate, která umožňuje periodické generování zvolené stránky včetně podstromu, čímž dojde k&nbsp;automatické aktualizaci kalendáře na všech potřebných stránkách.</div>
== Plánovaná úloha pro sitemap.xml ==
Seznam akcí modulu může být generován do seznamu adres v souboru sitemap.xml (více o plánovaných úlohách pro sitemap viz [[../../Generování sitemap.xml|Generování sitemap.xml]]).
Funkce je realizována formou plánované úlohy, která do separátního XML souboru generuje seznam URL akcí kalendáře.
[[Image:generovani-sitemap-udalosti.png|center]]
Parametry úlohy jsou:
* '''Adresa XML souboru''' – povinně se zadává adresa XML souboru
* '''Server''' – volba virtuálního serveru; je zde důležitá pro vložení prefixu URL všech akcí
* '''Kalendáře''' – volí se buď všechny (výchozí volba) nebo jeden konkrétní kalendář
* '''Jazyk''' – volba jazyka akcí
* '''Výstupní priorita''' – pokud je vyplněno, musí být číslo v intervalu 0 až 1 s desetinnou tečkou.
Elementy dle formátu pro sitemap se vyplňují následovně:
* ''loc'' – URL akce
* ''lastmod'' – datum publikace akce
* ''priority'' – výstupní priorita z formuláře úlohy, nevkládá se, pokud není vyplněno

Aktuální verze z 7. 10. 2011, 08:44

Administrační rozhraní

Nabídka modulu

Nabídka modulu vypadá následovně:

Nástroje

Formuláře
Detail akce
Měsíční kalendář

Nastavení

Seznam předpisů
Globální
Navigační lišta
Předpisy
název předpisu
Seznam akcí
Jedna akce
Samostatný kalendář

Administrace

Práva
Kalendáře
Stavy akcí
Témata

Data

Kategorie
Svátky
Kalendáře
název kalendáře

K administrační části modulu mají přístup pouze administrátoři WebToDate. Výjimkou je sekce Data nabídky, kterou lze zpřístupnit i jiným týmům pomocí funkce Práva.

Nastavení

V této sekci nabídky se nastavuje grafický vzhled a chování všech veřejně přístupných stránek modulu.

Seznam předpisů

Pro kalendáře se podobně jako pro některé další moduly používají tzv. předpisy. Předpis je sada grafických a případně i funkčních nastavení, který se může týkat více různých typů stránek najednou. V tomto modulu každý definovaný předpis reprezentuje jednu sadu grafických nastavení pro kalendář. V jednom předpisu lze nadefinovat zobrazování stránek typu seznam akcí – detailní informace o jedné akci. Všechny kalendáře pak mohou používat jeden předpis, nebo (pokud se zobrazují graficky odlišně) používat několik různých předpisů.

Předpis se zakládá pomocí funkce Seznam předpisů. Ve formuláři se vyplňuje pouze název, který lze volit dle potřeby. Existující předpis lze libovolně přejmenovávat, smazat jen v případě, že není někde (u nějakého kalendáře) použit.

Globální nastavení

V této části nabídky je jako první sekce Globální – tato sekce sdružuje nastavení, která jsou společná pro všechny kalendáře. V tomto modulu se jedná pouze o navigační lištu.

Navigační lišta

Ve formuláři Navigační lišta je definován vzhled lišty, která je používána pro stránkování seznamů položek.

Grafický vzhled jednotlivých prvků navigační lišty se definuje pomocí následujících polí:

  1. Předchozí – HTML kód určující formátování odkazu pro přechod na předcházející stránku
  2. Následující – HTML kód určující formátování odkazu pro přechod na další stránku
  3. Hlavička – HTML kód který je umístěn na počátku výsledného kódu navigační lišty
  4. Patička – HTML kód který je umístěn na konci výsledného kódu navigační lišty
  5. Číslo stránky – formátování jednotlivých čísel stránky, které umožní odkliknutí na zvolenou stránku
  6. Aktivní stránka – formátování údaje o čísle aktuální stránky
  7. Separátor – oddělovač mezi jednotlivými čísly stránek.
  8. Počet stránek určuje maximální počet čísel stránek v navigační liště a tím nepřímo ovlivňuje i její šířku.

Pro správnou funkci navigační lišty je nutné do výše popsaných polí zadávat i klíčová slova<!--WTD_NAVIG(URL)--> a <!--WTD_NAVIG(NUMBER)-->.

Jejich použití je zřejmé z následujícího jednoduchého příkladu:

Definici navigační lišty je třeba po instalaci každého modulu v instalovaném modulu uložit – výchozí hodnoty se po instalaci v databázi nenacházejí a bez uložení se pak navigační lišta na žádné stránce nezobrazí.

Navigační lišta je pak v předloze reprezentována klíčovým slovem <!--WTD_DIARY(NAVIG)-->.

Definice předpisů

V druhé sekci části Nastavení nazvané Předpisy se nastavují jednotlivé předpisy. Pod každým názvem předpisu se zde zobrazují dvě položky reprezentující dva možné způsoby zobrazení dat daného kalendáře, třetí položka pak definuje případné zobrazení měsíčního kalendáře v jiných stránkách www prezentace než ve stránkách modulu:

  1. Seznam akcí – toto nastavení definuje zobrazení seznamů akcí v daném kalendáři
  2. Jedna akce – toto nastavení definuje zobrazení jedné vybrané položky kalendáře.
  3. Samostatný kalendář - nastavuje se pouze styl, kterým se může formátovat měsíční kalendář generovaný na jiné stránky www prezentace.

Nastavení pro Seznam akcí se definuje v podstatě vždy, nastavení Jedna akce je třeba nadefinovat, pokud má být součástí grafického designu a funkcionality skutečně dvouúrovňové zobrazení seznam – detail. V praxi toto nemusí být vždy požadováno, pokud jsou např. popisky akcí tvořeny jednou či dvěma větami, je možné tyto popisky zobrazovat přímo v seznamu a vytvářet speciální typ stránky pro zobrazení informací o jedné akci pak není nutné.

Nastavení pro seznam akcí

Pomocí nastavení Seznam akcí v předpisu se definuje vzhled stránky prezentující seznamy akcí.

Stránka se zobrazuje na veřejně přístupné části prezentace pomocí skriptu /scripts/modules/diary/default.php?calid=xxx a může obsahovat následující "aktivní" elementy (tj. prvky, do kterých se doplňují nějaká data dynamicky ve chvíli požadavku na zobrazení:

  • Seznam akcí
  • Seznam kategorií akcí
  • Měsíční kalendář pro výběr nějakého data
  • Vyhledávací formulář
  • Stránkovací lištu

Ve formuláři Seznam akcí se definuje:

  • Předloha – šablona pro zobrazení seznamu akcí
  • Styl seznamu akcí – WebToDate styl, kterým se formátují seznamy akcí
  • Styl seznamu kategorií - WebToDate styl, kterým se formátuje seznam kategorií
  • Styl měsíčního kalendáře - WebToDate styl, kterým se formátuje měsíční kalendář.

Pro měsíční kalendář lze kromě stylu zvolit, zda se čísla dnů budou vždy zobrazovat jako dvojciferná (tj. první den v měsíci bude zobrazen jako "01") nebo bez úvodní nuly.

Postup vytvoření prvních tří prvků je popsán v kapitole Vytvoření výpisu seznamu akcí, základní podoba stylu pro měsíční kalendář se nejjednodušeji získá tak, že se styl vygeneruje pomocí funkce NástrojeMěsíční kalendář.

Pro toto zobrazení je třeba vždy definovat minimálně předlohu a seznam akcí, zobrazení ostatních výše uvedených elementů není povinné a nemusí být definováno ani používáno.

Pokud např. nechcete, aby se seznam kategorií v této stránce zobrazoval, stačí, aby odpovídající klíčové slovo nebylo v HTML kódu předlohy uvedeno.

Nastavení pro zobrazení jedné akce

Druhým nastavením v předpisu je Jedna akce, tento formulář definuje podobu stránky zobrazující detailní zobrazení záznamu jedné akce z kalendáře. Taková stránka se na veřejně přístupné části prezentace zobrazuje pomocí URL /scripts/modules/diary/action.php?id=xxx, kde xxx je ID položky kalendáře. Tato stránka může zobrazovat následující prvky:

  • Pole jednoho záznamu kalendáře akcí (název akce, popis atd.)
  • Seznam kategorií aktuálního kalendáře
  • Měsíční kalendář pro výběr nějakého data
  • Seznam kategorií, ve kterých se akce nachází
  • Seznam témat, ve kterých se akce nachází

Ve formuláři Jedna akce se definuje:

  • Předloha – šablona pro zobrazení detailních informací o jedné akci
  • Styl seznamu kategorií - WebToDate styl, kterým se formátuje seznam kategorií kalendáře
  • Styl měsíčního kalendáře - WebToDate styl, kterým se formátuje měsíční kalendář; dále lze zvolit, zda se čísla dnů v kalendáři zobrazují vždy dvojciferně nebo běžným způsobem
  • Styl seznamu kategorií, ve kterých se akce nachází - může vypsat seznam kategorií aktuálního kalendáře, do kterých je akce zařazena
  • Styl seznamu témat, ve kterých se akce nachází - může vypsat seznam témat, do kterých je akce zařazena

Postup vytvoření definice této stránky je podobný jako pro seznam akcí popsaný v kapitole Začínáme. Pro vygenerování fragmentu, který obsahuje klíčová slova pro položky jedné akce, lze použít funkci NástrojeDetail akce.

Nastavení pro samostatný kalendář

Pomocí nastavení Samostatný kalendář předpisu lze definovat styl, kterým se generuje měsíční kalendář na jiných stránkách, než na stránkách zobrazovaných přes skripty tohoto modulu.

V tomto nastavení se vybírá pouze styl, kterým se tento měsíční kalendář formátuje. Samotná funkce je podrobně popsána v kapitole Extenze pro generování měsíčního kalendáře.

Administrace

Práva

Pomocí funkce Práva se nastavují týmy, které mají přístup k datům Kalendáře akcí a mohou zadávat a měnit akce. Seznam oprávněných týmů se spravuje způsobem obvyklým v modulech WebToDate. Každý kalendář může mít vlastní seznam oprávněných týmů.

Definice kalendářů

Pomocí funkce Kalendáře se zakládají nové kalendáře, které pak fungují jako samostatná úložiště seznamů akcí.

Součástí nastavení kalendáře je systémový název, výchozí jazyk (nezobrazuje se, pokud je ve WebToDate nadefinován jen jeden) a předpis. Jako výchozí jazyk se volí jazyk akcí, ve kterém se do tohoto kalendáře zadávají akcí nejčastěji. Systémový název je název zobrazovaný pouze v redakčním rozhraní modulu. Pokud se má název kalendáře zobrazovat v prezentační části pomocí příslušného klíčového slova modulu, je třeba zadat i Lokalizovaný název, který se zadává zvlášť pro každý jazyk ve spodní části formuláře.

Všechna nastavení lze dodatečně měnit, kalendář lze ale odstranit jen pokud neobsahuje žádné akce ani kategorie.

Stavy akcí

Funkce Stavy akcí definuje seznam stavů, které lze pro akce zvolit. Tato funkce má následující možnosti:

  • Lze nadefinovat libovolný počet stavů. Seznam stavů je společný pro všechny kalendáře.
  • Využívání stavů není povinné. Pokud je nadefinován alespoň jeden stav, objevuje se výběr stavu formou rozevírací nabídky ve formuláři pro zadávání akcí. I tam je ale pak výběr stavu volitelný, akce nemusí být označena stavem.
  • V prezentační části existují klíčová slova pro název stavu a ID stavu (lze tedy v seznamu akcí či v detailní stránce pro jednu akci vypsat její stav) a dále lze pomocí parametru v URL vypsat jen akce s požadovaným stavem.

Možné nasazení je např. při publikaci kalendáře seminářů či podobných událostí, kde lze pomocí stavu vyznačit, zda jsou na seminář ještě volná místa či zda je počet míst již zaplněn apod. Obecně se ovšem jedná v zásadě o další nezávislou kategorizací akcí společnou pro všechny kalendáře.

V horní části okna se v administračním rozhraní objevuje seznam stavů, ve spodní části formulář pro vložení či úpravu stavu. Opět se zadává Systémový název pro zobrazení v redakční části modulu a Lokalizovaný název pro každý jazyk pro zobrazení názvu stavu v prezentační části.

Stavy lze bez omezení přidávat a přejmenovávat, smazat jen když stav není použit u žádné akce.

Témata

Funkce Témata umožňuje nadefinovat seznam témat jako další možnost nezávislé kategorizace akcí. Vlastnosti témat jsou následující:

  • Seznam témat je společný pro všechny kalendáře
  • Zařazení do témat není povinné, pro každou akci lze zvolit žádné, jedno nebo i více témat
  • V prezentační vrstvě lze podle témat zobrazit seznam akcí (zadáním příslušného parametru v URL), je podporováno i zobrazení a výběr ze seznamu témat ve vyhledávacím formuláři.

V horní části okna se v administračním rozhraní objevuje seznam témat, ve spodní části formulář pro vložení či úpravu tématu. Opět se zadává Systémový název pro zobrazení v redakční části modulu a Lokalizovaný název pro každý jazyk pro zobrazení názvu tématu v prezentační části.

Témata lze bez omezení přidávat a přejmenovávat, smazat jen když téma není použito u žádné akce.

Nástroje

V sekci Nástroje nabídky se nacházejí následující funkce:

  • Formuláře – vygeneruje WebToDate fragment, v jehož těle je funkční kód vyhledávacího formuláře pro akce, který lze použít v předloze pro seznam akcí.
  • Detail akce – vygeneruje WebToDate fragment, v jehož těle je HTML kód s klíčovými slovy pro položky záznamů v kalendáři akcí, fragment je určen pro umístění v předloze pro zobrazení jedné akce.
  • Měsíční kalendář – vygeneruje WebToDate styl, kterým se formátuje zobrazení měsíčního kalendáře. Měsíční kalendář lze zobrazovat v seznamu akcí i ve stránce zobrazující detail jedné akce.

Data

Kategorie

Pomocí funkce Kategorie se spravuje seznam kategorií obdobným způsobem jako jiné seznamy položek ve WebToDate.

Každá kategorie patří k právě jednomu kalendáři, po uložení nelze volbu kalendáře v kategorii měnit. Zadávají se systémové a lokalizované názvy podobně jako u témat či stavů. Přidávat a měnit kategorie lze bez omezení, ale s ohledem na přístupová práva:

  1. Pokud se kategorie nachází v kalendáři, ke kterému nemá uživatel přístup, lze formulář zobrazit, ale nelze ukládat změny.
  2. Pro založení nové kategorie se v rozevírací nabídce Kalendář nabízejí pouze ty kalendáře, ke kterým má uživatel přístup.

Mazat kategorie lze jen tehdy, pokud v kategorii není žádná akce.

Svátky

Pro zobrazování měsíčního kalendáře je podporováno vyznačování státních svátků. Pro tyto účely je třeba mít informace o státních svátcích v databázi modulu. Princip řešení je následující:

  • V databázi modulu lze uchovávat seznam svátků. Ukládá se datum, název a jazyk. Nejde o opakující se události, pro každý rok se zadávají svátky zvlášť.
  • Není k dispozici interface pro ruční zadávání svátků. Místo toho se provádí import seznamu svátků. Pro tyto účely se používá formát .hol, který používá např. aplikace MS Outlook.

Formát .hol je jednoduchý textový soubor s cca následujícím obsahem:

[Státní svátky ČR] 28
Den obnovy samostatného českého státu (1993), 2008/1/1
Den obnovy samostatného českého státu (1993), 2009/1/1
Den obnovy samostatného českého státu (1993), 2010/1/1
Den obnovy samostatného českého státu (1993), 2011/1/1
Den vítězství (1945), 2008/5/8
Den vítězství (1945), 2009/5/8
Den vítězství (1945), 2010/5/8
Den vítězství (1945), 2011/5/8
Den slovanských věrozvěstů Cyrila a Metoděje (kolem 863), 2008/7/5
Den slovanských věrozvěstů Cyrila a Metoděje (kolem 863), 2009/7/5
Den slovanských věrozvěstů Cyrila a Metoděje (kolem 863), 2010/7/5
Den slovanských věrozvěstů Cyrila a Metoděje (kolem 863), 2011/7/5
[Ostatní svátky ČR] 24
Nový rok, 2008/1/1
Nový rok, 2009/1/1
Nový rok, 2010/1/1
Nový rok, 2011/1/1
Velikonoční pondělí, 2008/3/24
Velikonoční pondělí, 2009/4/13
Velikonoční pondělí, 2010/4/5
Velikonoční pondělí, 2011/4/25
Svátek práce, 2008/5/1
Svátek práce, 2009/5/1
Svátek práce, 2010/5/1
Svátek práce, 2011/5/1

Formát má následující vlastnosti:

  • Každý řádek souboru je buď uvozující hlavička kategorie svátků, nebo jedním záznamem. Uvozující hlavička má v hranatých závorkách název kategorie a následuje počet položek v tomto bloku.
  • Záznam má název a následuje datum ve formátu yyyy/m/d, datum je odděleno čárkou.
  • Jako rozšíření tohoto formátu modul připouští řádek, který začíná čárkou a následuje datum, takový řádek vyznačuje, že pro dané datum a jazyk se existující záznam má z tabulky odstranit.

Soubor s kalendářem svátků je tedy třeba sestavit předem. Následně se importuje pomocí formuláře pro vložení seznamu svátků.

Volí se jazyk, pro který chceme import provést, vybere se soubor na lokálním disku ve formátu .hol a tlačítkem se spustí import. Po provedení importu se zobrazuje informační hlášení o počtu importovaných záznamů nebo případně chybové hlášení. Pokud se mají pro různé jazyky zobrazovat stejné svátky, stačí importovat stejný soubor vícekrát s různou volbou jazyka, názvy svátků se importují, ale v prezentační části se nikde nepoužívají.

Správa obsahu kalendáře

Pomocí funkce DataKalendářezvolený kalendář se spravují vlastní data modulu, neboli záznamy v kalendáři akcí.

Nová položka se přidává pomocí odkazu Přidat v pravé horní části okna prohlížeče. Povinně se pro každou akci zadává pouze Název. Pokud není zadán Začátek akce nebo Konec akce, doplní se automaticky aktuální datum. Pokud není vybrán jiný kalendář, akce se vloží do kalendáře, který byl vybrán z nabídky modulu. Není-li ručně změněn jazyk, vybere se automaticky jazyk označený v tomto kalendáři jako výchozí.

Formulář pro úpravy akce se skládá ze dvou záložek - Text a Vlastnosti. V záložce Text se vyplňují následující pole:

  • Název - název akce, nutné vyplnit
  • Stručný popis - stručný popis bez omezení délky
  • Popis - textový popis akce bez omezení délky textu
  • Automatické řádkování - pokud je zaškrtnuto, formátuje se popis při zobrazení jedním z prezentačních skriptů stejným způsobem jako tělo zprávy stejnou funkcí v samotném WebToDate – konce odstavců se nahrazují znaky definovanými v globálních předvolbách WebToDate (typicky <p>, </p>).

V záložce Vlastnosti se vyplňují následující pole:

  • Začátek akce - datum a čas začátku
  • Konec akce - datum a čas konce akce
  • Zařazení - v této funkci se řadí akce do kalendářů a kategorií. Vedle popisku formulářového pole se zobrazuje textově seznam kalendářů a kategorií, ve kterých se akce nachází. Tlačítkem Změnit se otevírá dialogové okno, ve kterém se pomocí zaškrtávacích okének kalendáře a akce vybírají. Je třeba vybrat alespoň jeden kalendář, výběr kategorií není povinný.
  • Témata - seznam témat, ve kterých se akce nachází, se zobrazuje v poli vedle popisku. Tlačítkem Vybrat se zobrazí dialog, ve kterém se zaškrtávacími okénky vybírají témata, do kterých akce patří. Zařazení akce do témat není povinné.
  • Jazyk - v rozevírací nabídce se vybírá právě jeden jazyk akce. Akce mohou mít jazykové verze, viz popis v této kapitole níže.
  • Stav akce - rozevírací nabídka se stavem akce, výchozí hodnota je "žádný". Význam stavů akcí je popsán v kapitole [#_Nastavení Nastavení]. Výběr stavů se zobrazuje pouze v případě, že je definován alespoň jeden stav.
  • Umístění - textové pole, do kterého lze zadat místo konání akce
  • Odkaz 1 - volně definovatelné pole, do kterého lze zadat např. nějaké další URL. Obsahu pole odpovídá klíčové slovo, kterým lze zobrazit obsah tohoto pole v prezentační části.
  • Odkaz 2 - analogický význam jako Odkaz 1
  • Odkaz 3 - analogický význam jako Odkaz 1

Položky lze přidávat, měnit i odebírat dle potřeby bez omezení. Pomocí odkazu Vyhledat v pravém horním rohu okna prohlížeče lze zobrazit vyhledávací formulář, hledat lze podle ID akce, textu, jazyka, kalendáře, kategorie, tématu, stavu a data od – do.


Speciální možností pro tvorbu stránek s akcemi, které v popisu obsahují bohaté formátování včetně např. obrázků apod. je funkce Vložit zprávu vedle pole Popis resp. Stručný popis. Tato funkce zobrazí dialogové okno pro výběr zprávy / zdroje / fragmentu z databáze WebToDate.

Dialogové okno se obsluhuje podobně jako vyhledávání ve zprávách WebToDate. Základní rozdíl je v tom, že šipka v levém sloupci seznamu zpráv vkládá do textového pole s popisem klíčové slovo typu <!--WTD_NEWS(xxx)-->, za které se pak při zobrazení akce dosazuje kompletní zobrazení zprávy / zdroje / fragmentu jako kdyby byl zobrazován přes prezentační skript /scripts/detail.php WebToDate.

Aby byla tato funkce využitelná, je tedy třeba:

  • Vytvořit předlohu pro zprávy, která ze zpráv používaných k tomuto účelu zobrazuje jen žádoucí pole (např. jen tělo zprávy), nemá smysl, aby předloha zobrazovala navigační elementy a další prvky layoutu celého webu.
  • Zvolit pro ukládání takových zpráv vhodnou kategorii ve stromu kategorií, která nebude fulltextově prohledávaná.

Pole pro popis akce pak může obsahovat buď jen jednu, nebo několik značek typu <!--WTD_NEWS(xxx)-->, nebo jen prostý text s popisem, nebo kombinaci obojího. I když do popisu lze ručně vkládat HTML formátování, při potřebě složitějšího bohatě formátovaného textu zobrazujícího se ve stránce s akcí je vhodnější využít tuto funkci Vložit zprávu.


V horní části formuláře jsou kromě běžných tlačítek pro uložení či zmazání zprávy tlačítka

  • Náhled - zobrazí v novém okně prohlížeče náhled detailu akce, neboli stránku s URL /scripts/modules/diary/action.php?id=xxx&calid=yyy
  • Duplikovat - zobrazí dialog pro duplikaci resp. vytvoření jazykové verze akce

V tomto dialogu tlačítko Duplikovat vytvoří prostou kopii dané akce, tlačítko Nová verze vytvoří jazykovou verzi ve vybraném jazyce. V rozevírací nabídce pro výběr jazyka se nabízejí jen ty jazyky, pro které ještě pro danou akci neexistuje jazyková verze. Takto vytvořená jazyková verze se liší zvoleným jazykem a přejmenovaným nadpisem, jinak jsou údaje v ní identické jako v duplikované akci, typicky je třeba přeložit textové popisky akce.

Práce s jazykovými verzemi je možná ve spodní části formuláře v záložce Vlastnosti. Jsou k dispozici následující funkce:

  • Přejít na akci v jazyce - pokud existuje pro aktuálně zobrazenou akci nějaká jazyková verze, zobrazí se tento text a rozevírací nabídka s jazyky, pro které jazykové verze existují. Přechod na formulář pro úpravu vybrané jazykové verze se potvrzuje tlačítkem OK.
  • Připojit akci s ID - tato možnost se použije v případě, že do databáze již byla zadána nějaká akce jako samostatná (bez jazykových verzí) a je třeba ji označit jako jazykovou verzi právě upravované akce. Do textového pole se zadá ID akce, kterou je třeba s aktuálně zobrazenou akcí propojit a jazyk této připojované akce. Pokud akce má verze ve všech jazycích, tato možnost se nenabízí a zobrazí se text Akce má verze ve všech jazycích.
Poznámka: je třeba si uvědomit, že jazykové verze akcí jsou v podstatě samostatné záznamy, kde existuje pouze informace o vzájemném propojení. Z toho vyplývá, že změna údajů v jedné verzi (např. datum a čas konání) nemění ten samý údaj v ostatních jazykových verzích akce.

Veřejné skripty

Prezentační skripty

V adresáři /scripts/modules/diary/ se nacházejí veřejně přístupné prezentační skripty modulu. Jedná se o následující skripty:


Skript Funkce
default.php Skript vypisuje seznam akcí
action.php Skript vypisuje detail jedné akce
ical.php Skript pro export do formátu iCalendar

Seznam akcí je vždy tříděn podle data vzestupně. Pokud je skript volán bez dalších upřesňujících parametrů, zobrazí se akce, které právě probíhají nebo nastanou v budoucnu, starší akce lze zobrazit pouze pomocí vyhledávání, resp. zadání počátečního data v URL.

Pro další seznamy položek, které mohou skripty vypisovat, platí, že se třídí podle systémových názvů položek vzestupně. Jedná se o následující pomocné seznamy:

  • Seznam kategorií kalendáře
  • Seznam kategorií, ve kterých se akce nachází
  • Seznam témat, ve kterých se akce nachází
  • Seznam kategorií jako rozevírací nabídka ve vyhledávacím formuláři
  • Seznam témat jako rozevírací nabídka ve vyhledávacím formuláři

Klíčová slova modulu - seznam akcí

V následujících tabulkách jsou uvedeny seznamy klíčových slov, která lze používat v předlohách nebo ve WebToDate stylech.

Klíčová slova pro tělo stylu pro seznam akcí

klíčová slova použitelná v těle stylu pro seznam akcí
Klíčové slovo Význam Poznámka
<!--WTD_DIARY(NAME)--> Název akce
<!--WTD_DIARY(DIARYID)--> ID akce
<!--WTD_DIARY(DATEFROM)--> Datum od
<!--WTD_DIARY(TIMEFROM)--> Čas od
<!--WTD_DIARY(DATETO)--> Datum do
<!--WTD_DIARY(TIMETO)--> Čas do
<!--WTD_DIARY(DESCRIPTION)--> Popis akce
<!--WTD_DIARY(DIARYURL)--> URL pro zobrazení detailu akce
<!--WTD_DIARY(SHORTDESCRIPTION)--> Krátký popis akce
<!--WTD_DIARY(LOCATION)--> Umístění
<!--WTD_DIARY(STATUSNAME)--> Název stavu akce
<!--WTD_DIARY(STATUSID)--> ID stavu akce
<!--WTD_DIARY(CALNAME)--> Název aktuálně zobrazovaného kalendáře
<!--WTD_DIARY(CALID)--> ID aktuálně zobrazovaného kalendáře

Jednoduchá definice stylu pro seznam akcí je tedy např. následující:

Hlavička

<table class="action_table">
<tr><th>Položka</th><th>Od</th><th>Do</th><th>Místo konání</th></tr>

Tělo

<tr>
<td><a href="<!--WTD_DIARY(DIARYURL)-->"><!--WTD_DIARY(NAME)--></a></td>
<td><!--WTD_DIARY(DATEFROM)--></td>
<td><!--WTD_DIARY(DATETO)--></td>
<td><!--WTD_DIARY(LOCATION)--></td>
</tr>

Patička

</table>

Klíčová slova pro předlohu pro seznam akcí

Klíčová slova použitelná v předloze pro seznam akcí
Klíčové slovo Význam Poznámka
<!--WTD_DIARY(LIST)--> Seznam akcí
<!--WTD_DIARY(NAVIG)--> Navigační lišta
<!--WTD_DIARY(LISTCATEGORIES)--> Seznam kategorií kalendáře
<!--WTD_DIARY(CALENDAR)--> Měsíční kalendář
<!--WTD_DIARY(CALNAME)--> Název kalendáře
<!--WTD_DIARY(CALID)--> ID kalendáře
<!--WTD_DIARY(PATTERNID)--> ID předpisu Používá se ve vyhledávacím formuláři, pokud se z URL vynucuje jiný předpis pro zobrazení, jinak nemá smysl použít
<!--WTD_DIARY(CATEGORY)--> Název zobrazované kategorie Pro výpis toho, co se právě zobrazuje za seznam
<!--WTD_DIARY(CATEGORYID)--> ID zobrazované kategorie Pro výpis toho, co se právě zobrazuje za seznam
<!--WTD_DIARY(THEME)--> Název zobrazovaného tématu Pro výpis toho, co se právě zobrazuje za seznam
<!--WTD_DIARY(THEMEID)--> ID zobrazovaného tématu Pro výpis toho, co se právě zobrazuje za seznam
<!--WTD_DIARY(STATUSNAME)--> Název zobrazovaného stavu Pro výpis toho, co se právě zobrazuje za seznam
<!--WTD_DIARY(STATUSID)--> ID zobrazovaného stavu Pro výpis toho, co se právě zobrazuje za seznam
<!--WTD_DIARY(LISTDATEFROM)--> Zobrazuje první den kritéria pro výpis informací, jaký časový interval je zobrazován Lze použít i v hlavičce či patičce stylu seznamu akcí
<!--WTD_DIARY(LISTDATETO)--> Zobrazuje poslední den kritéria pro výpis informací, jaký časový interval je zobrazován Lze použít i v hlavičce či patičce stylu seznamu akcí

Výše uvedená klíčová slova pro výpis toho, co se právě zobrazuje, mohou informovat o tom, zde se aktuálně vypisují akce z nějakého tématu či kategorie apod. Obsah se za ně dosazuje pouze v případě, že korespondující parametr je uveden v URL skriptu. Pokud tedy např. je zobrazen seznam /scripts/modules/diary/default.php?calid=1&categid=2, dosadí se za <!--WTD_DIARY(CATEGORYID)--> číslo 2 a za <!--WTD_DIARY(CATEGORY)--> lokalizovaný název kategorie s ID=2, pro URL /scripts/modules/diary/default.php?calid=1 se za obě uvedená klíčová slova dosadí prázdný řetězec.

Možné jsou i konstrukce

<!--WTD_IF(CATEGORYNOTNULL,"Akce z kategorie <!--WTD_DIARY(CATEGORY)-->")-->

<!--WTD_IF(CATEGORYNULL,"Akce ze všech kategorií")-->

Analogicky pak výrazy

<!--WTD_IF(THEMENOTNULL,"…")-->

<!--WTD_IF(THEMENULL,"…")-->

<!--WTD_IF(STATUSNOTNULL,"…")-->

<!--WTD_IF(STATUSNULL,"…")-->

vkládají obsah podle toho, zda je výpis filtrován na nějaké téma či stav.


Pokud má daná akce stejný datum začátku i konce (čas začátku a konce akce se může lišit), může být účelné vypsat toto datum pouze jednou a nikoli jako dvě stejná data začátku a konce. K tomu slouží konstrukce

<!--WTD_IF(SAMEDATE,"…")--> - obsah se vloží, pokud je datum začátku a konce akce stejné

<!--WTD_IF(NOTSAMEDATE,"…")--> - obsah se vloží, pokud se data začátku a konce akce liší.

Vypisujeme-li tedy seznam akcí jako HTML tabulku, může se ve stylu pro seznam položek toto využít např. následovně:

<!--WTD_IF(SAMEDATE,"<td colspan="2" align="center"> <!--WTD_DIARY(DATEFROM)--></td>")-->
<!--WTD_IF(NOTSAMEDATE,"<td><!--WTD_DIARY(DATEFROM)--></td><td><!--WTD_DIARY(DATETO)--></td>")-->

Pokud se zobrazuje seznam akcí a je dáno časové omezení, je možné vypisovat nad seznamem akcí informaci o tomto časovém omezení. Pokud bude vypisován jeden den tak nadpis může být např. "Akce konané dne 21.1.2001", pokud více dnů tak "Akce konané dne 21.1. 2001 – 23.1.2001". První den je známý vždy, pokud se např. pro skript neuvede žádný časový parametr, vypisují se akce od aktuálního dne. Poslední den kritéria může a nemusí být známý, proto lze navíc použít konstrukci

<!--WTD_IF(LISTDATETONOTNULL,"…")-->, které vkládá obsah v případě, že koncové datum je známé. Výše uvedené zobrazení nadpisu seznamu lze tedy zajistit např. kódem

Akce konané dne <!--WTD_DIARY(LISTDATEFROM)--><!--WTD_IF(LISTDATETONOTNULL," - <!--WTD_DIARY(LISTDATETO)-->")-->


Jednoduchý kód předlohy pro seznam akcí tedy vypadá např. následovně:

<h2><!--WTD_DIARY(CALNAME)--></h2>
<!--WTD_IF(CATEGORYNOTNULL,"<p>Akce z kategorie <!--WTD_DIARY(CATEGORY)--></p>")-->
<!--WTD_IF(CATEGORYNULL,"<p>Výpis akcí ze všech kategorií</p>")-->
<!--WTD_IF(THEMENOTNULL,"<p>Akce z tématu<!--WTD_DIARY(THEME)--></p>")-->
<!--WTD_IF(THEMENULL,"<p>Výpis akcí ze všech témat</p>")-->
<div><!--WTD_DIARY(LIST)--></div>
<div><!--WTD_DIARY(NAVIG)--></div>
<div><!--WTD_DIARY(LISTCATEGORIES)--></div>

Tento kód zobrazuje popořadě:

  1. Název kalendáře
  2. Pokud se vypisuje seznam z nějaké konkrétní kategorie či tématu, tak název této kategorie resp. tématu
  3. Vlastní seznam akcí
  4. Stránkovací lištu
  5. Seznam kategorií aktuálního kalendáře.

Klíčová slova pro vyhledávací formulář

V předloze pro seznam akcí se může rovněž vyskytovat vyhledávací formulář:

Klíčová slova pro vyhledávací formulář – lze použít v předloze pro seznam akcí
Klíčové slovo Význam Poznámka
<!--WTD_DIARY(SEARCHTEXT)--> Vyhledávaný text
<!--WTD_DIARY(SEARCHDATEFROM)--> Datum od
<!--WTD_DIARY(SEARCHDATETO)--> Datum do
<!--WTD_DIARY(CATEGORIES)--> Seznam kategorií Vytvoří jednotlivé <option> elementy pro všechny kategorie kalendáře
<!--WTD_DIARY(THEMES)--> Seznam témat Vytvoří jednotlivé <option> elementy pro všechna definovaná témata
<!--WTD_DIARY(SEARCHLOCATION)--> Umístění
<!--WTD_DIARY(LOCALEID)--> ID jazyka
<!--WTD_DIARY(FORMURL)--> URL pro hledání Lze použít v atributu action formuláře

Pomocí konstrukce WTD_IF lze specifikovat chybová hlášení. Např. se jedná o konstrukci

<!--WTD_IF(WRONGDATEFROM,"Chybně vložený formát v políčku s počátečním datem.")-->

Lze použít tyto události dle následující tabulky:


Chybová a informační hlášení související s vyhledáváním
Klíčové slovo Význam Poznámka
WRONGDATEFROM chybně zadané datum od
WRONGDATETO chybně zadané datum do
NOTHINGFOUND podmínkám nevyhovuje žádný záznam

Klíčová slova modulu - detail akce

Klíčová slova pro předlohu detailu akce

V předloze pro detail akce se používají následující klíčová slova:


Klíčová slova použitelná v předloze pro detail akce
Klíčové slovo Význam Poznámka
<!--WTD_DIARY(NAME)--> Název akce
<!--WTD_DIARY(DIARYID)--> ID akce
<!--WTD_DIARY(DATEFROM)--> Datum od
<!--WTD_DIARY(TIMEFROM)--> Čas od
<!--WTD_DIARY(DATETO)--> Datum do
<!--WTD_DIARY(TIMETO)--> Čas do
<!--WTD_DIARY(DESCRIPTION)--> Popis akce
<!--WTD_DIARY(SHORTDESCRIPTION)--> Krátký popis akce
<!--WTD_DIARY(LOCATION)--> Umístění
<!--WTD_DIARY(STATUSNAME)--> Název stavu akce
<!--WTD_DIARY(STATUSID)--> ID stavu akce
<!--WTD_DIARY(CALNAME)--> Název kalendáře Zobrazuje lokalizovaný název kalendáře, ale jen pokud je v URL specifikováno ID kalendáře nebo je akce jen v jednom kalendáři; jinak se dosadí prázdný řetězec
<!--WTD_DIARY(CALID)--> ID kalendáře Vkládá ID kalendáře, ale jen pokud je v URL specifikováno ID kalendáře nebo je akce jen v jednom kalendáři; jinak se dosadí prázdný řetězec
<!--WTD_DIARY(LINK1)--> Odkaz 1
<!--WTD_DIARY(LINK2)--> Odkaz 2
<!--WTD_DIARY(LINK3)--> Odkaz 3
<!--WTD_DIARY_LANG(id_akce,kód_jazyka)--> Odkaz na jazykovou verzi Vloží URL jazykové verze akce s ID id_akce v jazyce kód_jazyka
<!-- WTD_DIARY_LANG(*,kód_jazyka)--> Odkaz na jazykovou verzi Vloží URL jazykové verze právě zobrazované akce v jazyce kód_jazyka
<!--WTD_DIARY(LISTCATEGORIES)--> Seznam kategorií kalendáře
<!--WTD_DIARY(CURRENTCATEGORIES)--> Seznam kategorií, ve kterých se akce nachází
<!--WTD_DIARY(CURRENTTHEMES)--> Seznam témat, ve kterých se akce nachází

Rovněž jsou možné konstrukce typu

<!--WTD_IF(LINK1NOTNULL,"…")-->

<!--WTD_IF(LINK1NULL,"…")-->

<!--WTD_IF(SHORTDESCRIPTIONNULL,"…")-->

pro všechna pole, která nejsou v záznamu akce povinná. Kód v uvozovkách se tedy vloží jen v případě, že pole uvedené ve výrazu je resp. není vyplněno. Použití je tedy např.:

<!--WTD_IF(STATUSNOTNULL,"<br /><em><!--WTD_DIARY(STATUSNAME)--></em>")-->

Stejně jako v seznamu akcí fungují výrazy

<!--WTD_IF(SAMEDATE,"…")--> - obsah se vloží, pokud je datum začátku a konce akce stejné

<!--WTD_IF(NOTSAMEDATE,"…")--> - obsah se vloží, pokud se data začátku a konce akce liší.


Pro odkazy na jazykové verze zobrazované akce jsou možné konstrukce

<!--WTD_IF(DIARY_LANGNOTNULL,ID akce,kód jazyka,"vkládaný HTML kód")-->

<!--WTD_IF(DIARY_LANGNULL,ID akce,kód jazyka,"vkládaný HTML kód")-->

ID akce zde může být buď číslo, nebo znak *. Příklad podmíněného vložení odkazu na jazykovou verzi v angličtině pokud existuje, je tedy:

<!--WTD_IF(DIARY_LANGNOTNULL,*,EN,"<a href="<!--WTD_DIARY_LANG(*,EN)-->">Anglická verze popisu akce</a>")-->

Klíčová slova pro styl seznamu kategorií

Ve stylu pro seznam kategorií, ve kterých se akce nachází, lze použít klíčová slova


Klíčová slova pro seznam kategorií, ve kterých se akce nachází, a seznam všech kategorií kalendáře
Klíčové slovo Význam Poznámka
<!--WTD_DIARY(CATEGORY)--> Název kategorie
<!--WTD_DIARY(CATEGORYID)--> ID kategorie
<!--WTD_DIARY(CATEGORYURL)--> URL vypisující akce dané kategorie

Klíčová slova pro styl seznamu témat

Ve stylu pro seznam témat, ve kterých se akce nachází, lze použít:

Klíčová slova pro seznam témat, ve kterých se akce nachází
Klíčové slovo Význam Poznámka
<!--WTD_DIARY(THEME)--> Název tématu
<!--WTD_DIARY(THEMEID)--> ID tématu
<!--WTD_DIARY(THEMEURL)--> URL vypisující akce daného tématu

Kód předlohy pro detail akce tedy může vypadat např. následovně:

<h3><!--WTD_DIARY(NAME)--></h3>
<p>Od <!--WTD_DIARY(DATEFROM)--> do <!--WTD_DIARY(DATETO)--> 
<!--WTD_IF(LOCATIONNOTNULL,"(<!--WTD_DIARLOCATION)-->)")--></p>
<p><!--WTD_DIARY(DESCRIPTION)--></p>
<p><a href="/scripts/modules/diary/ical.php?id=<!--WTD_DIARY(DIARYID)-->">
Načíst do Outlooku</a></p>
<p><!--WTD_DIARY(CURRENTCATEGORIES)--></p>
<p><!--WTD_DIARY(CURRENTTHEMES)--></p>
<p><!--WTD_DIARY(LISTCATEGORIES)--></p>

Tento kód vypisuje popořadě:

  1. Název akce
  2. Datum od - do, pokud je vyplněno umístění, tak umístění
  3. Popis akce
  4. Odkaz na export akce do formátu iCalendar
  5. Seznam kategorií, ve kterých se akce nachází
  6. Seznam témat, ve kterých se akce nachází
  7. Seznam všech kategorií aktuálního kalendáře

Klíčová slova pro formátování

Modul dále podporuje Klíčová slova pro formátování typu WTD_FORMAT, tedy např.

<!--WTD_FORMAT(SMAXLEN,"formátovací předpis","ořezávaný text")-->
<!--WTD_FORMAT(DATE,"formátovací předpis","formátovaný časový údaj")-->

apod.

Klíčová slova pro zobrazení měsíčního kalendáře

Následující klíčová slova se používají pro formátování měsíčního kalendáře. Ten je v předloze reprezentován jediným klíčovým slovem <!--WTD_DIARY(CALENDAR)-->, celé formátování kalendáře je definováno jedním WebToDate stylem, ve kterém lze následující klíčová slova použít.

Klíčová slova pro hlavičku a patičku stylu měsíčního kalendáře

Klíčová slova pro hlavičku či patičku stylu
Klíčové slovo Význam
<!--WTD_CALENDAR(CURRENTMONTHNAME)--> Jméno zobrazovaného měsíce
<!--WTD_CALENDAR(CURRENTMONTHABBREV)--> Zkratka zobrazovaného měsíce
<!--WTD_CALENDAR(CURRENTMONTHNUMBER)--> Číslo zobrazovaného měsíce
<!--WTD_CALENDAR(CURRENTYEARNAME)--> Zobrazovaný rok
<!--WTD_CALENDAR(CURRENTYEARNUMBER)--> Číslo právě zobrazovaného roku
<!--WTD_CALENDAR(PREVMONTHLINK)--> Odkaz na zobrazení předcházejícího měsíce
<!--WTD_CALENDAR(NEXTMONTHLINK)--> Odkaz na zobrazení následujícího měsíce
<!--WTD_CALENDAR(PREVYEARLINK)--> Odkaz na zobrazení předcházejícího roku
<!--WTD_CALENDAR(NEXTYEARLINK)--> Odkaz na zobrazení následujícího roku
<!--WTD_CALENDAR(CURRENTMONTHOFFSET)--> Posun v měsících zobrazovaného měsíce vůči aktuálnímu měsíci
<!--WTD_CALENDAR(PREVMONTHOFFSET)--> Posun v měsících předchozího měsíce k zobrazovanému měsíci vůči aktuálnímu měsíci
<!--WTD_CALENDAR(NEXTMONTHOFFSET)--> Posun v měsících následujícího měsíce k zobrazovanému měsíci vůči aktuálnímu měsíci

Pokud např. chceme klepnutím na název měsíce v měsíčním kalendáři zobrazit akce z tohoto zvoleného měsíce, použijeme v hlavičce či patičce stylu odkaz ve tvaru

default.php?calid=1&calyear=<!--WTD_CALENDAR(CURRENTYEARNUMBER)-->&calmonth=<!--WTD_CALENDAR(CURRENTMONTHNUMBER)-->&calday=1

Klíčová slova <!--WTD_CALENDAR(CURRENTMONTHOFFSET)-->, <!--WTD_CALENDAR(PREVMONTHOFFSET)--> a <!--WTD_CALENDAR(NEXTMONTHOFFSET)--> má smysl použít v kombinaci s parametry cmonthfrom a cmonthto prezentačního skriptu pro seznam akcí, a to v případě, že chceme zajistit, aby přechod na jiný měsíc v měsíčním kalendáři znamenal automaticky i přechod na stejný měsíc ve výpisu seznamu akcí, a to bez výběru konkrétního dne v měsíčním kalendáři (tj. aby nebyl zvýrazněn konkrétní jeden den). V hlavičce stylu pro měsíční kalendář např. použijeme

<a href="<!--WTD_CALENDAR(PREVMONTHLINK)-->&cmonthfrom=<!--WTD_CALENDAR(PREVMONTHOFFSET)-->&cmonthto=<!--WTD_CALENDAR(PREVMONTHOFFSET)-->"
title="Předchozí měsíc">Předchozí měsíc</a>

jako odkaz na předchozí měsíc. Tento odkaz zajistí, že klikem na Předchozí měsíc se přejde na předchozí měsíc vůči aktuálně zobrazovanému nejen v měsíčním kalendáři, ale i v seznamu akcí. Analogicky

<a href="<!--WTD_CALENDAR(NEXTMONTHLINK)-->&cmonthfrom=<!--WTD_CALENDAR(NEXTMONTHOFFSET)-->&cmonthto=<!--WTD_CALENDAR(NEXTMONTHOFFSET)-->"
title="Nadcházející měsíc">Nadcházející měsíc</a>

reprezentuje odkaz na následující měsíc.

Následující kód je pak příklad toho, jak na jméno aktuálně zobrazovaného měsíce umístit odkaz, který po vyvolání vždy zobrazí seznam akcí probíhajících v tomto měsíci zobrazovaném v měsíčním kalendáři.

<a href="default.php?calyear=<!--WTD_CALENDAR(CURRENTYEARNUMBER)-->&calmonth=<!--WTD_CALENDAR(CURRENTMONTHNUMBER)-->&cmonthfrom=<!--WTD_CALENDAR(CURRENTMONTHOFFSET)-->
&cmonthto=<!--WTD_CALENDAR(CURRENTMONTHOFFSET)-->" target="_parent"><strong><!--WTD_CALENDAR(CURRENTMONTHNAME)--> <!--WTD_CALENDAR(CURRENTYEARNAME)--></strong></a>

Odkazy na předchozí a následující měsíc lze vkládat i podmíněně podle toho, zda ještě existují akce, které se časově nacházejí před nebo za právě zobrazovaným měsícem. Tyto konstrukce jsou

<!--WTD_IF(CALPREVMONTHEXIST,"...")--> - kód se vloží, pokud před aktuálním měsícem existuje nějaká akce

<!--WTD_IF(CALPREVMONTHNOTEXIST,"...")--> - kód se vloží, pokud před aktuálním měsícem neexistuje žádná akce

<!--WTD_IF(CALNEXTMONTHEXIST,"...")--> - kód se vloží, pokud za aktuálním měsícem existuje nějaká akce

<!--WTD_IF(CALNEXTMONTHNOTEXIST,"...")--> - kód se vloží, pokud za aktuálním měsícem neexistuje žádná akce

V praxi lze tedy použít např. konstrukci

<!--WTD_IF(CALPREVMONTHEXIST,"<a href="<!--WTD_CALENDAR(PREVMONTHLINK)-->">&laquo;</a>")-->
<!--WTD_IF(CALPREVMONTHNOTEXIST,"&nbsp;")-->

Existence akcí se v tomto případě vyhodnocuje přes všechny kalendáře najednou a nikoli přes jeden právě zobrazovaný kalendář.

Klíčová slova pro tělo stylu měsíčního kalendáře

Klíčová slova pro tělo stylu
Klíčové slovo Význam
<!--WTD_CALENDAR(DAYNUMBER)--> Pořadové číslo dne v měsíci
<!--WTD_CALENDAR(MONTHNUMBER)--> Pořadové číslo měsíce v roce
<!--WTD_CALENDAR(YEARNUMBER)--> Rok
<!--WTD_CALENDAR(DAYLINK)--> Odkaz umístěný na číslo dne
<!--WTD_IF(CALCELLEMPTY,"")--> Kód se vkládá v případě, že se jedná o prázdnou buňku na začátku a na konci měsíčního kalendáře
<!--WTD_IF(CALCELLDAYONLY,"")--> Kód se vkládá v případě, že je třeba vložit jen číslo dne bez odkazu a nejedná se o aktuální ani vybraný den
<!--WTD_IF(CALCELLDAYLINK,"")--> Kód se vkládá v případě, že je třeba vložit číslo dne s odkazem a nejedná se o aktuální ani vybraný den
<!--WTD_IF(CALCELLCURRENTDAYONLY,"")--> Kód se vkládá v případě, že je třeba vložit jen číslo dne bez odkazu a jedná se o aktuální den
<!--WTD_IF(CALCELLCURRENTDAYLINK,"")--> Kód se vkládá v případě, že je třeba vložit číslo dne s odkazem a jedná se o aktuální den
<!--WTD_IF(CALCELLSELECTEDDAYLINK,"")--> Kód se vkládá v případě, že je třeba vložit číslo dne s odkazem a jedná se o vybraný den
<!--WTD_IF(CALCELLWEEKENDONLY,"")--> Kód se vkládá v případě, že je třeba vložit jen číslo víkendového dne bez odkazu a nejedná se o aktuální ani vybraný den
<!--WTD_IF(CALCELLWEEKENDLINK,"")--> Kód se vkládá v případě, že je třeba vložit číslo víkendového dne s odkazem a nejedná se o aktuální ani vybraný den
<!--WTD_IF(CALCELLHOLIDAYONLY,"")--> Kód se vkládá v případě, že je třeba vložit jen číslo dne státního svátku bez odkazu a nejedná se o aktuální ani vybraný den
<!--WTD_IF(CALCELLHOLIDAYLINK,"")--> Kód se vkládá v případě, že je třeba vložit číslo dne státního svátku s odkazem a nejedná se o aktuální ani vybraný den

Jiné než výše uvedené kombinace kritérií nejsou podporovány, tj. pokud např. je daný den zároveň aktuální a zároveň státním svátkem, formátuje se jako aktuální den (nezávisle na tom, že je to zároveň svátek).

Pokud ve stylu nejsou výrazy CALCELLWEEKENDONLY resp. CALCELLWEEKENDLINK přítomny, formátují se víkendy pomocí CALCELLDAYONLY resp. CALCELLDAYLINK (tedy vizuálně se neodlišuje, že jde o víkendové dny).

Příklad stylu pro kalendář využívajícího výše zmíněná klíčová slova je následující:

Hlavička

<table border="1" cellspacing="0" cellpadding="2">
<tr>
<th colspan="7">
<!--WTD_CALENDAR(CURRENTMONTHNAME)--> <!--WTD_CALENDAR(CURRENTYEARNAME)-->
</th>
</tr>
<tr>
<th> Po </th>
<th> Út </th>
<th> St </th>
<th> Čt </th>
<th> Pá </th>
<th> So </th>
<th> Ne </th>
</tr>

Tělo

<!--WTD_IF(CALCELLEMPTY,"<td> </td>")-->
<!--WTD_IF(CALCELLDAYONLY,"<td><!--WTD_CALENDAR(DAYNUMBER)--></td>")-->
<!--WTD_IF(CALCELLDAYLINK,"<td><a href='<!--WTD_CALENDAR(DAYLINK)-->'>
<!--WTD_CALENDAR(DAYNUMBER)--></a></td>-->
<!--WTD_IF(CALCELLCURRENTDAYONLY,"<td bgcolor='orange'>
<!--WTD_CALENDAR(DAYNUMBER)--></td>")-->
<!--WTD_IF(CALCELLCURRENTDAYLINK,"<td bgcolor='orange'>
<a href='<!--WTD_CALENDAR(DAYLINK)-->'><!--WTD_CALENDADAYNUMBER)--></a></td>")-->
<!--WTD_IF(CALCELLSELECTEDDAYLINK,"<td bgcolor='red'>
<a href='<!--WTD_CALENDAR(DAYLINK)-->'><!--WTD_CALENDADAYNUMBER)--></a></td>")-->

Patička

<tr>
<td colspan="7">
<table width="100%" border="0" cellspacing="0" cellpadding"0">
<tr>
<td>
<a href="<!--WTD_CALENDAR(PREVMONTHLINK)-->">&laquo;</a>
</td>
<td align="right">
<a href="<!--WTD_CALENDAR(NEXTMONTHLINK)-->">&raquo;</a>
</td>
</tr>
</table>
</td>
</tr>
</table>

Začátek sekce

<tr>

Konec sekce

</tr>

Formulářová pole a další možné parametry prezentačních skriptů

Názvy formulářových polí je třeba přesně dodržet, jinak může být vyhledávací formulář nefunkční.

V názvech polí formulářů se rozlišují malá a velká písmena, zachovejte proto názvy polí vždy přesně tak, jak je příslušný pomocný nástroj vygeneroval.

Parametry skriptu pro seznam akcí

Následující tabulka shrnuje možné parametry skriptu pro seznam akcí. Žádný z parametrů není povinný, není-li parametr uveden, použije se výchozí hodnota.

Parametry skriptu default.php pro seznam akcí
Název pole nebo parametru Význam Poznámka
calid ID kalendáře Pokud není uvedeno, zobrazuje se kalendář, který má nejnižší ID
categid ID kategorie ID kategorie akcí, které se mají vypisovat
statusid ID stavu Pokud je zadáno nenulové číslo, vypisují se pouze akce s daným stavem
themeid ID tématu ID tématu akcí, které se mají vypisovat
datefrom datum od pro vyhledávání
dateto datum do pro vyhledávání
searchtext hledaný text
location umístění
event příznak zda jde o vyhledávací režim
pg stránkování seznamu akcí
patternid ID předpisu Pokud není uvedeno, použije se předpis nastavený v definici kalendáře
tmplid ID předlohy
lid ID jazyka v případě používání jiné jazykové mutace než výchozí
locale locale string jazyka (CS, EN, DE). Výsledek stejný jako výše.
dlid ID jazyka pro data
dlocale zkratka jazyka pro data
calyear Měsíční kalendář – vybraný rok
calmonth Měsíční kalendář - vybraný měsíc
calday Měsíční kalendář - vybraný den
dayfrom Počet dní ve výpisu Pokud je parametr uveden, znamená to, že se vypisuje daný počet dní od prvního skutečně zobrazovaného dne, tj. 0 = pouze vybraný den, 1 = vybraný den + jeden následující kalendářní den atd.
cweekfrom Výběr kalendářního týdne od Např. default.php?cweekfrom=0 zobrazuje akce od počátku aktuálního týdne (od pondělí) dál
cweekto Výběr kalendářního týdne do
cmonthfrom Výběr kalendářního měsíce od
cmonthto Výběr kalendářního měsíce do


Při vyhodnocování parametrů pro časové kritérium může dojít ke konfliktu, proto se vyhodnocují v pořadí:

  1. datefrom, dateto
  2. dayfrom
  3. cweekfrom, cweekto
  4. cmonthfrom, cmonthto

To znamená, že pokud je např. uvedeno datefrom=5.8.2010 a zároveň cweekfrom=0, přednost má datefrom a vypíší se akce od 5.8.2010, nikoli od pondělka aktuálního týdne.

Parametry cweekfrom, cweekto, cmonthfrom a cmonthto se vždy vztahují vůči aktuálnímu datu, čili např. volba cweekfrom=-1&cweekto=-1 zobrazuje vždy akce z předchozího kalendářního týdne oproti dnešnímu dni.

Pomocí parametru dayfrom lze definovat, kolik dní se vypisuje v seznamu akcí. Např. URL /scripts/modules/diary/default.php?calid=1&calyear=2008&calmonth=12&calday=18&dayfrom=0 vypíše seznam akcí, které probíhají pouze dne 18.12.2008 a žádné další.

Parametry calyear, calmonth a calday jsou primárně určeny k definici stavu měsíčního kalendáře. To znamená, že obsah výpisu seznamu akcí je těmito parametry ovlivněn jen pokud není výpis definován jinými časovými parametry. Např.:

  • default.php?calyear=2011&calmonth=4 vypisuje seznam akcí od 1.4.2011 dál
  • default.php?calyear=2011&calmonth=4&calday=5 vypisuje seznam akcí od 5.4.2011 dál
  • default.php?calyear=2011&calmonth=4&calday=5&dayfrom=2 vypisuje seznam akcí od 5.4.2011 do 7.4.2011

ale

  • default.php?calyear=2011&calmonth=4&datefrom=15.4.2011 vypisuje seznam akcí od 15.4.2011 dál
  • default.php?calyear=2011&calmonth=4&calday=9&datefrom=15.4.2011 vypisuje seznam akcí od 15.4.2011 dál
  • default.php?calyear=2011&calmonth=4&calday=9&cmonthfrom=-2 vypisuje seznam akcí od prvního dne v měsíci s posunem dvou měsíců do minulosti oproti aktuálnímu datu (čili např. od 1.3.2011 pokud je květen 2011)

apod.

Další příklady užití časový parametrů jsou:

  • default.php?datefrom=25.9.2010&dayfrom=1 zobrazuje 25.9. a 26.9.
  • default.php?dayfrom=0 zobrazuje akce z aktuálního dne.
  • default.php?cweekfrom=0 – zobrazuje akce od počátku aktuálního týdne (od pondělí) dál
  • default.php?cweekfrom=0&cweekto=0 – zobrazuje akce na aktuální týden (od pondělka do neděle)
  • default.php?cweekfrom=-1&cweekto=1 – zobrazuje akce za minulý, současný a následující týden
  • default.php?cmonthfrom=0&cmonthto=0 – zobrazuje akce na aktuální měsíc (od prvního tohoto měsíce do posledního dne v měsíci)


Jazykové nastavení objasňují následující příklady (používají se parametry pro zkratku jazyka locale resp. dlocale, stejným způsobem se ale používají parametry pro ID jazyka lid resp. dlid, jedná se vždy o stejný význam, tj. volbu jazyka, jde jen o způsob této volby):

URL /scripts/modules/diary/default.php?calid=1 vypisuje seznam akcí daného kalendáře s výběrem jazyka pro šablony jako výchozího jazyka, zobrazuje všechny akce kalendáře ve všech jazycích.

URL /scripts/modules/diary/default.php?calid=1&dlocale=EN vypisuje seznam akcí daného kalendáře, kde akce jsou v angličtině. Předloha a styl se hledá tak, že nejprve se zjistí, zda existuje nastavení v předpisu pro jazyk angličtina, pokud ne, hledá se předloha a styl pro výchozí jazyk. Platí tedy, že pokud není explicitně specifikován parametr locale resp. lid, snaží se modul data v angličtině zobrazit v šabloně pro angličtinu apod.

URL /scripts/modules/diary/default.php?calid=1&dlocale=EN&locale=CS zobrazí seznam akcí v angličtině s využitím české předlohy a stylu.


Parametr patternid lze využít pro zobrazení kalendáře s jiným grafickým nastavením (předpisem), než je uvedeno v definici kalendáře. Toto se využívá např. pro zobrazení stejného kalendáře na různých virtuálních serverech s jinou grafikou. Jako vstupní stránka se pak použije např. URL /scripts/modules/diary/default.php?calid=2&patternid=12, kde 2 je ID zobrazovaného kalendáře a 12 ID předpisu, který se má použít. Oba parametry se pak přenášejí mezi jednotlivými stránkami (dosazují se do URL pro stránkovací lištu, odkazy na výpisy dle kategorií či měsíčního kalendáře apod.), takže je zajištěno, že volba kalendáře i předpisu platí pro všechny zobrazované stránky.

Aby byl v takovém případě funkční i vyhledávací formulář, doporučujeme do jeho HTML kódu vložit následující řádky:

<input type="hidden" name="calid" value="<!--WTD_DIARY(CALID)-->" />
<input type="hidden" name="patternid" value="<!--WTD_DIARY(PATTERNID)-->" />

Tím je zajištěno, že ve formuláři bude korektním způsobem uvedeno, jaký kalendář se prohledává a jaký předpis je případně zvolen v URL stránky.

Parametry skriptu pro detail akce

Pro zobrazení detailu akce lze použít následující parametry:

Parametry skriptu action.php pro detail akce
Název pole nebo parametru Význam Poznámka
id ID akce
calid ID kalendáře Není-li zadáno, použije se kalendář s nejnižším ID, ve kterém se akce nachází
patternid ID předpisu
tmplid ID předlohy
lid ID jazyka pro prezentační vrstvu
locale Zkratka jazyka pro prezentační vrstvu

Parametr id specifikuje akci, ostatní parametry mohou ovlivnit volbu předlohy. Při jejich zpracování se postupuje v následujícím pořadí:

  1. Je zadán tmplid - pak je šablona zvolena explicitně a další volby se týkají jen stylů
  2. Je zadán patternid - tím je zvolen předpis a rozhoduje se jen o jazyce zobrazení
  3. Je zadán calid - opět je zprostředkovaně zvolen předpis a rozhoduje se jen o jazyce
  4. Je zadáno lid nebo locale - je zvolen jazyk pro šablonu
  5. Není-li jazyk zvolen explicitně, použije se jazyk akce
  6. Je-li akce ve více kalendářích s různými předpisy a z parametrů nevyplynulo, který předpis se má použít, použije se předpis kalendáře s nižším ID

Parametry skriptu pro export do formátu iCalendar

Exportní skript do formátu iCalendar používá následující parametry:

Parametry skriptu ical.php pro export do formátu iCalendar
Název pole nebo parametru Význam Poznámka
id ID akce
calid ID kalendáře Není-li zadáno, použije se kalendář s nejnižším ID, ve kterém se akce nachází
categid ID kategorie akcí ID kategorie akcí, které se mají exportovat
themeid ID tématu akcí ID tématu akcí, které se mají exportovat
dlid ID jazyka pro výběr dat
dlocale Zkratka jazyka pro výběr dat

Je-li uvedeno ID akce, exportuje se jedna akce s daným ID a ostatní parametry se ignorují. V opačném případě se exportují všechny akce odpovídající kritériím zadaných parametrů, kritéria se kombinují logickou spojkou "a zároveň". Tedy např.

/scripts/modules/diary/ical.php?calid=3&dlocale=EN exportuje všechny akce v angličtině z kalendáře s ID = 3

/scripts/modules/diary/ical.php?categid=12 exportuje všechny akce z kategorie ID=12 ve všech jazycích.

Export dat ve formátu iCalendar

Skript /scripts/modules/diary/ical.php poskytuje data daná parametry v URL ve formátu iCalendar, takže takové akce lze jednoduše načíst do aplikací typu MS Outlook apod.

Formát dat, který skript sestavuje (dle RFC 2445, viz http://tools.ietf.org/html/rfc2445) je následující:

BEGIN:VCALENDAR
PRODID:-//Macron Software//NONSGML WebToDate//EN
VERSION:2.0
METHOD:publish
BEGIN:VEVENT
DTSTAMP:20080513T125158
DTSTART:20080602T150000
DTEND:20080602T160000
LOCATION:Brno
DESCRIPTION:Tady je popisek akce
SUMMARY:Tady je název akce
CLASS:PUBLIC
END:VEVENT
END:VCALENDAR

Hlavička od začátku textu až po METHOD:publish je vždy stejná, pak následuje jeden nebo více bloků označených BEGIN:VEVENT / END:VEVENT, každý blok reprezentuje jednu akci. Data se dosazují dle následující tabulky:


DTSTAMP Aktuální datum a čas
DTSTART Datum a čas počátku akce
DTEND Datum a čas ukončení akce
LOCATION Umístění
DESCRIPTION Popis akce bez HTML tagů
SUMMARY Název akce

Možné parametry skriptu jsou uvedeny v kapitole Formulářová pole a další možné parametry prezentačních skriptů. Pokud je např. žádoucí např. ve stránce s detailem akce nabídnout export zobrazované akce do formátu iCalendar, použije se v předloze pro detail akce kód

<a href="/scripts/modules/diary/ical.php?id=<!--WTD_DIARY(DIARYID)-->">Export do formátu iCalendar</a>

Extenze pro generování měsíčního kalendáře

Modul Kalendář akcí má možnost generovat měsíční kalendář i na jiné stránky webové prezentace než ty, které se zobrazují přes skripty modulu (tj. skripty uvedené v kapitole Prezentační skripty). Princip této funkce je následující:

  • Kalendář se vkládá pomocí extenze pro generátor stránek, tj. kódu, který může modifikovat obsah stránky sestavované ve WebToDate jako generovaná stránka.
  • Do příslušné stránky se vloží klíčové slovo (popsané níže), které daná extenze hledá a nahradí za cílový HTML kód. Tento kód se vloží ve chvíli generování, pak je ve stránce staticky a mění se jedině při dalším generování takové stránky.
  • HTML kód měsíčního kalendáře je dán stylem, který lze nastavit v předpisu, kterým se formátuje daný kalendáře.

Výsledkem je zobrazení měsíčního kalendáře pro aktuální měsíc, tak jak je znázorněno na následujícím otisku obrazovky.

Je důležité si uvědomit, že jde o statický HTML kód vložený do stránky. Z toho vyplývá např.:

  • Změny v obsahu daného kalendáře (např. přidání další akce na den, který ještě žádnou akci neměl) se zde promítnou, až když je stránka přegenerována.
  • Všechny hypertextové odkazy v měsíčním kalendáři vedou na skripty modulu, čili na jiné stránky. Zobrazení tohoto měsíčního kalendáře např. na úvodní stránce webu tedy neznamená, že odkazy na listování po měsících mění v této úvodní stránce pouze měsíční kalendář a zbytek stránky zůstává, ale že se zobrazí jiná stránka, která zobrazuje seznam akcí modulu a kde je vybrán v měsíčním kalendáři jiný měsíc.

Aby bylo možné měsíční kalendář do takovýchto stránek generovat, je třeba instalovat příslušnou extenzi, jak je popsáno v kapitole Umístění extenzí.

Extenze podporuje následující klíčová slova:

<!--WTD_DIARYCALENDAR(2,EN)--> - vkládá měsíční kalendář pro kalendář s ID=2 a pro jazyk angličtina

<!--WTD_DIARYCALENDAR(2)--> - vkládá měsíční kalendář pro kalendář s ID=2, jako jazyk se použije jazyk stránky, která se generuje.

Styl pro formátování měsíčního kalendáře se nastavuje v nabídce Nastavení - název jazyka - Předpisy - název předpisu - Samostatný kalendář.

Tip: Pokud chcete zobrazit tento kalendář na více stránkách webové prezentace, umístěte příslušné klíčové slovo do stránky ve stromu šablon WebToDate, ze které jsou odvozeny všechny stránky, na kterých se má kalendář zobrazovat. V takovém případě se kód vygeneruje pouze jednou na tuto příslušnou stránku a všechny následné stránky tento HTML kód s kalendářem "zdědí". Aktualizaci pak lze provádět např. pomocí funkce Plánovač úloh WebToDate, která umožňuje periodické generování zvolené stránky včetně podstromu, čímž dojde k automatické aktualizaci kalendáře na všech potřebných stránkách.

Plánovaná úloha pro sitemap.xml

Seznam akcí modulu může být generován do seznamu adres v souboru sitemap.xml (více o plánovaných úlohách pro sitemap viz Generování sitemap.xml).

Funkce je realizována formou plánované úlohy, která do separátního XML souboru generuje seznam URL akcí kalendáře.

Parametry úlohy jsou:

  • Adresa XML souboru – povinně se zadává adresa XML souboru
  • Server – volba virtuálního serveru; je zde důležitá pro vložení prefixu URL všech akcí
  • Kalendáře – volí se buď všechny (výchozí volba) nebo jeden konkrétní kalendář
  • Jazyk – volba jazyka akcí
  • Výstupní priorita – pokud je vyplněno, musí být číslo v intervalu 0 až 1 s desetinnou tečkou.

Elementy dle formátu pro sitemap se vyplňují následovně:

  • loc – URL akce
  • lastmod – datum publikace akce
  • priority – výstupní priorita z formuláře úlohy, nevkládá se, pokud není vyplněno