Advanced Post Time Edit plus Merge MOD ist Fehler

Allgemeiner Support zum phpBB 2 Board und phpBB 2 Modifikationen
Forumsregeln
Auch wenn hier der Support für phpBB 2 weiterhin aufrecht erhalten bleibt, weisen wir darauf hin, dass das phpBB 2 nicht mehr offiziell unterstützt und weiterentwickelt wird!
Antworten
Wolfgang
Beiträge: 45
Registriert: Mi 31.Jan, 2007 20:41

Advanced Post Time Edit plus Merge MOD ist Fehler

Beitrag von Wolfgang »

Hallo,

ich mal wieder. ;) Also es geht um den allseits beliebten Merge MOD und diesen hier:
## MOD Title: Advanced Post Time Edit
## MOD Author: OXPUS < webmaster@oxpus.de > (Karsten Ude) http://www.oxpus.de
## MOD Description: Allows Moderators and Admins to edit the post time for each post or topic.
## MOD Version: 1.0.1
Kommen wir gleich zum Problem. Ich habe zwei Topics.

Topic A mit zwei Beiträgen, a und b:

a: Poster: Anton Zeit: 07.02.2007, 16:57 Titel: Graz
b: Poster: Berta Zeit: 07.05.2007, 15:45 Titel: Wien

Topic B hat einen Beitrag, c:

c: Poster: Berta Zeit: 01.05.2006, 22:49 Titel: Berlin

Eigentlich stammt Topic B von heute. Ich habe aber mit dem MOD "Advanced Post Time Edit" die Zeit auf 01.05.2006, 22:49 geändert und unmittelbar darauf das Topic B in das Zieltopic A gemergt.

Da das Topic B das älteste Datum aufweist, müsste nach dem Mergen der Zielthread von Berta stammen und Berlin heißen.

In der Beitragsansicht (viewtopic.php) stimmt, abgesehen vom Titel, auch alles. In der Themenübersicht (viewforum.php) scheint hingegen fälschlichweise auf:

Thema: Graz
Autor: Anton
Letzter Beitrag: 07.02.2007, 16:57

Das ist völlig falsch. Richtig müsste es heißen:

Thema: Berlin
Autor: Berta
Letzter Beitrag: 07.05.2007, 15:45

