WebToDate/Diskuze/Reference: Porovnání verzí
m Stránka WebToDate 4.1/Diskuze/Reference přemístěna na stránku WebToDate/Diskuze/Reference |
|||
| (Není zobrazeno 17 mezilehlých verzí od stejného uživatele.) | |||
| Řádek 1: | Řádek 1: | ||
[[Category:WebToDate | [[Category:WebToDate Diskuze]] | ||
[[Category:Diskuze]] | [[Category:Diskuze]] | ||
== Administrační rozhraní == | == Administrační rozhraní == | ||
| Řádek 137: | Řádek 137: | ||
* '''Zobrazovat v seznamu''' – pokud je zvoleno ''ano'', zobrazuje se skupina v seznamu na stránce ''/scripts/modules/disc/disclist.php'' | * '''Zobrazovat v seznamu''' – pokud je zvoleno ''ano'', zobrazuje se skupina v seznamu na stránce ''/scripts/modules/disc/disclist.php'' | ||
* '''E-mail moderátora''' – e-mailová adresa, na kterou se zasílají nově vložené příspěvky v této skupině (aby se příspěvky odesílaly, musí být zároveň toto zapnuto ve formuláři '''Administrace''' – '''Předvolby''') | * '''E-mail moderátora''' – e-mailová adresa, na kterou se zasílají nově vložené příspěvky v této skupině (aby se příspěvky odesílaly, musí být zároveň toto zapnuto ve formuláři '''Administrace''' – '''Předvolby''') | ||
* '''Data jsou přístupná pro čtení''' – tato volba definuje, kdo může zobrazovat obsah diskuzní skupiny pomocí veřejně přístupných skriptů modulu. Pokud je zvoleno '''Nikomu''', stránky pro zobrazení obsahu diskuzí vypíší pro danou diskuzní skupinu chybovou stránku pro odmítnutí přístupu pro čtení. Další možnosti jsou '''Všem''' (tj. všem anonymním uživatelům) a '''Registrovaným''' s možností nepovinně ještě přístup omezit na vybranou skupinu uživatelů z modulu Registrace a personalizace. V případě, že je použita poslední volba, probíhá před zobrazením stránky s daty diskuze zjišťování, zda je uživatel k modulu Registrace a personalizace přihlášen, pokud tomu tak není, je přesměrován na přihlašovací stránku modulu Registrace a personalizace. | |||
* '''Vkládat data mohou''' – tato volba je analogická předchozí volbě, pouze se vztahuje na možnost vkládání nových diskuzních příspěvků. Pokud uživatel nemá k vkládání příspěvků přístup, dostává stránku pro odmítnutí přístupu pro zápis. | |||
* '''Přihlašovací režim''' – definuje, kteří návštěvníci webové prezentace mají do dané diskuze přístup a jak se zpracovávají jejich údaje | * '''Přihlašovací režim''' – definuje, kteří návštěvníci webové prezentace mají do dané diskuze přístup a jak se zpracovávají jejich údaje | ||
* '''Předpis''' – předpis je připravená sada nastavení týkajících se zejména formátovacích funkcí prezentace. Všechny stránky týkající se dané diskuzní skupiny jsou formátovány pomocí nastavení daných ve vybraném předpisu. Více o předpisech je uvedeno v kapitole [[../Reference#Nastavení|Nastavení]]. | * '''Předpis''' – předpis je připravená sada nastavení týkajících se zejména formátovacích funkcí prezentace. Všechny stránky týkající se dané diskuzní skupiny jsou formátovány pomocí nastavení daných ve vybraném předpisu. Více o předpisech je uvedeno v kapitole [[../Reference#Nastavení|Nastavení]]. | ||
* '''Jazyk''' – u vícejazyčných www prezentací lze vybrat jazyk, kterým se v dané skupině diskutuje. | * '''Jazyk''' – u vícejazyčných www prezentací lze vybrat jazyk, kterým se v dané skupině diskutuje. | ||
| Řádek 215: | Řádek 216: | ||
====Globální nastavení==== | ====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 diskuzní skupiny. | V této části nabídky je jako první sekce '''Globální''' – tato sekce sdružuje nastavení, která jsou společná pro všechny diskuzní skupiny. | ||
====Nastavení seznamu skupin==== | =====Nastavení seznamu skupin===== | ||
Pomocí formuláře '''Seznam skupin''' se nastavuje zobrazení stránky vypisující seznam diskuzních skupin ''(/''scripts/modules/disc/disclist.php''). | Pomocí formuláře '''Seznam skupin''' se nastavuje zobrazení stránky vypisující seznam diskuzních skupin ''(/''scripts/modules/disc/disclist.php''). | ||
| Řádek 226: | Řádek 227: | ||
<div class="note">Pokud chcete provozovat modul pouze v režimu příspěvků ke článkům, není vůbec potřeba tuto stránku nadefinovat. Stejně tak pokud je např. založeno jen jedno diskuzní fórum, lze do něj vstoupit pomocí adresy ''/scripts/modules/disc/messages.php?did=xxx'' rovnou a není třeba vytvářet tuto stránku.</div> | <div class="note">Pokud chcete provozovat modul pouze v režimu příspěvků ke článkům, není vůbec potřeba tuto stránku nadefinovat. Stejně tak pokud je např. založeno jen jedno diskuzní fórum, lze do něj vstoupit pomocí adresy ''/scripts/modules/disc/messages.php?did=xxx'' rovnou a není třeba vytvářet tuto stránku.</div> | ||
=====Vyhledávání===== | |||
====Vyhledávání==== | |||
Pomocí formuláře '''Vyhledávání''' lze nastavit vyhledávací stránku pro tento modul ''(/''scripts/modules/disc/search.php''). | Pomocí formuláře '''Vyhledávání''' lze nastavit vyhledávací stránku pro tento modul ''(/''scripts/modules/disc/search.php''). | ||
| Řádek 234: | Řádek 234: | ||
Opět se nastavuje předloha, styl seznamu nalezených položek a počet záznamů na stránku. Seznam nalezených položek je v předloze pro stránku reprezentován klíčovým slovem <nowiki><!--WTD_DISC(LIST)-->, stránkovací lišta <!--WTD_DISC(LISTNAVIG)-->, dále pak je ve stránce obvyklý vyhledávací formulář s klíčovými slovy jako <!--WTD_DISC(SEARCHTEXT)--></nowiki> apod.; jednoduchý formulář tohoto typu se vygeneruje pomocí funkce '''Nástroje''' – '''Vyhledávání'''. Pokud není třeba v rámci dané implementace možnost prohledávání diskuzí zpřístupnit, nemusí se tato stránka vůbec nastavovat. | Opět se nastavuje předloha, styl seznamu nalezených položek a počet záznamů na stránku. Seznam nalezených položek je v předloze pro stránku reprezentován klíčovým slovem <nowiki><!--WTD_DISC(LIST)-->, stránkovací lišta <!--WTD_DISC(LISTNAVIG)-->, dále pak je ve stránce obvyklý vyhledávací formulář s klíčovými slovy jako <!--WTD_DISC(SEARCHTEXT)--></nowiki> apod.; jednoduchý formulář tohoto typu se vygeneruje pomocí funkce '''Nástroje''' – '''Vyhledávání'''. Pokud není třeba v rámci dané implementace možnost prohledávání diskuzí zpřístupnit, nemusí se tato stránka vůbec nastavovat. | ||
=====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 261: | Řádek 260: | ||
Navigační lišta je pak v předloze pro zobrazení seznamu diskuzních příspěvků reprezentována klíčovým slovem <nowiki><!--WTD_DISC(LISTNAVIG)--></nowiki>. | Navigační lišta je pak v předloze pro zobrazení seznamu diskuzních příspěvků reprezentována klíčovým slovem <nowiki><!--WTD_DISC(LISTNAVIG)--></nowiki>. | ||
====Filtr slov==== | =====Filtr slov===== | ||
Funkce '''Filtr slov''' umožňuje definovat slovník nevhodných výrazů. V horním seznamu se zobrazují slova seřazená podle abecedy, ve spodním rámci se zobrazuje editační formulář. | Funkce '''Filtr slov''' umožňuje definovat slovník nevhodných výrazů. V horním seznamu se zobrazují slova seřazená podle abecedy, ve spodním rámci se zobrazuje editační formulář. | ||
| Řádek 272: | Řádek 271: | ||
Filtr slov se aplikuje pouze na diskuze, které mají nastavený příznak ''Filtrovat tuto diskuzi''. Filtrace se v takovém případě provádí při ukládání vstupního formuláře z veřejné části www prezentace, nalezená filtrovaná slova se nahrazují řetězcem ''Cenzura slov'' zadaným ve formuláři '''Další nastavení'''. Výrazy označené pro použití při detekci spamu se použijí jen v případě, že v anitspamovém profilu, který používá daná diskuze, je zvolena možnost ''Vyhledávání spamu podle obsahu příspěvků''. | Filtr slov se aplikuje pouze na diskuze, které mají nastavený příznak ''Filtrovat tuto diskuzi''. Filtrace se v takovém případě provádí při ukládání vstupního formuláře z veřejné části www prezentace, nalezená filtrovaná slova se nahrazují řetězcem ''Cenzura slov'' zadaným ve formuláři '''Další nastavení'''. Výrazy označené pro použití při detekci spamu se použijí jen v případě, že v anitspamovém profilu, který používá daná diskuze, je zvolena možnost ''Vyhledávání spamu podle obsahu příspěvků''. | ||
====E-maily==== | =====E-maily===== | ||
Formulář '''E-maily''' slouží k nastavení parametrů odesílání e-mailů modulem. Může se jednat o dva druhy e-mailů: | Formulář '''E-maily''' slouží k nastavení parametrů odesílání e-mailů modulem. Může se jednat o dva druhy e-mailů: | ||
| Řádek 300: | Řádek 299: | ||
</code> | </code> | ||
=====Odmítnutí přístupu===== | |||
Formulář '''Odmítnutí přístupu''' se používá k definici stránek, které se zobrazí v případě, že uživatel nemá k dané funkci přístup. | |||
[[Image:diskuze-nastaveni-globalni-odmitnuti-pristupu.png|center]] | |||
Nastavují se dvě předlohy: | |||
====Další nastavení==== | * '''Stránka pro odmítnutí přístupu pro čtení''' - tato předloha se uživateli zobrazí v případě, že vyvolá URL zobrazující seznam příspěvků nebo detail příspěvku a přitom je v diskuzní skupině nastaveno, že tato data se nemají uživateli zobrazovat (např. je ve vlastnostech diskuzní skupiny zvoleno ''Data jsou přístupná pro čtení: Nikomu''. | ||
* '''Stránka pro odmítnutí přístupu pro zápis''' - tato předloha se uživateli zobrazí v případě, že se pokusí o vložení diskuzního příspěvku a přitom nemá přístup k vkládání dat do diskuzní skupiny, tedy např. v případě, že v diskuzní skupině je nastaveno ''Vkládat data mohou: Nikdo''. | |||
=====Další nastavení===== | |||
Formulář '''Další nastavení''' slouží ke specifikaci dalších grafických parametrů pro prezentační vrstvu. | Formulář '''Další nastavení''' slouží ke specifikaci dalších grafických parametrů pro prezentační vrstvu. | ||
| Řádek 328: | Řádek 336: | ||
* '''Zobrazit stránku pro vložení příspěvku''' - znovu se načte formulář pro vložení příspěvku do dané diskuzní skupiny. | * '''Zobrazit stránku pro vložení příspěvku''' - znovu se načte formulář pro vložení příspěvku do dané diskuzní skupiny. | ||
* '''Přesměrovat na zvolenou stránku''' - přesměruje na stránku, kterou je nutné v případě této volby zvolit, jedná se o libovolnou stránku ze stromu kategorií WebToDate. | * '''Přesměrovat na zvolenou stránku''' - přesměruje na stránku, kterou je nutné v případě této volby zvolit, jedná se o libovolnou stránku ze stromu kategorií WebToDate. | ||
====Nastavení předpisů==== | ====Nastavení předpisů==== | ||
| Řádek 341: | Řádek 348: | ||
=====Zpráva===== | |||
Formulář '''Zpráva''' slouží k nastavení zobrazení diskuzních příspěvků ve stránce s celým textem zprávy. V tomto typu stránky je celý seznam diskuzních příspěvků reprezentován v předloze jediným klíčovým slovem <nowiki><!--WTD_DISC(LIST)--></nowiki>, celý seznam se tím pádem formátuje jedním WebToDate stylem. | Formulář '''Zpráva''' slouží k nastavení zobrazení diskuzních příspěvků ve stránce s celým textem zprávy. V tomto typu stránky je celý seznam diskuzních příspěvků reprezentován v předloze jediným klíčovým slovem <nowiki><!--WTD_DISC(LIST)--></nowiki>, celý seznam se tím pádem formátuje jedním WebToDate stylem. | ||
| Řádek 400: | Řádek 407: | ||
=====Seznam===== | |||
Další formulář '''Seznam''' slouží k nastavení vzhledu a chování stránky zobrazující seznamy příspěvků (všechny příspěvky nebo jen vybrané) na URL ''/scripts/modules/disc/messages.php''. Tato stránka se využívá v podstatě ve všech implementacích modulu, ať už se jedná o příspěvky ke zprávám nebo samostatná diskuzní fóra. | Další formulář '''Seznam''' slouží k nastavení vzhledu a chování stránky zobrazující seznamy příspěvků (všechny příspěvky nebo jen vybrané) na URL ''/scripts/modules/disc/messages.php''. Tato stránka se využívá v podstatě ve všech implementacích modulu, ať už se jedná o příspěvky ke zprávám nebo samostatná diskuzní fóra. | ||
| Řádek 498: | Řádek 505: | ||
=====Detail===== | |||
Další součástí předpisu je nastavení nazvané '''Detail'''. Toto nastavení specifikuje parametry zobrazení stránky s jedním příspěvkem zobrazované pomocí skriptu ''/scripts/modules/disc/detail.php''. Tento typ stránky je primárně určen k zobrazení celého textu jednoho příspěvku a informací o něm (název, čas vložení, autor příspěvku apod.), může ale obsahovat rovněž formulář pro vložení reakce na příspěvek a může obsahovat i seznam příspěvků v daném vlákně. | Další součástí předpisu je nastavení nazvané '''Detail'''. Toto nastavení specifikuje parametry zobrazení stránky s jedním příspěvkem zobrazované pomocí skriptu ''/scripts/modules/disc/detail.php''. Tento typ stránky je primárně určen k zobrazení celého textu jednoho příspěvku a informací o něm (název, čas vložení, autor příspěvku apod.), může ale obsahovat rovněž formulář pro vložení reakce na příspěvek a může obsahovat i seznam příspěvků v daném vlákně. | ||
| Řádek 514: | Řádek 521: | ||
<nowiki><div></nowiki> | <nowiki><div></nowiki> | ||
<nowiki><em>Datum a čas příspěvku: <!--WTD_DISC(DATE)-->, <!--WTD_DISC(TIME)--><br></nowiki> | <nowiki><em>Datum a čas příspěvku: <!--WTD_DISC(DATE)-->, <!--WTD_DISC(TIME)--><br></nowiki> | ||
<nowiki>Autor: <a href="mailto:<!--WTD_DISC(EMAIL)-->"><!--WTD_DISC(NICKNAME)--></a> (<!--WTD_DISC(FIRSTNAME)--> <!--WTD_DISC(LASTNAME)-->)</em></nowiki> | <nowiki>Autor: <a href="mailto:<!--WTD_DISC(EMAIL)-->"><!--WTD_DISC(NICKNAME)--></a></nowiki> | ||
<nowiki>(<!--WTD_DISC(FIRSTNAME)--> <!--WTD_DISC(LASTNAME)-->)</em></nowiki> | |||
<nowiki></div></nowiki> | <nowiki></div></nowiki> | ||
<nowiki><hr size="1" noshade="noshade"/></nowiki> | <nowiki><hr size="1" noshade="noshade"/></nowiki> | ||
<nowiki><div class="descr_small1"></nowiki> | <nowiki><div class="descr_small1"></nowiki> | ||
<nowiki>Tento příspěvek se nachází v diskusní skupině <b><!--WTD_DISC(DNAME)--></b>, kde je <!--WTD_DISC(DNUMOFITEMS)--> příspěvků, poslední příspěvek <!--WTD_DISC(DLASTUPDATE)--></nowiki> | <nowiki>Tento příspěvek se nachází v diskusní skupině <b><!--WTD_DISC(DNAME)--></b>, kde je <!--WTD_DISC(DNUMOFITEMS)--> příspěvků,</nowiki> | ||
<nowiki>poslední příspěvek <!--WTD_DISC(DLASTUPDATE)--></nowiki> | |||
<nowiki><br /></nowiki> | <nowiki><br /></nowiki> | ||
<nowiki><a href="<!--WTD_DISC(DURL)-->">Zpět na diskuzi</a></nowiki> | <nowiki><a href="<!--WTD_DISC(DURL)-->">Zpět na diskuzi</a></nowiki> | ||
| Řádek 530: | Řádek 539: | ||
<code> | <code> | ||
<nowiki><!--WTD_DISC(SPACER)--></nowiki> | <nowiki><!--WTD_DISC(SPACER)--></nowiki> | ||
<nowiki><a href="<!--WTD_DISC(URL)-->" title="<!--WTD_DISC(NICKNAME)-->, <!--WTD_DISC(DATE)-->"><!--WTD_DISC(NAME)--></a> <!--WTD_IF(ISACTIVE,"<strong>«</strong>")--></nowiki> | <nowiki><a href="<!--WTD_DISC(URL)-->" title="<!--WTD_DISC(NICKNAME)-->, <!--WTD_DISC(DATE)-->"><!--WTD_DISC(NAME)--></a></nowiki> | ||
<nowiki><!--WTD_IF(ISACTIVE,"<strong>«</strong>")--></nowiki> | |||
<nowiki><br/></nowiki> | <nowiki><br/></nowiki> | ||
</code> | </code> | ||
=====Nový příspěvek===== | |||
Poslední součástí předpisu je formulář '''Nový příspěvek'''. Charakterizuje zobrazení stránky ''/scripts/modules/disc/add.php'', nastavují se stejné parametry jako v předchozím případě, možnosti této stránky jsou analogické jako pro zobrazení detailu jednoho příspěvku. | Poslední součástí předpisu je formulář '''Nový příspěvek'''. Charakterizuje zobrazení stránky ''/scripts/modules/disc/add.php'', nastavují se stejné parametry jako v předchozím případě, možnosti této stránky jsou analogické jako pro zobrazení detailu jednoho příspěvku. | ||
| Řádek 591: | Řádek 600: | ||
V části '''Protokoly''' lze procházet protokol modulu týkající se zápisů nových příspěvků. | V části '''Protokoly''' lze procházet protokol modulu týkající se zápisů nových příspěvků. | ||
[[Image:diskuze46-zobrazit-protokol. | [[Image:diskuze46-zobrazit-protokol.png|center]] | ||
Zobrazují se záznamy o vložených i odmítnutých příspěvcích, pokud je příspěvek odmítnut antispamovou kontrolou, je zde uveden typ kontroly, která odmítnutí vyvolala. | Zobrazují se záznamy o vložených i odmítnutých příspěvcích, pokud je příspěvek odmítnut antispamovou kontrolou, je zde uveden typ kontroly, která odmítnutí vyvolala. | ||
====Zakázané IP adresy==== | ====Zakázané IP adresy==== | ||
| Řádek 839: | Řádek 847: | ||
| Komentář redakce k příspěvku | | Komentář redakce k příspěvku | ||
| | | | ||
|- | |||
| <nowiki><!--WTD_DISC(LEVEL)--></nowiki> | |||
| Úroveň vnoření příspěvku | |||
| Vnoření se čísluje od nuly, tj. hodnota 0 pro komentáře ke článku znamená, že se jedná o komentář ke zprávě přímo zadaný, hodnota 1, že se jedná o reakci na takový komentář atd. | |||
|- | |- | ||
| Řádek 866: | Řádek 879: | ||
<nowiki><br/></nowiki> | <nowiki><br/></nowiki> | ||
</code> | </code> | ||
Pro práci s úrovněmi vnoření lze kromě čísla úrovně vnoření <nowiki><!--WTD_DISC(LEVEL)--></nowiki> využít i jejich testování. K tomu jsou určeny výrazy | |||
<nowiki><!--WTD_IF(LEVEL_GT, číslo úrovně, "vkládaný HTML kód")--></nowiki> - vkládá kód, pokud je číslo úrovně větší než zadané číslo | |||
<nowiki><!--WTD_IF(LEVEL_EQ, číslo úrovně, "vkládaný HTML kód")--></nowiki> - vkládá kód, pokud je číslo úrovně rovno zadanému číslu | |||
<nowiki><!--WTD_IF(LEVEL_LT, číslo úrovně, "vkládaný HTML kód")--></nowiki> - vkládá kód, pokud je číslo úrovně menší než zadané číslo | |||
Tedy např. | |||
<nowiki><!--WTD_IF(LEVEL_GT, 2, "Tento text se objeví u příspěvků v úrovni 3 a vyšší.")--></nowiki> | |||
Výrazy lze použít všude tam, kde lze použít <nowiki><!--WTD_DISC(LEVEL)--></nowiki>. | |||
Pro IP adresy lze použít formátovací konstrukci, která nahradí část IP adresy zvoleným řetězcem, aby nebylo nutné zobrazovat ve veřejně přístupných stránkách kompletní IP adresy uživatelů. Používá se výraz | Pro IP adresy lze použít formátovací konstrukci, která nahradí část IP adresy zvoleným řetězcem, aby nebylo nutné zobrazovat ve veřejně přístupných stránkách kompletní IP adresy uživatelů. Používá se výraz | ||
| Řádek 881: | Řádek 910: | ||
Formátovací předpis předpokládá, že se maskují části adresy mezi tečkami v IP adrese. Pro zobrazovanou část IP adresy se použije hvězdička, pro nezobrazovanou libovolný řetězec. "*.*.*.xxx" tedy bude zobrazovat "234.160.21.xxx", "cosi.*.yy.*" bude zobrazovat "cosi.160.yy.168" apod. | Formátovací předpis předpokládá, že se maskují části adresy mezi tečkami v IP adrese. Pro zobrazovanou část IP adresy se použije hvězdička, pro nezobrazovanou libovolný řetězec. "*.*.*.xxx" tedy bude zobrazovat "234.160.21.xxx", "cosi.*.yy.*" bude zobrazovat "cosi.160.yy.168" apod. | ||
Modul dále podporuje další [[../../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(SMAXLEN,"formátovací předpis","ořezávaný text")--></nowiki>'' | |||
apod. | |||
| Řádek 1 054: | Řádek 1 088: | ||
| Nastavení návratové stránky | | Nastavení návratové stránky | ||
| Používá se k tomu, aby bylo možné definovat, která stránka se zobrazí po vložení nového příspěvku | | Používá se k tomu, aby bylo možné definovat, která stránka se zobrazí po vložení nového příspěvku | ||
|- | |||
| <nowiki><!--WTD_DISC(NEWITEMLEVEL)--></nowiki> | |||
| Číslo úrovně vnoření pro nový příspěvek | |||
| Dosazuje číslo úrovně vnoření, v jaké se bude příspěvek nacházet, pokud se podaří formulář pro vložení příspěvku úspěšně uložit. | |||
|- | |- | ||
| Řádek 1 066: | Řádek 1 105: | ||
|} | |} | ||
Pro práci s úrovněmi vnoření ve formuláři pro nový příspěvek jsou určeny kromě klíčového slova <nowiki><!--WTD_DISC(NEWITEMLEVEL)--></nowiki> výrazy | |||
<nowiki><!--WTD_IF(NEWITEMLEVEL_GT, číslo úrovně, "vkládaný HTML kód")--></nowiki> | |||
<nowiki><!--WTD_IF(NEWITEMLEVEL_EQ, číslo úrovně, "vkládaný HTML kód")--></nowiki> | |||
<nowiki><!--WTD_IF(NEWITEMLEVEL_LT, číslo úrovně, "vkládaný HTML kód")--></nowiki> | |||
Výrazy testují, v jaké úrovni vnoření (větší, rovno či menší než zadané číslo) bude příspěvek, pokud se jej podaří úspěšně uložit. | |||
Význam speciálních klíčových slov ADDNAME a ADDBODY je takový, že dávají možnost zachovat vložené texty v případě, že je odmítnuto uložení formuláře, protože je obsah těchto polí prázdný – uživateli se zobrazí stejná stránka, pole která již byla vyplněna zachovávají svůj obsah. Navíc lze do stránky vložit chybové hlášení informující o tom, že pole nesmí být prázdné. Konkrétní HTML kód ilustruje následující příklad. | Význam speciálních klíčových slov ADDNAME a ADDBODY je takový, že dávají možnost zachovat vložené texty v případě, že je odmítnuto uložení formuláře, protože je obsah těchto polí prázdný – uživateli se zobrazí stejná stránka, pole která již byla vyplněna zachovávají svůj obsah. Navíc lze do stránky vložit chybové hlášení informující o tom, že pole nesmí být prázdné. Konkrétní HTML kód ilustruje následující příklad. | ||
| Řádek 1 110: | Řádek 1 159: | ||
<code> | <code> | ||
<nowiki><tr></nowiki> | <nowiki><tr></nowiki> | ||
<nowiki><td colspan="2"><label for="sendanswers">Zasílat odpovědi</label> <input type="checkbox" name="sendanswers" id="sendanswers" <!--WTD_DISC(SENDANSWERS)--> /></td></nowiki> | <nowiki><td colspan="2"><label for="sendanswers">Zasílat odpovědi</label></nowiki> | ||
<nowiki><input type="checkbox" name="sendanswers" id="sendanswers" <!--WTD_DISC(SENDANSWERS)--> /></td></nowiki> | |||
<nowiki></tr></nowiki> | <nowiki></tr></nowiki> | ||
</code> | </code> | ||
| Řádek 1 217: | Řádek 1 267: | ||
<nowiki> <input type="submit" name="Action" name="Action" value="Hledat" /></nowiki> | <nowiki> <input type="submit" name="Action" name="Action" value="Hledat" /></nowiki> | ||
<nowiki> </td></tr></nowiki> | <nowiki> </td></tr></nowiki> | ||
<nowiki> <tr><td>Hledat pouze v názvech příspěvků <input type="checkbox" id="searchnamesonly" name="searchnamesonly" value="1" <!--WTD_DISC(SEARCHNAMESONLY)--> /></td></tr></nowiki> | <nowiki> <tr><td>Hledat pouze v názvech příspěvků </nowiki> | ||
<nowiki> <input type="checkbox" id="searchnamesonly" name="searchnamesonly" value="1" <!--WTD_DISC(SEARCHNAMESONLY)--> /></td></tr></nowiki> | |||
<nowiki></table></nowiki> | <nowiki></table></nowiki> | ||
<nowiki></form></nowiki> | <nowiki></form></nowiki> | ||
| Řádek 1 296: | Řádek 1 347: | ||
| Kód se vloží jen v případě, že daný příspěvek je příspěvkem ke zprávě | | Kód se vloží jen v případě, že daný příspěvek je příspěvkem ke zprávě | ||
| Lze použít v předloze pro detailní zobrazení jednoho příspěvku nebo seznamu příspěvků nebo pro e-maily s příspěvky. | | Lze použít v předloze pro detailní zobrazení jednoho příspěvku nebo seznamu příspěvků nebo pro e-maily s příspěvky. | ||
|- | |||
| <nowiki><!--WTD_IF(LEVEL_GT, číslo úrovně, "…")--> </nowiki> | |||
| Vkládá kód, pokud je číslo úrovně vnoření příspěvku větší než zadané číslo | |||
| Lze použít v předloze pro detailní zobrazení jednoho příspěvku nebo stylu seznamu příspěvků. | |||
|- | |||
| <nowiki><!--WTD_IF(LEVEL_EQ, číslo úrovně, "…")--> </nowiki> | |||
| Vkládá kód, pokud je číslo úrovně vnoření příspěvku rovno zadanému číslu | |||
| Lze použít v předloze pro detailní zobrazení jednoho příspěvku nebo stylu seznamu příspěvků. | |||
|- | |||
| <nowiki><!--WTD_IF(LEVEL_LT, číslo úrovně, "…")--> </nowiki> | |||
| Vkládá kód, pokud je číslo úrovně vnoření příspěvku menší než zadané číslo | |||
| Lze použít v předloze pro detailní zobrazení jednoho příspěvku nebo stylu seznamu příspěvků. | |||
|- | |||
| <nowiki><!--WTD_IF(NEWITEMLEVEL_GT, číslo úrovně, "…")--> </nowiki> | |||
| Vkládá kód, pokud bude číslo úrovně vnoření nově vkládaného příspěvku větší než zadané číslo | |||
| Lze použít ve formuláři pro vkládání příspěvků | |||
|- | |||
| <nowiki><!--WTD_IF(NEWITEMLEVEL_EQ, číslo úrovně, "…")--> </nowiki> | |||
| Vkládá kód, pokud bude číslo úrovně vnoření nově vkládaného příspěvku rovno zadanému číslu | |||
| Lze použít ve formuláři pro vkládání příspěvků | |||
|- | |||
| <nowiki><!--WTD_IF(NEWITEMLEVEL_LT, číslo úrovně, "…")--> </nowiki> | |||
| Vkládá kód, pokud bude číslo úrovně vnoření nově vkládaného příspěvku menší než zadané číslo | |||
| Lze použít ve formuláři pro vkládání příspěvků | |||
|- | |- | ||
| Řádek 1 427: | Řádek 1 508: | ||
* ''messages.php?newsid=9095&action=all&tree=off&sort=desc'' – zobrazí seznam diskuzních příspěvků ke zprávě s ID = 9095 s vynuceným lineárním zobrazením a vynuceným sestupným tříděním | * ''messages.php?newsid=9095&action=all&tree=off&sort=desc'' – zobrazí seznam diskuzních příspěvků ke zprávě s ID = 9095 s vynuceným lineárním zobrazením a vynuceným sestupným tříděním | ||
Je-li zároveň uveden parametr ''newsid'' i ''did'', použije se předpis daný ID diskuzní skupiny v parametru ''did''. Zároveň ale dochází k tomu, že všechna klíčová slova modulu vázaná na diskuzní skupinu (název skupiny, počet příspěvků apod.) se interpretují podle této diskuzní skupiny, takže nevhodná kombinace těchto parametrů může zobrazovat neodpovídající údaje. Je-li uvedeno pouze ''newsid'', volí se předpis podle pravidel řazení. | |||
Skript ''default.php'' funguje tak, že rozhoduje o volání skriptu ''messages.php'' nebo ''add.php''. Jeho parametry jsou proto stejné jako u těchto uvedených skriptů, výjimkou je následující parametr, podle kterého se rozhoduje o způsobu volání. | Skript ''default.php'' funguje tak, že rozhoduje o volání skriptu ''messages.php'' nebo ''add.php''. Jeho parametry jsou proto stejné jako u těchto uvedených skriptů, výjimkou je následující parametr, podle kterého se rozhoduje o způsobu volání. | ||
| Řádek 1 461: | Řádek 1 542: | ||
| did | | did | ||
| ID diskuzní skupiny | | ID diskuzní skupiny | ||
| | | Pokud je ve formuláři pro přidání nového příspěvku uveden parametr did a jedná se o vkládání komentářů ke článkům, parametr přepisuje v modulu nastavená [[#Pravidla řazení|pravidla řazení]] a příspěvek je zařazen do skupiny určené tímto parametrem. Při vkládání se testuje, zda daná skupina existuje - pokud skupina s daným ID neexistuje, použijí se pravidla řazení. | ||
|- | |- | ||
| Řádek 1 618: | Řádek 1 699: | ||
|} | |} | ||
== Plánované úlohy == | == Plánované úlohy == | ||
Aktuální verze z 31. 5. 2011, 12:03
Administrační rozhraní
Nabídka modulu
Nabídka modulu vypadá následovně:
Nástroje
- Vyhledávání
- Nový příspěvek
Nastavení
- Seznam předpisů
- Globální
- Seznam skupin
- Vyhledávání
- Navigační lišta
- Filtr slov
- E-maily
- Další nastavení
- Předpisy
- název předpisu
- Zpráva
- Seznam
- Detail
- Nový příspěvek
Administrace
- Předvolby
- Práva
- Pravidla řazení
- Diskuze
- Antispamové profily
Data
- Diskuze
- název diskuzní skupiny
- Protokoly
- Zakázané IP adresy
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.
Nástroje
Funkce Nástroje obsahuje možnosti generování vybraných formulářů jako fragmentů, kde v těle fragmentu je výchozí HTML kód s vhodnými klíčovými slovy, který lze způsobem vyžadovaným grafickým designem prezentace upravit a pak použít pro přípravu předloh.
Jedná se o následující nástroje:
- Vyhledávání – generuje vyhledávací formulář pro prohledávání diskuzí
- Nový příspěvek – generuje formulář pro vložení nového příspěvku
Administrace
Předvolby
Ve formuláři Předvolby se nastavují některé základní údaje definující chování celého modulu. Tento formulář je vhodné nastavit co nejdříve po instalaci modulu.

Je-li volba Posílat nové příspěvky moderátorovi e-mailem nastavena na hodnotu ano, zasílají se po vložení nového příspěvku e-mailem tyto příspěvky na určenou adresu. Aby toto odesílání bylo funkční, je třeba splnit následující požadavky:
- Ve formuláři vlastností dané diskuzní skupiny (Administrace – Diskuze, pole E-mail moderátora) musí být vyplněna e-mailová adresa
- Musí být správně nastavena šablona pro tyto e-maily a další vlastnosti (formulář Nastavení – Globální – E-maily, pole Předloha pro e-maily moderátorovi, Formát e-mailu moderátorovi a Předmět e-mailu moderátorovi).
Volba Nově příspěvky rozeznávat slouží k nastavení vlastností podpory označování nových příspěvků v zobrazení seznamu příspěvků ve stránce s celým textem zprávy. Cílová funkčnost je naznačena na následujícím otisku obrazovky – příspěvky, které uživatel ještě neviděl se mají označit, např. formou zaškrtávacího okénka.

Ve stylu formátujícím seznam příspěvků se tato část zobrazuje pomocí kódu
<input type="checkbox" name="select[]" value="<!--WTD_DISC(ID)-->" <!--WTD_DISC(CHECKED)-->>
Pro tuto volbu jsou k dispozici možnosti Podle uživatele a Podle stáří příspěvku. Jednodušší a na zátěž serveru méně náročná je volba Podle stáří příspěvku – v tomto případě se takto označí všechny příspěvky, jejichž datum vložení není starší než zadaný počet dnů. Pokud je nastaveno Podle uživatele, znamená to, že se v databázi ukládá pro každého návštěvníka datum a čas posledního shlédnutí příspěvků k dané zprávě, čímž je myšleno shlédnutí plného seznamu těchto příspěvků (tj. samostatné stránky se seznamem, nikoliv stránky se zprávou). Když pak uživatel znovu zobrazí danou zprávu, porovnává se aktuální čas s časem posledního shlédnutí seznamu příspěvků k dané zprávě, příspěvky s časem vložení mezi těmito dvěma porovnávanými časovými hodnotami se považují za nové.
Volba Automatické formátování nastavená na ano znamená, že se při zobrazování textů příspěvků (klíčové slovo <!--WTD_DISC(BODY)-->) nahrazují konce odstavů stejným způsobem, jako tomu je při zapnutém automatickém formátování u těla zpráv.
Poslední volbou v tomto formuláři je volba Nové příspěvky jsou viditelné. Toto nastavení ovlivňuje výchozí stav nových příspěvků v dané diskuzní skupině. Ve formuláři vlastností diskuzní skupiny (Administrace – Diskuze) se vyskytuje volba pro tento výchozí stav. Pokud je zde zvoleno Podle času zadání, použijí se časové hodnoty z těchto předvoleb. Ve stanoveném čase je stav nového příspěvku nastaven na necenzurováno, mimo stanovené intervaly pak na neviditelné.

Tato funkce podporuje moderování diskuzí. Pokud je toto zvoleno, předpokládá se, že moderátor v pracovní době neustále sleduje příspěvky (např. si je nechá posílat e-mailem) a pokud se objeví nežádoucí příspěvek, okamžitě zasáhne. Mimo pracovní dobu pak lze nové příspěvky vkládat, ale na www prezentaci se nezobrazují do doby, než je moderátor (patrně následující pracovní den) schválí.
Práva
Pomocí funkce Práva se způsobem obvyklým ve všech modulech WebToDate nastavují práva pro přístup k datům modulu. V levém seznamu se zobrazuje seznam diskuzních skupin, v prostředním poli se nastavují týmy uživatelů, které mají přístup k datům vybrané skupiny.
Pravidla řazení
Pomocí funkce Pravidla řazení se definuje, do jakých diskuzních skupin se řadí příspěvky ke zprávám.

V tomto modulu platí, že každý příspěvek musí patřit do nějaké diskuzní skupiny. To je zřejmé u samostatných diskuzních fór, ale ne už tolik u komentářů ke článkům. I pro tyto komentáře platí, že se musí do nějaké skupiny řadit, přičemž lze teoreticky nastavit řazení do různých skupin podle toho, o jaké konkrétní zprávy jde. Toto rozlišení lze provádět pouze na úrovní publikací, do kterých jsou zprávy řazeny.
Řazení se nastavuje v tomto formuláři tak, že se v pravém sloupci vybere diskuzní skupina a do prostředního sloupce se přesunou publikace. To znamená, že pro zprávy patřící do vybraných publikací se příspěvky řadí do vybrané skupiny. Pokud chcete všechny příspěvky ke všem zprávám řadit pouze do jedné skupiny, využijte možnosti vybrat volbu Všechny nedefinované, jak je naznačeno na předcházejícím otisku obrazovky.
Diskuze
Poslední položkou nabídky Administrace je položka Diskuze, která slouží k zakládání nových diskuzních skupin a nastavení jejich základních vlastností. V pravém horním rámci se zobrazuje seznam skupin (název, počet příspěvků, poslední modifikace skupiny včetně posledního vložení nového příspěvku), klepnutím na název skupiny se zobrazí ve spodním rámci formulář pro nastavení vlastností dané skupiny.

Ve formuláři se nastavují následující vlastnosti:
- Název – povinně se vyplňuje název skupiny
- Popis skupiny – nepovinně je možné doplnit další textový popis skupiny
- Zobrazovat v seznamu – pokud je zvoleno ano, zobrazuje se skupina v seznamu na stránce /scripts/modules/disc/disclist.php
- E-mail moderátora – e-mailová adresa, na kterou se zasílají nově vložené příspěvky v této skupině (aby se příspěvky odesílaly, musí být zároveň toto zapnuto ve formuláři Administrace – Předvolby)
- Data jsou přístupná pro čtení – tato volba definuje, kdo může zobrazovat obsah diskuzní skupiny pomocí veřejně přístupných skriptů modulu. Pokud je zvoleno Nikomu, stránky pro zobrazení obsahu diskuzí vypíší pro danou diskuzní skupinu chybovou stránku pro odmítnutí přístupu pro čtení. Další možnosti jsou Všem (tj. všem anonymním uživatelům) a Registrovaným s možností nepovinně ještě přístup omezit na vybranou skupinu uživatelů z modulu Registrace a personalizace. V případě, že je použita poslední volba, probíhá před zobrazením stránky s daty diskuze zjišťování, zda je uživatel k modulu Registrace a personalizace přihlášen, pokud tomu tak není, je přesměrován na přihlašovací stránku modulu Registrace a personalizace.
- Vkládat data mohou – tato volba je analogická předchozí volbě, pouze se vztahuje na možnost vkládání nových diskuzních příspěvků. Pokud uživatel nemá k vkládání příspěvků přístup, dostává stránku pro odmítnutí přístupu pro zápis.
- Přihlašovací režim – definuje, kteří návštěvníci webové prezentace mají do dané diskuze přístup a jak se zpracovávají jejich údaje
- Předpis – předpis je připravená sada nastavení týkajících se zejména formátovacích funkcí prezentace. Všechny stránky týkající se dané diskuzní skupiny jsou formátovány pomocí nastavení daných ve vybraném předpisu. Více o předpisech je uvedeno v kapitole Nastavení.
- Jazyk – u vícejazyčných www prezentací lze vybrat jazyk, kterým se v dané skupině diskutuje.
- Antispamový profil - vybírá se jeden z předpřipravených antispamových profilů, tj. sady voleb ochrany proti spamu. Lze zvolit i možnost "žádný", čímž je jakákoli ochrana proti spamu pro danou diskuzi vypnuta.
- Filtrovat tuto diskuzi – pokud je tato volba nastavena, při ukládání se provádí filtrace vkládaného obsahu dle slovníku nežádoucích výrazů (Nastavení – Globální – Filtr slov).
- Výchozí stav příspěvku – ovlivňuje, zda se nově vložené příspěvky okamžitě prezentují na veřejně přístupných stránkách modulu. Lze zvolit možnosti Necenzurovaný (nový příspěvek se zobrazí ihned), Neviditelný (nový příspěvek se zobrazí až po schválení moderátorem) a Podle času zadání (kombinace obou přístupů v závislosti na času vložení příspěvku).
Možnosti nastavení hodnoty Přihlašovací režim jsou následující:
- Anonymní uživatelé – přístup do diskuze je povolen všem anonymním uživatelům. S uživatelskými údaji (s e-mailovou adresou, přezdívkou apod.) se nijak aktivně nepracuje.
- Rozpoznávat anonymní uživatele – diskuze je povolena všem anonymním uživatelům. S uživatelskými údaji se pracuje aktivně. To znamená, že pokud již v nějakém modulu uživatel zadal např. e-mailovou adresu, je mu předvyplněna (za klíčové slovo <!--WTD_USER(EMAIL)--> ve formuláři pro vložení nového příspěvku), naopak když ji zde zadá, je uložena do záznamu anonymního uživatele v databázi.
- Rozpoznávat registrované uživatele – diskuze je povolena pouze registrovaným uživatelům. Pokud je uživatel registrován a registrace je rozpoznána (pomocí cookies), je automaticky přihlášen, jinak je před vstupem do diskuze přesměrován na přihlašovací stránku modulu Registrace a personalizace.
- Vyžadovat přihlášení vždy – diskuze jsou povoleny pouze registrovaným uživatelům. Je vyžadováno přihlášení k modulu Registrace a personalizace, pokud není (v rámci session) uživatel přihlášen, je přesměrován na přihlašovací stránku.
Poslední dva režimy se v předvolbách zobrazují jen pokud je modul Registrace a personalizace instalován.
Antispamové profily
V nabídce Antispamové profily se definují nastavení ochrany proti diskuznímu spamu. Antispamový profil je pojmenovaná sada nastavení, pomocí kterých se vybírá, jaký typ ochrany se pro vkládání příspěvků aplikuje. Na úrovni definice diskuzní skupiny se pak vybírá odpovídající profil, který daná skupiny použije. Všechny diskuzní skupiny mohou využívat stejný profil nebo je možné nadefinovat více profilů a ty pak nastavit u různých skupin dle potřeby.
V horní části okna prohlížeče je seznam profilů, klepnutím na název profilu se zobrazí formulář pro definici profilu.

Přidávat profily a měnit jejich nastavení je možné bez omezení, smazat profil lze jen když není použit u nějaké diskuzní skupiny.
V následující tabulce je stručně uveden význam jednotlivých voleb, problematice spamu je věnována samostatná kapitola Ochrana proti spamu.
| Položka | Význam | Kroky potřebné pro implementaci |
| Kontrola URL volající stránky | Pomocí http referer se kontroluje, že skript pro vložení příspěvku je volán z formuláře zobrazovaného pomocí tohoto modulu na daném serveru. Pokud se cizí aplikace pokouší přímo přes http protokol vložit příspěvek (nevyplňuje formulář na serveru), je příspěvek detekován jako spam. | Kontrola nevyžaduje žádné další kroky. |
| Formulářová návnada | Do pole Názvy polí formuláře se zadá jeden nebo několik názvů HTML polí ve vstupním formuláři (názvy se oddělují středníkem). Kontrola zjišťuje, jestli některé z těchto polí není čímkoli vyplněno, pokud zjistí, že některé pole má hodnotu, je příspěvek označen za spam. | Kontrola vyžaduje vložení jednoho nebo několika formulářových polí do HTML kódu vstupního formuláře pro zadávání nových příspěvků. Pole musí být skryta před uživatelem (jako typ hidden či pomocí CSS). Člověk pak takové pole nevyplňuje, spamovací robot jej může vyplnit. |
| Seznam zakázaných IP adres | Při vložení se kontroluje, zda IP adresa, ze které příspěvek přichází, není na seznamu zakázaných adres. Pokud tomu tak je, je příspěvek označen za spam. | Nevyžaduje žádné změny v prezentaci, ale vyžaduje zadání zakázaných IP adres pomocí funkce Data - Zakázané IP adresy nebo vložením IP adresy přímo z formuláře pro úpravu diskusního příspěvku. |
| Vyhledávání spamu podle obsahu příspěvků | V textu příspěvků se před vložením vyhledávají slova zadaná ve funkci Filtr slov s volbou Spam. | Nevyžaduje žádné změny v prezentaci, ale vyžaduje naplnění seznamu nežádoucích výrazů pomocí funkce Filtr slov. |
| Vyžadováno přiřazení ke zprávě | Při vkládání příspěvků se kontroluje, zda je ve formuláři uvedeno korektní ID WebToDate zprávy, ke které příspěvek patří. Tato volba je určena pro nastavení u diskuzních skupin používaných jako skupiny pro ukládání komentářů ke článkům. | Kontrola nevyžaduje žádné další kroky. |
| Opisování kontrolních kódů | Uživateli jsou generovány do stránky kontrolní kódy, které musí opsat do daného textového pole. Lze navolit parametry kontrolních kódů - délku, zda se jedná o číslice či písmena apod. | Vyžaduje do HTML kódu vstupního formuláře doplnění několika vstupních polí a klíčových slov modulu, aby bylo zajištěno zobrazení kontrolních kódů a zobrazilo se vstupní pole pro jejich opsání. |
Nastavení
V této sekci nabídky se nastavuje především grafický vzhled a chování všech veřejně přístupných stránek modulu, jsou zde ale i některá nastavení nesouvisející se vzhledem a formátováním prezentační vrstvy (např. slovník Filtr slov).
Seznam předpisů
Pro diskuze 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 diskuzní skupinu. V jednom předpisu lze nadefinovat zobrazování stránek typu seznam příspěvků pod článkem – samostatný výpis seznamu příspěvků – detail jednoho příspěvku – vložení nového příspěvku. Všechny diskuzní skupiny 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é diskuze) 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 diskuzní skupiny.
Nastavení seznamu skupin
Pomocí formuláře Seznam skupin se nastavuje zobrazení stránky vypisující seznam diskuzních skupin (/scripts/modules/disc/disclist.php).

Zde se povinně vybírá Předloha (šablona pro stránku /scripts/modules/disc/disclist.php) a Styl pro seznam diskuzních skupin, počet skupin na jednu stránku se specifikuje v poli Počet záznamů na str. Dále lze výpis třídit buď abecedně podle názvu nebo podle času poslední modifikace sestupně, čímž se rozumí i modifikace dat diskuzní skupiny (čas posledního vložení příspěvku).
V nastavené předloze je seznam diskuzních skupin reprezentován klíčovým slovem <!--WTD_DISC(LIST)-->.
Vyhledávání
Pomocí formuláře Vyhledávání lze nastavit vyhledávací stránku pro tento modul (/scripts/modules/disc/search.php).

Opět se nastavuje předloha, styl seznamu nalezených položek a počet záznamů na stránku. Seznam nalezených položek je v předloze pro stránku reprezentován klíčovým slovem <!--WTD_DISC(LIST)-->, stránkovací lišta <!--WTD_DISC(LISTNAVIG)-->, dále pak je ve stránce obvyklý vyhledávací formulář s klíčovými slovy jako <!--WTD_DISC(SEARCHTEXT)--> apod.; jednoduchý formulář tohoto typu se vygeneruje pomocí funkce Nástroje – Vyhledávání. Pokud není třeba v rámci dané implementace možnost prohledávání diskuzí zpřístupnit, nemusí se tato stránka vůbec nastavovat.
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í:
- Předchozí – HTML kód určující formátování odkazu pro přechod na předcházející stránku
- Následující – HTML kód určující formátování odkazu pro přechod na další stránku
- Hlavička – HTML kód který je umístěn na počátku výsledného kódu navigační lišty
- Patička – HTML kód který je umístěn na konci výsledného kódu navigační lišty
- Číslo stránky – formátování jednotlivých čísel stránky, které umožní odkliknutí na zvolenou stránku
- Aktivní stránka – formátování údaje o čísle aktuální stránky
- Separátor – oddělovač mezi jednotlivými čísly stránek.
- 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:

Navigační lišta je pak v předloze pro zobrazení seznamu diskuzních příspěvků reprezentována klíčovým slovem <!--WTD_DISC(LISTNAVIG)-->.
Filtr slov
Funkce Filtr slov umožňuje definovat slovník nevhodných výrazů. V horním seznamu se zobrazují slova seřazená podle abecedy, ve spodním rámci se zobrazuje editační formulář.

Ve slovech lze používat hvězdičku jako zástupný znak pro více libovolných písmen.
Součástí definice filtrovaného výrazu jsou i příznaky, zda výraz použít při filtraci nežádoucích výrazů a při detekci spamu.
Filtr slov se aplikuje pouze na diskuze, které mají nastavený příznak Filtrovat tuto diskuzi. Filtrace se v takovém případě provádí při ukládání vstupního formuláře z veřejné části www prezentace, nalezená filtrovaná slova se nahrazují řetězcem Cenzura slov zadaným ve formuláři Další nastavení. Výrazy označené pro použití při detekci spamu se použijí jen v případě, že v anitspamovém profilu, který používá daná diskuze, je zvolena možnost Vyhledávání spamu podle obsahu příspěvků.
E-maily
Formulář E-maily slouží k nastavení parametrů odesílání e-mailů modulem. Může se jednat o dva druhy e-mailů:
- E-maily moderátorům diskuzních skupin
- E-maily s novými příspěvky odesílané návštěvníkům, kteří se pro tuto službu zaregistrovali.
V prvém případě dochází k odeslání e-mailu ve chvíli vložení příspěvku, v druhém případě e-maily rozesílá plánovaná úloha Rozesílání diskuzních příspěvků. První tři položky formuláře jsou nastaveními pro tuto úlohu, druhé tři položky jsou pro e-maily moderátorům. Pokud chcete využívat jen jednu z těchto dvou služeb, vyplňte pouze odpovídající položky, pokud nechcete zasílání e-mailů provozovat vůbec, tento formulář nevyplňujte.

V obou případech se definuje:
- Formát e-mailu (text / HTML)
- Předloha pro e-maily
- Předmět e-mailu
V prvním řádku se navíc definuje e-mailová adresa odesílatele, která je pro obě funkce společná.
Předloha e-mailů pro moderátora může mít (pro formát text) např. zhruba následující kód:
Nový diskuzní příspěvek ve skupině <!--WTD_DISC(DNAME)-->
**************************************************
Název: <!--WTD_DISC(NAME)-->
ID: <!--WTD_DISC(ID)-->
Text: <!--WTD_DISC(BODY)-->
Odmítnutí přístupu
Formulář Odmítnutí přístupu se používá k definici stránek, které se zobrazí v případě, že uživatel nemá k dané funkci přístup.

Nastavují se dvě předlohy:
- Stránka pro odmítnutí přístupu pro čtení - tato předloha se uživateli zobrazí v případě, že vyvolá URL zobrazující seznam příspěvků nebo detail příspěvku a přitom je v diskuzní skupině nastaveno, že tato data se nemají uživateli zobrazovat (např. je ve vlastnostech diskuzní skupiny zvoleno Data jsou přístupná pro čtení: Nikomu.
- Stránka pro odmítnutí přístupu pro zápis - tato předloha se uživateli zobrazí v případě, že se pokusí o vložení diskuzního příspěvku a přitom nemá přístup k vkládání dat do diskuzní skupiny, tedy např. v případě, že v diskuzní skupině je nastaveno Vkládat data mohou: Nikdo.
Další nastavení
Formulář Další nastavení slouží ke specifikaci dalších grafických parametrů pro prezentační vrstvu.

V prvé řadě se nastavují prvky pro formátování stromu diskuzních příspěvků – jedná se prvky, které se použijí v případě, že ve stylu formátujícím seznam příspěvků je použito klíčové slovo <!--WTD_DISC(SPACER)-->. Tyto prvky jsou:
- Průběžný kód (|)
- Odbočka (|-)
- Konec odbočky (L)
- Odsazení ( )
Jako výchozí hodnoty těchto polí jsou modulem dosazovány semigrafické znaky uvedené v závorce, které dávají logicky správné zobrazení stromu, které je ale závislé na použité velikosti písma apod. – v praxi proto raději použijte obrázky s odpovídajícím značkami, do těchto polí se pak vloží kompletní HTML <img> značky. Modul pak při formátování použije tyto položky tak, aby správně spojil odpovídající uzly stromu příspěvků při nahrazování kódu za klíčové slovo <!--WTD_DISC(SPACER)-->, výsledek je (s použitím obrázků místo semigrafiky) zobrazen na následujícím výřezu otisku obrazovky.

Dále jsou ve formuláři dvě pole pro cenzuru. Pokud je daný příspěvek ve stavu cenzurováno, zobrazí se v seznamu příspěvků místo textu příspěvku (tj. při nahrazování klíčového slova <!--WTD_DISC(BODY)-->) text zadaný v poli Cenzura příspěvků. Pokud je při ukládání příspěvku aplikován filtr slov, jsou filtrovaná slova nahrazována textem uvedeným v poli Cenzura slov.
Je-li v dané diskuzní skupině zadáván nový příspěvek, který je reakcí na již existující příspěvek, podporuje modul předvyplnění názvu příspěvku tak, aby obsahoval název příspěvku, na který se reaguje plus definovaný prefix. V předloze v kódu vstupního formuláře je pak celý tento řetězec reprezentován klíčovým slovem <!--WTD_DISC(ADDNAME)-->. V tomto formuláři se zmíněný prefix zadává do pole Text reakce.
Modul dále podporuje odhlášení zasílání reakcí v diskuzní skupině e-mailem klepnutím na odkaz v tomto e-mailu. V předloze pro e-mail je toto URL reprezentováno klíčovým slovem <!--WTD_DISC(DEACTURL)-->, vygenerovaný odkaz směřuje na stránku /scripts/modules/disc/unsubscribe.php, která může v dané předloze zobrazit buď potvrzení odhlášení nebo chybové hlášení. Tato předloha se vybírá v poli formuláře nazvaném pro odhlášení odběru příspěvků.
Pokud je v diskuzi zapnuta jakákoliv ochrana proti spamu, je třeba nadefinovat, jak se má chovat skript pro vkládání diskuzních příspěvků v případě, že je příspěvek označen za spam a do databáze se nevloží. Toto chování definuje volba Je-li příspěvek detekován jako spam. Na výběr jsou následující možnosti:
- Ukončit běh skriptu - okamžitě se ukončí běh skriptu pro vložení příspěvku. Skript vypíše pouze identifikační značku dané metody kontroly spamu.
- Zobrazit stránku pro vložení příspěvku - znovu se načte formulář pro vložení příspěvku do dané diskuzní skupiny.
- Přesměrovat na zvolenou stránku - přesměruje na stránku, kterou je nutné v případě této volby zvolit, jedná se o libovolnou stránku ze stromu kategorií WebToDate.
Nastavení 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í čtyři položky reprezentující čtyři možné způsoby zobrazení dat dané diskuzní skupiny:
- Zpráva – toto nastavení definuje formátování zobrazení diskuzních příspěvků k danému článku přímo ve stránce s celým textem zprávy
- Seznam – nastavení definuje způsob výpisu samostatné stránky se seznamem (typicky celými texty) příspěvků
- Detail – nastavení definuje stránku zobrazující text jednoho příspěvku plus případně další podporované objekty (vlákno příspěvků či formulář pro vložení reakce na zobrazovaný příspěvek).
- Nový příspěvek – nastavení definuje stránku pro vložení nového příspěvku.
Všechny čtyři typy stránek nemusí být v daném předpisu nastaveny, záleží na konkrétním použití – např. pro předpis sloužící k nastavení samostatného diskusního fóra nemá smysl provádět nastavení ve formuláři Zpráva apod.
Zpráva
Formulář Zpráva slouží k nastavení zobrazení diskuzních příspěvků ve stránce s celým textem zprávy. V tomto typu stránky je celý seznam diskuzních příspěvků reprezentován v předloze jediným klíčovým slovem <!--WTD_DISC(LIST)-->, celý seznam se tím pádem formátuje jedním WebToDate stylem.

Ve formuláři se tedy nastavuje:
- WebToDate styl – styl formátující celý seznam příspěvků
- Počet záznamů / str. – maximální počet příspěvků, který se v seznamu zobrazí
- Třídit podle – možné třídění v tomto seznamu
Třídění má následující volby (platné i pro stejnou volbu v dalších formulářích):
- Strom vzestupně – řadí příspěvky jako strom, přičemž výpis směřuje od nejstarších k nejnovějším. To znamená, že pokud je více příspěvků ve stejné úrovni vnoření stromu (např. komentáře v nejvyšší úrovni), vypíší se nejprve ty nejstarší.
- Strom sestupně – řadí příspěvky jako strom, přičemž výpis směřuje od nejnovějších k nejstarším. Pokud je tedy více příspěvků ve stejné úrovni vnoření stromu, jako první se vypisují ty nejnovější.
- Lineárně vzestupně – stromová struktura příspěvků a reakcí na ně se kompletně ignoruje, vypisují se všechny příspěvky nezávisle v jaké úrovni stromu příspěvků se nacházejí od nejstarších k nejnovějším.
- Lineárně sestupně – stromová struktura příspěvků a reakcí na ně se kompletně ignoruje, vypisují se všechny příspěvky nezávisle v jaké úrovni stromu příspěvků se nacházejí od nejnovějších k nejstarším.
Příklad WebToDate stylu použitého pro formátování těchto příspěvků pod článkem je následující.
Hlavička
<form action="/scripts/modules/disc/default.php" method="get">
<input type="hidden" name="did" value="<!--WTD_DISC(DID)-->" />
<input type="hidden" name="newsid" value="<!--WTD_DISC(NEWSID)-->" />
<input type="hidden" name="lastvisit" value="<!--WTD_DISC(LASTVISIT)-->" />
<input type="hidden" name="lastaction" value="<!--WTD_DISC(LASTACTION)-->" />
<table border="0" cellpadding="2" width="600" cellspacing="0" class="descr80">
<tr><td class="messageHead">Příspěvků celkem <!--WTD_DISC(TNUMOFITEMS)-->, z toho <!--WTD_DISC(TNUMOFNEWITEMS)--> nových</td></tr>
<tr><td>
Tělo
<input type="checkbox" name="select[]" value="<!--WTD_DISC(ID)-->" <!--WTD_DISC(CHECKED)-->>
<!--WTD_DISC(SPACER)--><!--WTD_DISC(NAME)-->
(<!--WTD_DISC(DATE)--> <!--WTD_DISC(TIME)-->)
<strong>[<!--WTD_DISC(NICKNAME)-->]</strong><br/>
Patička
</td> </tr>
<tr><td align="center">
<input class="btn ball" type="submit" name="event_all" value="Všechny" />
<input class="btn ball" type="submit" name="event_new" value="Nové" />
<input class="btn ball" type="submit" name="event_selected" value="Vybrané" />
<input class="btn" type="submit" name="event_add" value="Přidat příspěvek" />
</td></tr>
</table>
</form>
Jak je zde patrné, celý seznam příspěvků je HTML formulářem směřujícím na skript /scripts/modules/disc/default.php, který podle typu akce (podle atributu name odpovídajícího tlačítka) rozhodne, který typ zobrazení dále použít – seznam příspěvků formátovaný stylem dle daného požadavku nebo stránku pro nový příspěvek. Formulář obsahuje několik hidden polí, ve kterých se předávají interní údaje jako ID zprávy, ke které příspěvky patří apod. V těle stylu jsou jednotlivé položky jednoho diskusního příspěvku, pakliže se má zobrazovat strom příspěvků, je vhodné použít <!--WTD_DISC(SPACER)-->. Toto klíčové slovo se nahradí kódem dle formuláře Další nastavení pouze tehdy, pokud je zvoleno třídění jako strom; při volbě lineárního třídění se za toto klíčové slovo dosazuje prázdný řetězec.
Seznam
Další formulář Seznam slouží k nastavení vzhledu a chování stránky zobrazující seznamy příspěvků (všechny příspěvky nebo jen vybrané) na URL /scripts/modules/disc/messages.php. Tato stránka se využívá v podstatě ve všech implementacích modulu, ať už se jedná o příspěvky ke zprávám nebo samostatná diskuzní fóra.

V položce Předloha se vybírá předloha pro tuto stránku. Nejdůležitějším prvkem v HTML kódu této předlohy je opět klíčové slovo <!--WTD_DISC(LIST)--> reprezentující seznam diskuzních příspěvků, předloha může ale obsahovat další klíčová slova reprezentující např. informace o dané diskuzní skupině jako celku (např. počet příspěvků ve skupině <!--WTD_DISC(DNUMOFITEMS)-->, čas poslední aktualizace obsahu skupiny <!--WTD_DISC(DLASTUPDATE)--> apod.).
Kód části předlohy zobrazující vlastní seznam příspěvků může vypadat např. takto:
<div>
Příspěvky ke článku <strong><a href="<!--WTD_F(TITLELINK)-->"><!--WTD_F(TITLE)--></a></strong><br />
<div align="right"><a href="<!--WTD_DISC(ADDURL)-->">Přidat nový příspěvek</a></div>
</div>
<div><!--WTD_DISC(LIST)--></div>
Skript pro zobrazení seznamu (a tím pádem i tento formulář pro jeho nastavení) rozlišuje tři případy požadavků na zobrazení seznamu:
- Chceme zobrazit všechny příspěvky (k dané zprávě nebo v daném diskuzním fóru)
- Chceme zobrazit všechny příspěvky, ale jen v nejvyšší úrovni vnoření (tj. typicky v daném diskuzním fóru všechna vlákna, na které jsou pak navázány reakce, které se již v tomto typu zobrazení nezobrazují)
- Chceme zobrazit určitý výběr příspěvků (ty, které uživatel ručně označil nebo které byly automaticky označeny jako nové).
Těmto třem případům odpovídají tři různé styly, které se pro daný případ použijí. To znamená, že pokud je např. zjištěn požadavek na zobrazení seznamu příspěvků v nejvyšší úrovni, použije se styl nazvaný všechny příspěvky v nulté úrovni apod.
Pro každý tento případ se kromě stylu nastavují ještě návazné údaje, jedná se tedy o:
- WebToDate styl
- Maximální počet příspěvků na stránku
- Způsob třídění
Zobrazování stromové struktury příspěvků je možné pouze u zobrazení všech příspěvků, nikoliv u vybraných nebo v nejvyšší úrovni, proto se liší možnosti způsobů třídění u jednotlivých případů. Zobrazování stromu příspěvků má navíc dopad na eventuální stránkování seznamu – zatímco lineární výpis lze stránkovat pomocí běžné stránkovací lišty, výpis formátovaný jako strom nikoliv a v takovém případě se nastavení Počet záznamů na stránku ignoruje.
Posledním prvkem v tomto formuláři je nastavení toho, co se má zobrazit, pokud je požadavek na zobrazení všech příspěvků a není specifikováno jinak – jedná se o volbu Výchozí rozbalení. Pokud je nastaveno Celý strom a nejsou při zobrazení specifikovány z URL žádné další parametry toto ovlivňující, zobrazí se všechny příspěvky, v opačném případě pouze příspěvky v nejvyšší úrovni.
Styl pro seznam příspěvků zobrazující všechny příspěvky s grafickým zobrazením struktury zanoření jednotlivých příspěvků (jedná se tedy o styl Styl diskuze pro všechny příspěvky se zvoleným tříděním jako strom) může vypadat zhruba takto:
Hlavička
<div><ul class="disc1">
Tělo
<li class="disc1"><div class="disc_lhead"><!--WTD_DISC(NAME)--></div>
Autor: <!--WTD_DISC(NICKNAME)--> | přidáno: <!--WTD_DISC(TIME)-->, <!--WTD_DISC(DATE)-->
<!--WTD_DISC(BODY)-->
<div align="right"><a href="add.php?msgid=<!--WTD_DISC(ID)-->&newsid=<!--WTD_F(ID)-->">Odpovědět</a>
</li>
Patička
</ul></div>
Začátek sekce
<li class="disc1"><ul class="disc1">
Konec sekce
</ul></li>
Styl zobrazující pod sebou lineárně příspěvky, který je vhodný např. jako Styl diskuze pro vybrané nebo nové příspěvky, může pak vypadat např. následovně:
Hlavička
<div class="descr80a">
Tělo
<div class="disc_lhead"><a href="<!--WTD_DISC(URL)-->"><!--WTD_DISC(NAME)--></a>
(<!--WTD_DISC(DATE)--> <!--WTD_DISC(TIME)-->), <em><!--WTD_DISC(NICKNAME)--></em></div>
<!--WTD_DISC(BODY)-->
<div align="right"><a href="/scripts/modules/disc/add.php?msgid=<!--WTD_DISC(ID)-->&newsid=<!--WTD_F(ID)-->">Odpovědět</a></div>
<br/>
Patička
</div>
Detail
Další součástí předpisu je nastavení nazvané Detail. Toto nastavení specifikuje parametry zobrazení stránky s jedním příspěvkem zobrazované pomocí skriptu /scripts/modules/disc/detail.php. Tento typ stránky je primárně určen k zobrazení celého textu jednoho příspěvku a informací o něm (název, čas vložení, autor příspěvku apod.), může ale obsahovat rovněž formulář pro vložení reakce na příspěvek a může obsahovat i seznam příspěvků v daném vlákně.

Pro stránku se v prvé řadě vybírá Předloha. Tato předloha typicky obsahuje klíčová slova, za která se dosazují jednotlivé položky jednoho příspěvku, jako je název příspěvku <!--WTD_DISC(NAME)-->, text příspěvku <!--WTD_DISC(BODY)-->, datum příspěvku <!--WTD_DISC(DATE)--> apod.
Pokud se má ve stránce zobrazovat vlákno dané diskuze, je tento seznam příspěvků opět reprezentován v předloze klíčovým slovem <!--WTD_DISC(LIST)--> a je formátován stylem vybíraným v tomto nastavení v položce Styl. Ostatní nastavení spojená se stylem jsou stejná jako v předchozím formuláři – maximální počet záznamů na stránku a způsob třídění.
V předloze lze pro zobrazení položek příspěvku použít zhruba následující kód, význam jednotlivých klíčových slov je zřejmý z kontextu:
<h4><!--WTD_DISC(NAME)--></h4>
<div><!--WTD_DISC(BODY)--></div>
<div>
<em>Datum a čas příspěvku: <!--WTD_DISC(DATE)-->, <!--WTD_DISC(TIME)--><br>
Autor: <a href="mailto:<!--WTD_DISC(EMAIL)-->"><!--WTD_DISC(NICKNAME)--></a>
(<!--WTD_DISC(FIRSTNAME)--> <!--WTD_DISC(LASTNAME)-->)</em>
</div>
<hr size="1" noshade="noshade"/>
<div class="descr_small1">
Tento příspěvek se nachází v diskusní skupině <b><!--WTD_DISC(DNAME)--></b>, kde je <!--WTD_DISC(DNUMOFITEMS)--> příspěvků,
poslední příspěvek <!--WTD_DISC(DLASTUPDATE)-->
<br />
<a href="<!--WTD_DISC(DURL)-->">Zpět na diskuzi</a>
</div>
Jak je zmíněno výše, může tato stránka obsahovat i formulář pro vložení reakce na příspěvek, ukázkový kód takového formuláře je uveden v kapitole Vytvoření stránky pro text jednoho příspěvku.
Styl pro vlákno diskuze zobrazované v detailním zobrazení jednoho příspěvku je analogií výše uvedených příkladů, jeho tělo může být definováno např. takto:
<!--WTD_DISC(SPACER)-->
<a href="<!--WTD_DISC(URL)-->" title="<!--WTD_DISC(NICKNAME)-->, <!--WTD_DISC(DATE)-->"><!--WTD_DISC(NAME)--></a>
<!--WTD_IF(ISACTIVE,"<strong>«</strong>")-->
<br/>
Nový příspěvek
Poslední součástí předpisu je formulář Nový příspěvek. Charakterizuje zobrazení stránky /scripts/modules/disc/add.php, nastavují se stejné parametry jako v předchozím případě, možnosti této stránky jsou analogické jako pro zobrazení detailu jednoho příspěvku.

Příklady kódu pro předlohu a případný styl vlákna diskuze jsou uvedeny v kapitole Vytvoření stránky pro vložení nového příspěvku.
Data
Diskuze
V sekci Data nabídky modulu lze moderovat jednotlivé diskuze. V nabídce se pod položkou nazvanou Diskuze zobrazují všechny založené diskuzní skupiny, výběrem skupiny se v pravé části okna zobrazuje seznam příspěvků ve skupině.

Tato funkce může být zpřístupněna i jiným uživatelům než členům týmu Administrátoři – pomocí funkce Administrace – Práva lze úpravy obsahu diskuzních skupin pro každou skupinu zvlášť zpřístupnit vybraným týmům.
Pomocí této funkce získává uživatel plnou kontrolu nad obsahem. Typickým úkonem při moderování je:
- Změna stavu příspěvku (položka Cenzura)
- Připsání redakčního komentáře (položka Komentář)
- Eventuálně smazání příspěvku
Je však povoleno modifikovat i ostatní pole příspěvku, tj. např. název, vlastní text, datum apod.
V pravé horní části prohlížeče se zobrazuje seznam příspěvků od nejnovějších k nejstarším. Pomocí odkazu Vyhledat lze v tomto seznamu vyhledat jen určité položky. Vyhledávací formulář nabízí následující kritéria:
- Datum od – do
- ID zprávy, ke které příspěvky patří (má smysl zadávat, jen pokud se jedná o diskuzní skupinu využívanou k ukládání komentářů ke článkům)
- ID konkrétního příspěvku
- Přezdívka nebo e-mail uživatele, který příspěvek zadal
Vlastní úpravy vybraného příspěvku spočívají ve změně obsahu polí, které nabízí formulář pro tyto úpravy. Většinou se jedná o běžná textová pole (název, obsah apod.). Dále jsou uvedeny jen pole se speciálním významem.
Nastavení příznaku Cenzura má vliv na zobrazení příspěvku v prezentační části v seznamech příspěvků apod. Možné hodnoty jsou:
- Necenzurováno – příspěvek se zobrazuje běžných způsobem
- Cenzurováno – příspěvek se zobrazuje, místo obsahu příspěvku je ve stránce zobrazen text nastavený ve formuláři Nastavení – Globální – Další nastavení v poli Cenzura příspěvků
- Neviditelné – příspěvek se vůbec nezobrazuje
Pole Komentář je určeno k případným vyjádřením redakce. Pokud se tyto komentáře mají na stránkách zobrazovat, musí být v příslušných WebToDate stylech či předlohách uvedeno odpovídající klíčové slovo (<!--WTD_DISC(COMMENT)-->).
Funkčnost mazání jednotlivých příspěvků je taková, že pokud jsou pod odstraňovaným příspěvkem vloženy ve stromové struktuře další reakce, jsou tyto reakce při mazání navázány na nadřazený příspěvek. Vždy jde tedy o mazání jednoho příspěvku, nikoliv celého vlákna a funkce zajišťuje, že vlákno příspěvků zůstane neporušené, pouze je z něho odstraněn jeden uzel.
V záložce Vlastnosti formuláře se zobrazuje rovněž IP adresa, ze které byl příspěvek zadán. Vedle ní se nachází tlačítko Zakázat adresu, pomocí kterého se adresa přidává na seznam zakázaných adres.
Toto administrační rozhraní pro moderování diskuzí neumožňuje:
- Vkládání nových příspěvků
- Přesun příspěvků mezi jednotlivými diskusními skupinami
- Přiřazení příspěvku k jiné zprávě, než ke které byl z veřejně přístupné části zadán.
Protokoly
V části Protokoly lze procházet protokol modulu týkající se zápisů nových příspěvků.

Zobrazují se záznamy o vložených i odmítnutých příspěvcích, pokud je příspěvek odmítnut antispamovou kontrolou, je zde uveden typ kontroly, která odmítnutí vyvolala.
Zakázané IP adresy
Funkce Zakázané IP adresy ovládá přidávání IP adres na blacklist (seznam zakázaných adres) a jejich odstraňování z blacklistu.

Seznam adres je společný pro všechny diskuzní skupiny a ovládá se stejným způsobem jako jiné funkce WebToDate modulů. Ve formuláři se zadává pouze IP adresa, datum vložení a údaj o uživateli se doplňuje automaticky.
Veřejné skripty
Prezentační skripty
V adresáři /scripts/modules/disc/ se nacházejí veřejně přístupné prezentační skripty modulu. Jedná se o následující skripty:
| Skript | Funkce |
| disclist.php | Skript zobrazuje seznam diskuzních skupin, ze kterého se lze dostat na zobrazení příspěvků v dané skupině. Jeho využití má smysl pouze v případě, kdy je vytvořeno více samostatných diskuzních fór. |
| default.php | Skript je použit pro volání jiných skriptů na základě požadované akce. Využívá se např. ve formuláři zobrazujícím seznam komentářů ke zprávě – podle zvoleného tlačítka rozhodne, zda zobrazit seznam všech příspěvků, nových příspěvků, stránku pro vložení nového příspěvku apod. Pokud tento skript nedostane parametr, na základě kterého by mohl rozhodnout o požadovaném typu zobrazení, přesměruje uživatele na seznam skupin disclist.php |
| messages.php | Skript vypisuje seznam příspěvků v dané diskuzní skupině |
| detail.php | Skript zobrazuje jeden diskuzní příspěvek, ve stránce se může nacházet navíc vlákno diskuze a formulář pro vložení reakce na příspěvek |
| add.php | Skript je určen pro zobrazení formuláře pro vložení nového příspěvku, může navíc zobrazovat např. vlákno dané diskuze |
| search.php | Skript je určen pro zobrazování výsledku vyhledávání v diskuzních příspěvcích |
| unsubscribe.php | Skript je určen pro případné odhlášení odebírání nových diskuzních příspěvků e-mailem pomocí URL vkládaného do odesílaných e-mailů |
Dále je v adresáři skript news_postprocessing.php, který se používá jako extenze pro zobrazení komentářů ke zprávám zobrazovaným pomocí /scripts/detail.php.
Následující diagram zobrazuje postupné využití výše uvedených skriptů při implementaci základních funkcí diskusního fóra, které zobrazuje seznam těchto fór, po vybrání diskusního fóra seznam příspěvků v nejvyšší úrovni vnoření, po vybrání jednoho příspěvku stránku umožňující procházet vlákno příspěvků, zobrazovat celý text příspěvku a využít formulář pro vkládání nových příspěvků či reakcí neexistující příspěvky.

Následující diagram zobrazuje řešení stejného problému v případě, že chceme po výběru diskuzního fóra rovnou zobrazit všechny příspěvky (jako strom nebo stránkovaný lineární seznam) včetně plných textů příspěvků a v tomto seznamu pouze prezentovat odkazy na vložení reakce u každého příspěvku.

Uvedená schémata znázorňují vždy jedno z možných modelových řešení. Druhý případ lze např. změnit tak, že v seznamu příspěvků se zobrazují jen názvy příspěvků s odkazy na samostatnou stránku s celým textem příspěvku, pak by se využil i skript detail.php pro zobrazení jednoho příspěvku. Reálně taková změna znamená změnu odpovídajícího WebToDate stylu pro formátování seznamu příspěvků a nastavení stránky pro detail v předpisu používaném danou diskuzí.
Následující diagram zobrazuje využití jednotlivých skriptů v implementaci komentářů ke zprávám.

Pro zobrazení seznamu všech příspěvků i seznamu nových či vybraných příspěvků se využívá stejný skript messages.php, který dle nastavení Seznam v předpisu zvolí odpovídající WebToDate styl pro formátování. Všechna výše uvedená zobrazení jsou navíc volána zastřešujícím skriptem default.php.
Klíčová slova modulu
Modul používá následující prefixy klíčových slov používaných ve WebToDate stylech nebo předlohách pro stránky:
- WTD_DISC – pro položky specifické pro tento modul (název příspěvku, text příspěvku, seznam příspěvků apod.)
- WTD_USER – pro položky vkládané z registrační databáze (registrovaných či anonymních uživatelů), např. pro předvyplnění e-mailové adresy apod.
- WTD_F – pro položky z databáze zpráv, ke kterým jsou příspěvky případně vázány (např. nadpis zprávy, ke které příspěvek patří atd.)
Následující klíčová slova se používají pro vložení seznamů příspěvků nebo skupin. Používají se v předlohách, klíčová slova pro navigační lišty lze navíc použít i v hlavičce či patičce odpovídajícího WebToDate stylu.
| Klíčová slova reprezentující seznamy položek a jejich stránkování | ||
| Klíčové slovo | Význam | Poznámka |
| <!--WTD_DISC(LIST)--> | Seznam diskuzních skupin nebo diskuzních příspěvků | V předloze pro seznam skupin reprezentuje tento seznam, v ostatních předlohách reprezentuje seznam diskuzních příspěvků nebo jeho část (vlákno) |
| <!--WTD_DISC(NAVIG)--> | Navigační lišta pro seznam skupin | Funkční pouze ve skriptu pro seznam skupin disclist.php |
| <!--WTD_DISC(LISTNAVIG)--> | Navigační lišta pro seznam diskuzních příspěvků | Používá se v předloze pro seznam příspěvků (pro skript messages.php) pro stránkování v případě, že se příspěvky zobrazují lineárně (ne jako strom) |
Následující klíčová slova se používají pro položky – vlastnosti celé diskuzní skupiny, do které patří nějaké příspěvky. Lze je tedy použít např. ve stylu pro formátování seznamu diskuzních skupin nebo pro informace o diskuzní skupině při zobrazení příspěvků (seznamu či detailu).
| Klíčová slova reprezentující informace o dané diskuzní skupině | ||
| Klíčové slovo | Význam | Poznámka |
| <!--WTD_DISC(DNAME)--> | Název diskuzní skupiny | |
| <!--WTD_DISC(DDESCRIPTION)--> | Popis skupiny | |
| <!--WTD_DISC(DID)--> | ID diskuzní skupiny | |
| <!--WTD_DISC(DURL)--> | URL odkaz na zobrazení seznamu diskuzních příspěvků v dané diskuzi | |
| <!--WTD_DISC(DLASTUPDATE)--> | Datum a čas poslední aktualizace obsahu skupiny (přidání posledního příspěvku) | |
| <!--WTD_DISC(DNUMOFITEMS)--> | Počet příspěvků v dané skupině | |
| <!--WTD_DISC(ADDURL)--> | URL pro stránku pro vložení nového příspěvku do aktuální diskuzní skupiny | Funguje pouze v seznamu příspěvků messages.php (v předloze nebo hlavičce či patičce stylu) |
Jednoduchý příklad použití těchto klíčových slov je tělo stylu pro výpis seznamu diskuzních skupin (pomocí disclist.php):
<h4><a href="<!--WTD_DISC(DURL)-->"><!--WTD_DISC(DNAME)--></a></h4>
<!--WTD_DISC(DDESCRIPTION)-->
<div class="disc_popisek">
Poslední modifikace obsahu skupiny: <!--WTD_DISC(DLASTUPDATE)-->, počet příspěvků: <!--WTD_DISC(DNUMOFITEMS)-->
</div>
Analogicky část předlohy pro seznam příspěvků ve skupině může obsahovat kód pro zobrazení informací o dané diskuzní skupině, jejíž obsah si uživatel prohlíží:
<div>
Seznam diskuzních příspěvků ve skupině <strong><!--WTD_DISC(DNAME)--></strong><br />
Počet příspěvků: <!--WTD_DISC(DNUMOFITEMS)-->, datum posledního příspěvku: <!--WTD_DISC(DLASTUPDATE)--><br />
<a href="<!--WTD_DISC(ADDURL)-->">Přidat nový příspěvek</a>
</div>
Následující klíčová slova se používají pro zobrazení jednotlivých polí diskuzních příspěvků jako je název příspěvku, datum vložení příspěvku apod.
| Klíčová slova reprezentující položky diskuzního příspěvku | ||
| Klíčové slovo | Význam | Poznámka |
| <!--WTD_DISC(ID)--> | ID příspěvku | |
| <!--WTD_DISC(NAME)--> | Název příspěvku | |
| <!--WTD_DISC(URL)--> | URL pro zobrazení detailní stránky s jedním příspěvkem | |
| <!--WTD_DISC(BODY)--> | Tělo (text) příspěvku | |
| <!--WTD_DISC(DATE)--> | Datum vložení příspěvku | |
| <!--WTD_DISC(TIME)--> | Čas vložení příspěvku | |
| <!--WTD_DISC(NICKNAME)--> | Přezdívka uživatele, který vložil příspěvek | |
| <!--WTD_DISC(FIRSTNAME)--> | Křestní jméno uživatele, který vložil příspěvek | |
| <!--WTD_DISC(LASTNAME)--> | Příjmení uživatele, který vložil příspěvek | |
| <!--WTD_DISC(EMAIL)--> | E-mail uživatele, který vložil příspěvek | |
| <!--WTD_DISC(IP)--> | IP adresa uživatele, který vložil příspěvek | |
| <!--WTD_DISC(COMMENT)--> | Komentář redakce k příspěvku | |
| <!--WTD_DISC(LEVEL)--> | Úroveň vnoření příspěvku | Vnoření se čísluje od nuly, tj. hodnota 0 pro komentáře ke článku znamená, že se jedná o komentář ke zprávě přímo zadaný, hodnota 1, že se jedná o reakci na takový komentář atd. |
| <!--WTD_DISC(AVATARFILE)--> | Cesta k obrázku s avatarem | |
| <!--WTD_DISC(AVATARWIDTH)--> | Šířka obrázku s avatarem | |
| <!--WTD_DISC(AVATARHEIGHT)--> | Výška obrázku s avatarem | |
Příkladem využití těchto klíčových slov může být např. následující tělo WebToDate stylu, který zobrazuje seznam vybraných příspěvků. Takto formátovaný seznam zobrazuje příspěvky s možností přechodu na zobrazení detailu příspěvku a možností přechodu na stránku s formulářem pro zadání reakce na příspěvek. Lze ho použít pro implementaci komentářů ke článkům, proto je v odkazu pro zadání reakce uvedeno klíčové slovo pro ID zprávy, ke která se komentáře vztahují.
<div class="disc_lhead"><a href="<!--WTD_DISC(URL)-->"><!--WTD_DISC(NAME)--></a>
(<!--WTD_DISC(DATE)--> <!--WTD_DISC(TIME)-->), <em><!--WTD_DISC(NICKNAME)--></em></div>
<!--WTD_DISC(BODY)-->
<div align=right><a href="/scripts/modules/disc/add.php?msgid=<!--WTD_DISC(ID)-->&newsid=<!--WTD_F(ID)-->">Odpovědět</a></div>
<br/>
Pro práci s úrovněmi vnoření lze kromě čísla úrovně vnoření <!--WTD_DISC(LEVEL)--> využít i jejich testování. K tomu jsou určeny výrazy
<!--WTD_IF(LEVEL_GT, číslo úrovně, "vkládaný HTML kód")--> - vkládá kód, pokud je číslo úrovně větší než zadané číslo
<!--WTD_IF(LEVEL_EQ, číslo úrovně, "vkládaný HTML kód")--> - vkládá kód, pokud je číslo úrovně rovno zadanému číslu
<!--WTD_IF(LEVEL_LT, číslo úrovně, "vkládaný HTML kód")--> - vkládá kód, pokud je číslo úrovně menší než zadané číslo
Tedy např.
<!--WTD_IF(LEVEL_GT, 2, "Tento text se objeví u příspěvků v úrovni 3 a vyšší.")-->
Výrazy lze použít všude tam, kde lze použít <!--WTD_DISC(LEVEL)-->.
Pro IP adresy lze použít formátovací konstrukci, která nahradí část IP adresy zvoleným řetězcem, aby nebylo nutné zobrazovat ve veřejně přístupných stránkách kompletní IP adresy uživatelů. Používá se výraz
<!--WTD_FORMAT(IPADDRESS,"formátovací předpis","adresa")-->
tedy např.
<!--WTD_FORMAT(IPADDRESS,"*.*.*.xxx","<!--WTD_DISC(IP)-->")-->
Formátovací předpis předpokládá, že se maskují části adresy mezi tečkami v IP adrese. Pro zobrazovanou část IP adresy se použije hvězdička, pro nezobrazovanou libovolný řetězec. "*.*.*.xxx" tedy bude zobrazovat "234.160.21.xxx", "cosi.*.yy.*" bude zobrazovat "cosi.160.yy.168" apod.
Modul dále podporuje další Klíčová slova pro formátování typu WTD_FORMAT, tedy např.
<!--WTD_FORMAT(SMAXLEN,"formátovací předpis","ořezávaný text")-->
apod.
Pro zobrazování avatarů lze použít výrazy
<!--WTD_IF(NOAVATAR,"… ")--> - kód v uvozovkách se vkládá v případě, že avatar neexistuje
<!--WTD_IF(HASAVATAR,"… ")--> - kód v uvozovkách se vkládá v případě, že avatar existuje
Následující klíčová slova umožňující zobrazení počtu příspěvků v daném vlákně nebo informace o počtu komentářů k dané zprávě. Vždy je k dispozici klíčové slovo <!--WTD_DISC(DNUMOFITEMS)-->, za které se dosazuje celkový počet příspěvků v dané diskuzní skupině. Dále může být ovšem žádoucí zobrazit:
- Počet příspěvků v daném vlákně (obvykle v samostatném diskuzním fóru ve stránce se seznamem příspěvků v nejvyšší úrovni vnoření)
- Celkový počet komentářů k dané zprávě a počet komentářů, které ještě uživatel neviděl (nových komentářů ke zprávě)
Proto kromě klíčového slova pro celkový počet příspěvků v diskuzní skupině existují ještě následující dvě klíčová slova.
| Klíčová slova pro informace o počtech příspěvků | ||
| Klíčové slovo | Význam | Poznámka |
| <!--WTD_DISC(TNUMOFITEMS)--> | Počet příspěvků ve vlákně nebo počet komentářů k jedné zprávě | Lze použít v hlavičce stylu pro zobrazení příspěvků pod článkem nebo v těle stylu pro zobrazení seznamu příspěvků v nejvyšší úrovni vnoření. |
| <!--WTD_DISC(TNUMOFNEWITEMS)--> | Počet nových komentářů k jedné zprávě | Lze použít pouze v hlavičce stylu pro zobrazení příspěvků pod článkem |
Tělo stylu pro seznam příspěvků v nejvyšší úrovni (pro samostatná diskuzní fóra) může vypadat např. takto:
<tr><td class="messageCol">
<strong><a href="<!--WTD_DISC(URL)-->"><!--WTD_DISC(NAME)--></a></strong>
</td>
<td><!--WTD_DISC(NICKNAME)--></td>
<td class="messageCol"><!--WTD_DISC(TNUMOFITEMS)--></td>
<td><!--WTD_DISC(LASTMODIFIED)--></td></tr>
V hlavičce nebo patičce stylu pro zobrazení diskuzních příspěvků pod článkem se může informace o počtech příspěvků vložit následujícím způsobem:
<div class="mHead1">Příspěvků celkem <!--WTD_DISC(TNUMOFITEMS)-->, z toho <!--WTD_DISC(TNUMOFNEWITEMS)--> nových</div>
Další dvě klíčová slova jsou k dispozici pro speciální formátování stromu diskuzních příspěvků. Klíčové slovo <!--WTD_DISC(SPACER)--> lze použít v těle stylu pro vložení značek, které dohromady vytvářejí grafické znázornění stromu příspěvků. HTML kódy značek se nastavují globálně pro celý modul ve formuláři Nastavení – Globální – Další nastavení. Klíčové slovo lze použít ve stylu pro seznam příspěvků pod článkem, ve stylu pro seznam příspěvků zobrazovaný pomocí stránky messages.php a ve stylu pro seznam příspěvků v daném vlákně (v zobrazení detailu příspěvku nebo ve stránce pro nový příspěvek).
Klíčové slovo <!--WTD_DISC(CHECKED)--> dosazuje HTML atribut pro zaškrtnutí zaškrtávacího okénka. Za klíčové slovo se dosazuje hodnota pouze v případě, že příspěvek má být označen jako nový, jinak se dosadí prázdný řetězec. Toto klíčové slovo má smysl pouze v seznamu příspěvků pod článkem ať už je formátován jako strom nebo lineárně.
| Klíčová slova pro formátování stromu příspěvků | ||
| Klíčové slovo | Význam | Poznámka |
| <!--WTD_DISC(SPACER)--> | Formátování stromu příspěvků | Lze použít pouze v těle stylu, pokud je seznam zobrazován jako strom |
| <!--WTD_DISC(CHECKED)--> | Označení nových příspěvků | Lze použít pouze v těle stylu pro seznam příspěvků pod článkem |
Následující příklad může být použit jako tělo stylu pro zobrazení seznamu příspěvků pod článkem a demonstruje užití obou výše uvedených klíčových slov.
<input type="checkbox" name="select[]" value="<!--WTD_DISC(ID)-->" <!--WTD_DISC(CHECKED)-->>
<!--WTD_DISC(SPACER)--><!--WTD_DISC(NAME)-->
(<!--WTD_DISC(DATE)--> <!--WTD_DISC(TIME)-->)
<strong>[<!--WTD_DISC(NICKNAME)-->]</strong><br/>
Následující klíčová slova se mohou použít ve formulářích pro zadávání nových příspěvků v polích pro osobní údaje uživatele. Spojují tento modul s registrační databází (anonymních nebo registrovaných uživatelů), modul za ně může předvyplnit danou položku, a to v případě, že uživatel již někde daný údaj zadal a daná diskuze je v jiném režimu než anonymním bez rozpoznávání.
| Klíčová slova reprezentující osobní údaje ve formulářích pro vkládání příspěvků | ||
| Klíčové slovo | Význam | Poznámka |
| <!--WTD_USER(EMAIL)--> | E-mail uživatele | |
| <!--WTD_USER(NICKNAME)--> | Přezdívka uživatele | |
| <!--WTD_USER(FIRSTNAME)--> | Křestní jméno uživatele | |
| <!--WTD_USER(LASTNAME)--> | Příjmení uživatele | |
Jedno formulářové pole využívající tyto možnosti je ve stránce reprezentováno zhruba následujícím kódem.
<tr>
<td><label for="nickname">Přezdívka:</label></td>
<td><input type="text" name="nickname" id="nickname" value="<!--WTD_USER(NICKNAME)-->" /></td>
</tr>
Následující tabulka obsahuje další klíčová slova používaná ve formulářích pro vkládání příspěvků.
| Další klíčová slova používaná ve formulářích pro vkládání příspěvků | ||
| Klíčové slovo | Význam | Poznámka |
| <!--WTD_DISC(ADDNAME)--> | Název příspěvku ve formuláři | Obsah zůstává zachován při odmítnutí pokusu o vložení příspěvku, pokud se zadává reakce na příspěvek název se předvyplňuje |
| <!--WTD_DISC(ADDBODY)--> | Tělo příspěvku ve formuláři | Obsah zůstává zachován při odmítnutí pokusu o vložení příspěvku |
| <!--WTD_DISC(SENDANSWERS)--> | Odesílat příspěvky e-mailem | |
| <!--WTD_DISC(ROOTID)--> | ID příspěvku, pod který má být nový příspěvek zařazen | |
| <!--WTD_DISC(LASTVISIT)--> | Čas posledního zobrazení seznamu příspěvků ke zprávě | Používá se k tomu, aby bylo možné pro uživatele k dané zprávě označit nové ještě nepřečtené příspěvky |
| <!--WTD_DISC(LASTACTION)--> | Nastavení návratové stránky | Používá se k tomu, aby bylo možné definovat, která stránka se zobrazí po vložení nového příspěvku |
| <!--WTD_DISC(NEWITEMLEVEL)--> | Číslo úrovně vnoření pro nový příspěvek | Dosazuje číslo úrovně vnoření, v jaké se bude příspěvek nacházet, pokud se podaří formulář pro vložení příspěvku úspěšně uložit. |
| <!--WTD_SPAMCHECK(CCHIDDEN)--> | Skrytý kontrolní kód | Používá se pro antispamovou ochranu typu Opisování kontrolních kódů |
| <!--WTD_SPAMCHECK(CCVISIBLE)--> | Zobrazovaný kód k opsání | Používá se pro antispamovou ochranu typu Opisování kontrolních kódů |
Pro práci s úrovněmi vnoření ve formuláři pro nový příspěvek jsou určeny kromě klíčového slova <!--WTD_DISC(NEWITEMLEVEL)--> výrazy
<!--WTD_IF(NEWITEMLEVEL_GT, číslo úrovně, "vkládaný HTML kód")-->
<!--WTD_IF(NEWITEMLEVEL_EQ, číslo úrovně, "vkládaný HTML kód")-->
<!--WTD_IF(NEWITEMLEVEL_LT, číslo úrovně, "vkládaný HTML kód")-->
Výrazy testují, v jaké úrovni vnoření (větší, rovno či menší než zadané číslo) bude příspěvek, pokud se jej podaří úspěšně uložit.
Význam speciálních klíčových slov ADDNAME a ADDBODY je takový, že dávají možnost zachovat vložené texty v případě, že je odmítnuto uložení formuláře, protože je obsah těchto polí prázdný – uživateli se zobrazí stejná stránka, pole která již byla vyplněna zachovávají svůj obsah. Navíc lze do stránky vložit chybové hlášení informující o tom, že pole nesmí být prázdné. Konkrétní HTML kód ilustruje následující příklad.
<tr>
<td colspan="2"><label for="body"><!--WTD_IF(NOBODY,"<span class="wtd_error">Nutno vyplnit </span>")-->Text:</label></td>
</tr><tr>
<td colspan="2"><textarea cols="50" rows="10" name="body" id="body"><!--WTD_DISC(ADDBODY)--></textarea></td>
</tr>
Ve formuláři je nutné použít několik hidden polí, ve kterých se předávají informace o tom, do které diskuze má být nový příspěvek zařazen, pod kterým příspěvkem se má ve stromu diskuze nacházet apod.
V implementaci formuláře pro samostatná diskuzní fóra použijte ve formuláři následující kód:
<input type="hidden" id="did" name="did" value="<!--WTD_DISC(DID)-->" />
<input type="hidden" id="rootid" name="rootid" value="<!--WTD_DISC(ROOTID)-->" />
<input type="hidden" id="msgid" name="msgid" value="<!--WTD_DISC(ID)-->" />
V implementaci formuláře pro zadání nového komentáře ke článku použijte následující kód (obsahuje navíc ID zprávy, ke které komentář patří a údaj o tom, jaká stránka se má po vložení zobrazit):
<input type="hidden" id="did" name="did" value="<!--WTD_DISC(DID)-->" />
<input type="hidden" id="rootid" name="rootid" value="<!--WTD_DISC(ROOTID)-->" />
<input type="hidden" id="msgid" name="msgid" value="<!--WTD_DISC(ID)-->" />
<input type="hidden" name="newsid" value="<!--WTD_DISC(NEWSID)-->" />
<input type="hidden" name="lastaction" value="newspage" />
V implementaci formuláře pro zobrazení komentářů ke článkům přímo ve stránce se zprávou (tj. v hlavičce odpovídajícího WebToDate stylu použijte následující kód:
<input type="hidden" name="did" value="<!--WTD_DISC(DID)-->" />
<input type="hidden" name="newsid" value="<!--WTD_DISC(NEWSID)-->" />
<input type="hidden" name="lastvisit" value="<!--WTD_DISC(LASTVISIT)-->" />
<input type="hidden" name="lastaction" value="<!--WTD_DISC(LASTACTION)-->" />
Pro implementaci zaškrtávacího okénka pro objednání zasílání nových příspěvků e-mailem lze použít zhruba následující kód:
<tr>
<td colspan="2"><label for="sendanswers">Zasílat odpovědi</label>
<input type="checkbox" name="sendanswers" id="sendanswers" <!--WTD_DISC(SENDANSWERS)--> /></td>
</tr>
Pro implementaci části formuláře pro opisování kontrolních kódů (ochrana proti spamu) použijte zhruba následující kód:
<input type="hidden" name="ccid" value="<!--WTD_SPAMCHECK(CCHIDDEN)-->">
Opište následující kód <strong><!--WTD_SPAMCHECK(CCVISIBLE)--></strong>:
<input type="text" name="ccvalue" size="5">
Následující přehled obsahuje nejpoužívanější klíčová slova pro možnost zobrazení informace o zprávě, ke které příspěvek patří. Toto samozřejmě nemá smysl u samostatných diskuzních fór, ale pouze v implementaci komentářů ke článkům.
| Klíčová slova pro prezentaci informací o zprávách, ke kterým příspěvky patří | ||
| Klíčové slovo | Význam | Poznámka |
| <!--WTD_F(ID)--> | ID zprávy | |
| <!--WTD_F(TITLE)--> | Nadpis zprávy | |
| <!--WTD_F(TITLELINK)--> | Odkaz nadpisu zprávy | |
| <!--WTD_F(DESCRIPTION)--> | Popis zprávy | |
Lze použít i další klíčová slova používaná ve WebToDate pro pole databáze zpráv jako <!--WTD_F(DATE)--> (datum zprávy), <!--WTD_F(SOURCE)--> (autor) apod. Seznam klíčových slov tohoto typu je uveden v referenční příručce WebToDate.
Příkladem použití může být část HTML kódu předlohy pro zobrazení seznamu příspěvků – ve stránce se zobrazí informace o tom, ke které zprávě příspěvky patří, odkaz na stránku pro přidání nového příspěvku a pak vlastní seznam příspěvků:
<div>
Příspěvky ke článku <strong><a href="<!--WTD_F(TITLELINK)-->"><!--WTD_F(TITLE)--></a></strong><br />
<div align="right"><a href="<!--WTD_DISC(ADDURL)-->">Přidat nový příspěvek</a></div>
</div>
<div><!--WTD_DISC(LIST)--></div>
Následující klíčová slova se mohou použít v předloze vyhledávací stránky search.php.
| Klíčová slova pro předlohu vyhledávací stránky | ||
| Klíčové slovo | Význam | Poznámka |
| <!--WTD_DISC(SEARCHTEXT)--> | Vyhledávaný text | |
| <!--WTD_DISC(SEARCHNAMESONLY)--> | Volba pro vyhledávání pouze v názvech příspěvků | |
| <!--WTD_DISC(FROM)--> | Nalezené příspěvky od (číslo) | |
| <!--WTD_DISC(TO)--> | Nalezené příspěvky do (číslo) | |
| <!--WTD_DISC(TOTAL)--> | Celkový počet nalezených příspěvků | |
Použití demonstruje následující část HTML kódu předlohy pro vyhledávání.
<form method="get" action="/scripts/modules/disc/search.php">
<table border="0" cellspacing="2" cellpadding="4">
<tr><td colspan="2" class="formtitle">Hledání v příspěvcích</td></tr>
<tr><td colspan="2">
<input type="text" id="searchtext" name="searchtext" value="<!--WTD_DISC(SEARCHTEXT)-->" />
<input type="submit" name="Action" name="Action" value="Hledat" />
</td></tr>
<tr><td>Hledat pouze v názvech příspěvků
<input type="checkbox" id="searchnamesonly" name="searchnamesonly" value="1" <!--WTD_DISC(SEARCHNAMESONLY)--> /></td></tr>
</table>
</form>
<!--WTD_IF(NOTFOUND,"Žádné příspěvky vyhovující zadaným kritériům nebyly nalezeny.")-->
<div><strong>Nalezené příspěvky <!--WTD_DISC(FROM)--> až <!--WTD_DISC(TO)--> z <!--WTD_DISC(TOTAL)--></strong></div>
<div><!--WTD_DISC(LIST)--></div>
<p><!--WTD_DISC(LISTNAVIG)--></p>
Pro rozesílání příspěvků emailem je k dispozici klíčové slovo <!--WTD_DISC(DEACTURL)--> pro vložení URL do e-mailu, pomocí kterého se lze odhlásit z odběru diskuzních příspěvků:
| Klíčová slova pro odhlášení odebírání e-mailů s příspěvky | ||
| Klíčové slovo | Význam | Poznámka |
| <!--WTD_DISC(DEACTURL)--> | Odhlašovací URL | |
Modul podporuje v určitých případech podmíněné vkládání kódu pomocí syntaxe WTD_IF. Používá se pro vkládání chybových hlášení, označování aktuálně zobrazovaných příspěvků apod. Následující tabulka obsahuje přehled těchto klíčových slov a jejich možného užití.
| Klíčová slova pro podmíněné vkládání kódu | ||
| Klíčové slovo | Význam | Poznámka |
| <!--WTD_IF(ISACTIVE,"…")--> | Kód se vloží jen pokud je aktuálně zobrazovaná položka aktivní | Lze použít pouze v těle stylu formátujícího seznam příspěvků v daném vlákně ve stránce pro detail nebo nový příspěvek – vloží text u toho příspěvku, který se aktuálně zobrazuje |
| <!--WTD_IF(ISNOTACTIVE,"…")--> | Kód se vloží jen pokud je aktuálně zobrazovaná položka neaktivní | Lze použít pouze v těle stylu formátujícího seznam příspěvků v daném vlákně ve stránce pro detail nebo nový příspěvek – vloží text u těch příspěvků, které nejsou právě aktivní |
| <!--WTD_IF(ISNEW,"…")--> | Kód se vloží jen v případě, že příspěvek je považován za nový | Lze použít pouze ve stylu pro formátování příspěvků pod článkem |
| <!--WTD_IF(NORECORDS,"…")--> | Kód se vloží jen v případě, že nebyl nalezeny žádné položky | Lze použít pouze v předloze pro seznam příspěvků messages.php a v seznamu diskuzních skupin disclist.php |
| <!--WTD_IF(NOTFOUND,"…")--> | Kód se vloží jen v případě, že vyhledávání nenalezlo žádnou položku | Lze použít pouze v předloze pro vyhledávací stránku search.php |
| <!--WTD_IF(NONAME,"…")--> | Kód se vloží jen v případě, že ve formuláři nebyl vyplněn název příspěvku | Lze použít jen v předloze obsahující formulář pro vložení nového příspěvku |
| <!--WTD_IF(NOBODY,"…")--> | Kód se vloží jen v případě, že ve formuláři nebylo vyplněno tělo příspěvku | Lze použít jen v předloze obsahující formulář pro vložení nového příspěvku |
| <!--WTD_IF(NEWSNOTNULL,"…")--> | Kód se vloží jen v případě, že daný příspěvek je příspěvkem ke zprávě | Lze použít v předloze pro detailní zobrazení jednoho příspěvku nebo seznamu příspěvků nebo pro e-maily s příspěvky. |
| <!--WTD_IF(LEVEL_GT, číslo úrovně, "…")--> | Vkládá kód, pokud je číslo úrovně vnoření příspěvku větší než zadané číslo | Lze použít v předloze pro detailní zobrazení jednoho příspěvku nebo stylu seznamu příspěvků. |
| <!--WTD_IF(LEVEL_EQ, číslo úrovně, "…")--> | Vkládá kód, pokud je číslo úrovně vnoření příspěvku rovno zadanému číslu | Lze použít v předloze pro detailní zobrazení jednoho příspěvku nebo stylu seznamu příspěvků. |
| <!--WTD_IF(LEVEL_LT, číslo úrovně, "…")--> | Vkládá kód, pokud je číslo úrovně vnoření příspěvku menší než zadané číslo | Lze použít v předloze pro detailní zobrazení jednoho příspěvku nebo stylu seznamu příspěvků. |
| <!--WTD_IF(NEWITEMLEVEL_GT, číslo úrovně, "…")--> | Vkládá kód, pokud bude číslo úrovně vnoření nově vkládaného příspěvku větší než zadané číslo | Lze použít ve formuláři pro vkládání příspěvků |
| <!--WTD_IF(NEWITEMLEVEL_EQ, číslo úrovně, "…")--> | Vkládá kód, pokud bude číslo úrovně vnoření nově vkládaného příspěvku rovno zadanému číslu | Lze použít ve formuláři pro vkládání příspěvků |
| <!--WTD_IF(NEWITEMLEVEL_LT, číslo úrovně, "…")--> | Vkládá kód, pokud bude číslo úrovně vnoření nově vkládaného příspěvku menší než zadané číslo | Lze použít ve formuláři pro vkládání příspěvků |
| <!--WTD_IF(NOAVATAR,"… ")--> | Kód se vkládá v případě, že avatar uživatele neexistuje | Lze použít v předloze pro detailní zobrazení jednoho příspěvku nebo seznamu příspěvků. |
| <!--WTD_IF(HASAVATAR,"… ")--> | Kód se vkládá v případě, že avatar uživatele existuje | Lze použít v předloze pro detailní zobrazení jednoho příspěvku nebo seznamu příspěvků. |
| <!--WTD_IF(SPAMWRONGCC,"…")--> | Kód se vloží v případě, že uživatel špatně opsal kontrolní kód pro antispamovou ochranu | Lze použít v předloze obsahující formulář pro vložení nového příspěvku |
| <!--WTD_IF(SPAMBLACKIP,"…")--> | Kód vloží antispamová ochrana v případě, že adresa uživatele vkládajícího příspěvek je na seznamu zakázaných adres | Lze použít v předloze obsahující formulář pro vložení nového příspěvku |
| <!--WTD_IF(SPAMDETECTED,"…")--> | Vloží se pokud byl příspěvek detekován jako spam a nejde o předchozí dva případy. | Lze použít v předloze obsahující formulář pro vložení nového příspěvku |
Příklad podmíněného vložení informace o tom, že diskuzní příspěvek patří k nějaké zprávě je následující:
<!--WTD_IF(NEWSNOTNULL,"Toto je příspěvek ke zprávě <!--WTD_F(TITLE)-->")-->
Příklad označení nových příspěvků v těle stylu pro zobrazení komentářů pod článkem je tento:
<!--WTD_IF(ISNEW,"<span class="disc_newitem">Nový!</span>")-->
Příklad podpory výpisu hlášení antispamové ochrany (část kódu předlohy pro vkládání nových příspěvků je tento:
<!--WTD_IF(SPAMWRONGCC,"Zadaný kontrolní kód není správný")-->
<!--WTD_IF(SPAMBLACKIP,"Vaše adresa je na blacklistu")-->
<!--WTD_IF(SPAMDETECTED,"Příspěvek byl označen jako spam")-->
Formulářová pole a další možné parametry skriptů
Názvy formulářových polí je třeba přesně dodržet, jinak může být vyhledávací formulář nefunkční.
| Parametry skriptu disclist.php pro zobrazení seznamu diskuzních skupin | ||
| Název pole nebo parametru | Význam | Poznámka |
| pg | číslo stránky v rámci stránkování seznamu | |
| Parametry skriptu messages.php pro zobrazení seznamu diskuzních příspěvků | ||
| Název pole nebo parametru | Význam | Poznámka |
| did | ID diskuzní skupiny | |
| newsid | ID zprávy, ke které se vypsané příspěvky mají vztahovat | |
| collapse | Vynutí zobrazení nejvyšší úrovně nebo celého stromu | Hodnota 0 znamená celý strom, hodnota 1 znamená pouze nejvyšší úroveň vnoření |
| sort | Vynutí jiný způsobe setřídění seznamu příspěvků | Hodnota asc znamená, že se mají příspěvky setřídit vzestupně, hodnota desc znamená setřídit sestupně. Lze použít jen pokud se jedná o příspěvky ke zprávě, tj. je zadáno newsid a zároveň je zadáno action=all. |
| tree | Vynutí zobrazení nebo potlačení stromu příspěvků | Hodnota on znamená, že se mají příspěvky zobrazovat ve stromové struktuře, hodnota off v lineárním zobrazení. Lze použít jen pokud se jedná o příspěvky ke zprávě, tj. je zadáno newsid a zároveň je zadáno action=all. |
| lastvisit | Může obsahovat timestamp pro zaznamenání toho, které příspěvky již byly viděny (a tudíž nebudou považovány za nové) | Má smysl jen když se jedná o příspěvky ke zprávě, tj. je uvedeno newsid. Pokud není uvedeno jako parametr skriptu, použije se pro toto označení aktuální čas na serveru. |
| action | Zobrazení obsahu – lze zvolit v seznamu všechny, nové nebo vybrané příspěvky | Možné hodnoty jsou all, new, selected |
| pg | Číslo stránky v rámci stránkování | |
Využití parametrů demonstrují následující příklady:
- messages.php?did=2 – zobrazí seznam příspěvků v diskuzní skupině s ID = 2. To, zda se zobrazí všechny příspěvky nebo jen příspěvky v nejvyšší úrovni rozhoduje volba Nastavení – Předpisy – název předpisu – Seznam – Všechny příspěvky (Výchozí rozbalení).
- messages.php?did=2&collapse=0 - zobrazí seznam příspěvků v diskuzní skupině s ID = 2. Zobrazí se všechny příspěvky nezávisle na nastavení zmíněném v předchozím příkladu.
- messages.php?newsid=9095 – zobrazí seznam diskuzních příspěvků ke zprávě s ID = 9095.
- messages.php?newsid=9095&collapse=1 – zobrazí seznam diskuzních příspěvků ke zprávě s ID = 9095 v nejvyšší úrovni vnoření
- messages.php?newsid=9095&action=all&tree=off&sort=desc – zobrazí seznam diskuzních příspěvků ke zprávě s ID = 9095 s vynuceným lineárním zobrazením a vynuceným sestupným tříděním
Je-li zároveň uveden parametr newsid i did, použije se předpis daný ID diskuzní skupiny v parametru did. Zároveň ale dochází k tomu, že všechna klíčová slova modulu vázaná na diskuzní skupinu (název skupiny, počet příspěvků apod.) se interpretují podle této diskuzní skupiny, takže nevhodná kombinace těchto parametrů může zobrazovat neodpovídající údaje. Je-li uvedeno pouze newsid, volí se předpis podle pravidel řazení.
Skript default.php funguje tak, že rozhoduje o volání skriptu messages.php nebo add.php. Jeho parametry jsou proto stejné jako u těchto uvedených skriptů, výjimkou je následující parametr, podle kterého se rozhoduje o způsobu volání.
| Parametry skriptu default.php | ||
| Název pole nebo parametru | Význam | Poznámka |
| event_... | Rozhoduje o obsahu seznamu (všechny, nové, vybrané) nebo volání skriptu pro nový příspěvek | Používá se pro zobrazení seznamu příspěvků z formuláře pro komentáře pod článkem. Rozhoduje to, za je definován jeden z parametrů event_all (všechny), event_new (nové) nebo event_selected (vybrané). Mál-li takový parametr nějakou hodnotu (jedno jakou) dojde k zobrazení odpovídajícího seznamu – všech, nových nebo vybraných. Další možnosti jsou event_add (přidání nového příspěvku a event_subscribe (vytvoření subskripce pro odesílání e-mailů z dané diskuze) |
Následující tabulka obsahuje používané parametry pro skript zobrazující jeden příspěvek resp. stránku pro vložení nového příspěvku. Interní implementace v podstatě tyto dva případy téměř nerozlišuje, proto je sada parametrů pro tyto stránky identická.
| Parametry skriptů detail.php a add.php pro zobrazení jednoho příspěvku a přidání nového přípěvku | ||
| Název pole nebo parametru | Význam | Poznámka |
| did | ID diskuzní skupiny | Pokud je ve formuláři pro přidání nového příspěvku uveden parametr did a jedná se o vkládání komentářů ke článkům, parametr přepisuje v modulu nastavená pravidla řazení a příspěvek je zařazen do skupiny určené tímto parametrem. Při vkládání se testuje, zda daná skupina existuje - pokud skupina s daným ID neexistuje, použijí se pravidla řazení. |
| newsid | ID zprávy, ke které se příspěvek vztahuje | |
| msgid | ID zobrazovaného příspěvku | |
| lastaction | Definuje výběr stránky, která se vloží po uložení nového příspěvku | Možné hodnoty jsou all (všechny), new (nové), selected (vybrané), newspage (zpráva) |
| rootid | ID příspěvku, který se použije jako kořen daného vlákna | Využívá se v tomto typu stránky pro zobrazení vlákna diskuze. Pokud není uvedeno, použije se jako kořen vlákna aktuálně zobrazovaný příspěvek |
Využití parametrů demonstrují následující příklady:
- detail.php?msgid=13 – zobrazí detailní stránku s jedním diskuzním příspěvkem s ID = 13
- detail.php?msgid=14&rootid=13 - zobrazí detailní stránku s jedním diskuzním příspěvkem s ID = 14, pokud je ve stránce zobrazováno vlákno diskuze, bude toto vlákno jako kořen stromu využívat příspěvek s ID=13
- detail.php?did=1&newsid=9095&lastaction=newspage&msgid=61 - zobrazí detailní stránku s jedním diskuzním příspěvkem s ID = 61 patřícího k zprávě s ID = 9095. Pokud stránka obsahuje formulář pro vložení reakce na příspěvek, zobrazí se po uložení stránka se celým textem zprávy a komentáři pod článkem /scripts/detail.php?id=9095.
Zde poznamenejme, že to, aby bylo předávání těchto parametrů funkční, musí být parametry uvedeny ve formuláři pro vložení příspěvku. To se běžně implementuje jako sada hidden polí následujícím způsobem:
<input type="hidden" name="did" value="<!--WTD_DISC(DID)-->" />
<input type="hidden" name="msgid" value="<!--WTD_DISC(ID)-->" />
<input type="hidden" name="rootid" value="<!--WTD_DISC(ROOTID)-->" />
<input type="hidden" name="newsid" value="<!--WTD_DISC(NEWSID)-->" />
<input type="hidden" name="lastaction" value="<!--WTD_DISC(LASTACTION)-->" />
Volání skriptu z posledního výše uvedeného příkladu dosadí za klíčová slova ve formuláři příslušné hodnoty, jak je uvedeno v následujícím kódu, díky tomu se potřebné parametry přenesou mezi stránkami:
<input type="hidden" name="did" value="1" />
<input type="hidden" name="msgid" value="61" />
<input type="hidden" name="rootid" value="61" />
<input type="hidden" name="newsid" value="9095" />
<input type="hidden" name="lastaction" value="newspage" />
Následující parametry se používají ve vstupním formuláři pro vložení nového příspěvku. Součástí formuláře by měly být i další parametry uvedené výše, které specifikují ID zprávy, ke které příspěvek patří, ID diskuze apod.
| Parametry – formulářová pole pro vkládání příspěvků | ||
| Název pole nebo parametru | Význam | Poznámka |
| E-mailová adresa uživatele | ||
| nickname | Přezdívka | |
| firstname | Křestní jméno | |
| lastname | Příjmení | |
| name | Název příspěvku | |
| body | Text příspěvku | |
| sendanswers | Zasílat odpovědi | Používá se jako zaškrtávací okénko s kódem
<input type="checkbox" name="sendanswers" <!--WTD_DISC(SENDANSWERS)--> /> |
| ccid | Hodnota skrytého pole pro kontrolní kódy (ochrana proti spamu) | Používá se v kódu <input type="hidden" name="ccid" value="<!--WTD_SPAMCHECK(CCHIDDEN)-->" /> |
| ccvalue | Kontrolní kód zadaný uživatelem (ochrana proti spamu) | |
Následující formulářová pole se používají ve formuláři pro zobrazení příspěvků pod článkem (opět v kombinaci s poli pro ID zprávy, ID diskuze apod.).
| Parametry – formulářová pole pro vkládání příspěvků | ||
| Název pole nebo parametru | Význam | Poznámka |
| select[] | Pole pro označování vybraných příspěvků | Odpovídající použití je <input type="checkbox" name="select[]" value="<!--WTD_DISC(ID)-->" <!--WTD_DISC(CHECKED)-->> |
| subscribe_all | Zaškrtávací okénko pro odběr všech příspěvků e-mailem | Odpovídající použití je <input type="checkbox" name="subscribe_all" value="1" /> |
Následující formulářová pole se používají ve formuláři pro vyhledávání v diskuzích.
| Parametry – formulářová pole pro vyhledávání (search.php) | ||
| Název pole nebo parametru | Význam | Poznámka |
| searchtext | Hledaný text | |
| searchnamesonly | Vyhledávat pouze v názvech příspěvků | Používá se jako zaškrtávací okénko |
Plánované úlohy
Součástí modulu jsou dvě úlohy pro Plánovač úloh WebToDate související s odesíláním e-mailů s diskuzními příspěvky.
První úloha Rozesílání diskuzních příspěvků rozesílá vlastní příspěvky e-mailem na adresy, na které bylo zadáno zasílání. Každá taková položka je v databázi zaznamenána tak, že je určeno, ke které zprávě chce uživatel nové příspěvky dostávat a případně z kterého vlákna je chce dostávat. Každý záznam má uložen čas vytvoření záznamu a čas poslední kontroly a případného odeslání nových příspěvků odpovídajících záznamu. Čas vytvoření se zapisuje pouze při zakládání záznamu, čas poslední kontroly aktualizuje tato úloha.

Příspěvky se odesílají na e-mailovou adresu uvedenou v záznamu a to pouze v případě, že pro zaznamenanou podmínku jsou nalezeny nové příspěvky vyhovující této podmínce. Jako předloha pro tyto e-maily se využívá předloha Předloha pro e-maily uživatelům ve formuláři Nastavení – Globální – E-maily. V parametrech úlohy se zadává URL kořenového adresáře webové prezentace.
Druhá úloha Odstranění starých subskripcí slouží k odstraňování starých subskripcí neboli objednávek odesílání e-mailů s příspěvky. Slouží k tomu, aby se v databázi nehromadily záznamy pro tuto službu, které již nemají opodstatnění – dá se předpokládat, že např. diskuze k novém článku probíhá v prvních několika dnech od zveřejnění a vkládání nových příspěvků ke článkům starým např. jeden měsíc s více je velice řídké. Proto lze pomocí této funkce hromadně odstranit objednávky na zasílání e-mailů, kde tyto objednávky jsou starší (datum vložení objednávky je starší) než počet dní zadaný v parametru úlohy.

Pokud se funkce pro odesílání e-mailů používá, je doporučeno nastavit a pravidelně spouštět i tuto úlohu – v opačném případě úloha pro odesílání při každém spuštění prochází větší a větší množství objednávek na odesílání, čímž roste čas potřebný pro běh úlohy pro rozesílání e-mailů a zátěž celého databázového serveru.
Součástí funkcí ochrany proti spamu je úloha Antispamová kontrola - odstranění starších dat. Pokud se používá ochrana proti spamu typu Opisování kontrolních kódů, generují se do databáze (v databázové tabulce MODCCCODES) záznamy při každém zobrazení vstupního formuláře pro vložení příspěvku. To může vést v čase k nežádoucímu nárůstu objemu databáze a je doporučeno pomocí této úlohy pravidelně starší záznamy odmazávat.
Jako parametr úlohy se nastavuje pouze stáří záznamů v hodinách - záznamy starší než zadaný počet hodin úloha z databáze odstraní.
