Seite 1 von 1

Hilfe beim finden des richtigen Algorithmus

Verfasst: 29.04.2008 21:25
von lmig
Hallo zusammen,

der letzte Tipp den ich hier im Forum erhalten habe hat mir geholfen mein letztes Problem zu lösen (Beiträge sortiert nach Aktivität auf der Portalseite).

Das Ergebnis kann man sich hier angucken:
www.lausitzer-modellbau-ig.de

Nun möchte ich gerne in der ersten Spalte Symbole anzeigen lassen die signalisieren ... das ist ein neuer Beitrag seit Deinem letzten Besuch.

Nun habe ich Probleme hierfür einen richtigen Algorithmus zu entwickeln. Ich wollte das ganze mit Cookies machen, sodass diese Funktion auch bei Gästen funktioniert.

In dem Cookie muss also ein Timestamp ( Date('U') ) rein der dann mit dem Timestamp der letzten Beiträge verglichen wird. Der Timestamp muss jedoch auch aktualisiert werden, so dass beim nächsten Besuch nach z.B. 3 Stunden nicht wieder die gleichen Beiträge als neu gekennzeichnet werden sondern wirklich nur die die innerhalb der 3 Stunden geschrieben worden sind. Nur wann setze ich diesen Timestamp. Beim Einstieg der Seite funktitioniert ja nicht wirklich da das vegleichen dann nicht mehr geht ... oder man muss irgendwie mit 2 Cookies arbeiten?!?

Ich tue mich da jedenfalls sehr schwer den richtigen Ansatz zu finden.

Über einen kleinen Denkanstoss wäre ich sehr dankbar :-?

Verfasst: 29.04.2008 21:46
von Boecki91
phpBB3 bietet doch schon die Möglichkeit Beiträge mit Cookies zu markieren.

In der viewtopic.php habe ich da was gefunden:

Code: Alles auswählen

		$topic_tracking_info = get_complete_topic_tracking($forum_id, $topic_id);
//später
// Get topic tracking info
if (!isset($topic_tracking_info))
{
	$topic_tracking_info = array();

	// Get topic tracking info
	if ($config['load_db_lastread'] && $user->data['is_registered'])
	{
		$tmp_topic_data = array($topic_id => $topic_data);
		$topic_tracking_info = get_topic_tracking($forum_id, $topic_id, $tmp_topic_data, array($forum_id => $topic_data['forum_mark_time']));
		unset($tmp_topic_data);
	}
	else if ($config['load_anon_lastread'] || $user->data['is_registered'])
	{
		$topic_tracking_info = get_complete_topic_tracking($forum_id, $topic_id);
	}
}
//noch Später

$post_unread = (isset($topic_tracking_info[$topic_id]) && $row['post_time'] > $topic_tracking_info[$topic_id]) ? true : false;
Der mittlere Code ist vermutlich am besten für dich geeignet.
Die Funktionen sin in der Datei includes/functions.php

Also je nachdem wie du das im Adminbereich eingestellt hast wird das entweder aus der DB oder eben con Cookies geregelt, schaue es dir mal an...

Verfasst: 29.04.2008 22:35
von lmig
Hmm, ist mir zu hoch :)

Finde die Einstellung im ACP nicht wo man einstellen kann ob das Beitragstracking per Cookie oder DB erfolgen soll.

Wo soll das sein?

Verfasst: 30.04.2008 09:45
von Boecki91
Im Adminbereich unter "Last Einstellungen" (Frei übersetzt aus dem Englischem :D ), dem 2.Punkt von ganz unten aus gesehen.

Da gibt es "Allgemeine Einstellungen" und der 2. und 3. Punkt dürfte interessant sein.

Da ich nicht weiß wie das Portal bei dir arbeitet kann es sein das es ab sofort sogar schon die Markierungen hat, falls nicht bitte die Datei verlinken (KB:datei)

Verfasst: 01.05.2008 08:33
von lmig
Hi,

so, habe jetzt auf Cookies umgestellt nur werde ich daraus immer noch nicht schlauer :D

Welche Datei vom Portal ist den interessant für Dich?

Ich habe mir gedacht vielleicht die functions.php??

http://www.lausitzer-modellbau-ig.de/po ... ctions.txt

Falls Du eine andere meinst bitte genau benennen :)

Grüße

Sebastian

Verfasst: 04.05.2008 22:16
von lmig
@Boecki91

Hi,

hast Du mich vergessen? :D

mfg