Seite 3 von 4
Verfasst: 05.08.2005 22:13
von Saint
Maria77 hat geschrieben:Der Fehler muß in der Anweisung hier stecken
Ja, tut er - hat, wie vermutet, mit dem Mod zu tun.
Dieser Code sollte funktionieren:
Code: Alles auswählen
#
#-----[ OPEN ]---------------------------------------------
#
privmsg.php (Version 2.0.17)
#
#-----[ FIND ]---------------------------------------------
#
$delete_type = "privmsgs_to_userid = " . $userdata['user_id'] . " AND (
privmsgs_type = " . PRIVMSGS_READ_MAIL . " OR privmsgs_type = " . PRIVMSGS_NEW_MAIL . " OR privmsgs_type = " . PRIVMSGS_UNREAD_MAIL . " )";
break;
#
#-----[ REPLACE WITH ]---------------------------------------------
#
$delete_type = "privmsgs_to_userid = " . $userdata['user_id'] . " AND (
privmsgs_type = " . PRIVMSGS_READ_MAIL . " OR privmsgs_type = " . PRIVMSGS_NEW_MAIL . " OR privmsgs_type = " . PRIVMSGS_UNREAD_MAIL . " OR privmsgs_type = " . PRIVMSGS_REPLY_MAIL . " )";
break;
Das sollte der Fix für den PN Reply MOD ab der 2.0.17 sein.
@naptune: verlink doch mal bitte Deine privmsgs.php als privmsgs.txt
Gruß
Saint
*edit:* Ich hab den Fix mal auf das Nötigste eingedampft
Verfasst: 06.08.2005 05:47
von naptune
Ok, hier der Link zu meiner:
privmsg.txt
Verfasst: 06.08.2005 11:42
von Saint
Du hast den selben Mod eingebaut. Oder hast Du ein phpBB plus Board?
Versuch mal bitte den Fix, den ich oben gepostet hab und berichte. Ich kann das leider nicht selbst testen, da ich den Mod nicht benutze und kenne.
Gruß
Saint
Verfasst: 06.08.2005 13:37
von naptune
Ich habe weden den Mod eingebaut noch habe ich ein Plus Board.
Wenn ich deinen Fix einbaue kommt diese Fehlermeldung:
Could not obtain id list to delete messages
DEBUG MODE
SQL Error : 1109 Unknown table 'pm' in where clause
SELECT privmsgs_id FROM phpbb_privmsgs WHERE privmsgs_to_userid = 4 AND ( privmsgs_type = 0 OR privmsgs_type = 1 OR privmsgs_type = 5 OR pm.privmsgs_type = 6 ) AND privmsgs_id IN (1760)
Line : 780
File : privmsg.php
Verfasst: 06.08.2005 14:07
von Saint
Wie auch immer der Mod heißt. Auffällig bei euch Beiden sind diese zusätzlichen Codezeilen:
Die sind in der Original privmsgs.php nicht vorhanden, bei euch Beiden schon.
Bei Dir kann ich noch zusätzlich den Attachment Mod sehen, aber zu welchem Mod gehören diese Codezeilen?
Den Fix werde ich mir nachher nochmal anschauen, dort müssen diese Codezeilen offensichtlich integriert werden (bisher scheinbar noch nicht richtig) - aber ich muß jetzt erstmal los.
Check mal bitte ob die nicht löschbaren PNs zu einem bestimmten Typus gehören - AntwortPNs oder sowat. Oder kannst Du alle nicht löschen?
Gruß
Saint
Verfasst: 06.08.2005 14:14
von naptune
AHHH....jetzt fällt mir grad noch ein, ich hab den PM_replied_Mod eingebaut.
In der Anleitung stehen diese Änderungen:
#-----[ OPEN ]------------------------------------------------
#
privmsg.php
#
#-----[ FIND ]------------------------------------------------
#
$refresh = $preview || $submit_search;
#
#-----[ BEFORE, ADD ]------------------------------------------
#
$submit_reply = ( isset($HTTP_POST_VARS['reply']) ) ? $HTTP_POST_VARS['reply'] : 0;
$submit_reply_id = ( isset($HTTP_POST_VARS['id']) ) ? $HTTP_POST_VARS['id'] : 0;
if (($submit_reply == 1) AND ($submit_reply_id > 0) )
{
$sql_reply = "UPDATE " . PRIVMSGS_TABLE . "
SET privmsgs_type = " . PRIVMSGS_REPLY_MAIL . "
WHERE privmsgs_id = " . $submit_reply_id;
if ( !$db->sql_query($sql_reply) )
{
message_die(GENERAL_ERROR, 'Could not update private message type.', '', __LINE__, __FILE__, $sql);
}
}
#
#-----[ FIND ]------------------------------------------------
#
}
else
{
$mode = '';
}
#
#-----[ BEFORE, ADD ]------------------------------------------
#
if (($mode == "reply") OR ($mode == "quote"))
{
$privmsg_reply = 1;
}
else
{
$privmsg_reply = 0;
}
#
#-----[ FIND ]------------------------------------------------
#
$privmsg_id = '';
}
#
#-----[ AFTER, ADD ]------------------------------------------
#
if (($mode == "reply") OR ($mode == "quote"))
{
$privmsg_reply_id = $privmsg_id;
}
else
{
$privmsg_reply_id = 0;
}
#
#-----[ FIND ]------------------------------------------------
#
case 'inbox':
$l_box_name = $lang['Inbox'];
$pm_sql_user = "AND pm.privmsgs_to_userid = " . $userdata['user_id'] . "
AND ( pm.privmsgs_type = " . PRIVMSGS_READ_MAIL . "
OR pm.privmsgs_type = " . PRIVMSGS_NEW_MAIL . "
OR pm.privmsgs_type = " . PRIVMSGS_UNREAD_MAIL . " )";
break;
#
#-----[ REPLACE WITH ]----------------------------------------
#
case 'inbox':
$l_box_name = $lang['Inbox'];
$pm_sql_user = "AND pm.privmsgs_to_userid = " . $userdata['user_id'] . "
AND ( pm.privmsgs_type = " . PRIVMSGS_READ_MAIL . "
OR pm.privmsgs_type = " . PRIVMSGS_NEW_MAIL . "
OR pm.privmsgs_type = " . PRIVMSGS_UNREAD_MAIL . "
OR pm.privmsgs_type = " . PRIVMSGS_REPLY_MAIL . ")";
break;
#
#-----[ FIND ]------------------------------------------------
#
if ( $delete_all )
{
switch($folder)
{
case 'inbox':
$delete_type = "privmsgs_to_userid = " . $userdata['user_id'] . " AND (
privmsgs_type = " . PRIVMSGS_READ_MAIL . " OR privmsgs_type = " . PRIVMSGS_NEW_MAIL . " OR privmsgs_type = " . PRIVMSGS_UNREAD_MAIL . " )";
break;
#
#-----[ REPLACE WITH ]----------------------------------------
#
if ( $delete_all )
{
switch($folder)
{
case 'inbox':
$delete_type = "privmsgs_to_userid = " . $userdata['user_id'] . " AND (
privmsgs_type = " . PRIVMSGS_READ_MAIL . " OR privmsgs_type = " . PRIVMSGS_REPLY_MAIL . " OR privmsgs_type = " . PRIVMSGS_NEW_MAIL . " OR privmsgs_type = " . PRIVMSGS_UNREAD_MAIL . " )";
break;
#
#-----[ FIND ]------------------------------------------------
#
switch( $folder )
{
case 'inbox':
$delete_sql .= "privmsgs_to_userid = " . $userdata['user_id'] . " AND (
privmsgs_type = " . PRIVMSGS_READ_MAIL . " OR privmsgs_type = " . PRIVMSGS_NEW_MAIL . " OR privmsgs_type = " . PRIVMSGS_UNREAD_MAIL . " )";
break;
#
#-----[ REPLACE WITH ]----------------------------------------
#
switch( $folder )
{
case 'inbox':
$delete_sql .= "privmsgs_to_userid = " . $userdata['user_id'] . " AND (
privmsgs_type = " . PRIVMSGS_READ_MAIL . " OR privmsgs_type = " . PRIVMSGS_REPLY_MAIL . " OR privmsgs_type = " . PRIVMSGS_NEW_MAIL . " OR privmsgs_type = " . PRIVMSGS_UNREAD_MAIL . " )";
break;
#
#-----[ FIND ]------------------------------------------------
#
switch ($folder)
{
case 'inbox':
$saved_sql .= " SET privmsgs_type = " . PRIVMSGS_SAVED_IN_MAIL . "
WHERE privmsgs_to_userid = " . $userdata['user_id'] . "
AND ( privmsgs_type = " . PRIVMSGS_READ_MAIL . "
OR privmsgs_type = " . PRIVMSGS_NEW_MAIL . "
OR privmsgs_type = " . PRIVMSGS_UNREAD_MAIL . ")";
break;
case 'outbox':
$saved_sql .= " SET privmsgs_type = " . PRIVMSGS_SAVED_OUT_MAIL . "
WHERE privmsgs_from_userid = " . $userdata['user_id'] . "
AND ( privmsgs_type = " . PRIVMSGS_NEW_MAIL . "
OR privmsgs_type = " . PRIVMSGS_UNREAD_MAIL . " ) ";
break;
#
#-----[ REPLACE WITH ]----------------------------------------
#
switch ($folder)
{
case 'inbox':
$saved_sql .= " SET privmsgs_type = " . PRIVMSGS_SAVED_IN_MAIL . "
WHERE privmsgs_to_userid = " . $userdata['user_id'] . "
AND ( privmsgs_type = " . PRIVMSGS_READ_MAIL . "
OR privmsgs_type = " . PRIVMSGS_NEW_MAIL . "
OR privmsgs_type = " . PRIVMSGS_UNREAD_MAIL . "
OR privmsgs_type = " . PRIVMSGS_REPLY_MAIL . ")";
break;
case 'outbox':
$saved_sql .= " SET privmsgs_type = " . PRIVMSGS_SAVED_OUT_MAIL . "
WHERE privmsgs_from_userid = " . $userdata['user_id'] . "
AND ( privmsgs_type = " . PRIVMSGS_NEW_MAIL . "
OR privmsgs_type = " . PRIVMSGS_UNREAD_MAIL . "
OR privmsgs_type = " . PRIVMSGS_REPLY_MAIL . ")";
break;
#
#-----[ FIND ]------------------------------------------------
#
if ( $submit )
{
#
#-----[ AFTER, ADD ]------------------------------------------
#
if ( !empty($HTTP_POST_VARS['reply']) )
{
$privmsg_reply = 1;
}
else
{
$privmsg_reply = 0;
}
#
#-----[ FIND ]------------------------------------------------
#
$sql = "SELECT COUNT(privmsgs_id) AS inbox_items, MIN(privmsgs_date) AS oldest_post_time
FROM " . PRIVMSGS_TABLE . "
WHERE ( privmsgs_type = " . PRIVMSGS_NEW_MAIL . "
OR privmsgs_type = " . PRIVMSGS_READ_MAIL . "
OR privmsgs_type = " . PRIVMSGS_UNREAD_MAIL . " )
#
#-----[ REPLACE WITH ]----------------------------------------
#
$sql = "SELECT COUNT(privmsgs_id) AS inbox_items, MIN(privmsgs_date) AS oldest_post_time
FROM " . PRIVMSGS_TABLE . "
WHERE ( privmsgs_type = " . PRIVMSGS_NEW_MAIL . "
OR privmsgs_type = " . PRIVMSGS_READ_MAIL . "
OR privmsgs_type = " . PRIVMSGS_UNREAD_MAIL . "
OR privmsgs_type = " . PRIVMSGS_REPLY_MAIL . ")
#
#-----[ FIND ]------------------------------------------------
#
$sql = "SELECT privmsgs_id FROM " . PRIVMSGS_TABLE . "
WHERE ( privmsgs_type = " . PRIVMSGS_NEW_MAIL . "
OR privmsgs_type = " . PRIVMSGS_READ_MAIL . "
OR privmsgs_type = " . PRIVMSGS_UNREAD_MAIL . " )
#
#-----[ REPLACE WITH ]----------------------------------------
#
$sql = "SELECT privmsgs_id FROM " . PRIVMSGS_TABLE . "
WHERE ( privmsgs_type = " . PRIVMSGS_NEW_MAIL . "
OR privmsgs_type = " . PRIVMSGS_READ_MAIL . "
OR privmsgs_type = " . PRIVMSGS_UNREAD_MAIL . "
OR privmsgs_type = " . PRIVMSGS_REPLY_MAIL . ")
#
#-----[ FIND ]------------------------------------------------
#
'U_SEARCH_USER' => append_sid("search.$phpEx?mode=searchuser"),
#
#-----[ BEFORE, ADD ]----------------------------------------
#
'REPLY' => $privmsg_reply,
'REPLY_ID' => $privmsg_reply_id,
#
#-----[ FIND ]------------------------------------------------
#
case 'inbox':
$sql_tot .= "WHERE privmsgs_to_userid = " . $userdata['user_id'] . "
AND ( privmsgs_type = " . PRIVMSGS_NEW_MAIL . "
OR privmsgs_type = " . PRIVMSGS_READ_MAIL . "
OR privmsgs_type = " . PRIVMSGS_UNREAD_MAIL . " )";
$sql .= "WHERE pm.privmsgs_to_userid = " . $userdata['user_id'] . "
AND u.user_id = pm.privmsgs_from_userid
AND ( pm.privmsgs_type = " . PRIVMSGS_NEW_MAIL . "
OR pm.privmsgs_type = " . PRIVMSGS_READ_MAIL . "
OR privmsgs_type = " . PRIVMSGS_UNREAD_MAIL . " )";
break;
#
#-----[ REPLACE WITH ]----------------------------------------
#
case 'inbox':
$sql_tot .= "WHERE privmsgs_to_userid = " . $userdata['user_id'] . "
AND ( privmsgs_type = " . PRIVMSGS_NEW_MAIL . "
OR privmsgs_type = " . PRIVMSGS_READ_MAIL . "
OR privmsgs_type = " . PRIVMSGS_UNREAD_MAIL . "
OR privmsgs_type = " . PRIVMSGS_REPLY_MAIL . " )";
$sql .= "WHERE pm.privmsgs_to_userid = " . $userdata['user_id'] . "
AND u.user_id = pm.privmsgs_from_userid
AND ( pm.privmsgs_type = " . PRIVMSGS_NEW_MAIL . "
OR pm.privmsgs_type = " . PRIVMSGS_READ_MAIL . "
OR pm.privmsgs_type = " . PRIVMSGS_UNREAD_MAIL . "
OR pm.privmsgs_type = " . PRIVMSGS_REPLY_MAIL . " )";
break;
#
#-----[ FIND ]------------------------------------------------
#
$icon_flag_alt = ( $flag == PRIVMSGS_NEW_MAIL || $flag == PRIVMSGS_UNREAD_MAIL ) ? $lang['Unread_message'] : $lang['Read_message'];
#
#-----[ AFTER, ADD ]------------------------------------------
#
if ($flag == PRIVMSGS_REPLY_MAIL)
{
$icon_flag = $images['pm_reply'];
$icon_flag_alt = $lang['Reply_message'];
}
#
Kanns damit was zu tun haben?

Verfasst: 06.08.2005 14:18
von Saint
Ja. Genau der. Hier liegt der Hund begraben.
Gruß
Saint
Verfasst: 06.08.2005 14:33
von naptune
Na immerhin ein kleiner Teilerfolg, das Übel ist erkannt.
Danke erstmal dafür, vielleicht kannst du bei Gelegenheit mal nachsehen was ich ändern könnte/sollte?
Verfasst: 06.08.2005 14:35
von Saint
Ja klar. Muß nur jetzt echt erstmal los (mist - ich bleib immer wieder an der kiste hängen

).
Gruß
Saint
Verfasst: 06.08.2005 15:59
von Maria77
Ja genau. Den Mod hab ich auch drin!!