Kommentar set/ikke set

Tags:    php

Jeg har et nyhedssystem kørende, og syntes nu at det trænger til den nok så kendte feature hvor man kan se hvorvidt der er nye kommentarer.
Brugeren kan på nuværende tidspunkt se hvor mange kommentarer der er til en given nyhed, men jeg så gerne at der hvor der er kommentarer brugeren ikke har set, står dette tal med fed skrift.

Hvordan klares dette?





10 svar postet i denne tråd vises herunder
1 indlæg har modtaget i alt 2 karma
Sorter efter stemmer Sorter efter dato
Jeg har et nyhedssystem kørende, og syntes nu at det trænger til den nok så kendte feature hvor man kan se hvorvidt der er nye kommentarer.
Brugeren kan på nuværende tidspunkt se hvor mange kommentarer der er til en given nyhed, men jeg så gerne at der hvor der er kommentarer brugeren ikke har set, står dette tal med fed skrift.

Hvordan klares dette?


Du kunne smide en timestamp i en cookie hos brugeren, derefter matche denne med det timestamp der tilhører kommentaren.
-
Mvh.
Christian Schultz Knudsen



Det svarer vel til at have et felt i databasen, hvor brugerens sidste login angives.

Jeg forudser et problem i at alle kommentarer vil markeres som ikke set, også efter man har læst dem - ellers skal det selvfølgelig gøres således at der er en cookie for hver kommentar, men det går vel hurtigt galt?



Nej, altså.

1: Der indsættes en kommentar i databasen.
2: Denne får et timestamp ved indsættelse (f.eks. '234' som vi leger svarer til idag kl 13:40:00.
3: Jens ser "kommentar"-siden og får et timestamp '236', to sekunder efter kommentaren er oprettet (13:40:02).
4: Arne kommenterer kl. 13:40:04, hvilket giver timestamp 238.
5: Jens ser siden, som så opdager at 238 er større end tallet (236) i Jens' cookie, hvorfor der er "nye kommentarer".

Håber du forstår.
-
Mvh.
Christian Schultz Knudsen



Den 22-11-04 14:01 skrev Christian Schultz Knudsen følgende:
-----------------------------------------------------------------------------
Nej, altså.

1: Der indsættes en kommentar i databasen.
2: Denne får et timestamp ved indsættelse (f.eks. '234' som vi leger svarer til idag kl 13:40:00.
3: Jens ser "kommentar"-siden og får et timestamp '236', to sekunder efter kommentaren er oprettet (13:40:02).
4: Arne kommenterer kl. 13:40:04, hvilket giver timestamp 238.
5: Jens ser siden, som så opdager at 238 er større end tallet (236) i Jens' cookie, hvorfor der er "nye kommentarer".

Jo, det vil givetvis virke for den 'tråd', men hvad med kommentarer skrevet f.eks. 230 under en anden nyhed, som jeg ikke har set på endnu. De vil vel markeres som set, idet mit timestamp er højere end kommentarens?

Eller har jeg misforstået det?




Jo, det vil givetvis virke for den 'tråd', men hvad med kommentarer skrevet f.eks. 230 under en anden nyhed, som jeg ikke har set på endnu. De vil vel markeres som set, idet mit timestamp er højere end kommentarens?

Eller har jeg misforstået det?

Hvis dine kommentarer har sin egen tabel og disse er relaterede til records i din nyhedstabel, så vil det givetvis ikke kollidere.

Det væsentlige er, at du sætter timestamp for KOMMENTARERNE og ikke for nyhederne (altså de timestamps der holder styr på ny og ikke ny).

Dette skulle ikke kunne forkludres.
-
Mvh.
Christian Schultz Knudsen



Jeg tror der vil være et problem i følgende situation:

En bruger kommer ind på siden og ser f.eks. 4 nyheder, med kommentarer. Brugeren vælger at se 2 af nyhederne, men gemmer de resterende 2 til senere.
Brugerens timestamp sættes til nu, og alle kommentarer med timestamp lavere end nu, markeres som set.
Dvs. de kommentarer der er under de 2 nyheder brugeren ikke har set endnu, også markeres som værende set.


Sådan som jeg forstår dit forslag, svarer det til at have et felt i db'en hvor der angives et tidspunkt for brugerens sidste aktivering af en nyhed. Altså idet vedkommende klikker sig ind på en hvilken som helst nyhed, sættes f.eks. feltet 'sidst_set' til nu.

Alle kommentarer har et timestamp for oprettelse, og idet brugeren kigger på nyhederne, sammenlignes kommentarens timestamp med brugerens felt 'sidst_set'. Men lige så snart brugeren har været inde og se en nyhed, markeres alle kommentarer med et lavere timestamp end 'sidst_set' som værende set. Det går jo ikke...



Jeg tror der vil være et problem i følgende situation:

En bruger kommer ind på siden og ser f.eks. 4 nyheder, med kommentarer. Brugeren vælger at se 2 af nyhederne, men gemmer de resterende 2 til senere.
Brugerens timestamp sættes til nu, og alle kommentarer med timestamp lavere end nu, markeres som set.
Dvs. de kommentarer der er under de 2 nyheder brugeren ikke har set endnu, også markeres som værende set.


Sådan som jeg forstår dit forslag, svarer det til at have et felt i db'en hvor der angives et tidspunkt for brugerens sidste aktivering af en nyhed. Altså idet vedkommende klikker sig ind på en hvilken som helst nyhed, sættes f.eks. feltet 'sidst_set' til nu.

Alle kommentarer har et timestamp for oprettelse, og idet brugeren kigger på nyhederne, sammenlignes kommentarens timestamp med brugerens felt 'sidst_set'. Men lige så snart brugeren har været inde og se en nyhed, markeres alle kommentarer med et lavere timestamp end 'sidst_set' som værende set. Det går jo ikke...

Der er jo ingen der begrænser dig til at lave ét timestamp.
Du kunne tænke lidt kreativt over, hvordan du kan opdele det.
-
Mvh.
Christian Schultz Knudsen



Korrekt, men det er jo så det mit spørgsmål går på...




Korrekt, men det er jo så det mit spørgsmål går på...

Okay, så misforstod jeg. Jeg troede du var udvikler, som søgte et hint til hvordan det skulle gøres, ikke at du ville have et system.

Min fejl med alle de indlæg så.
-
Mvh.
Christian Schultz Knudsen



Jeg sætter skam pris på indsatsen.

Jeg behøver ikke noget færdigt, bare en ide til hvordan jeg kan markere de relevante kommentarer korrekt...



t