Pereiti prie turinio

PHP custom forumo klausimėlis


Rekomenduojami pranešimai

Sveiki,

 

Susikūriau forumo variklį savo serverių toplisto, gammeriu fanatų TVSui.

 

Vienas klausimas -

kokiu princiu veiki unreaded temos, pvz yra 1000 vartotojų ir sukurta tema, kaip padaryti, kad vartotojams, kurie perskaitė temą rodytu 'readed' ikoną, o neperskaičiusiems 'unreaded'?

 

P.S. gal yra žmogus galintis ar norintis prisidėti prie šitos machinacijos? Reikėtų konkrečiai sukurti/parašyti funkcija, kuris iš žaidimų, kaip cs'as, call of duty, minecraftas ištrauktų tam tikrus duomenis (queries). Galima pasitarti ir dėl užmokėsčio dėl tokios funkcijos.

 

 

Dėkui, už atsakymus

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Sveiki,

 

Susikūriau forumo variklį savo serverių toplisto, gammeriu fanatų TVSui.

 

Vienas klausimas -

kokiu princiu veiki unreaded temos, pvz yra 1000 vartotojų ir sukurta tema, kaip padaryti, kad vartotojams, kurie perskaitė temą rodytu 'readed' ikoną, o neperskaičiusiems 'unreaded'?

 

P.S. gal yra žmogus galintis ar norintis prisidėti prie šitos machinacijos? Reikėtų konkrečiai sukurti/parašyti funkcija, kuris iš žaidimų, kaip cs'as, call of duty, minecraftas ištrauktų tam tikrus duomenis (queries). Galima pasitarti ir dėl užmokėsčio dėl tokios funkcijos.

 

 

Dėkui, už atsakymus

 

Galima butu read/unread padaryti su cookies, taciau iskiltu problema su persistency. Kad nebutu jokiu problemu, pats paprastciausias budas yra saugoti vartotojo meta-data duomenu bazeje. Siam konkreciam atvejui uztektu tureti read_ids laukeli, kuriame butu saugojama visi ids postu kurie read. Kad sutaupyti DB calls butu galima cachinti tuos ids session arba cookie (abu turi privaumu/trukumu) ir atnaujinti DB+cache tik kai vartotojas perskaito posta.

 

P.s. jeigu noretum padaryti, kad rodytu jog buvo nauju atsakymu, tada logika ta pati, tik reketu papildomo check, bet cia jau nuo tavo forumo strukturos priklausytu.

Redagavo Ispirit
Nuoroda į pranešimą
Dalintis kituose puslapiuose

Galima butu read/unread padaryti su cookies, taciau iskiltu problema su persistency. Kad nebutu jokiu problemu, pats paprastciausias budas yra saugoti vartotojo meta-data duomenu bazeje. Siam konkreciam atvejui uztektu tureti read_ids laukeli, kuriame butu saugojama visi ids postu kurie read. Kad sutaupyti DB calls butu galima cachinti tuos ids session arba cookie (abu turi privaumu/trukumu) ir atnaujinti DB+cache tik kai vartotojas perskaito posta.

 

P.s. jeigu noretum padaryti, kad rodytu jog buvo nauju atsakymu, tada logika ta pati, tik reketu papildomo check, bet cia jau nuo tavo forumo strukturos priklausytu.

 

manau panašiu keliu ir bandysiu šitą klausimą įveikti, dėkui :)

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Galima butu read/unread padaryti su cookies, taciau iskiltu problema su persistency. Kad nebutu jokiu problemu, pats paprastciausias budas yra saugoti vartotojo meta-data duomenu bazeje. Siam konkreciam atvejui uztektu tureti read_ids laukeli, kuriame butu saugojama visi ids postu kurie read. Kad sutaupyti DB calls butu galima cachinti tuos ids session arba cookie (abu turi privaumu/trukumu) ir atnaujinti DB+cache tik kai vartotojas perskaito posta.

 

P.s. jeigu noretum padaryti, kad rodytu jog buvo nauju atsakymu, tada logika ta pati, tik reketu papildomo check, bet cia jau nuo tavo forumo strukturos priklausytu.

 

Tokiu būdu būčiau ir aš darės su read_ids, bet esu ne kartą matęs kaip cookių metoda naudoja didelės ir visiems žinomos sistemos. O prasivalius cookius visas temas rodo kaip neskaitytas.

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Tokiu būdu būčiau ir aš darės su read_ids, bet esu ne kartą matęs kaip cookių metoda naudoja didelės ir visiems žinomos sistemos. O prasivalius cookius visas temas rodo kaip neskaitytas.

 

Zinoma, kad taip galima daryti ir tai nera kas kas labai blogo. Seniau didzioji dalis zmoniu turedavo tik viena irengini kuriuom naudodavosi, taciau kuo toliau tuo daugiau vartotoju turi pora irenginiu kuriais naudojasi, taciau kol kas dar galima su cookies daryti ir netureti vartotoju didelio nepasitenkinimo. Vis gi, nebent tavo forumas turi didziuli lankomuma ir tau daryti DB callus yra brangu - patarciau daryti su DB, o ne su cookies.

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Zinoma, kad taip galima daryti ir tai nera kas kas labai blogo. Seniau didzioji dalis zmoniu turedavo tik viena irengini kuriuom naudodavosi, taciau kuo toliau tuo daugiau vartotoju turi pora irenginiu kuriais naudojasi, taciau kol kas dar galima su cookies daryti ir netureti vartotoju didelio nepasitenkinimo. Vis gi, nebent tavo forumas turi didziuli lankomuma ir tau daryti DB callus yra brangu - patarciau daryti su DB, o ne su cookies.

 

