Registreer FAQ Berichten van vandaag


Ga terug   Scholieren.com forum / Technologie / Software & Hardware
Reageren
 
Topictools Zoek in deze topic
Oud 02-07-2005, 14:19
Lil' Stef
Lil' Stef is offline
Hallo allemaal,

Ik wil nu een vrij uitgebreid forum maken. Ik heb al meerdere standaard prikborden gemaakt, maar verder lukt alles wel, alleen wil ik, dat hij het aangeeft als iemand een topic gelezen heeft. Ik dacht om gewoon alle id's van de topics op te slaan, bij het user id. Maar dan heb ik duizenden velden nodig. Bij PHPBB gebuiken ze cookies. Maar dat snap echt niet.

Weet iemand hoe je dat moet doen??

Alvast bedankt,

Stefan
Met citaat reageren
Advertentie
Oud 02-07-2005, 14:31
Dr HenDre
Avatar van Dr HenDre
Dr HenDre is offline
Simpel, je maakt een cookie met datum en tijd (als timestamp evt) van de laatste bezoek van een bezoeker. Op het moment dat diegene weer op het forum komt vergelijk je dat met de laatste post in een topic. Is de timestamp van t topic groter dan die uit de cookie dan staan er niet gelezen gebrichten in een topic. Zoniet dan zijn alle berichten gelezen
Met citaat reageren
Oud 02-07-2005, 18:38
Harrie
Avatar van Harrie
Harrie is offline
Citaat:
Dr HenDre schreef op 02-07-2005 @ 15:31 :
Simpel, je maakt een cookie met datum en tijd (als timestamp evt) van de laatste bezoek van een bezoeker. Op het moment dat diegene weer op het forum komt vergelijk je dat met de laatste post in een topic. Is de timestamp van t topic groter dan die uit de cookie dan staan er niet gelezen gebrichten in een topic. Zoniet dan zijn alle berichten gelezen
Eigenlijk klopt het niet helemaal, maar het is wel de meest gebruikelijke manier. Er wordt namelijk niet van elk topic nagegaan of hij werkelijk is gelezen of niet, maar of hij nieuw is of niet.
Met citaat reageren
Oud 03-07-2005, 10:13
Dr HenDre
Avatar van Dr HenDre
Dr HenDre is offline
Citaat:
Harrie schreef op 02-07-2005 @ 19:38 :
Eigenlijk klopt het niet helemaal, maar het is wel de meest gebruikelijke manier. Er wordt namelijk niet van elk topic nagegaan of hij werkelijk is gelezen of niet, maar of hij nieuw is of niet.
klopt ja, als je echt van alle topic bij wil houden moet je echt bij elke userid de topicid's opslaan die geopend zijn, en als er gepost word moeten weer alle topicid's verwijderd worden uit t lijst van gelezen topics. Zodra ze weer bekeken worden weer toegevoegd enz enz
maar dit kost wel veel resources...
Met citaat reageren
Oud 04-07-2005, 23:30
ILUsion
Avatar van ILUsion
ILUsion is offline
Citaat:
Lil' Stef schreef op 02-07-2005 @ 15:19 :
Hallo allemaal,

Ik wil nu een vrij uitgebreid forum maken. Ik heb al meerdere standaard prikborden gemaakt, maar verder lukt alles wel, alleen wil ik, dat hij het aangeeft als iemand een topic gelezen heeft. Ik dacht om gewoon alle id's van de topics op te slaan, bij het user id. Maar dan heb ik duizenden velden nodig. Bij PHPBB gebuiken ze cookies. Maar dat snap echt niet.

Weet iemand hoe je dat moet doen??

Alvast bedankt,

Stefan
Inderdaad met cookies is het het makkelijkste en veruit het beste voor je prestaties.

Niets van duizenden velden, want dan raadpleeg je beter een boek 'relationele databases voor dummies' of iets dergelijks. Het is totaal onmogelijk om voor elk topic een veld aan te maken, want je zou dan elke keer een SQL-UPDATE-commando moete nsturen en dat doe je juist beter niet geautomatiseerd, lijkt me. Als je echt perfect zou willen bijhouden welk topic gelezen is, moet je met wat ik een linktabel noem werken tussen je users en je topics.

Een forum heeft meestal een tabel topics (of posts eventueel, afhankelijk van de structuur) en dan heb je nog je tabel users. Nu is het feit dat één user meerdere topics kan gelezen hebben en één topic kan door meerdere users gelezen geweest zijn. Dat is dus een veel-op-veel-relatie en dan heb je een extra tabel nodig: een linktabel. In zo'n tabel moet je enkel de primaire sleutel van beide tabellen die je wilt linken opnemen.
Code:
T: users
  > userID (primaire sleutel)
  > ...

T: topics
  > topicID (primaire sleutel)
  > ...

T: user_topic (linktabel)
  > userID
  > topicID
Bij het opvragen van de topics zou je dan kunnen nakijken of er al een combinatie userID-topicID die overeenkomt (userID komt van de huidige gebruiker, topicID van het topic dat opgevraagd wordt) en als dat niet het geval is, maak je een aan; Zo kun je dus bepalen of een topic gelezen geweest is als je het echt persé wilt doen met een database (en onafhankelijk van waar iemand inlogt).

Wat Dr. Hendre zegt klopt ook, dat valt eventueel op te lossen met een timestamp in de tabel user_topic en die te vergelijken met die van de laatste reply in het topic. Maar inderdaad zijn het zeer veel resources voor zo'n amper gebruikte functie. Het is volgens mij handiger om weer te geven of iemand gereageerd heeft in een topic. In je browser wordt toch meestal aangeklikte links in een andere kleur weergegeven (kan ook met CSS aangepast worden naar je eigen keuze) zodat je kan zien of je het topic gelezen hebt. En daar verspil je server-side geen resources aan
__________________
vaknar staden långsamt och jag är full igen (Kent - Columbus)
Met citaat reageren
Advertentie
Reageren


Regels voor berichten
Je mag geen nieuwe topics starten
Je mag niet reageren op berichten
Je mag geen bijlagen versturen
Je mag niet je berichten bewerken

BB code is Aan
Smileys zijn Aan
[IMG]-code is Aan
HTML-code is Uit

Spring naar

Soortgelijke topics
Forum Topic Reacties Laatste bericht
Liefde & Relatie Let op: uitleg taalgebruik op Liefde & Relatie.
x-spekkie-x
0 01-07-2010 11:08
Software & Hardware [Web] Goede website bouwen
Verwijderd
33 11-05-2005 19:46
Beleidszaken Censuur op Scholieren.com?
Enlightenment
120 12-08-2004 14:56


Alle tijden zijn GMT +1. Het is nu 19:16.