Seite 2 von 4

Verfasst: 04.08.2005 21:31
von Maria77
So sieht die Anweisung aus:

Code: Alles auswählen

 
# 
#-----[ OPEN ]--------------------------------------------- 
# 
privmsg.php

#
#-----[ FIND ]---------------------------------------------
# Line 701
		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;

				case 'outbox':
					$delete_type = "privmsgs_from_userid = " . $userdata['user_id'] . " AND ( privmsgs_type = " . PRIVMSGS_NEW_MAIL . " OR privmsgs_type = " . PRIVMSGS_UNREAD_MAIL . " )";
					break;

				case 'sentbox':
					$delete_type = "privmsgs_from_userid = " . $userdata['user_id'] . " AND privmsgs_type = " . PRIVMSGS_SENT_MAIL;
					break;

				case 'savebox':
					$delete_type = "( ( privmsgs_from_userid = " . $userdata['user_id'] . " 
						AND privmsgs_type = " . PRIVMSGS_SAVED_OUT_MAIL . " ) 
					OR ( privmsgs_to_userid = " . $userdata['user_id'] . " 
						AND privmsgs_type = " . PRIVMSGS_SAVED_IN_MAIL . " ) )";
					break;
			}

			$sql = "SELECT privmsgs_id
				FROM " . PRIVMSGS_TABLE . "
				WHERE $delete_type";
			if ( !($result = $db->sql_query($sql)) )
			{
				message_die(GENERAL_ERROR, 'Could not obtain id list to delete all messages', '', __LINE__, __FILE__, $sql);
			}

			while ( $row = $db->sql_fetchrow($result) )
			{
				$mark_list[] = $row['privmsgs_id'];
			}

			unset($delete_type);
		}


#
#-----[ REPLACE WITH ]---------------------------------------------
# 
		$delete_sql_id = '';

		if (!$delete_all)
		{
			for ($i = 0; $i < count($mark_list); $i++)
			{
				$delete_sql_id .= (($delete_sql_id != '') ? ', ' : '') . intval($mark_list[$i]);
			}
			$delete_sql_id = "AND privmsgs_id IN ($delete_sql_id)";
		}

		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;

			case 'outbox':
				$delete_type = "privmsgs_from_userid = " . $userdata['user_id'] . " AND ( privmsgs_type = " . PRIVMSGS_NEW_MAIL . " OR privmsgs_type = " . PRIVMSGS_UNREAD_MAIL . " )";
				break;

			case 'sentbox':
				$delete_type = "privmsgs_from_userid = " . $userdata['user_id'] . " AND privmsgs_type = " . PRIVMSGS_SENT_MAIL;
				break;

			case 'savebox':
				$delete_type = "( ( privmsgs_from_userid = " . $userdata['user_id'] . " 
					AND privmsgs_type = " . PRIVMSGS_SAVED_OUT_MAIL . " ) 
				OR ( privmsgs_to_userid = " . $userdata['user_id'] . " 
					AND privmsgs_type = " . PRIVMSGS_SAVED_IN_MAIL . " ) )";
				break;
		}

		$sql = "SELECT privmsgs_id
			FROM " . PRIVMSGS_TABLE . "
			WHERE $delete_type $delete_sql_id";

		if ( !($result = $db->sql_query($sql)) )
		{
			message_die(GENERAL_ERROR, 'Could not obtain id list to delete messages', '', __LINE__, __FILE__, $sql);
		}

		$mark_list = array();
		while ( $row = $db->sql_fetchrow($result) )
		{
			$mark_list[] = $row['privmsgs_id'];
		}

		unset($delete_type);


#
#-----[ FIND ]---------------------------------------------
# Line 1507
				$mode = 'reply';
			}
		}

#
#-----[ AFTER, ADD ]---------------------------------------------
# 
		else
		{
			$privmsg_subject = $privmsg_message = '';
		}

#
#-----[ FIND ]---------------------------------------------
# Line 2036
			$l_box_size_status = '';
			break;
	}
}

#
#-----[ AFTER, ADD ]---------------------------------------------
# 
else
{
	$inbox_limit_img_length = $inbox_limit_pct = $l_box_size_status = '';
}



