Changeset 331 for message.php

Show
Ignore:
Timestamp:
12/28/10 12:24:38 (1 year ago)
Author:
Nafania
Message:

фича - похожие торренты

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • message.php

    r317 r331  
    2626 
    2727        //here we take first message of messages history 
    28         $sql = 'SELECT p.id, p.receiver, p.added, p.msg, p.subject, u.name, u.uid 
     28        $sql = 'SELECT p.id, p.receiver, p.added, p.msg, p.subject, u.name, u.uid, u.class 
    2929                        FROM ' . PRIVATE_MESSAGES_TABLE . ' p, ' . USERS_TABLE . ' u 
    3030                        WHERE p.id = ' . $message_id . ' AND u.uid = p.sender'; 
     
    3737        } 
    3838 
    39         $sql = 'SELECT p.id, p.receiver, p.added, p.msg, p.subject, u.name, u.uid 
     39        $sql = 'SELECT p.id, p.receiver, p.added, p.msg, p.subject, u.name, u.uid, u.class 
    4040                        FROM ' . PRIVATE_MESSAGES_TABLE . ' p, ' . USERS_TABLE . ' u 
    4141                        WHERE p.reply_to = ' . $message_id . ' AND u.uid = p.sender ORDER BY p.added ASC'; 
     
    5252        krsort($reply_msg); 
    5353 
     54        if ( !sizeof($reply_msg) ) { 
     55                return false; 
     56        } 
     57 
    5458        return array ( $reply_msg, $subject, $origmsg ); 
    5559} 
     
    6367 
    6468                $pm_id = request_var('id', 0); 
    65              if ( !$pm_id ) { 
     69               if ( !$pm_id ) { 
    6670                        trigger_error( sprintf($lang['invalid_id'], $id) ); 
    67              } 
    68  
    69                 $sql = 'SELECT p.*, u.name FROM ' . PRIVATE_MESSAGES_TABLE . ' p, ' . USERS_TABLE . ' u 
     71                } 
     72 
     73                $sql = 'SELECT p.*, u.name, u.uid, u.class 
     74                                FROM ' . PRIVATE_MESSAGES_TABLE . ' p, ' . USERS_TABLE . ' u 
    7075                                WHERE p.id = ' . $pm_id . ' AND p.receiver = ' . $userdata['uid'] . ' AND p.sender = u.uid'; 
    71              $result = $db->sql_query($sql); 
    72  
    73              if ( !$message = $db->sql_fetchrow($result) ) { 
    74                         $sql = 'SELECT p.*, u.name FROM ' . PRIVATE_MESSAGES_TABLE . ' p, ' . USERS_TABLE . ' u 
     76                $result = $db->sql_query($sql); 
     77 
     78                if ( !$message = $db->sql_fetchrow($result) ) { 
     79                        $sql = 'SELECT p.*, u.name, u.uid, u.class 
     80                                        FROM ' . PRIVATE_MESSAGES_TABLE . ' p, ' . USERS_TABLE . ' u 
    7581                                        WHERE p.id = ' . $pm_id . ' AND p.sender = ' . $userdata['uid'] . ' AND p.receiver = u.uid AND p.saved = 1'; 
    76                      $result = $db->sql_query($sql); 
    77                      if ( !$message = $db->sql_fetchrow($result) ) { 
    78                              trigger_error( sprintf($lang['invalid_id'], $pm_id)); 
    79                         } 
    80              
    81  
    82              $bb_code = new bbcode(); 
    83  
    84              if ( $message['sender'] == $userdata['uid'] ) { 
    85                   $sender = '<a href="' . append_sid('userdetails.php?id=' . $message['receiver']) . '">' . $message['name'] . '</a>'
    86                   $id = $message['sender']; 
    87                   $sql = 'SELECT id FROM ' . FRIENDS_TABLE . ' WHERE userid = ' . $userdata['uid'] . ' AND friendid = ' . $id; 
    88                   $result = $db->sql_query($sql); 
    89                   if ( $db->sql_fetchrow($result) ) { 
    90                           $sender .= '&nbsp;<a href="' . append_sid('my.php?type=friends&amp;action=del_friend&amp;fr_type=1&amp;targetid=' . $id) . '">[' . $lang['remove_from_friends_list'] . ']</a>'; 
    91                  
    92                   else { 
    93                        $sender .= '&nbsp;<a href="' . append_sid('my.php?type=friends&amp;action=add_friend&amp;fr_type=1&amp;targetid=' . $id) . '">[' . $lang['add_to_friends_list'] . ']</a>'; 
    94                  
    95                   $reply = ''; 
    96                   $from = $lang['message_to']; 
    97              
    98              else { 
     82                       $result = $db->sql_query($sql); 
     83                       if ( !$message = $db->sql_fetchrow($result) ) { 
     84                               trigger_error( sprintf($lang['invalid_id'], $pm_id)); 
     85                        } 
     86               
     87 
     88               $bb_code = new bbcode(); 
     89 
     90               if ( $message['sender'] == $userdata['uid'] ) { 
     91                       $sender = parse_username($message)
     92                       $id = $message['sender']; 
     93                       $sql = 'SELECT id FROM ' . FRIENDS_TABLE . ' WHERE userid = ' . $userdata['uid'] . ' AND friendid = ' . $id; 
     94                       $result = $db->sql_query($sql); 
     95                       if ( $db->sql_fetchrow($result) ) { 
     96                               $sender .= '&nbsp;<a href="' . append_sid('my.php?type=friends&amp;action=del_friend&amp;fr_type=1&amp;targetid=' . $id) . '">[' . $lang['remove_from_friends_list'] . ']</a>'; 
     97                       
     98                       else { 
     99                            $sender .= '&nbsp;<a href="' . append_sid('my.php?type=friends&amp;action=add_friend&amp;fr_type=1&amp;targetid=' . $id) . '">[' . $lang['add_to_friends_list'] . ']</a>'; 
     100                       
     101                       $reply = ''; 
     102                       $from = $lang['message_to']; 
     103               
     104               else { 
    99105                        $from = $lang['message_from']; 
    100                   if ( !$message['sender'] ) { 
     106                       if ( $message['sender'] == ANONYMOUS ) { 
    101107                                $sender = $lang['system']; 
    102                        $reply = ''; 
    103                  
    104                   else { 
    105                        $sender = '<a href="' . append_sid('userdetails.php?id=' . $message['sender']) . '">' . $message['name'] . '</a>'
    106                        $id = $message['sender']; 
    107                        $reply_to = ( $message['reply_to'] ? $message['reply_to'] : $pm_id ); 
    108                        $sql = 'SELECT id FROM ' . FRIENDS_TABLE . ' WHERE userid = ' . $userdata['uid'] . ' AND friendid = ' . $id; 
    109                        $result = $db->sql_query($sql); 
    110                        if ( $db->sql_fetchrow($result) ) { 
     108                               $reply = ''; 
     109                       
     110                       else { 
     111                            $sender = parse_username($message)
     112                            $id = $message['sender']; 
     113                            $reply_to = ( $message['reply_to'] ? $message['reply_to'] : $pm_id ); 
     114                            $sql = 'SELECT id FROM ' . FRIENDS_TABLE . ' WHERE userid = ' . $userdata['uid'] . ' AND friendid = ' . $id; 
     115                            $result = $db->sql_query($sql); 
     116                            if ( $db->sql_fetchrow($result) ) { 
    111117                                        $sender .= '&nbsp;<a href="' . append_sid('my.php?type=friends&amp;action=del_friend&amp;fr_type=1&amp;targetid=' . $id) . '">[' . $lang['remove_from_friends_list'] . ']</a>'; 
    112                        } 
    113                        elseif ( $userdata['uid'] != $message['sender'] ) { 
     118                            } 
     119                            elseif ( $userdata['uid'] != $message['sender'] ) { 
    114120                                        $sender .= '&nbsp;<a href="' . append_sid('my.php?type=friends&amp;action=add_friend&amp;fr_type=1&amp;targetid=' . $id) . '">[' . $lang['add_to_friends_list'] . ']</a>'; 
    115                        } 
    116                        $reply = ' [ <a href="' . append_sid('message.php?action=send&amp;receiver=' . $message['sender'] . '&amp;replyto=' . $reply_to) . '">' . $lang['message_answer'] . '</a> ]'; 
    117                      
    118              
     121                            } 
     122                            $reply = ' [ <a href="' . append_sid('message.php?action=send&amp;receiver=' . $message['sender'] . '&amp;replyto=' . $reply_to) . '">' . $lang['message_answer'] . '</a> ]'; 
     123                       
     124               
    119125 
    120126                $bb_code->parse($message['msg']); 
    121              $body = $bb_code->get_html(); 
    122              $body = censor_text($body); 
    123  
    124              $added = create_date($message['added']); 
    125              if ( $userdata['class'] >= UC_MODERATOR && $message['sender'] == $userdata['uid'] ) { 
    126                         $unread = ($message['unread'] ? '<span style="color: #FF0000;"><b>(' . $lang['message_new'] . ')</b></span>' : ''); 
    127              
    128              else { 
     127               $body = $bb_code->get_html(); 
     128               $body = censor_text($body); 
     129 
     130               $added = create_date($message['added']); 
     131               if ( $message['sender'] == $userdata['uid'] ) { 
     132                        $unread = ( $message['unread'] ? '<span style="color: #FF0000;"><b>(' . $lang['message_new'] . ')</b></span>' : '' ); 
     133               
     134               else { 
    129135                        $unread = ''; 
    130              
    131              $subject = $message['subject']; 
    132  
    133              if ( $message['unread'] ) { 
     136               
     137               $subject = $message['subject']; 
     138 
     139               if ( $message['unread'] ) { 
    134140                        $sql = 'UPDATE ' . PRIVATE_MESSAGES_TABLE . ' SET unread = 0 WHERE id = ' . $pm_id . ' AND receiver=' . $userdata['uid'] . ' LIMIT 1'; 
    135141                        $db->sql_query($sql); 
    136                      if ( $db->sql_affectedrows() && $message['location'] == PM_INBOX ) { 
     142                       if ( $db->sql_affectedrows() && $message['location'] == PM_INBOX ) { 
    137143                                $sql = 'UPDATE ' . USERS_TABLE . ' SET user_unread_pms = user_unread_pms - 1 WHERE uid = ' . $userdata['uid']; 
    138                               $db->sql_query($sql); 
    139                      
    140              
    141  
    142              // Display message 
    143              $template->assign_vars(array( 
     144                              $db->sql_query($sql); 
     145                       
     146               
     147 
     148               // Display message 
     149               $template->assign_vars(array( 
    144150                        'U_DELETE' => append_sid('message.php?action=moveordel&amp;id=' . $pm_id . '&amp;delete=1'), 
    145                   'U_FORWARD' => append_sid('message.php?action=forward&amp;id=' . $pm_id), 
    146                   'SUBJECT' => $subject, 
    147                   'FROM' => $from, 
    148                   'SENDER' => $sender, 
    149                   'ADDED' => $added, 
    150                   'UNREAD' => $unread, 
    151                   'BODY' => $body, 
    152                   'PM_ID'=> $pm_id, 
    153                   'REPLY' => $reply 
     151                       'U_FORWARD' => append_sid('message.php?action=forward&amp;id=' . $pm_id), 
     152                       'SUBJECT' => $subject, 
     153                       'FROM' => $from, 
     154                       'SENDER' => $sender, 
     155                       'ADDED' => $added, 
     156                       'UNREAD' => $unread, 
     157                       'BODY' => $body, 
     158                       'PM_ID'=> $pm_id, 
     159                       'REPLY' => $reply 
    154160                )); 
    155161 
    156              if ( list ( $msg_history_ary ) = return_messages_history($message['reply_to'], true) ) { 
    157                      $template->assign_block_vars('messages_history', array()); 
     162               if ( list ( $msg_history_ary ) = return_messages_history($message['reply_to'], true) ) { 
     163                       $template->assign_block_vars('messages_history', array()); 
    158164                        foreach ( $msg_history_ary AS $msg_id => $ary ) { 
    159165                                $added = create_date($ary['added']); 
     
    161167                                $body = censor_text($ary['msg']); 
    162168                                $bb_code->parse($body); 
    163                              $body = $bb_code->get_html(); 
     169                                $body = $bb_code->get_html(); 
     170 
     171                                $user_name = parse_username($ary); 
    164172 
    165173                                $template->assign_block_vars('messages_history.messages_history_row', array( 
     
    167175                                        'MESSAGE' => $body, 
    168176                                        'ADDED' => $added, 
    169                                         'USERNAME' => ( $ary['uid'] == ANONYMOUS ? $lang['system'] : $ary['name'] ) 
     177                                        'USERNAME' => $user_name, 
    170178                                )); 
    171179                        } 
    172              
    173  
    174              stdhead(sprintf($lang['message_pm_subject'], $subject)); 
     180               
     181 
     182               stdhead(sprintf($lang['message_pm_subject'], $subject)); 
    175183                $template->set_filenames(array( 
    176184                        'body' => 'message_viewmessage_body.html' 
    177185                )); 
    178              stdfoot(); 
     186               stdfoot(); 
    179187 
    180188        break; 
     
    196204                        //flood control 
    197205                        $sql = 'SELECT MAX(added) AS max_added FROM ' . PRIVATE_MESSAGES_TABLE . ' WHERE sender = ' . $userdata['uid']; 
    198                       $result = $db->sql_query($sql); 
     206                      $result = $db->sql_query($sql); 
    199207                        $max_added = ( $flood_row = $db->sql_fetchrow($result) ) ? $flood_row['max_added'] : 0; 
    200208 
     
    202210                                trigger_error($lang['flood_error']); 
    203211                        } 
    204              
     212               
    205213 
    206214                if ( isset($_POST['submit']) ) { 
    207215                        $origmsg = request_var('origmsg', 0); 
    208                      $save = ( isset($_POST['save']) ? 1 : 0 ); 
    209                      $delete = ( isset($_POST['delete']) ? 1 : 0 ); 
    210                      $returnto = request_var('returnto', ''); 
    211                      $msg = request_var('message', ''); 
    212                      $subject = request_var('subject', ''); 
     216                       $save = ( isset($_POST['save']) ? 1 : 0 ); 
     217                       $delete = ( isset($_POST['delete']) ? 1 : 0 ); 
     218                       $returnto = request_var('returnto', ''); 
     219                       $msg = request_var('message', ''); 
     220                       $subject = request_var('subject', ''); 
    213221                        if ( !$msg ) { 
    214222                                trigger_error($lang['post_something']); 
    215                      
    216                      if ( !$subject ) { 
    217                              trigger_error($lang['please_enter_subject']); 
    218                      
     223                       
     224                       if ( !$subject ) { 
     225                               trigger_error($lang['please_enter_subject']); 
     226                       
    219227 
    220228                        $sql = 'SELECT email, acceptpms, notifs, parked, user_session_time, language, name, class FROM ' . USERS_TABLE . ' WHERE uid = ' . $receiver; 
    221                      $result = $db->sql_query($sql); 
    222                      if ( !($user = $db->sql_fetchrow($result)) || !$receiver ) { 
     229                       $result = $db->sql_query($sql); 
     230                       if ( !($user = $db->sql_fetchrow($result)) || !$receiver ) { 
    223231                                trigger_error(sprintf($lang['invalid_id'], $receiver)); 
    224                      
     232                       
    225233                        //Make sure recipient wants this message 
    226                      if ( $userdata['class'] < UC_MODERATOR ) { 
     234                       if ( $userdata['class'] < UC_MODERATOR ) { 
    227235                                if ( $user['acceptpms'] == 1 ) { 
    228236                                        $sql = 'SELECT * FROM ' . FRIENDS_TABLE . ' WHERE userid = ' . $receiver . ' AND blockid = ' . $userdata['uid']; 
    229                                $result = $db->sql_query($sql); 
     237                                    $result = $db->sql_query($sql); 
    230238                                        if ( $row = $db->sql_fetchrow($result) ) { 
    231239                                                trigger_error($lang['you_in_block_list']); 
    232                                } 
    233                          
     240                                    } 
     241                               
    234242                                elseif ( $user['acceptpms'] == 2 ) { 
    235243                                        $sql = 'SELECT * FROM ' . FRIENDS_TABLE . ' WHERE userid = ' . $receiver . ' AND friendid=' . $userdata['uid']; 
    236                                $result = $db->sql_query($sql); 
    237                                if ( !($row = $db->sql_fetchrow($result)) ) { 
    238                                        trigger_error($lang['only_from_friends']); 
    239                                } 
    240                          
     244                                    $result = $db->sql_query($sql); 
     245                                    if ( !($row = $db->sql_fetchrow($result)) ) { 
     246                                            trigger_error($lang['only_from_friends']); 
     247                                    } 
     248                               
    241249                                elseif ( !$user['acceptpms'] ) { 
    242250                                        trigger_error($lang['only_from_admins']); 
    243                          
     251                               
    244252 
    245253                                if ( $user['parked'] ) { 
    246254                                        trigger_error($lang['this_account_parked']); 
    247                              } 
    248                      } 
    249  
    250                   $pm_ary = array(); 
    251  
    252                         $pm_ary[] = array( 
     255                                } 
     256                        } 
     257 
     258                        $pm_ary = array(array( 
    253259                                'sender' => $userdata['uid'], 
    254260                                'sender_name' => $userdata['name'], 
     
    264270                                'language' => $user['language'], 
    265271                                'class' => $user['class'] 
    266                         )
     272                        ))
    267273 
    268274                        send_pm($pm_ary); 
     
    282288                                        elseif ( $arr['saved'] ) { 
    283289                                                $sql = 'UPDATE ' . PRIVATE_MESSAGES_TABLE . ' SET location = 0 WHERE id = ' . $origmsg; 
    284                                     $db->sql_query($sql); 
    285                                } 
    286                          
    287                      
    288  
    289                      $returnto = ( $returnto ? $returnto : 'message.php' ); 
    290                      $returnto = append_sid($returnto); 
     290                                         $db->sql_query($sql); 
     291                                    } 
     292                               
     293                       
     294 
     295                       $returnto = ( $returnto ? $returnto : 'message.php' ); 
     296                       $returnto = append_sid($returnto); 
    291297 
    292298                        meta_refresh(3, $returnto); 
    293                      trigger_error($lang['sucefully_sended']); 
     299                       trigger_error($lang['sucefully_sended']); 
    294300                } 
    295301                else { 
    296302                        if ( $receiver == $userdata['uid'] && $userdata['class'] < UC_SYSOP ) { 
    297303                                trigger_error(sprintf($lang['invalid_id'], $receiver)); 
    298                      
    299  
    300                         $sql = 'SELECT name FROM ' . USERS_TABLE . ' WHERE uid = ' . $receiver; 
     304                       
     305 
     306                        $sql = 'SELECT name, uid, class FROM ' . USERS_TABLE . ' WHERE uid = ' . $receiver; 
    301307                        $result = $db->sql_query($sql); 
    302308                        if ( !($user = $db->sql_fetchrow($result)) || !$receiver ) { 
     
    318324                                        $added = create_date($ary['added']); 
    319325                                        $bb_code->parse($ary['msg']); 
    320                                      $msg = $bb_code->get_html(); 
    321                                      $msg = censor_text($msg); 
     326                                       $msg = $bb_code->get_html(); 
     327                                       $msg = censor_text($msg); 
    322328 
    323329                                        $template->assign_block_vars('reply_to.reply_to_row', array( 
     
    333339 
    334340                        $template->assign_vars(array( 
    335                                 'U_USERDETAILS_RECEIVER' => append_sid('userdetails.php?id=' . $receiver), 
    336                           'S_FORM_ACTION' => append_sid('message.php'), 
    337                           'RECEIVER_ID' => $receiver, 
    338                           'REPLY_TO' => $reply_to, 
    339                           'ORIGMSG' => $origmsg, 
    340                           'RECEIVER_USERNAME' => $user['name'], 
    341                           'SUBJECT' => $subject, 
    342                           'DELETEPM_CHECKED' => ( $userdata['deletepms'] ? 'checked="checked"' : '' ), 
    343                           'SAVEPM_CHECKED' => ( $userdata['savepms'] ? 'checked="checked"' :'' ), 
    344  
    345                           'TEXTBBCODE' => $tpl 
     341                                'S_FORM_ACTION' => append_sid('message.php'), 
     342                                'RECEIVER_ID' => $receiver, 
     343                                'REPLY_TO' => $reply_to, 
     344                                'ORIGMSG' => $origmsg, 
     345                                'RECEIVER_USERNAME' => parse_username($user), 
     346                                'SUBJECT' => $subject, 
     347                                'DELETEPM_CHECKED' => ( $userdata['deletepms'] ? 'checked="checked"' : '' ), 
     348                                'SAVEPM_CHECKED' => ( $userdata['savepms'] ? 'checked="checked"' :'' ), 
     349 
     350                                'TEXTBBCODE' => $tpl 
    346351                        )); 
    347352 
     
    377382                if ( $delete ) { 
    378383                        do { 
    379                        if ( ( $message['receiver'] == $userdata['uid'] && !$message['saved'] ) || ( $message['sender'] == $userdata['uid'] && $message['location'] == PM_DELETED ) ) { 
    380                                $sql = 'DELETE FROM ' . PRIVATE_MESSAGES_TABLE . ' WHERE id = ' . $message['id']; 
     384                            if ( ( $message['receiver'] == $userdata['uid'] && !$message['saved'] ) || ( $message['sender'] == $userdata['uid'] && $message['location'] == PM_DELETED ) ) { 
     385                                    $sql = 'DELETE FROM ' . PRIVATE_MESSAGES_TABLE . ' WHERE id = ' . $message['id']; 
    381386                         $db->sql_query($sql); 
    382387                    } 
    383388                    elseif ( $message['receiver'] == $userdata['uid'] && $message['saved'] ) { 
    384                             $sql = 'UPDATE ' . PRIVATE_MESSAGES_TABLE . ' SET location = 0 WHERE id = ' . $message['id']; 
     389                                 $sql = 'UPDATE ' . PRIVATE_MESSAGES_TABLE . ' SET location = 0 WHERE id = ' . $message['id']; 
    385390                         $db->sql_query($sql); 
    386391                    } 
    387392                    elseif ( $message['sender'] == $userdata['uid'] && $message['location'] != PM_DELETED ) { 
    388                             $sql = 'UPDATE ' . PRIVATE_MESSAGES_TABLE . ' SET saved = 0 WHERE id = ' . $message['id']; 
     393                                 $sql = 'UPDATE ' . PRIVATE_MESSAGES_TABLE . ' SET saved = 0 WHERE id = ' . $message['id']; 
    389394                         $db->sql_query($sql); 
    390395                    } 
     
    399404                if ( $markread ) { 
    400405                        do { 
    401                        if ( $message['receiver'] == $userdata['uid'] ) { 
    402                             $sql = 'UPDATE ' . PRIVATE_MESSAGES_TABLE . ' SET unread = 0 WHERE id = ' . $message['id']; 
    403                             $db->sql_query($sql); 
     406                            if ( $message['receiver'] == $userdata['uid'] ) { 
     407                                 $sql = 'UPDATE ' . PRIVATE_MESSAGES_TABLE . ' SET unread = 0 WHERE id = ' . $message['id']; 
     408                                 $db->sql_query($sql); 
    404409                                if ( $db->sql_affectedrows() && $message['unread'] && $message['location'] == PM_INBOX ) { 
    405                                       $sql = 'UPDATE ' . USERS_TABLE . ' SET user_unread_pms = user_unread_pms - 1 WHERE uid = ' . $userdata['uid']; 
     410                                      $sql = 'UPDATE ' . USERS_TABLE . ' SET user_unread_pms = user_unread_pms - 1 WHERE uid = ' . $userdata['uid']; 
    406411                                                $db->sql_query($sql); 
    407412                                        } 
     
    423428                        } 
    424429 
    425                       //flood control 
     430                      //flood control 
    426431                        $sql = 'SELECT MAX(added) AS max_added FROM ' . PRIVATE_MESSAGES_TABLE . ' WHERE sender = ' . $userdata['uid']; 
    427                       $result = $db->sql_query($sql); 
     432                      $result = $db->sql_query($sql); 
    428433                        $max_added = ( $flood_row = $db->sql_fetchrow($result) ) ? $flood_row['max_added'] : 0; 
    429434 
    430                       if ( intval($flood_row['max_added']) > 0 && (time() - intval($flood_row['max_added'])) < intval($config['flood_interval']) ) { 
    431                               trigger_error($lang['flood_error']); 
    432                         } 
    433              
     435                      if ( intval($flood_row['max_added']) > 0 && (time() - intval($flood_row['max_added'])) < intval($config['flood_interval']) ) { 
     436                              trigger_error($lang['flood_error']); 
     437                        } 
     438               
    434439 
    435440                if ( isset($_GET['id']) ) { 
     
    437442 
    438443                        // Get the message 
    439                   $sql = 'SELECT * FROM ' . PRIVATE_MESSAGES_TABLE . ' WHERE id=' . $pm_id . ' AND (receiver=' . $userdata['uid'] . ' OR sender=' . $userdata['uid'] . ') LIMIT 1'; 
    440                   $result = $db->sql_query($sql); 
    441                   if ( !($message = $db->sql_fetchrow($result)) ) { 
     444                        $sql = 'SELECT * 
     445                                        FROM ' . PRIVATE_MESSAGES_TABLE . ' 
     446                                        WHERE id=' . $pm_id . ' AND (receiver=' . $userdata['uid'] . ' OR sender=' . $userdata['uid'] . ') LIMIT 1'; 
     447                        $result = $db->sql_query($sql); 
     448                        if ( !$message = $db->sql_fetchrow($result) ) { 
    442449                                trigger_error(sprintf($lang['invalid_id'], $pm_id) ); 
    443                   } 
    444  
    445                   // Prepare variables 
    446                   $subject = 'Fwd: ' . $message['subject']; 
    447                   $from = $message['sender']; 
    448                   $orig = $message['receiver']; 
    449  
    450                   $sql = 'SELECT name FROM ' . USERS_TABLE . ' WHERE uid = ' . $from; 
    451                   $result = $db->sql_query($sql); 
    452                   if ( !($orig2 = $db->sql_fetchrow($result)) ) { 
    453                           trigger_error(sprintf($lang['invalid_id'], $pm_id) ); 
    454                   } 
    455  
    456                   if ( !$from ) { 
    457                                 $orig_name = $lang['system']; 
    458                        $from_name = '<a href="' . append_sid('userdetails.php?id=' . $userdata['uid']) . '">' . $userdata['name'] . '</a>'; 
    459                   } 
    460                   else { 
    461                        $from_name = '<a href="' . append_sid('userdetails.php?id=' . $userdata['uid']) . '">' . $userdata['name'] . '</a>'; 
    462                        $orig_name = '<a href="' . append_sid('userdetails.php?id=' . $from) . '">' . $orig2['name'] . '</a>'; 
    463                   } 
    464  
    465                   $bb_code = new bbcode(); 
    466  
    467                   $body = sprintf($lang['pm_message_separator'],  $orig2['name'], $message['msg']); 
     450                        } 
     451 
     452                        // Prepare variables 
     453                        $subject = 'Fwd: ' . $message['subject']; 
     454                        $from = $message['sender']; 
     455                        $orig = $message['receiver']; 
     456 
     457                        $sql = 'SELECT name, uid, class 
     458                                        FROM ' . USERS_TABLE . ' 
     459                                        WHERE uid = ' . $from; 
     460                        $result = $db->sql_query($sql); 
     461                        if ( !$orig2 = $db->sql_fetchrow($result) ) { 
     462                                trigger_error(sprintf($lang['invalid_id'], $pm_id) ); 
     463                        } 
     464 
     465                        $from_name = parse_username($userdata); 
     466                        $orig_name = parse_username($orig2); 
     467 
     468                        $bb_code = new bbcode(); 
     469 
     470                        $body = sprintf($lang['pm_message_separator'],  $orig2['name'], $message['msg']); 
    468471                        $bb_code->parse($body); 
    469472                        $body = $bb_code->get_html(); 
    470473                        $body = censor_text($body); 
    471474 
    472                   $template->assign_vars(array( 
    473                        'S_FORM_ACTION' => append_sid('message.php'), 
    474                        'SUBJECT' => $subject, 
    475                        'PM_ID' => $pm_id, 
    476                        'FROM_NAME' => $from_name, 
    477                        'BODY' => $body, 
    478                        'SAVE_PM_CHECKED' => ( $userdata['savepms'] ? 'checked="checked"' : '' ), 
    479                        'ORIG_NAME' => $orig_name 
     475                       $template->assign_vars(array( 
     476                            'S_FORM_ACTION' => append_sid('message.php'), 
     477                            'SUBJECT' => $subject, 
     478                            'PM_ID' => $pm_id, 
     479                            'FROM_NAME' => $from_name, 
     480                            'BODY' => $body, 
     481                            'SAVE_PM_CHECKED' => ( $userdata['savepms'] ? 'checked="checked"' : '' ), 
     482                            'ORIG_NAME' => $orig_name 
    480483                        )); 
    481484 
    482                   stdhead($subject); 
     485                       stdhead($subject); 
    483486                        $template->set_filenames(array( 
    484                               'body' => 'message_forward_message.html' 
     487                              'body' => 'message_forward_message.html' 
    485488                        )); 
    486                   stdfoot(); 
    487              
    488              else { 
     489                       stdfoot(); 
     490               
     491               else { 
    489492                        // Forward the message 
    490                   $pm_id = request_var('id', 0); 
    491                   $subject = request_var('subject', ''); 
    492                   $username = request_var('to', ''); 
    493                   $body = request_var('msg', ''); 
    494                   $save = isset($_POST['save']); 
     493                       $pm_id = request_var('id', 0); 
     494                       $subject = request_var('subject', ''); 
     495                       $username = request_var('to', ''); 
     496                       $body = request_var('msg', ''); 
     497                       $save = isset($_POST['save']); 
    495498 
    496499                        // Get the message 
    497                   $sql = 'SELECT * FROM ' . PRIVATE_MESSAGES_TABLE . ' WHERE id = ' . $pm_id . ' AND (receiver=' . $userdata['uid'] . ' OR sender=' . $userdata['uid'] . ') LIMIT 1'; 
    498                   $result = $db->sql_query($sql); 
    499  
    500                   if ( !($message = $db->sql_fetchrow($result)) ) { 
    501                           trigger_error(sprintf($lang['invalid_id'], $pm_id) ); 
    502                  
     500                       $sql = 'SELECT * FROM ' . PRIVATE_MESSAGES_TABLE . ' WHERE id = ' . $pm_id . ' AND (receiver=' . $userdata['uid'] . ' OR sender=' . $userdata['uid'] . ') LIMIT 1'; 
     501                       $result = $db->sql_query($sql); 
     502 
     503                       if ( !($message = $db->sql_fetchrow($result)) ) { 
     504                               trigger_error(sprintf($lang['invalid_id'], $pm_id) ); 
     505                       
    503506 
    504507                        // Try finding a user with specified name 
    505                   $sql = 'SELECT uid, email, language, name, class, notifs FROM ' . USERS_TABLE . ' WHERE LOWER(name) = ' . "'" . $db->sql_escape(utf_strtolower($username)) . "'" . ' AND uid != ' . ANONYMOUS . ' LIMIT 1'; 
    506                   $result = $db->sql_query($sql); 
    507                   if ( !($to_arr = $db->sql_fetchrow($result)) ) { 
     508                       $sql = 'SELECT uid, email, language, name, class, notifs FROM ' . USERS_TABLE . ' WHERE LOWER(name) = ' . "'" . $db->sql_escape(utf_strtolower($username)) . "'" . ' AND uid != ' . ANONYMOUS . ' LIMIT 1'; 
     509                       $result = $db->sql_query($sql); 
     510                       if ( !($to_arr = $db->sql_fetchrow($result)) ) { 
    508511                                trigger_error($lang['no_user_with_that_username']); 
    509                  
    510                   $to = $to_arr['uid']; 
    511                   $to_email = $to_arr['email']; 
    512                   $to_language = $to_arr['language']; 
    513                   $to_username = $to_arr['name']; 
    514                   if (!check_language($to_language)) { 
     512                       
     513                       $to = $to_arr['uid']; 
     514                       $to_email = $to_arr['email']; 
     515                       $to_language = $to_arr['language']; 
     516                       $to_username = $to_arr['name']; 
     517                       if (!check_language($to_language)) { 
    515518                                $to_language = $config['default_lang']; 
    516                  
     519                       
    517520 
    518521                        // Get Orignal sender's username 
    519                   if ( !($message['sender']) ) { 
     522                       if ( !($message['sender']) ) { 
    520523                                $from_username = $lang['system']; 
    521                  
    522                   else { 
     524                       
     525                       else { 
    523526                                $sql = 'SELECT name, acceptpms, parked FROM ' . USERS_TABLE . ' WHERE uid=' . $message['sender']; 
    524                        $result = $db->sql_query($sql); 
    525                        $from = $db->sql_fetchrow($result); 
    526                        $from_username = $from['name']; 
    527                  
    528                   $body .= sprintf($lang['pm_message_separator'],  $from_username, $message['msg']); 
     527                            $result = $db->sql_query($sql); 
     528                            $from = $db->sql_fetchrow($result); 
     529                            $from_username = $from['name']; 
     530                       
     531                       $body .= sprintf($lang['pm_message_separator'],  $from_username, $message['msg']); 
    529532 
    530533                        //Make sure recipient wants this message 
    531                   if ( $userdata['class'] < UC_MODERATOR ) { 
     534                       if ( $userdata['class'] < UC_MODERATOR ) { 
    532535                                if ( $from['acceptpms'] == 1 ) { 
    533536                                        $sql = 'SELECT * FROM ' . FRIENDS_TABLE . ' WHERE userid=' . $to . ' AND blockid=' . $userdata['uid']; 
    534                             $result = $db->sql_query($sql); 
    535                             if ( $row = $db->sql_fetchrow($result) ) { 
    536                                     trigger_error($lang['you_in_block_list']); 
    537                             } 
    538                        } 
    539                        elseif ( $from['acceptpms'] == 2 ) { 
     537                                 $result = $db->sql_query($sql); 
     538                                 if ( $row = $db->sql_fetchrow($result) ) { 
     539                                         trigger_error($lang['you_in_block_list']); 
     540                                 } 
     541                            } 
     542                            elseif ( $from['acceptpms'] == 2 ) { 
    540543                                        $sql = 'SELECT * FROM ' . FRIENDS_TABLE . ' WHERE userid=' . $to . ' AND friendid=' . $userdata['uid']; 
    541                             $result = $db->sql_query($sql); 
    542                             if ( !($row = $db->sql_fetchrow($result)) ) { 
     544                                 $result = $db->sql_query($sql); 
     545                                 if ( !($row = $db->sql_fetchrow($result)) ) { 
    543546                                                trigger_error($lang['only_from_friends']); 
    544                             } 
    545                        } 
     547                                 } 
     548                            } 
    546549                                elseif ( !$from['acceptpms'] ) { 
    547                             trigger_error($lang['only_from_admins']); 
    548                        } 
    549                        elseif ( $from['parked'] ) { 
    550                             trigger_error($lang['this_account_parked']); 
    551                        } 
    552                   } 
    553  
    554                   $pm_ary = array(); 
    555  
    556                         $pm_ary[] = array( 
     550                                  trigger_error($lang['only_from_admins']); 
     551                             } 
     552                             elseif ( $from['parked'] ) { 
     553                                  trigger_error($lang['this_account_parked']); 
     554                             } 
     555                        } 
     556 
     557                        $pm_ary = array(array( 
    557558                                'sender' => $userdata['uid'], 
    558559                                'sender_name' => $userdata['name'], 
     
    567568                                'language' => $to_arr['language'], 
    568569                                'class' => $to_arr['class'] 
    569                         )
     570                        ))
    570571 
    571572                        send_pm($pm_ary); 
    572573 
    573                   meta_refresh(3, append_sid($root_path . 'message.php')); 
    574                   trigger_error($lang['sucefully_sended']); 
    575              
     574                       meta_refresh(3, append_sid($root_path . 'message.php')); 
     575                       trigger_error($lang['sucefully_sended']); 
     576               
    576577        break; 
    577578 
     
    581582                // Get Mailbox Number 
    582583                $mailbox = request_var('box', PM_INBOX); 
    583                 $mailbox_name = ( $mailbox == PM_INBOX? $lang['inbox'] : $lang['sentbox'] ); 
    584584                $warning_text = ''; 
    585585 
     586                if ( $mailbox == PM_INBOX ) { 
     587                        $mailbox_name = $lang['inbox']; 
     588                        $box_limit = $config['max_inbox_privmsgs']; 
     589                        $sender_title = $lang['sender']; 
     590                        $sql_where = 'm.receiver = ' . $userdata['uid'] . ' AND m.location = ' . $mailbox . ' AND m.sender = u.uid'; 
     591                } 
     592                else{ 
     593                        $mailbox_name = $lang['sentbox']; 
     594                        $box_limit = $config['max_sentbox_privmsgs']; 
     595                        $sender_title = $lang['receiver']; 
     596                        $sql_where = 'm.sender=' . $userdata['uid'] . ' AND m.saved = 1 AND m.receiver = u.uid'; 
     597                } 
     598 
    586599                // Start Page 
    587                 $sql = 'SELECT COUNT(*) as count FROM ' . PRIVATE_MESSAGES_TABLE . ' 
    588                                 WHERE ' . ( $mailbox != PM_SENTBOX ? 'receiver = ' . $userdata['uid'] . ' AND location = ' . $mailbox : 'sender = ' . $userdata['uid'] . '  AND saved = 1' ); 
     600                $sql = 'SELECT COUNT(*) as count 
     601                                FROM ' . PRIVATE_MESSAGES_TABLE . ' m, ' . USERS_TABLE . ' u 
     602                                WHERE ' . $sql_where; 
    589603                $result = $db->sql_query($sql); 
    590604                $count = $count_pager = ( $row = $db->sql_fetchrow($result) ) ? intval($row['count']) : 0; 
    591  
    592                 $box_limit = ( $mailbox != PM_SENTBOX ? $config['max_inbox_privmsgs'] : $config['max_sentbox_privmsgs'] ); 
    593605 
    594606                if ( $box_limit && ( $count > $box_limit ) && ( $userdata['class'] < UC_MODERATOR ) ) { 
     
    598610                        $count_pager = $box_limit; 
    599611                } 
    600                 list($pagertop, $pagerbottom, $offset_pager, $limit_pager) = pager(40, $count_pager, append_sid('message.php?action=viewmailbox&amp;box=' . ( $mailbox == PM_SENTBOX ? PM_SENTBOX : PM_INBOX ) . '&amp;' ) ); 
     612                list($pagertop, $pagerbottom, $offset_pager, $limit_pager) = pager(40, $count_pager, 'message.php?action=viewmailbox&amp;box=' . $mailbox . '&amp;'); 
    601613 
    602614                $limit = ( isset($limit) ? $limit : $limit_pager ); 
     
    604616 
    605617                $pm_box_select = '<select name="box">'; 
    606              $pm_box_select .= '<option value="' . PM_INBOX . '"' . ( $mailbox == PM_INBOX ? ' selected="selected"' : '' ) . '>' . $lang['inbox'] . '</option>'; 
    607              $pm_box_select .= '<option value="' . PM_SENTBOX . '"' . ( $mailbox == PM_SENTBOX ? ' selected="selected"' : '' ) . '>' . $lang['sentbox'] . '</option>'; 
    608              $pm_box_select .= '</select>'; 
    609  
    610              $template->assign_vars(array( 
     618               $pm_box_select .= '<option value="' . PM_INBOX . '"' . ( $mailbox == PM_INBOX ? ' selected="selected"' : '' ) . '>' . $lang['inbox'] . '</option>'; 
     619               $pm_box_select .= '<option value="' . PM_SENTBOX . '"' . ( $mailbox == PM_SENTBOX ? ' selected="selected"' : '' ) . '>' . $lang['sentbox'] . '</option>'; 
     620               $pm_box_select .= '</select>'; 
     621 
     622               $template->assign_vars(array( 
    611623                        'S_FORM_ACTION' => append_sid('message.php'), 
    612                   'MAILBOX' => $mailbox, 
    613                   'MAILBOX_NAME' => $mailbox_name, 
    614                   'PM_BOX_SELECT' => $pm_box_select, 
    615                   'SENDER_RECEIVER' => ( $mailbox == PM_INBOX ? $lang['sender'] : $lang['receiver'] ), 
    616                   'PAGERBOTTOM' => $pagerbottom, 
    617  
    618                   'S_LIMIT_REACHED_WARNING' => $warning_text 
     624                        'MAILBOX' => $mailbox, 
     625                        'MAILBOX_NAME' => $mailbox_name, 
     626                        'PM_BOX_SELECT' => $pm_box_select, 
     627                        'SENDER_RECEIVER' => $sender_title, 
     628                        'PAGERBOTTOM' => $pagerbottom, 
     629 
     630                        'MESSAGES_COUNT' => $count, 
     631 
     632                        'S_LIMIT_REACHED_WARNING' => $warning_text 
    619633                )); 
    620634 
    621                 $where = ( $mailbox != PM_SENTBOX ? 'm.receiver = ' . $userdata['uid'] . ' AND m.location = ' . $mailbox . ' AND m.sender = u.uid' : 'm.sender=' . $userdata['uid'] . ' AND m.saved = 1 AND m.receiver = u.uid' ); 
    622  
    623              $sql = 'SELECT m.*, u.name 
     635                $sql = 'SELECT m.*, u.name, u.uid, u.class 
    624636                                FROM ' . PRIVATE_MESSAGES_TABLE . ' m, ' . USERS_TABLE . ' u 
    625                                 WHERE ' . $where . 
    626                       ' ORDER BY added DESC'; 
    627              $result = $db->sql_query_limit($sql, $limit, $offset); 
     637                                WHERE ' . $sql_where . 
     638                        ' ORDER BY added DESC'; 
     639               $result = $db->sql_query_limit($sql, $limit, $offset); 
    628640 
    629641                if ( !$count ) { 
    630                         $template->assign_block_vars('no_pms', array()); 
    631                                 if ( $userdata['user_unread_pms'] ) { 
    632                                         $sql = 'UPDATE ' . USERS_TABLE . ' SET user_unread_pms = 0 WHERE uid = ' . $userdata['uid']; 
    633                                         $db->sql_query($sql); 
    634                        } 
    635              } 
    636              else { 
     642                        if ( $userdata['user_unread_pms'] ) { 
     643                                $sql = 'UPDATE ' . USERS_TABLE . ' SET user_unread_pms = 0 WHERE uid = ' . $userdata['uid']; 
     644                                $db->sql_query($sql); 
     645                         } 
     646                } 
     647                else { 
    637648                        $unread_pms = 0; 
     649 
    638650                        while ( $row = $db->sql_fetchrow($result) ) { 
    639                                 if ( $mailbox != PM_SENTBOX ) { 
    640                                         $username = ( $row['sender'] <> ANONYMOUS ? '<a href="' . append_sid('userdetails.php?id=' . $row['sender']) . '">' . $row['name'] . '</a>' : $lang['system'] ); 
    641                        } 
    642                        else { 
    643                                         $username = ( $row['receiver'] <> ANONYMOUS ? '<a href="' . append_sid('userdetails.php?id=' . $row['receiver']) . '">' . $row['name'] . '</a>' : $lang['system'] ); 
    644                        } 
    645  
    646                        $subject = ( !$row['subject'] ? $lang['no_subject'] : $row['subject'] ); 
     651                                $username = parse_username($row); 
     652 
     653                                $subject = ( !$row['subject'] ? $lang['no_subject'] : $row['subject'] ); 
    647654 
    648655                                $template->assign_block_vars('messages_row', array( 
    649656                                        'U_MESSAGE' => append_sid('message.php?action=viewmessage&amp;id=' . $row['id']), 
    650                             'ID' => $row['id'], 
    651                             'SENDER_RECEIVER_NAME' => $username, 
    652                             'SUBJECT' => $row['subject'], 
    653                             'IMG_SRC' => ( $row['unread'] && $mailbox != PM_SENTBOX ? $images['inboxnew'] : $images['inbox'] ), 
    654                             'IMG_TITLE' => ( $row['unread'] && $mailbox != PM_SENTBOX ? $lang['new_unread_pm'] : $lang['old_read_pm'] ), 
    655                             'DATE' => create_date($row['added']) 
     657                                       'ID' => $row['id'], 
     658                                       'SENDER_RECEIVER_NAME' => $username, 
     659                                       'SUBJECT' => $row['subject'], 
     660                                       'IMG_SRC' => ( $row['unread'] && $mailbox != PM_SENTBOX ? $images['inboxnew'] : $images['inbox'] ), 
     661                                       'IMG_TITLE' => ( $row['unread'] && $mailbox != PM_SENTBOX ? $lang['new_unread_pm'] : $lang['old_read_pm'] ), 
     662                                       'DATE' => create_date($row['added']) 
    656663                                )); 
    657                        if ( $row['unread'] && $mailbox != PM_SENTBOX ) { 
     664 
     665                                if ( $row['unread'] && $mailbox != PM_SENTBOX ) { 
    658666                                        ++$unread_pms; 
    659                        
    660  
    661                  
    662                   //if ( $unread_pms <> $userdata['user_unread_pms'] && $mailbox != PM_SENTBOX ) { 
     667                               
     668 
     669                       
     670                       //if ( $unread_pms <> $userdata['user_unread_pms'] && $mailbox != PM_SENTBOX ) { 
    663671                        //      $sql = 'UPDATE ' . USERS_TABLE . ' SET user_unread_pms = ' . $unread_pms . ' WHERE uid = ' . $userdata['uid']; 
    664672                        //      $db->sql_query($sql); 
    665                   //} 
    666              
    667  
    668              stdhead($mailbox_name); 
     673                       //} 
     674               
     675 
     676               stdhead($mailbox_name); 
    669677                $template->set_filenames(array( 
    670678                        'body' => 'message_viewmailbox.html' 
    671679                )); 
    672              stdfoot(); 
     680               stdfoot(); 
    673681        break; 
    674682}