mirror of
https://github.com/phpbb/phpbb.git
synced 2025-05-05 23:25:30 +02:00
fix bug #1736
git-svn-id: file:///svn/phpbb/trunk@5880 89ea8834-ac86-4346-8a33-228a782c2dd0
This commit is contained in:
parent
839d2b6e2c
commit
3a38f80168
@ -696,7 +696,9 @@ function update_unread_status($unread, $msg_id, $user_id, $folder_id)
|
||||
$db->sql_query($sql);
|
||||
}
|
||||
|
||||
// Handle all actions possible with marked messages
|
||||
/**
|
||||
* Handle all actions possible with marked messages
|
||||
*/
|
||||
function handle_mark_actions($user_id, $mark_action)
|
||||
{
|
||||
global $db, $user, $_POST, $phpbb_root_path, $SID, $phpEx;
|
||||
@ -935,6 +937,8 @@ function write_pm_addresses($check_ary, $author_id, $plaintext = false)
|
||||
$addresses = array();
|
||||
|
||||
foreach ($check_ary as $check_type => $address_field)
|
||||
{
|
||||
if (!is_array($address_field))
|
||||
{
|
||||
// Split Addresses into users and groups
|
||||
preg_match_all('/:?(u|g)_([0-9]+):?/', $address_field, $match);
|
||||
@ -944,6 +948,12 @@ function write_pm_addresses($check_ary, $author_id, $plaintext = false)
|
||||
{
|
||||
${$type}[] = (int) $match[2][$id];
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$u = $address_field['u'];
|
||||
$g = $address_field['g'];
|
||||
}
|
||||
|
||||
$address = array();
|
||||
if (sizeof($u))
|
||||
@ -991,7 +1001,7 @@ function write_pm_addresses($check_ary, $author_id, $plaintext = false)
|
||||
}
|
||||
else
|
||||
{
|
||||
$sql = 'SELECT g.group_id, g.group_name, g.group_colour, ug.user_id
|
||||
$sql = 'SELECT g.group_id, g.group_name, g.group_colour, g.group_type, ug.user_id
|
||||
FROM ' . GROUPS_TABLE . ' g, ' . USER_GROUP_TABLE . ' ug
|
||||
WHERE g.group_id IN (' . implode(', ', $g) . ')
|
||||
AND g.group_id = ug.group_id
|
||||
@ -1004,6 +1014,7 @@ function write_pm_addresses($check_ary, $author_id, $plaintext = false)
|
||||
{
|
||||
if ($check_type == 'to' || $author_id == $user->data['user_id'] || $row['user_id'] == $user->data['user_id'])
|
||||
{
|
||||
$row['group_name'] = ($row['group_type'] == GROUP_SPECIAL) ? $user->lang['G_' . $row['group_name']] : $row['group_name'];
|
||||
$address['group'][$row['group_id']] = array('name' => $row['group_name'], 'colour' => $row['group_colour']);
|
||||
}
|
||||
}
|
||||
@ -1031,7 +1042,8 @@ function write_pm_addresses($check_ary, $author_id, $plaintext = false)
|
||||
'IS_USER' => ($type == 'user'),
|
||||
'COLOUR' => ($row['colour']) ? $row['colour'] : '',
|
||||
'UG_ID' => $id,
|
||||
'U_VIEW' => ($type == 'user') ? "{$phpbb_root_path}memberlist.$phpEx$SID&mode=viewprofile&u=" . $id : "{$phpbb_root_path}memberlist.$phpEx$SID&mode=group&g=" . $id)
|
||||
'U_VIEW' => ($type == 'user') ? "{$phpbb_root_path}memberlist.$phpEx$SID&mode=viewprofile&u=" . $id : "{$phpbb_root_path}memberlist.$phpEx$SID&mode=group&g=" . $id,
|
||||
'TYPE' => $type)
|
||||
);
|
||||
}
|
||||
}
|
||||
|
@ -632,18 +632,21 @@ function compose_pm($id, $mode, $action)
|
||||
{
|
||||
// Get Usernames and Group Names
|
||||
$result = array();
|
||||
if (isset($address_list['u']) && sizeof($address_list['u']))
|
||||
if (!empty($address_list['u']))
|
||||
{
|
||||
$result['u'] = $db->sql_query('SELECT user_id as id, username as name, user_colour as colour
|
||||
$sql = 'SELECT user_id as id, username as name, user_colour as colour
|
||||
FROM ' . USERS_TABLE . '
|
||||
WHERE user_id IN (' . implode(', ', array_map('intval', array_keys($address_list['u']))) . ')');
|
||||
WHERE user_id IN (' . implode(', ', array_map('intval', array_keys($address_list['u']))) . ')';
|
||||
$result['u'] = $db->sql_query($sql);
|
||||
}
|
||||
|
||||
if (isset($address_list['g']) && sizeof($address_list['g']))
|
||||
if (!empty($address_list['g']))
|
||||
{
|
||||
$result['g'] = $db->sql_query('SELECT group_id as id, group_name as name, group_colour as colour
|
||||
$sql = 'SELECT group_id as id, group_name as name, group_colour as colour, group_type
|
||||
FROM ' . GROUPS_TABLE . '
|
||||
WHERE group_receive_pm = 1 AND group_id IN (' . implode(', ', array_map('intval', array_keys($address_list['g']))) . ')');
|
||||
WHERE group_receive_pm = 1
|
||||
AND group_id IN (' . implode(', ', array_map('intval', array_keys($address_list['g']))) . ')';
|
||||
$result['g'] = $db->sql_query($sql);
|
||||
}
|
||||
|
||||
$u = $g = array();
|
||||
@ -654,6 +657,11 @@ function compose_pm($id, $mode, $action)
|
||||
{
|
||||
while ($row = $db->sql_fetchrow($result[$type]))
|
||||
{
|
||||
if ($type == 'g')
|
||||
{
|
||||
$row['name'] = ($row['group_type'] == GROUP_SPECIAL) ? $user->lang['G_' . $row['name']] : $row['name'];
|
||||
}
|
||||
|
||||
${$type}[$row['id']] = array('name' => $row['name'], 'colour' => $row['colour']);
|
||||
}
|
||||
$db->sql_freeresult($result[$type]);
|
||||
@ -834,7 +842,7 @@ function handle_message_list_actions(&$address_list, $remove_u, $remove_g, $add_
|
||||
$type = ($add_to) ? 'to' : 'bcc';
|
||||
|
||||
// Add Selected Groups
|
||||
$group_list = isset($_REQUEST['group_list']) ? array_map('intval', $_REQUEST['group_list']) : array();
|
||||
$group_list = request_var('group_list', array(0));
|
||||
|
||||
if (sizeof($group_list))
|
||||
{
|
||||
|
@ -85,10 +85,13 @@ function view_folder($id, $mode, $folder_id, $folder)
|
||||
// Okay, lets dump out the page ...
|
||||
if (sizeof($folder_info['pm_list']))
|
||||
{
|
||||
$address_list = array();
|
||||
|
||||
// Build Recipient List if in outbox/sentbox - max two additional queries
|
||||
$recipient_list = $address_list = $address = array();
|
||||
if ($folder_id == PRIVMSGS_OUTBOX || $folder_id == PRIVMSGS_SENTBOX)
|
||||
{
|
||||
$recipient_list = $address = array();
|
||||
|
||||
foreach ($folder_info['rowset'] as $message_id => $row)
|
||||
{
|
||||
$address[$message_id] = rebuild_header(array('to' => $row['to_address'], 'bcc' => $row['bcc_address']));
|
||||
@ -108,15 +111,31 @@ function view_folder($id, $mode, $folder_id, $folder)
|
||||
$_types = array('u', 'g');
|
||||
foreach ($_types as $ug_type)
|
||||
{
|
||||
if (isset($recipient_list[$ug_type]) && sizeof($recipient_list[$ug_type]))
|
||||
if (!empty($recipient_list[$ug_type]))
|
||||
{
|
||||
$sql = ($ug_type == 'u') ? 'SELECT user_id as id, username as name, user_colour as colour FROM ' . USERS_TABLE . ' WHERE user_id' : 'SELECT group_id as id, group_name as name, group_colour as colour FROM ' . GROUPS_TABLE . ' WHERE group_id';
|
||||
if ($ug_type == 'u')
|
||||
{
|
||||
$sql = 'SELECT user_id as id, username as name, user_colour as colour
|
||||
FROM ' . USERS_TABLE . '
|
||||
WHERE user_id';
|
||||
}
|
||||
else
|
||||
{
|
||||
$sql = 'SELECT group_id as id, group_name as name, group_colour as colour, group_type
|
||||
FROM ' . GROUPS_TABLE . '
|
||||
WHERE group_id';
|
||||
}
|
||||
$sql .= ' IN (' . implode(', ', array_keys($recipient_list[$ug_type])) . ')';
|
||||
|
||||
$result = $db->sql_query($sql);
|
||||
|
||||
while ($row = $db->sql_fetchrow($result))
|
||||
{
|
||||
if ($ug_type == 'g')
|
||||
{
|
||||
$row['name'] = ($row['group_type'] == GROUP_SPECIAL) ? $user->lang['G_' . $row['name']] : $row['name'];
|
||||
}
|
||||
|
||||
$recipient_list[$ug_type][$row['id']] = array('name' => $row['name'], 'colour' => $row['colour']);
|
||||
}
|
||||
$db->sql_freeresult($result);
|
||||
@ -133,7 +152,6 @@ function view_folder($id, $mode, $folder_id, $folder)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
unset($recipient_list, $address);
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user