Diskuze pod článkem - 1.díl - dle příspěvků
Pokud vlastníte nějaké webové stránky, na kterých pravidelně publikujete články, patrně vás bude zajímat i zpětná odezva a názory čtenářů. Nejsnadnější a pro čtenáře patrně nejpohodlnější formou je možnost komentářů umístěných přímo pod každým konkrétním článkem. Zde si popíšeme jaké možnosti třídění komentářů máme. Řekneme si o jejich výhodách a nevýhodách a nakonec si ukážeme jednu z možností formátování takovéto diskuze.
Při rozhodování jak volit formu řazení jednotlivých příspěvků máte v podstatě k dispozici dvě možnosti.
Řazení dle příspěvků (dle časové posloupnosti)
V tomto způsobu řadíme jednotlivé příspěvky za sebou tak jak přicházejí dle časové posloupnosti bez rozlišení ke kterému diskuznímu vláknu v diskuzi zrovna náleží (na který příspěvek reaguje). Pro tuto informaci tedy musíme již v návrhu tabulky v databázi pamatovat s jedním polem navíc pro zápis čísla tzv. rodičovského příspěvku.
Výhodou tohoto řešení je, že snadno v posloupnosti najdeme nové příspěvky v diskuzi od okamžiku naši poslední návštěvy. Nevýhodou je nepřehlednost pokud je diskuze rozsáhlejší a nás zajímají třeba jen reakce na konkrétní příspěvek. Aby z takovéto diskuze čtenář neměl zmatek, je velmi vhodné u každého příspěvku uvést, že je reakcí na určitý příspěvek předchozí. Stejně tak je pro pohodlné procházení diskuzí vhodné u původního příspěvku uvést informaci že na něj někdo reagoval. A když už tyto informace máme k dispozici a vložíme je do příspěvku, je více než vhodné uvádět je jako odkaz, aby čtenář mohl reakcemi pohodlně procházet oběma směry jen kliknutím myší.
Před každý zobrazený příspěvek tedy pro jeho jednoznačnou identifikaci tedy umístíme kotvu pomocí odkazu <a name="koment{ID}"> </a>. A v reagujícím příspěvku umístíme klikací odkaz na tuto kotvu pomocí Reakce na příspěvek <a href="#koment{ID}" title="Rodičovský příspěvek"> č.{ID}</a>. Určitě jste pochopili, že výraz {ID} nahradíme identifikačním číslem konkrétního příspěvku.
Jako typický příklad takovéto dobře organizované diskuze bych uvedl třeba web Radka Hulána ( http://radekhulan.cz/item/pohadkove-zvracenosti ). V diskuzi pod článkem tak můžete u příspěvku č.8 jasně vidět, že je reakcí na příspěvek č.7 a reagují na něj další komentáře.
Návrh tabulky
id // - identifikační číslo komentáře (unikátní)
idc // - id.číslo článku ke kterému komentář přísluší
autor // - jméno autora komentáře
e-mail // - e-mail autora komentáře
datum // - datum zápisu
nazev // - název komentáře
text // - vlastní obsah komentáře
idr // - id.číslo "rodičovského" komentáře
reakce // - id.čísla komentáře reagujících na tento
Tip! - vložte si do tabulky již při návrhu další pole reakce pro ukládání čísel nových příspěvků reagujících na daný příspěvek. Na stránkách s vysokou návštěvností a rozsáhlými diskuzemi pod články oceníte možnost mít jednoduchým dotazem všechny potřebné informace na jednom řádku. Vždy je jednodušší při zapsání nového komentáře provést jeden update navíc, než při každém přístupu na stránky provádět u každého komentáře další select do databáze na zjištění reakcí. Jednotlivé reakce oddělujte třeba čárkou, takovýto řetězec pak v PHP jednoduše rozdělíte na jednotlivá čísla.
Z následující tabulky, by měla být logika patrná. Na komentář č.2 reagují č.4 a č.6. Komentář č.4 je reakcí na č.2 a reaguje na něj č.5
Vlastní zjednodušená tabulka
id idc datum nazev idr reakce
1 5 01.01.2007 - 00:25:51 Prvni 0 7
2 5 01.01.2007 - 01:26:48 Druhý komentář 0 4,6
3 5 01.01.2007 - 14:47:11 Třetí komentář 0 0
4 5 16.02.2007 - 00:27:51 Re: Druhý komentář 2 5
5 5 02.03.2007 - 00:28:19 Re: Druhý komentář 4 0
6 5 21.03.2007 - 17:00:00 Re: Druhý komentář 2 0
7 5 25.03.2007 - 12:57:28 Re: Prvni 1 0
To je pro dnes vše. V příštím díle si ukážeme logiku třídění komentářů dle vláken.
Související články:
- Diskuze pod článkem - 3.díl - tříděná uživatelem ( http://blog.fotohans.net/diskuze-pod-clankem-tridena-uzivatelem.html )
- Diskuze pod článkem - 2.díl - dle vlákna ( http://blog.fotohans.net/diskuze-pod-clankem-dle-vlakna.html )
- Pruhovaná tabulka ( http://blog.fotohans.net/pruhovana-tabulka.html )
