KÝBLSoft

O tomto diskuzním fóru

Vznik fóra

Toto fórum vzniklo jako semestrální práce Aleše Jandy do předměty X36WWW - "Internet a WWW" na fakultě Elektrotechnické, ČVUT. Jsou použity jazyky XHTML 1.1 Strict, CSS Level 2, ze skriptů PHP 4.x a JavaScript a jako úložný prostor databáze MySQL.

Vlastnosti fóra

Fórum je plně vláknové, lze tedy odpovídat na libovolné příspěvky a ty se zobrazují podle sledu odpovědí.

Co fórum umí:
  • vláknové uspořádání - řazení podle obsahu, ne podle data
  • automatická podpora smajlíků - značky :-), :-( atd. se převedou na odpovídající obrázky
  • automatický převod URI adres do (X)HTML odkazů - vše, co začíná "http://" nebo "www." se převede na odkaz na odpovídající stránku (lze kliknout)
  • podpora základního formátování - text uvnitř značek [bold],[/bold] a [ital],[/ital] se zobrazí formátovaně. Při vkládání se provádí validace na správné použití (neuzavírání, křížení tagů atd.)
  • náhled příspěvku - před vložením je možno vidět příspěvek tak, jak se ve výsledku zobrazí
  • zachovávání tiskových pravidel - alespoň se snaží, nezalomuje řádek za slovem do 4 znaků (typicky za předložkami a spojkami)
  • validace vstupu - vkládané hodnoty se testují na straně klienta i serveru
Co bude fórum umět:
  • vyhledávání v příspěvcích - bude možno fulttextově v diskuzi vyhledávat
  • kontrola předběhnutí odpovědi - pokud uživatel píše odpověď na nějaký příspěvek a někdo ho mezitím s odpovědí "předběhne", zobrazí se upozornění
  • lepší validace vstupu - o něco vychytanější, k tomu myslím není co dodat
Tato diskuze je velice šetrná k databázi. K vypsání celé stromové struktury příspěvků stačí pouze jeden dotaz do databáze! Je to díky metodě ukládání příspěvků (viz níže). Tuto vlastnost jsem udělal natruc všem kamarádům a spolužákům, kteří nevěřili, že je něco takového možné.
Diskuze obsahuje 1 speciální smajlík kýbl - veselý kýbl (lze ho napsat jako "[kýbl]"), který je inspirovaný smajlíkem banánu použitý na www.owebu.cz. Tímto vzdávám hold autorům serveru owebu.cz za tento nápad (pozn.: tento smajlík nemá žádnou speciální funkci, pro někoho je vyjádřením radosti).

Jak jsou udělána vkládání příspěvků do vláken:

Diskuzi si je možno představit jako stromovou strukturu. Příspěvky, které jsou na vrcholu stromu, mají atribut vlakno "1", "2", "3" atd., postupně za sebou.

Příspěvky, které jsou odpovědí příspěvkům na vrcholu stromu, mají atribut vlakno "1001", "1002" (pro odpověď na "1"), "2001", "2002", "2003" (pro odpověď na "2") atd. - k atrinutu vlakno na vrcholu stromu se přidají 3 znaky, které určují "podvlákno".

Příspěvky třetího řádu budou mít vlakno "1001001", "1001002", "1001003" atd. Z každého příspěvku tedy lze vysledovat, kde přesně se ve stromu nachází.

A jak se hledá:
stačí 1 požadavek pro vypsání celého stromu:
SELECT * FROM forum ORDER BY vlakno
Tím se strom i sám seřadí podle vláken příspěvků. Chci-li vypsat pouze příspěvky z vlákna "2", bude to
SELECT * FROM forum WHERE vlakno LIKE "B%" ORDER BY vlakno

A vkládání:
stačí pouze zjistit nejvyšší použité číslo podvlákna a vytvořit o 1 větší. Tedy jsou-li v databázi záznamy "1", "2", "2001", "3" a chceme další odpověď pro "2", bude to "2002".
Toto řešení je velice snadné na implementaci, šetrné k databázi, de facto stačí jeden požadavek na databázi pro výpis celého stromu.
Na druhou stranu je omezený počet příspěvků v jedné hloubce stromu. To je rovno rozsahu hodnot v atributu vlakno umocněné na počet cifer. V tomto případě je rozsah hodnot 0-9, A-Z a jsou zde 3 "cifry", takže počet možných odpovědí je 46656, což je myslím zatím dost ;-)

Vaše připomínky, dotazy:

Veškeré dotazy a přitomínky (nejen) k tomuto fóru směřujte do rubriky Ostatní služby na KÝBLSoft.cz nebo přímo mně na e-mail.
Validní XHTML 1.1 Validní CSS 2 GeoURL
Veřejné řešení zajímavých problémů okolo nás. Pro přemýšlivé lidi. Od KÝBLSoftu. Na www.svice.cz.