Jau pradėta, koduoju remiantis database rezultatais. Nenaudosiu cookies.

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Tokiu būdu būčiau ir aš darės su read_ids, bet esu ne kartą matęs kaip cookių metoda naudoja didelės ir visiems žinomos sistemos. O prasivalius cookius visas temas rodo kaip neskaitytas.

 

 

Zinoma, kad taip galima daryti ir tai nera kas kas labai blogo. Seniau didzioji dalis zmoniu turedavo tik viena irengini kuriuom naudodavosi, taciau kuo toliau tuo daugiau vartotoju turi pora irenginiu kuriais naudojasi, taciau kol kas dar galima su cookies daryti ir netureti vartotoju didelio nepasitenkinimo. Vis gi, nebent tavo forumas turi didziuli lankomuma ir tau daryti DB callus yra brangu - patarciau daryti su DB, o ne su cookies.

 

Jau sukūriau.

 

Kai žmogus papostina temą ar temoje kas nors parašo, į duombazę įterpiama eilučių (kiek vartotojų tiek ir eilučių), kurios talpina temos ID, ir vartotojo ID, na, kad būtų suvesti šie duomenys. Žmogui perskaičius temą, eilutė ištrinama, žmogui paspaudus buttoną, forumo kambe, forumo skiltyje esančios temos pažymimos kaip perskaitytos (ištrinamos visos eilutės).

 

Dabar klausimas, kaip geriau daryti? Palikti neregistruotiems vartotojams, kad visur rodytu NEW, ar nieko nerodyti? Tiesiog, šita funkcija veiksni tik ant registruotųvartotojų. Kaip čia geriau padarius?

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Hmm, kas kaip cia sudetingai su tais trinimais :/

 

Buciau pasinaudojes one-to-many struktura, kur vienas vartotojas gali tureti daug perskaitytu postu: user_id, post_id, read (datetime).

 

Uzejus i forumo skilti (turetum sarasa su visais matomu postu ids) uztektu patikrinti ar post_id egzistuoja lenteleje (jeigu protingai atliekama, tai turetu buti O(n) = n):

a)egzistuoja - patikrinti kada buvo paskutini karta atnaujintas post ir jeigu 'read' yra senesnis - rodyti, kad yra nauju atsakymu;

b)neegzistuoja - rodyti kaip nauja post.

 

Vartotojui uzejus i tema, uztektu patikrinti ar post_id egzistuoja:

a)neegzistuoja - sukurti nauja irasa;

b)egzistuoja - atnaujinti read.

 

P.s. kas liecia tavo klausima, tai siulyciau viska rodyti kaip NEW, cia butu susije su marketing puse, nes uzejus i foruma, kuriame atrodo, kad yra nauju postu, susidaro ispudis, kad jis aktyvus.

Redagavo Ispirit
Nuoroda į pranešimą
Dalintis kituose puslapiuose

Hmm, kas kaip cia sudetingai su tais trinimais :/

 

Buciau pasinaudojes one-to-many struktura, kur vienas vartotojas gali tureti daug perskaitytu postu: user_id, post_id, read (datetime).

 

Uzejus i forumo skilti (turetum sarasa su visais matomu postu ids) uztektu patikrinti ar post_id egzistuoja lenteleje (jeigu protingai atliekama, tai turetu buti O(n) = n):

a)egzistuoja - patikrinti kada buvo paskutini karta atnaujintas post ir jeigu 'read' yra senesnis - rodyti, kad yra nauju atsakymu;

b)neegzistuoja - rodyti kaip nauja post.

 

Vartotojui uzejus i tema, uztektu patikrinti ar post_id egzistuoja:

a)neegzistuoja - sukurti nauja irasa;

b)egzistuoja - atnaujinti read.

 

P.s. kas liecia tavo klausima, tai siulyciau viska rodyti kaip NEW, cia butu susije su marketing puse, nes uzejus i foruma, kuriame atrodo, kad yra nauju postu, susidaro ispudis, kad jis aktyvus.

 

Dėkui, už idėja. ;) Kimbu į darbus, beja tuojaus papostinsiu screenshotą forumo.

post-68431-0-30990700-1412597070_thumb.png

Redagavo mdainius
Nuoroda į pranešimą
Dalintis kituose puslapiuose

Prisijunkite prie diskusijos

Jūs galite rašyti dabar, o registruotis vėliau. Jeigu turite paskyrą, prisijunkite dabar, kad rašytumėte iš savo paskyros.

Svečias
Parašykite atsakymą...

×   Įdėta kaip raiškusis tekstas.   Atkurti formatavimą

  Only 75 emoji are allowed.

×   Nuorodos turinys įdėtas automatiškai.   Rodyti kaip įprastą nuorodą

×   Jūsų anksčiau įrašytas turinys buvo atkurtas.   Išvalyti redaktorių

×   You cannot paste images directly. Upload or insert images from URL.

Įkraunama...
  • Dabar naršo   0 narių

    Nei vienas registruotas narys šiuo metu nežiūri šio puslapio.

×
×
  • Pasirinkite naujai kuriamo turinio tipą...