RosenborgSupporterSoftware / RUSK

RBKweb Ultimate Survival Kit
MIT License
1 stars 2 forks source link

Tracking av siste leste post pr. tråd #88

Open havremunken opened 5 years ago

havremunken commented 5 years ago

Ser på å ordne dette så infoen blir tilgjengelig i PageContext - altså ikke nødvendigvis en standard modul, men noe som kjører som en del av infrastrukturen.

Å oppfatte høyeste postid vi har sett i en tråd er ganske enkelt, men det kan være noe å tenke på ifm. hvordan vi skal bruke denne informasjonen.

Naiv tilnærming: Holde en dictionary/map med trådid: postid-par. Når vi går inn på en tråd, sjekker vi om siste post sin id er høyere enn den vi har. Er den det, bytter vi. Easy peasy.

Men så er det situasjonen når man ser en liste med tråder og ønsker å gå inn i den. Hvordan vet man hvilken URL man skal gå på? RBKweb er vel hardkodet til max 25 innlegg pr. side, og det gjør beregninger mulig - men post-id'ene er globale, ikke tråd-lokale, så du kan ikke ut fra kun tråd- og post-id vite hvilken side den lå på. Så vi må kanskje oppbevare sidenummeret vi fant høyeste post på også?

En annen ting er jo at poster kan slettes. Hvis denne mekanismen oppfatter at den er på siste side av en tråd og at øverste postnummer er lavere enn det den har lagret, bør den justere ned. Eller bør den det? Nye innlegg vil jo uansett komme med høyere id enn de(t) som har blitt slettet?

Så har vi det faktum at det er en del tråder på RBKweb. Vet ikke hvordan vi skal definere "aktive" tråder (f.eks. tråder med nytt innlegg innen de siste 10 dagene), men i sesong kan jo det fort være noen. Hvis vi holder styr på ting "for alltid" vil vi løpe inn i plassproblemer (8k pr. objekt i storage/sync). Skal vi lage en mekanisme for å dele opp dette i flere bolker? Ev. slutte å tracke en tråd når den ikke har hatt aktivitet/vi ikke har vært innom på X antall dager?

Jeg starter med en enkel implementasjon, med sikte på at lastReadPostBeforeNow e.l. blir tilgjengelig på PageContext-objektet på relevante viewtopic-sider, og så må vi ev. tagge ThreadInfo-objektene med info i på viewforum-sider.

Alt hadde vært så mye lettere om bare phpBB kunne ha gjort dette skikkelig. ;)

(Og det har de sikkert også begynt å gjøre i senere versjoner)