¢¦ Hilfe wäre sehr willkommen. :( Ich hoffe, dass es nur ein kleiner Fehler im Advanced Post Time Edit MOD und nicht in dem anderen... dem unaussprechlichen MOD ist.

LG, Wolfgang
Benutzeravatar
oxpus
Administrator
Beiträge: 28735
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

Das Problem liegt an der Logik des Merge MODs:
Das Topic behält die Angaben des "Ziel-Threads", auch wenn es jünger als der dann erste Post sein sollte.
Daher muss man aufpassen, wierum man man die Topics zusfammenfügt...
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
Wolfgang
Beiträge: 45
Registriert: Mi 31.Jan, 2007 20:41

Beitrag von Wolfgang »

Hallo Oxpus,

danke Dir - mit diesem Wissen kann man zumindest schon mal die gröbsten Unstimmigkeiten beseitigen.

Aber dennoch sind (wahrscheinlich) beide MODs nicht ganz konsistent. Beispiel: Habe einen Testthread erstellt und den auf das Jahr 2002 zurückdatiert. Trotzdem steht er auf der Themenübersichtsseite (viewforum) an 1. Stelle. Im Modcp findet sich der Testthread hingegen an der korrekten Stelle (ganz am Ende).

Und leider funktioniert auf der Viewforum-Seite auch die Anzeige des letzten Beitrags überhaupt nicht korrekt.

In der Spalte Letzter Beitrag steht jetzt beim Testthread 08.05.2002, 12:04 Berta.
Wenn man das Thema aufruft (viewtopic), stellt man aber fest, dass es aus 3 Beiträgen besteht:

08.05.2002, 12:04 Berta
07.02.2007, 16:57 Anton
07.05.2007, 15:45 Berta --> müsste beim letzten Beitrag auf der viewforum-Seite angezeigt werden

Ein Blick in die Datenbank (Tabelle: phpbb_topics) verrät beim Testthema, dass topic_first_post_id = 6135 und topic_last_post_id = 6146.

In Wirklichkeit ist die Reihenfolge der 3 Postings im Thema (viewtopic) aber

6146 (1. Beitrag)
6136 (2. Beitrag)
6135 (3. Beitrag)

Hm, ja, diese Reihenfolge deckt sich mit der "Letzter Beitrag"-Beobachtung auf der Viewforum-Seite. Laut Posting-ID ist 6146 (08.05.2002, 12:04 Berta) der letzte Beitrag. In Wirklichkeit ist es im Thema aber der 1. und nicht der 3. Beitrag. Irgendwo ist da noch ein Wurm. ^6 Kann man da noch etwas machen, oder würde da phpBB ein Strich durch die Rechnung machen?

Wünsche einen schönen Nachmittag!
Wolfgang
Benutzeravatar
oxpus
Administrator
Beiträge: 28735
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

So betrachtet ist das ein Bug im phpBB selber, da diese Situation ja eigentlich nie vorkommen kann und daher auch nie "korrigiert" wurde.

Also:
Sortiert werden die Posts in der Themenansicht nach Post-Zeit aufsteigend, daher kann bei geänderter Post-Zeit der Post 6146 an erster Stelle vor 6136 stehen.
Für die Forumansicht und auf dem Index werden aber die jeweils erste und letzte Post-ID verwendet, die sich in dem Forum, bzw. in den Topics befinden. Eben nicht nach Zeit sondern ID sortiert, da man den eben den Faktor Zeit nie komplett berücksichtigt hatte.
Ich hatte allerdings genau das schon einmal versucht zu ändern, also mit in den Advanced Post Time MOD zu integrieren, aber die Methode den ersten und letzten Post nach Zeit zu bestimmen haben ich bislang nicht geschafft.
Naja, zumindest hatte ich es nicht lang genug probiert, um neben jeweils 3 zusätzlichen Queries dann wieder nur eine je Sync zu erhalten (wie es im Original auch ist).

Wenn hier also jemand eine Lösung für die sync-Funktion hat (zu finden in der includes/functions_admin.php), baue ich die gerne mit in meinen MOD ein...
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
Wolfgang
Beiträge: 45
Registriert: Mi 31.Jan, 2007 20:41

Beitrag von Wolfgang »

Hallo Oxpus,

danke für die Erläuterungen! Ich hatte schon den leisen Verdacht, dass das Ganze an phpBB selbst liegt.

Die Idee eines simplen Geistes: Würde es nicht ausreichen, wenn man bei einem Thema einfach prüft, welcher Beitrag den niedrigsten und welcher den größten Unix-Timestamp (heißt das so?) hat? Der Beitrag mit dem niedrigsten Timestamp (mit den wenigsten Sekunden seit 1970) ist der älteste, also trägt man seine ID bei phpbb_topics/topic_first_post_id ein. Und der Beitrag mit dem größten Timestamp ist der jüngste, also kommt seine ID ins Feld phpbb_topics/topic_last_post_id

Dann würden zumindest die Seltsamkeiten in Bezug auf den ersten/letzten Beitrag auf der Viewforum- und der Indexseite nicht auftreten. Selbst umsetzen kann ich das leider nicht. Ich weiß auch nicht, ob das so überhaupt funktionieren würde. Ehrlich gesagt wüsste ich auf die Schnelle gar nicht, wie phpBB die zu einem bestimmten Thema gehörigen Beiträge erkennt.

Wie dem auch sei: Gute Nacht!
Wolfgang
Benutzeravatar
oxpus
Administrator
Beiträge: 28735
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

Ja, schon, aber das bedeutet (momentan noch) mehrere Queries und eine bessere Lösung hatte ich bislang noch nicht...
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
Wolfgang
Beiträge: 45
Registriert: Mi 31.Jan, 2007 20:41

Beitrag von Wolfgang »

Hallo Oxpus,

wenn ich es richtig einschätze, sind diese Queries ja nur im Zusammenhang mit dem Advanced Post Time Edit MOD und eventuell mit dem Merge MOD nötig. Also ist es ja herzlich egal, ob da ein paar Queries dazukommen, oder nicht. Denn sooo oft kommen diese beiden MODs ja auch wieder nicht zum Einsatz. (Wenn sie aber zum Einsatz kommen, wäre es schön, wenn es zu keinen Inkonsistenzen auf der Viewforum- und der Index-Seite käme.) Bei den normalen Seitenaufrufen ändert sich hinsichtlich der Query-Anzahl ja nichts.

Solltest Du die angesprochene Lösung noch irgendwo herumliegen haben, würde ich gerne einen Tester für Dich spielen.

Wie gesagt: Der Code braucht in Bezug auf die Queries wirklich nicht von einer Qualität sein, die jeden vor Ehrfurcht niederknien lässt. Hauptsache, er funktioniert. Und wenn ich bei der einen oder anderen Spezialfunktion mal 20 oder 30 zusätzliche Queries habe, ist mir persönlich das wirklich egal.

Natürlich eilt es überhaupt nicht. Aber falls Du irgendwann einmal ein bisschen Zeit hast, in der Du nicht weißt, was Du anfangen sollst, kannst Du ja an mich denken. ;) (Ich glaube auch nicht, dass ich der Einzige bin, dem das geschilderte Problem aufgefallen ist. Oder etwa doch?)

Wünsche einen schönen Nachmittag!
Wolfgang
Benutzeravatar
oxpus
Administrator
Beiträge: 28735
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

Öhm, falsch, resynct werden die Foren schon öfter, als man denkt und auch die Anzeige für den letzten Post auf dem Index muss man überarbeiten (ich glaube auch hier mit zusätzlichen Queries).
Sooo einfach ist es ja eben nicht ;)
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
Wolfgang
Beiträge: 45
Registriert: Mi 31.Jan, 2007 20:41

Beitrag von Wolfgang »

Schade. Wie gesagt, fehlt es mir diesbezüglich wirklich an Wissen.

Ich bin sooo stolz auf mich, dass ich in Marcus Smith´ Kontaktformular-MOD das dämliche Captcha unlängst durch eine Sicherheitsfrage a la MagMo ersetzen konnte! Aber das war es halt auch schon mit meinen derzeitigen php-Kenntnissen. Leider.

Vielleicht behältst Du ja irgendwo im Hinterkopf, dass hier noch eine Frage offen ist. Würde mich freuen. Ansonsten muss ich halt jedes Mal, wenn mein Lieblings-Moderator die beiden hier zur Diskussion stehenden MODs hintereinander benutzt, in die Datenbank gehen und dort aufräumen. :(

LG, Wolfgang
Antworten