diff --git a/phpBB/includes/ucp/ucp_pm_viewfolder.php b/phpBB/includes/ucp/ucp_pm_viewfolder.php index d0bf1384ba..9e186f4ca4 100644 --- a/phpBB/includes/ucp/ucp_pm_viewfolder.php +++ b/phpBB/includes/ucp/ucp_pm_viewfolder.php @@ -149,14 +149,14 @@ function view_folder($id, $mode, $folder_id, $folder, $type) 'FOLDER_ID' => $folder_id, 'MESSAGE_ID' => $message_id, 'MESSAGE_AUTHOR' => $message_author, - 'SENT_TIME' => $user->format_date($row['message_time'], $config['board_timezone']), + 'SENT_TIME' => $user->format_date($row['message_time']), 'SUBJECT' => censor_text($row['message_subject']), 'FOLDER' => (isset($folder[$row['folder_id']])) ? $folder[$row['folder_id']]['folder_name'] : '', 'U_FOLDER' => (isset($folder[$row['folder_id']])) ? "$url&folder=" . $row['folder_id'] : '', 'PM_ICON_IMG' => (!empty($icons[$row['icon_id']])) ? '' : '', 'FOLDER_IMG' => $user->img($folder_img, $folder_alt), 'PM_IMG' => ($row_indicator) ? $user->img('pm_' . $row_indicator, '') : '', - 'ATTACH_ICON_IMG' => ($auth->acl_get('u_download') && $row['message_attachment'] && $config['pm_attachments'] && $config['auth_download_pm']) ? $user->img('icon_attach', sprintf($user->lang['TOTAL_ATTACHMENTS'], $row['message_attachment'])) : '', + 'ATTACH_ICON_IMG' => ($auth->acl_get('u_download') && $row['message_attachment'] && $config['allow_pm_attach'] && $config['auth_download_pm']) ? $user->img('icon_attach', sprintf($user->lang['TOTAL_ATTACHMENTS'], $row['message_attachment'])) : '', 'S_PM_REPORTED' => (!empty($row['message_reported']) && $auth->acl_get('m_')) ? true : false, diff --git a/phpBB/includes/ucp/ucp_pm_viewmessage.php b/phpBB/includes/ucp/ucp_pm_viewmessage.php index 6d1b612288..2e7115e842 100644 --- a/phpBB/includes/ucp/ucp_pm_viewmessage.php +++ b/phpBB/includes/ucp/ucp_pm_viewmessage.php @@ -112,10 +112,15 @@ function view_message($id, $mode, $folder_id, $msg_id, $folder, $message_row) } // Assign inline attachments - if (sizeof($attachments)) + if (isset($attachments) && sizeof($attachments)) { - // preg_replace_callback does not work here because of inability to correctly assign globals (seems to be a bug in some PHP versions) - process_inline_attachments($message, $attachments, $update_count); + $unset_attachments = parse_inline_attachments($message, $attachments, $update_count, 0); + + // Needed to let not display the inlined attachments at the end of the message again + foreach ($unset_attachments as $index) + { + unset($attachments[$index]); + } } $user_info['sig'] = ''; @@ -191,12 +196,12 @@ function view_message($id, $mode, $folder_id, $msg_id, $folder, $message_row) ); // Display not already displayed Attachments for this post, we already parsed them. ;) - if (sizeof($attachments)) + if (isset($attachments) && sizeof($attachments)) { foreach ($attachments as $attachment) { $template->assign_block_vars('attachment', array( - 'DISPLAY_ATTACHMENT' => $attachment) + 'DISPLAY_ATTACHMENT' => $attachment) ); } } @@ -431,37 +436,4 @@ function get_user_informations($user_id, $user_row) return $user_row; } -function process_inline_attachments(&$message, &$attachments, &$update_count) -{ - global $user, $config; - - $tpl = array(); - $tpl = display_attachments(0, NULL, $attachments, $update_count, false, true); - $tpl_size = sizeof($tpl); - - $unset_tpl = array(); - - preg_match_all('#(.*?)#', $message, $matches); - - $replace = array(); - foreach ($matches[0] as $num => $capture) - { - // Flip index if we are displaying the reverse way - $index = ($config['display_order']) ? ($tpl_size-($matches[1][$num] + 1)) : $matches[1][$num]; - - $replace['from'][] = $matches[0][$index]; - $replace['to'][] = (isset($tpl[$index])) ? $tpl[$index] : sprintf($user->lang['MISSING_INLINE_ATTACHMENT'], $matches[2][$num]); - - $unset_tpl[] = $index; - } - unset($tpl, $tpl_size); - - $message = str_replace($replace['from'], $replace['to'], $message); - - foreach (array_unique($unset_tpl) as $index) - { - unset($attachments[$index]); - } -} - ?> \ No newline at end of file