aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMeik Sievertsen <acydburn@phpbb.com>2006-05-04 17:20:54 +0000
committerMeik Sievertsen <acydburn@phpbb.com>2006-05-04 17:20:54 +0000
commit3a38f801687b3d20c594700691d28bf684bf390d (patch)
tree428161270ccfca2e85544109a0aabb3a4ceca6b0
parent839d2b6e2c66108142c3f43973adb3e148c47bd4 (diff)
downloadforums-3a38f801687b3d20c594700691d28bf684bf390d.tar
forums-3a38f801687b3d20c594700691d28bf684bf390d.tar.gz
forums-3a38f801687b3d20c594700691d28bf684bf390d.tar.bz2
forums-3a38f801687b3d20c594700691d28bf684bf390d.tar.xz
forums-3a38f801687b3d20c594700691d28bf684bf390d.zip
fix bug #1736
git-svn-id: file:///svn/phpbb/trunk@5880 89ea8834-ac86-4346-8a33-228a782c2dd0
-rw-r--r--phpBB/includes/functions_privmsgs.php28
-rw-r--r--phpBB/includes/ucp/ucp_pm_compose.php22
-rw-r--r--phpBB/includes/ucp/ucp_pm_viewfolder.php26
-rw-r--r--phpBB/includes/ucp/ucp_pm_viewmessage.php10
4 files changed, 62 insertions, 24 deletions
diff --git a/phpBB/includes/functions_privmsgs.php b/phpBB/includes/functions_privmsgs.php
index d24db82b09..8d1ed1f41d 100644
--- a/phpBB/includes/functions_privmsgs.php
+++ b/phpBB/includes/functions_privmsgs.php
@@ -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;
@@ -936,13 +938,21 @@ function write_pm_addresses($check_ary, $author_id, $plaintext = false)
foreach ($check_ary as $check_type => $address_field)
{
- // Split Addresses into users and groups
- preg_match_all('/:?(u|g)_([0-9]+):?/', $address_field, $match);
+ if (!is_array($address_field))
+ {
+ // Split Addresses into users and groups
+ preg_match_all('/:?(u|g)_([0-9]+):?/', $address_field, $match);
- $u = $g = array();
- foreach ($match[1] as $id => $type)
+ $u = $g = array();
+ foreach ($match[1] as $id => $type)
+ {
+ ${$type}[] = (int) $match[2][$id];
+ }
+ }
+ else
{
- ${$type}[] = (int) $match[2][$id];
+ $u = $address_field['u'];
+ $g = $address_field['g'];
}
$address = array();
@@ -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&amp;mode=viewprofile&amp;u=" . $id : "{$phpbb_root_path}memberlist.$phpEx$SID&amp;mode=group&amp;g=" . $id)
+ 'U_VIEW' => ($type == 'user') ? "{$phpbb_root_path}memberlist.$phpEx$SID&amp;mode=viewprofile&amp;u=" . $id : "{$phpbb_root_path}memberlist.$phpEx$SID&amp;mode=group&amp;g=" . $id,
+ 'TYPE' => $type)
);
}
}
diff --git a/phpBB/includes/ucp/ucp_pm_compose.php b/phpBB/includes/ucp/ucp_pm_compose.php
index ffe668d056..45cd22a13c 100644
--- a/phpBB/includes/ucp/ucp_pm_compose.php
+++ b/phpBB/includes/ucp/ucp_pm_compose.php
@@ -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))
{
diff --git a/phpBB/includes/ucp/ucp_pm_viewfolder.php b/phpBB/includes/ucp/ucp_pm_viewfolder.php
index dbc02d2a4a..44aecd762b 100644
--- a/phpBB/includes/ucp/ucp_pm_viewfolder.php
+++ b/phpBB/includes/ucp/ucp_pm_viewfolder.php
@@ -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);
}
diff --git a/phpBB/includes/ucp/ucp_pm_viewmessage.php b/phpBB/includes/ucp/ucp_pm_viewmessage.php
index e12732b84b..b46aff5eba 100644
--- a/phpBB/includes/ucp/ucp_pm_viewmessage.php
+++ b/phpBB/includes/ucp/ucp_pm_viewmessage.php
@@ -345,11 +345,11 @@ function message_history($msg_id, $user_id, $message_row, $folder)
'S_CURRENT_MSG' => ($row['msg_id'] == $msg_id),
- 'U_MSG_ID' => $row['msg_id'],
- 'U_VIEW_MESSAGE'=> "$url&amp;f=$folder_id&amp;p=" . $row['msg_id'],
- 'U_AUTHOR_PROFILE' => "{$phpbb_root_path}memberlist.$phpEx$SID&amp;mode=viewprofile&amp;u=$author_id",
- 'U_QUOTE' => ($auth->acl_get('u_sendpm') && $author_id != $user->data['user_id']) ? "$url&amp;mode=compose&amp;action=quote&amp;f=" . $folder_id . "&amp;p=" . $row['msg_id'] : '',
- 'U_POST_REPLY_PM' => ($author_id != $user->data['user_id'] && $auth->acl_get('u_sendpm')) ? "$url&amp;mode=compose&amp;action=reply&amp;f=$folder_id&amp;p=" . $row['msg_id'] : '')
+ 'U_MSG_ID' => $row['msg_id'],
+ 'U_VIEW_MESSAGE' => "$url&amp;f=$folder_id&amp;p=" . $row['msg_id'],
+ 'U_AUTHOR_PROFILE' => "{$phpbb_root_path}memberlist.$phpEx$SID&amp;mode=viewprofile&amp;u=$author_id",
+ 'U_QUOTE' => ($auth->acl_get('u_sendpm') && $author_id != $user->data['user_id']) ? "$url&amp;mode=compose&amp;action=quote&amp;f=" . $folder_id . "&amp;p=" . $row['msg_id'] : '',
+ 'U_POST_REPLY_PM' => ($author_id != $user->data['user_id'] && $auth->acl_get('u_sendpm')) ? "$url&amp;mode=compose&amp;action=reply&amp;f=$folder_id&amp;p=" . $row['msg_id'] : '')
);
unset($rowset[$id]);
$prev_id = $id;