View Full Version : Izrada vlastitog foruma: pomoć oko par scenarija
Pozdrav svima!
Ne znam je li ovo prava grupa, ali voditelji foruma bi ovo mogli najbolje znati.
Naime, ja upravo programiram svoj vlastiti forum u ASP.NET 2.0 tehnologiji, u jeziku C# i kao bazu koristim SQL Server 2005. Nadam se da ce to funkcionirati kako valja.
Medjutim, zanima me jedna bitna stvar:
1. Kad netko napise poruku i netko drugi na tom forumu mu odgovori, da li se tada salje obavijest na e-mail onoga koji je pokrenuo thread da je netko odgovorio na njegovu poruku?
2. Ako netko ne pokrene novi thread, nego napise poruku na postojecem threadu, da li mu se salje obavijest da je netko odgovorio na njegovu poruku?
3. Ako netko napise poruku na vise foruma ili na vise threadova, da li mu se salje posebna poruka svaki put kad netko odgovori na njegovu poruku (naravno ako ima vise odgovora da mu nece svaki put slati mail za svaki odgovor, nego se posalje jedan put i vise se ne salje dok ne klikne i ne procita) ili mu se posalje samo jedna poruka da je netko odgovorio na neki njegov post bez obzira sto je odgovoreno na vise postova u vise threadova i vise foruma?
Ovo bi mogao i sam provjeriti, ali ima tu dosta kombinacija pa bi trebalo dosta vremena, a i nemam bas volje pisati gluposti okolo i spamati forume samo da bih testirao kako to radi pa stoga pitam ovdje da vidim sto kazu gospoda strucnjaci.
Zahvaljujem na pomoci.
Mislim da to ovisi od foruma do foruma.
1. Da, osim:
a) ukoliko je onemogućio slanje takvih poruka uopće ili
b) ukoliko je manualno uklonio svoju pretplatu na tu temu.
-> Vidi svoj kontrolni panel ovdje (User CP) i klikni na "View all subscribed threads". Preptlaćen si na sve teme u kojima si ikada postao, osim one za koje si napravio (b).
-> Obavezno pogledaj pri dnu popisa combo-box "selected folders, move to folder..." da vidiš neke druge opcije koje se mogu izabrati.
-> Uoči dakle, da se sve temelji na temi i na konceptu "pretplate na temu".
-> Uoči da se na temu možeš pretplatiti i bez da si sudjelovao u njoj.
2. Da, baš sve isto kao (1), tj. nema razlike između pokretača i sudionika diskusije.
3. Svaka tema na koju je pretplaćen se vodi zasebno, dakle posebna poruka svaki puta kada netko odgovori na njegovu poruku (a samo jedanput prije nego što pročita - pretpostavljam da se ovo s počekom obaviještavanja do prvog slijedećeg čitanja odnosi na svaku temu zasebno).
Mozda bi bilo korisni da si lokalno instaliras par poznatijih foruma, i istrazis malo njihove opcije. Glupo bi bilo sada izmisljavati toplu vodu, kada stotine ljudi programira razne forume vec deset i vise godina.
I nadam se da cemo vidjeti neki demo?
Ja ti preporučujem čim dalje od toga. Ja sam radio kojih 7 mjeseci (doduše, vrlo rekreativno)... Ima ti jako, jako puno posla. Moraš paziti na sigurnosne stvari, ima ih više od cijeloga koda...
ima posla ali nije tako strašno. Ja sam bio u firmi zadužen da složim forum i trebalo mi je nekih mjesec i pol. Kasnije su dodavane još neke opcije sve u svemu dva do dva i pol mjeseca posla za jednu osobu. Po mom iskustvu osnovno je od početka razmišljati o performansama jer kad forum ozbiljno zaživi onda je kasno. Neznam kako su riješeni drugi forumi ali ne bih preporučio preveliku normalizaciju baze, mislim da je redudancija ovdje poželjna.
dobre stvari su što se danas točno zna što je standard i što jedan forum treba podržati, a loše je što je skoro nemoguće keširati. Najkritičniji dio mi se čini da je praćenje koji post je pročitan (to treba imati na umu kod dizajniranja). Sigurnost, po mom mišljenju, nije nešto posebno kompliciranija od sigurnosti u bilo kojoj web aplikaciji. Jasno da prije svakog zahvata (brisanje/editranje/dodavanje) treba kontrolirati korisnika.
Ja sam radio forum i moram reći da, sam očekivao da će biti teže. Je, zeznuto je, čak sam tu tražio pomoć oko jedne stvari, ali sve ostalo je relativno lagano. Samo ima puno posla, trebalo mi je 2 mjeseca. Sa time da sam išao na jednostavnost, točnije potpuno suprotno od vBulletina. Control Panel ima samo par stvari, i PM. A za registraciju je potrebno samo 5 polja ispuniti, sa time da sam čak zaobišao CAPTCHA nego sam zaštitu od botova izveo na jedan drugačiji način. Evo, u tom smislu je jednostavan. A opet, cronjob prolazi i briše neodgovorene teme koje su starije od 2 mjeseca
Sve u svemu, ako si već krenuo. Nije toliko teško, samo treba truda. A evo odgovori na pitanje:
1. Mislim da je to bespotrebno, uključi takvu opciju ali neka nebude default. Neka korisnik iz control panela može označiti želi li biti obavješten o novim odgovorima.
2. Ne :) nikako.. ja bi odmah tražio da me izbrišu sa takvog foruma
3. Kao što sam rekao, prepusti korisniku da odluči tako nešto, ma da, sumnjam da će neko htjeti to
Uhuh....šta nije bolje uzeti neki free forum i modati ga do bola?
:) Ja isto pravim forum, isto ASP.NET, isto SQL Server 2005, ali VB.NET. To za slanje e-mailom nisam pravio jer mislim da je ta opcija glupa. Znači ti otvoriš temu, 100 ljudi odgovori na nju, i ti dobiješ 100 e-mailova :rolleyes:. To užasno iritira.
Mene muči kako napraviti dali je korisnik pročitao post/temu. Vidim da i ovaj forum ima problema sa tim. Imam znak da imam novih postova, a sve sam pročito.
Hmmh... Dobro pitanje, u svakom slučaju. Ja bih ovako:
###I. dio
Napravio bih tablicu BLA:
# ID
# ID_USER
# ID_TOPIC
# ID_TIME
Kad korisnik klikne na temu onda provjerava postoji li već ID_USER AND ID_TOPIC u tablici BLA. Ako ne postoji ubaci (npr. marko, 666, 254785[unix time stamp]). Prilikom učitavanja podforuma (dakle, tamo gdje su teme/topici) provjerava ima li u tablici BLA zapisa ili ne. Ako ima znači da je korisnik pročitao, a ako nema znači da nije.
###II.dio
E sad, znamo da će ta tablica biti jako prepuna pa stavimo cron job da npr. svakih 7 dana pokrene file koji će čistiti sve redove koji su stariji od tjedan dana (oduzmemo sadašnji timestamp od onoga i otud skuzimo, tj. saljemo upit brisi sve manje od razlike). I onda još dodamo u file gdje se ispisuju teme/topici da ako je zadnji post veci od 7 dana da se automatski smatra procitanim.
###3.dio
Naravno, sad se postavlja pitanje što ako korisnik nije bio na forumu mjesec dana. I to se može riješiti, ali takvome se korisniku psihički neće dati čitati sve i ne treba se s tim zamarati.
I.dio smatra pod "obavezno", a II.dio ako ste ograničeni (tipa, nedaju vam veće resurse makar ne znam koliko oduzima istih.... Ili, ako vam je škrto ograničena baza, što je čest slučaj..)...
@Gosaric
ova varijanta ne pokriva praćenje postova koji su pročitrani, recimo netko je pogledao na jednopm topicu sve stanice osim zadnje a forum će označiti sve postove nepročitanim. Sličan mehanizam sam i ja prvotno složio pa sam naknadno mijenjao da obrađujem i postove. Nisam tad ni skužio da recimo vBulletin prati svaki post (ikona žuta ili plava u gornjem lijevom kutu), makar i vBulletin ima problema s tim.
jedino ako bi na svako otvaranje stranice bilježio u bazu ali to je sigurno overkill i kod upisivanja i kod čitanja.
Ja nisam mislio na postove, to je previše (i uopće je glupo za postove). Dok ti otvroiš temu smatra se da je pročitana... Ako još i postove želiš vidjeti nove na temi, onda uspoređivati i vrijeme zadnjeg posta s vremenom čitanja u bazi..
vBulletin® v3.7.4, Copyright ©2000-2009, Jelsoft Enterprises Ltd.