Re: Probleme mit dem Loginzeitpunkt

From: Martin Schulze (joey@infodrom.org)
Date: Sun May 05 2002 - 10:20:41 CEST


Erik Tews wrote:
> Also, es wurde ja das Feature gewünscht, dass aufgezeichnet wird, wann
> sich der User zum letzten mal eingeloggt hat, um ihm dann jeweils nur
> die neusten Comments zu präsentieren. Das ist ein Problem, da wir ja
> keine expliziete Login-Page habe. Ich kann zwar bei jeder

Ja, das hatte ich ja auch schon geschrieben.

> Authentifizierung den Timestamp in der DB ändern, aber irgendwie ist das
> dann nicht ganz befriedigend, da der User ja nur einmal auf Reload
> drücken muss, und schon sieht er keine Comments mehr, da er ja zum
> letzten mal vor ein paar Sekunden oder so eingeloggt war.

Außerdem kann er Kommentare nur auf bestimmten Seiten sehen. Und
möglicherweise Ankündigungen (die vielleicht noch kommen) auch.

Ich hatte daher vorgeschlagen, bei jedem Einloggen zusätzlich die
Seite und einen Timestamp zu speichern.

Bei Kommentaren brauchen wir dann nur:

  if (exist (kommentare) neuer als (max{visited{index},visited{comments}}))
    Neue Kommentare anzeigen

Sollten später noch Ankündigungen hinzukommen, könnten wir aufnehmen:

  if (exist (ankuendigug) neuer als (max{visited{index},visited{news}}))
    Neue Ankündigungen anzeigen

Beim Einloggen müßte in <auth> ungefähr folgender Code ausgeführt
werden:

  if (!isset ($project)) {
    SELECT timestamp FROM timestamps WHERE basename = '<basename>'
    $LINUXTAG_AUTH['timestamp'] = $row['timestamp']
    UPDATE timestamp SET timestamp = 'now' WHERE basename = '<basename>'
  } else {
    # Hier muß eventuell nichts gemacht werden.
  }

> Also schlage ich folgendes vor:
>
> Wir haben 2 Felder, einmal last_login, und einmal last_comments. In
> last_login speichern wir, wann der User zuletzt eingeloggt war, es wird
> bei jedem Aufruf einer Seite geupdated. In last_comments speichern wir,
> wann der User sich zum letzten mal eine Seite comments.php3 angeschaut
> hat. Wenn nun jemand index.php3 aufruft, und es gibt seit dem letzten
> mal Anschauen von comments.php3 neue Comments, bekommt er einen Hinweis,
> dass es neue Comments gibt, und kann sie sich mit einem Link auf
> comments.php3 anschauen.

NAK.

Das Feld last_login wird überhaupt nicht benötigt.

Das System skaliert nicht. Für News müßten wir bei diesem Design die
Tabelle wieder erweitern um ein last_news. Für jede weitere
Funktionalität müßte das Datenmodell wieder geändert werden.

Wenn es weniger als drei (oder vier) neue Kommentare gibt, würde ich
sie gerne auf der Index-Seite anzeigen lassen. Wenn es mehr gibt, mit
Links auf eine display_comment-Seite o.ä.

> Dieser Hinweis bleibt dann so lange erhalten, bis der User comments.php3
> einmal aufgerufen hat.

Aber es muß erst die Comments-Seite aufgerufen werden, um den Counter
zurückzusetzen. Ein Blick auf die neuen Kommentare reicht nicht aus,
um sie verschwinden zu lassen, man müßte sie manuell wegbefördern.

Ich würde es lieber wie oben implementieren - und ich würde es auch
gerne vorher diskutieren. :-)

Gruesse,

        Joey

-- 
Those who don't understand Unix are condemned to reinvent it, poorly.



This archive was generated by hypermail 2.1.3 : Sun May 05 2002 - 10:27:11 CEST