sql_query($sql); $total_pm = (int) $db->sql_fetchfield('total_pm'); $db->sql_freeresult($result); if ($total_pm == 0) { trigger_error($user->lang['NO_PM_DATA']); } $this->tpl_name = 'acp_supprime_mp'; $this->page_title = 'Suppression de MP\'s'; $pm_box_ary = array( PRIVMSGS_HOLD_BOX => $user->lang['PM_HOLDBOX'], PRIVMSGS_NO_BOX => $user->lang['PM_NOBOX'], PRIVMSGS_OUTBOX => $user->lang['PM_OUTBOX'], PRIVMSGS_SENTBOX => $user->lang['PM_SENTBOX'], PRIVMSGS_INBOX => $user->lang['PM_INBOX'], ); $sql = 'SELECT p.msg_id, p.message_subject, p.message_text, p.bbcode_uid, p.bbcode_bitfield, p.message_time, p.bcc_address, p.to_address, p.author_ip, t.user_id, t.author_id, t.folder_id, LOWER(u.username) AS to_username FROM ' . PRIVMSGS_TABLE . ' p, ' . PRIVMSGS_TO_TABLE . ' t, ' . USERS_TABLE . ' u WHERE p.msg_id = t.msg_id ' . $order_sql . ' ORDER BY ' . $order_by; $result = $db->sql_query_limit($sql, $config['topics_per_page'], $start); while ($row = $db->sql_fetchrow($result)) { $template->assign_block_vars('pm_row', array( 'DATE' => $user->format_date($row['message_time']), 'FOLDER' => ($row['folder_id'] > PRIVMSGS_INBOX) ? $user->lang['PM_SAVED'] : $pm_box_ary[$row['folder_id']], 'FROM' => get_pm_user_data($row['author_id']), 'TO' => ($row['to_address']) ? get_pm_user_data($row['user_id'], $row['author_id']) : '', 'LAST_VISIT_FROM' => get_last_visit($row['author_id']), 'LAST_VISIT_TO' => ($row['to_address']) ? get_last_visit($row['user_id'], $row['author_id']) : '', // We have to replace " in this variable because the template system will not parse it. 'PM_ID' => str_replace('"', '#', serialize(array('msg_ids' => $row['msg_id'], 'user_id' => $row['user_id'], 'folder_id' => $row['folder_id']))), )); } $db->sql_freeresult($result); $sort_by_text = array('f' => $user->lang['SORT_FROM'], 't' => $user->lang['SORT_TO'], 'p' => $user->lang['SORT_PM_BOX'], 'i' => $user->lang['SORT_LAST_VISIT_FROM']); $limit_days = array(); $s_sort_key = $s_limit_days = $s_sort_dir = $u_sort_param = ''; gen_sort_selects($limit_days, $sort_by_text, $sort_days, $sort_key, $sd, $s_limit_days, $s_sort_key, $s_sort_dir, $u_sort_param); $action = $this->u_action . '&sk=' . $sort_key . '&sd=' . $sd; $template->assign_vars(array( 'MESSAGE_COUNT' => $total_pm, 'PAGINATION' => generate_pagination($action, $total_pm, $config['topics_per_page'], $start, true), 'S_INSTALL_CHECK' => file_exists($phpbb_root_path . 'install_supprime_mp.' . $phpEx), 'S_ON_PAGE' => on_page($total_pm, $config['topics_per_page'], $start), 'S_SORT_KEY' => $s_sort_key, 'S_SORT_DIR' => $s_sort_dir, 'U_ACTION' => $this->u_action . '&action=delete', )); } } function get_last_visit($user_id, $author = 0) { global $db, $config, $user; if ($user_id == $author) { $last_visit = ''; } else { $sql = 'SELECT session_user_id, MAX(session_time) AS session_time FROM ' . SESSIONS_TABLE . ' WHERE session_time >= ' . (time() - $config['session_length']) . ' AND ' . $db->sql_in_set('session_user_id', $user_id) . ' GROUP BY session_user_id'; $result = $db->sql_query($sql); $session_times = array(); while ($row = $db->sql_fetchrow($result)) { $session_times[$row['session_user_id']] = $row['session_time']; } $db->sql_freeresult($result); $sql = 'SELECT user_lastvisit FROM ' . USERS_TABLE . ' WHERE ' . $db->sql_in_set('user_id', $user_id); $result = $db->sql_query($sql); while ($row = $db->sql_fetchrow($result)) { $session_time = (!empty($session_times[$user_id])) ? $session_times[$user_id] : 0; $last_visit = (!empty($session_time)) ? $session_time : $row['user_lastvisit']; $last_visit = $user->format_date($last_visit); } $db->sql_freeresult($result); } return $last_visit; } function get_pm_user_data($pm_user, $author = 0) { global $db; if ($pm_user == $author) { $user_info = ''; } else { $sql = 'SELECT username, user_colour FROM ' . USERS_TABLE . ' WHERE ' . $db->sql_in_set('user_id', $pm_user); $result = $db->sql_query($sql); $row = $db->sql_fetchrow($result); $user_info = get_username_string('full',(int) $pm_user, $row['username'], $row['user_colour']); } return $user_info; } ?>