diff options
Diffstat (limited to 'phpBB/includes/ucp')
-rw-r--r-- | phpBB/includes/ucp/ucp_groups.php | 2 | ||||
-rw-r--r-- | phpBB/includes/ucp/ucp_pm_compose.php | 2 | ||||
-rw-r--r-- | phpBB/includes/ucp/ucp_pm_viewmessage.php | 4 | ||||
-rw-r--r-- | phpBB/includes/ucp/ucp_profile.php | 70 |
4 files changed, 71 insertions, 7 deletions
diff --git a/phpBB/includes/ucp/ucp_groups.php b/phpBB/includes/ucp/ucp_groups.php index a9fb0444f5..4dcacdc575 100644 --- a/phpBB/includes/ucp/ucp_groups.php +++ b/phpBB/includes/ucp/ucp_groups.php @@ -316,7 +316,7 @@ class ucp_groups // Hide hidden groups unless user is an admin with group privileges $sql_and = ($auth->acl_gets('a_group', 'a_groupadd', 'a_groupdel')) ? '<> ' . GROUP_SPECIAL : 'NOT IN (' . GROUP_SPECIAL . ', ' . GROUP_HIDDEN . ')'; - $sql = 'SELECT group_id, group_name, group_desc, group_desc_uid, group_desc_bitfield, group_type + $sql = 'SELECT group_id, group_name, group_desc, group_desc_uid, group_desc_bitfield, group_desc_options, group_type FROM ' . GROUPS_TABLE . ' WHERE group_id NOT IN (' . implode(', ', $group_id_ary) . ") AND group_type $sql_and diff --git a/phpBB/includes/ucp/ucp_pm_compose.php b/phpBB/includes/ucp/ucp_pm_compose.php index 272b93af55..8ba12650c1 100644 --- a/phpBB/includes/ucp/ucp_pm_compose.php +++ b/phpBB/includes/ucp/ucp_pm_compose.php @@ -520,7 +520,7 @@ function compose_pm($id, $mode, $action) 'enable_bbcode' => (bool) $enable_bbcode, 'enable_smilies' => (bool) $enable_smilies, 'enable_urls' => (bool) $enable_urls, - 'bbcode_bitfield' => (int) $message_parser->bbcode_bitfield, + 'bbcode_bitfield' => $message_parser->bbcode_bitfield, 'bbcode_uid' => $message_parser->bbcode_uid, 'message' => $message_parser->message, 'attachment_data' => $message_parser->attachment_data, diff --git a/phpBB/includes/ucp/ucp_pm_viewmessage.php b/phpBB/includes/ucp/ucp_pm_viewmessage.php index 8e1b580571..3df09a4a0c 100644 --- a/phpBB/includes/ucp/ucp_pm_viewmessage.php +++ b/phpBB/includes/ucp/ucp_pm_viewmessage.php @@ -264,7 +264,7 @@ function message_history($msg_id, $user_id, $message_row, $folder) } $rowset = array(); - $bbcode_bitfield = 0; + $bbcode_bitfield = ''; $folder_url = append_sid("{$phpbb_root_path}ucp.$phpEx", 'i=pm') . '&folder='; $title = ($sort_dir == 'd') ? $row['message_subject'] : ''; @@ -281,7 +281,7 @@ function message_history($msg_id, $user_id, $message_row, $folder) else { $rowset[$row['msg_id']] = $row; - $bbcode_bitfield |= $row['bbcode_bitfield']; + $bbcode_bitfield = $bbcode_bitfield | $row['bbcode_bitfield']; } } while ($row = $db->sql_fetchrow($result)); diff --git a/phpBB/includes/ucp/ucp_profile.php b/phpBB/includes/ucp/ucp_profile.php index c529e55223..522aa29723 100644 --- a/phpBB/includes/ucp/ucp_profile.php +++ b/phpBB/includes/ucp/ucp_profile.php @@ -431,17 +431,81 @@ class ucp_profile { $error[] = implode('<br />', $message_parser->warn_msg); } - + if (!sizeof($error) && $submit) { $sql_ary = array( 'user_sig' => (string) $message_parser->message, 'user_sig_bbcode_uid' => (string) $message_parser->bbcode_uid, - 'user_sig_bbcode_bitfield' => (int) $message_parser->bbcode_bitfield + 'user_sig_bbcode_bitfield' => $message_parser->bbcode_bitfield ); + $query = ''; + + switch (SQL_LAYER) + { + case 'mssql': + case 'mssql_odbc': + $values = array(); + foreach ($sql_ary as $key => $var) + { + if (is_null($var)) + { + $values[] = "$key = NULL"; + } + else if (is_string($var)) + { + if ($key !== 'user_sig_bbcode_bitfield') + { + $values[] = "$key = '" . $db->sql_escape($var) . "'"; + } + else + { + $values[] = "$key = CAST('" . $var . "' AS varbinary)"; + } + } + else + { + $values[] = (is_bool($var)) ? "$key = " . intval($var) : "$key = $var"; + } + } + $query = implode(', ', $values); + break; + + case 'sqlite': + $values = array(); + foreach ($sql_ary as $key => $var) + { + if (is_null($var)) + { + $values[] = "$key = NULL"; + } + else if (is_string($var)) + { + if ($key !== 'user_sig_bbcode_bitfield') + { + $values[] = "$key = '" . $db->sql_escape($var) . "'"; + } + else + { + $values[] = "$key = '" . sqlite_udf_encode_binary($var) . "'"; + } + } + else + { + $values[] = (is_bool($var)) ? "$key = " . intval($var) : "$key = $var"; + } + } + $query = implode(', ', $values); + break; + + default: + $query = $db->sql_build_array('UPDATE', $sql_ary); + break; + } + $sql = 'UPDATE ' . USERS_TABLE . ' - SET ' . $db->sql_build_array('UPDATE', $sql_ary) . ' + SET ' . $query . ' WHERE user_id = ' . $user->data['user_id']; $db->sql_query($sql); |