WebToDate/Kalendář akcí/Tipy a návody: Porovnání verzí
mBez shrnutí editace |
|||
| Řádek 37: | Řádek 37: | ||
Výčet všech klíčových slov a uvedených podmínek je v kapitole [[../Reference#Klíčová slova pro zobrazení měsíčního kalendáře|Klíčová slova pro zobrazení měsíčního kalendáře]], jedná se o konstrukce typu <nowiki><!--WTD_IF(CALCELLEMPTY,"")--> apod.</nowiki> Zobrazení kalendáře dle stylu uvedeného v této kapitole jako příklad pak vypadá zhruba následovně. | Výčet všech klíčových slov a uvedených podmínek je v kapitole [[../Reference#Klíčová slova pro zobrazení měsíčního kalendáře|Klíčová slova pro zobrazení měsíčního kalendáře]], jedná se o konstrukce typu <nowiki><!--WTD_IF(CALCELLEMPTY,"")--> apod.</nowiki> Zobrazení kalendáře dle stylu uvedeného v této kapitole jako příklad pak vypadá zhruba následovně. | ||
[[Image:|center]] | [[Image:kalendar-mesicni2.gif|center]] | ||
Odkazy generované na čísla dnů mají tvar | Odkazy generované na čísla dnů mají tvar | ||
| Řádek 66: | Řádek 66: | ||
Jednoduchá definice SQL seznamu zobrazujícího vybrané položky z databáze kalendáře akcí je na následujícím otisku obrazovky. | Jednoduchá definice SQL seznamu zobrazujícího vybrané položky z databáze kalendáře akcí je na následujícím otisku obrazovky. | ||
[[Image:|center]] | [[Image:wtd-sqldot1.jpg|center]] | ||
Např. dotaz | Např. dotaz | ||
Verze z 29. 6. 2009, 14:23
Měsíční kalendář
Funkce umožňuje do stránek se seznamem akcí vložit zobrazování měsíčního kalendáře, pomocí kterého lze přecházet z jednoho měsíce na druhý a klepnutím na konkrétní datum vybrat akce k tomuto datu. Po klepnutí se zobrazuje stránka se seznamem akcí, seznam začíná na vybraném datu stejně, jako kdyby bylo datum vyhledáno pomocí vyhledávacího formuláře.
Možnosti zobrazení kalendáře jsou následující:
- Zobrazit měsíční přehled s možností přechodu na jiné měsíce či roky
- Přizpůsobitelná grafika (formátování) celého prvku i výpisy na úrovni lokalizace (názvy či zkratky měsíců a dnů v týdnu)
- Možnost vyznačit ve zobrazení aktuální datum a vyznačit vybrané datum
- Možnost rychlého přechodu na dnešní datum
- Možnost ovlivnit generování odkazu na konkrétní dny – chceme např. aby odkazy na zobrazení seznamu akcí byly umístěny jen na dny, pro které skutečně nějaké akce existují
Celý měsíční kalendář, který je typicky vykreslován jako HTML tabulka, lze charakterizovat jedním WebToDate stylem. Tento styl se používá následovně:
- Hlavička definuje začátek tabulky, patička konec
- Hlavička či patička může obsahovat odkazy na předchozí a následující měsíc, eventuálně předchozí či následující rok
- Zkratky dnů v týdnu mohou být součásti hlavičky či patičky staticky, není pro ně třeba zvláštní dynamický aparát.
- Začátek a konce sekce definuje jeden řádek s čísly dnů, vždy po sedmi položkách se vkládá nový začátek a konec sekce; celkový počet buněk musí být vždy násobkem sedmi
- Tělo formátuje jednu buňku. V této buňce se vždy vkládá číslo dne, případně hypertextový odkaz, který je na číslo umístěn.
V těle stylu je vhodné kódy vkládat podmíněně s možností následujících podmínek:
- Něco jiného vložit pro prázdnou buňku (tedy prvních x buněk a posledních x buněk, které celou tabulku zarovnávají do násobků sedmi), něco jiného do buněk, ve kterých mají být čísla dnů.
- Podmíněně vložit kódy pro aktuální den
- Podmíněně vložit kódy pro vybraný den
- Podmíněně vložit odkaz, pokud na dané číslo dne nějaký hypertextový odkaz má být
Z těchto podmínek plynou následující varianty buněk kalendáře formátované tělem stylu:
- Prázdná buňka
- Buňka pouze s číslem dne
- Buňka s číslem dne a odkazem
- Buňka s aktuálním (dnešním) dnem bez odkazu
- Buňka s aktuálním (dnešním) dnem s odkazem
- Buňka s vybraným dnem s odkazem
Výčet všech klíčových slov a uvedených podmínek je v kapitole Klíčová slova pro zobrazení měsíčního kalendáře, jedná se o konstrukce typu <!--WTD_IF(CALCELLEMPTY,"")--> apod. Zobrazení kalendáře dle stylu uvedeného v této kapitole jako příklad pak vypadá zhruba následovně.

Odkazy generované na čísla dnů mají tvar
default.php?calyear=2004&calmonth=10&calday=13
Zobrazení tohoto URL znamená, že:
- se zobrazí výpis položek kalendáře od 13.10.2004 včetně
- se zobrazí kalendář na říjen 2004 s vybraným 13. dnem
- se nastaví proměnná odpovídající parametru datefrom na 13.10.2004, což např. znamená, že pokud je v předloze vyhledávací formulář, má vyplněné pole datum od tímto datem.
Odkazy na předchozí či následující měsíce a roky mají stejný tvar, ale bez parametrů calday. Pokud tento parametr není specifikován, znamená to, že zbylé dva parametry mají vliv pouze na zobrazení kalendáře, neboli seznam akcí se zobrazí ve výchozím tvaru, jako kdyby byl skript volaný bez parametrů.
<a href="<!--WTD_CALENDAR(PREVMONTHLINK)-->&calday=1">«</a>
Zobrazení akcí mimo prezentační skripty modulu pomocí SQL seznamů
Seznamy akcí z tohoto modulu lze prezentovat i na jiných stránkách www prezentace. Vhodným nástrojem toto umožňujícím jsou SQL seznamy, které lze ve WebToDate vytvářet.
Jednoduchá definice SQL seznamu zobrazujícího vybrané položky z databáze kalendáře akcí je na následujícím otisku obrazovky.

Např. dotaz
SELECT ID, NAZEV AS TITLE, DATUM AS DATE
FROM SERVIS JOIN SERVMCONN ON SERVIS.ID = SERVMCONN.ITEMID
WHERE SERVMCONN.MAINID=1 AND SERVIS.DATUM >= CURDATE()
ORDER BY DATUM, ID LIMIT 5
vybírá pět nejbližších akcí z databáze modulu z kalendáře s ID=1, v dotazu lze samozřejmě pomocí klauzule WHERE dále specifikovat jiné podmínky pro výběr.
SELECT TOP 5 ID, NAZEV AS TITLE, DATUM AS DATE FROM SERVIS JOIN SERVMCONN ON SERVIS.ID = SERVMCONN.ITEMID WHERE SERVMCONN.MAINID=1 AND SERVIS.DATUM >= GETDATE() ORDER BY DATUM, ID
apod.Seznam lze pak vložit na kteroukoliv generovanou stránku stejným způsobem jako kterýkoliv jiný seznam. Příklad WebToDate stylu, kterým lze pak tento seznam formátovat je např. následující:
Hlavička
<div class="hlv_nadpis">Nejnovější akce</div>
<div class="obalka_seznamu">
Tělo
<div class="polozky_seznamu">
<a href="/scripts/modules/diary/action.php?id=<!--WTD_F(ID)-->">
<!--WTD_F(TITLE)--></a> (<!--WTD_F(DATE)-->)nowiki>
<nowiki></div>
Patička
</div>
Seznam pak na stránce zobrazuje názvy akcí s datem, klepnutím na název akce se zobrazuje stránka s detailním zobrazením vybrané akce.
Vyhledávání v rámci jednoho resp. všech kalendářů
Samotný modul nemá funkci pro prohledávání více kalendářů najednou, vždy se prohledává pouze jeden vybraný kalendář.
Aby bylo vyhledávání funkční, je třeba vložit do HTML kódu vyhledávacího formuláře parametr calid, např. následujícím způsobem:
<input type="hidden" name="calid" value="<!--WTD_DIARY(CALID)-->" />
Klíčové slovo <!--WTD_DIARY(CALID)--> je při zobrazení stránky nahrazeno za ID aktuálně zobrazovaného kalendáře a tento parametr je pak přenesen do vyhledávacího skriptu.
Prohledávat všechny kalendáře najednou lze pomocí globálního hledání modulu Fulltext – více viz dokumentace k tomuto modulu.
Vypisování seznamu akcí pouze na zvolený den pomocí měsíčního kalendáře
Skript pro výpis seznamu akcí standardně vypisuje seznam akcí od zvoleného data dál, pokud není žádné datum zvoleno, tak od aktuálního data dál. Požadavkem ale může být implementovat možnost zobrazit pomocí kliků na dny v měsíčním kalendáři vždy jen výpis akcí na zvolený den (tj. akce, které ve zvolený den probíhají, datum začátku resp. konec může předcházet resp. následovat za zvoleným dnem).
Na úrovni implementace se toto řeší vložením parametru dayfrom=0 do stylu měsíčního kalendáře, čili tam, kde je standardně klíčové slovo <!--WTD_CALENDAR(DAYLINK)--> je nahrazen tento výraz výrazem <!--WTD_CALENDAR(DAYLINK)-->&dayfrom=0.
Přitom dayfrom=0 znamená, že se mají vypisovat pouze akce k danému dni, dayfrom=1 akce k danému dni plus jednomu následujícímu kalendářnímu dni atd.