Tag,
wenn ich als Admin eine Rundmail verschicke, dann zeigt es mir im Ordner Postausgang alte Nachrichten, die schon gelesen wurden, als nicht gelesen an.
Das ist sehr komisch, da in der DB unter read_msg ne 1 steht.
Servus
Hi David555,
ich habe mir das gerade angesehen.
Das selbe passiert auch wenn man zwischendurch mal eine Nachricht ohne speichern im Postausgang verschickt. Dann sind alle um eins verschoben.
Ich glaube das muß noch eine zusätzliche Abfrage rein, wie z.B. msg_time
Nur da scheitere ich wieder mal an meinen SQL-Kentnissen.
Ich habe es mal versucht und in der index.php ab Zeile 788
//Nachrichten ungelesenen auslesen für "pix" ----->
$select1 = "SELECT * FROM ${prefix}_priv_msgs "
$where1 = "where from_userid = $uid ";
$sort1 = "order by msg_time"; //sorty by .....
$result_read_msg = sql_query($select1 . $where1 . $sort1 . $limit); # or die(); // Now lets do it !!
//<----- bis hier
mal das gemacht
//Nachrichten ungelesenen auslesen für "pix" ----->
$select1 = "SELECT ${prefix}_priv_msgs.* "
. "FROM ${prefix}_priv_msgs LEFT JOIN ${prefix}_priv_msgs_send ON ${prefix}_priv_msgs.msg_time = ${prefix}_priv_msgs_send.msg_time ";
$where1 = "where from_userid = $uid ";
$sort1 = "order by msg_time"; //sorty by .....
$result_read_msg = sql_query($select1 . $where1 . $sort1 . $limit); # or die(); // Now lets do it !!
//<----- bis hier
Nur irgendwo ist da ein Fehler drinn
Gruß Gerhard
Hallo,
ich habe bereits einiges versucht, doch leider ohne Erfolg.
Hat von euch keiner eine Idee, wie man das lösen könnte?
Eine zusätzliche Abfrage mit msg_time würde reichen, da ja ein und der selbe User nicht zur selben Zeit, zwei PM´s versenden kann. Ausser man ist Admin und sendet eine an alle User, aber dort habe ich das speichern für den Postausgang gar nicht eingebaut. Müsste also funktionieren :gruebel:
Danke für eure Hilfe, Gerhard
Hallo,
hat keiner eine Idee wie man diesen Fehler beheben kann?
Das im vorherigen Post von mir ist ja nur eine Vermutung, wenn wer einen anderen Lösungsvorschlag hat, nur her damit. Vielleicht ist der ja leichter umzusetzen ;)
Gruß Gerhard
Also ich hab jetzt den halben Abend versucht mit meinen zugegeben rudimentären Kentnissen daran rumzudoktern.
Leider ohne Erfolg. :red:
Schade das hier keiner ein Lösung für das Problem hat. :red:
Dann bleibt uns woll nichts anderes übrig, als mit diesem Fehler zu leben oder wir verzichten auf die Anzeige.
Gerhard lass uns dass zurückstellen. Im Moment kommen wir hier allein nicht weiter.
Hallo Eismann,
was verstehst du unter zurückstellen?
Ausbauen oder lassen?
Ich möchte wirklich gerne mal die neue Version hochladen, nur mit bekannten Fehlern ist das immer so eine Sache :red:
HiHo :)
sorry Leute, dass ich euch so hängen lasse... :red:
Lasst mal jetzt ein paar Tage die 0.1.10 im Betatest anlaufen, dann habe ich wieder etwas mehr Luft, so dass wir da nochmal gemeinsam drüberschauen.
Wir müssen ja eh checken, wie das alles noch zur 0.1.10 passt ;)
Danke, Andi!
Jetzt kommt es auf die paar Tage auch nicht mehr drauf an.
Mit dem checken muß ich dir recht geben, da hat sich sicher was geändert ;)
Ich hätte den Fehler erstmal drin gelassen und ausdrücklich in der Readme drauf hingewiesen.
Aber die paar Tage hat es nun auch noch Zeit. Schließlich ist das Modul noch in der Beta und hier im Forum ist der Fehler ja dokumentiert.
Ich habe folgende Lösung gefunden:
Folgende Zeilen in der index.php löschen:
Zeile 787 bis 794, diese hier:
//Nachrichten ungelesenen auslesen für "pix" ----->
//$select1 = "SELECT ${prefix}_priv_msgs.* "
// . "FROM ${prefix}_priv_msgs LEFT JOIN ${prefix}_priv_msgs_send ON ${prefix}_priv_msgs.msg_time = ${prefix}_priv_msgs_send.msg_time ";
$select1 = "SELECT * FROM ${prefix}_priv_msgs ";
$where1 = "where from_userid = $uid ";
$sort1 = "order by msg_time"; //sorty by .....
$result_read_msg = sql_query($select1 . $where1 . $sort1 . $limit); # or die(); // Now lets do it !!
//<----- bis hier
Dann diese Anweisung suchen: (ACHTUNG! Davon gibt es zwei, die in Zeile 800 - 830 ist richtig)
while ($row = sql_fetch_array($result)) {
unter dieser Zeile das hier einfügen:
//Nachrichten ungelesenen auslesen für "pix" ----->
$pm_uhrzeit = $row["msg_time"];
$select1 = "SELECT * FROM ${prefix}_priv_msgs ";
$where1 = "where msg_time = '$pm_uhrzeit'";
$result_read_msg = sql_query($select1 . $where1);
//<----- bis hier
Ich hab das auf meinem Testsystem mal getestet und soweit funktioniert es.
Auf meinem Testsystem sind alle UPDATES installiert, also auf dem aktuellen Stand.
Ich habe die aktuelle index.php mit diesen Schritten umgeändert.
Diese könnt ihr in modules/Private_Messages/ kopieren.
Hallo David555,
finde ich super, das du auch versuchst das Problem zu lösen :thumbup:
Leider funktioniert deine Lösung auch nicht korrekt.
Ich habe gerade mal ein Rundmail verschickt und dann bei mir und bei einem anderen User den kompletten Posteingang geleert. Nun wird mir im Postausgang angezeigt, das keine einzige PM gelesen wurde.
Schade! :red:
Gruß Gerhard
Man probierts halt ;)
Habe gerade auch eine Rundmail verschickt und danach meinen Posteingang (_priv_msgs) geleert.
Bei mir zeigt es dann im Postausgang an, dass alle PM's gelesen wurden. Was ja auch verständlich ist, da die Dateien ja nicht mehr verfügbar sind, um sie abzugleichen.
Kannst du diese index.php Datei noch einmal probieren?
Hallo David555,
ich glaube das wars :thumbup:
Ich kann zumindest keinen Fehler mehr feststellen!
Mal sehen was die anderen dazu sagen!
Wenn nichts negatives kommt, kommt Version 2 in die Downloads ;)
Also bitte an alle, testen und hier melden!
Gruß Gerhard