Verfasst: 04.08.2005 21:44
von Saint
Verlinke doch mal bitte Deine privmsg.php als privmsg.txt

Gruß

Saint

Verfasst: 04.08.2005 21:49
von Maria77
Hier ist sie: privmsg.txt

Danke schon mal!

Verfasst: 04.08.2005 22:44
von PhilippK
Kannst du mal testweise probieren, ob das Problem auch auftritt, wenn du die Original privmsg.php verwendest?

Gruß, Philipp

Verfasst: 05.08.2005 09:26
von naptune
Wenn ich die Original-Datei verwende hab ich das Problem nicht, also die privmsg.php vor dem Update.

Verfasst: 05.08.2005 12:38
von Saint
@naptune: Hast Du auch diesen Quick Reply / Absent Reply Mod (oder wie auch immer der heisst) eingebaut?

Wenn ja, dann schaut mal beim Modautor ob es eine Anpassung fuer die phpBB Version 2.0.17 gibt.
Ich glaube das dieser Mod mit dem Update zur 2.0.17 hakt.

Gruss

Saint

Verfasst: 05.08.2005 12:53
von naptune
Hi,
nein, hab keinen dieser Mods installiert.

Verfasst: 05.08.2005 14:05
von Maria77
Ich hab den Absent User MOD drin. Und daran soll das liegen??

@ Philipp

Ich lade heute abend mal die alte privmsg.php hoch und sag Dir dann ob das Problem dann wieder weg ist!

Verfasst: 05.08.2005 15:31
von naptune
Hmm....ich den Mod nicht eingebaut und hab auch das Problem, also ob´s nun an dem Mod liegt??

Fakt ist, vor dem Update hat alles normal funktionert. Hab jetzt ja wieder die privmsg.php vor dem Update geladen und alle Probleme sind verschwunden.

Gruß

Verfasst: 05.08.2005 20:16
von Maria77
Der Fehler muß in der Anweisung hier stecken:

Code: Alles auswählen

# 
#-----[ REPLACE WITH ]--------------------------------------------- 
# 
      $delete_sql_id = ''; 

      if (!$delete_all) 
      { 
         for ($i = 0; $i < count($mark_list); $i++) 
         { 
            $delete_sql_id .= (($delete_sql_id != '') ? ', ' : '') . intval($mark_list[$i]); 
         } 
         $delete_sql_id = "AND privmsgs_id IN ($delete_sql_id)"; 
      } 

      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; 

         case 'outbox': 
            $delete_type = "privmsgs_from_userid = " . $userdata['user_id'] . " AND ( privmsgs_type = " . PRIVMSGS_NEW_MAIL . " OR privmsgs_type = " . PRIVMSGS_UNREAD_MAIL . " )"; 
            break; 

         case 'sentbox': 
            $delete_type = "privmsgs_from_userid = " . $userdata['user_id'] . " AND privmsgs_type = " . PRIVMSGS_SENT_MAIL; 
            break; 

         case 'savebox': 
            $delete_type = "( ( privmsgs_from_userid = " . $userdata['user_id'] . " 
               AND privmsgs_type = " . PRIVMSGS_SAVED_OUT_MAIL . " ) 
            OR ( privmsgs_to_userid = " . $userdata['user_id'] . " 
               AND privmsgs_type = " . PRIVMSGS_SAVED_IN_MAIL . " ) )"; 
            break; 
      } 

      $sql = "SELECT privmsgs_id 
         FROM " . PRIVMSGS_TABLE . " 
         WHERE $delete_type $delete_sql_id"; 

      if ( !($result = $db->sql_query($sql)) ) 
      { 
         message_die(GENERAL_ERROR, 'Could not obtain id list to delete messages', '', __LINE__, __FILE__, $sql); 
      } 

      $mark_list = array(); 
      while ( $row = $db->sql_fetchrow($result) ) 
      { 
         $mark_list[] = $row['privmsgs_id']; 
      } 

      unset($delete_type); 
Denn wenn ich den Teil durch den ursprünglichen wieder ersetze, dann kann ich im Posteingang auch wieder PNs löschen!