From 37f8fbb5f73a523bed4724296a2d855abcaff476 Mon Sep 17 00:00:00 2001 From: "Paul S. Owen" Date: Thu, 17 Apr 2003 16:59:37 +0000 Subject: [PATCH] A special rank bug that was a real git to track down :D git-svn-id: file:///svn/phpbb/trunk@3869 89ea8834-ac86-4346-8a33-228a782c2dd0 --- phpBB/viewtopic.php | 116 ++++++++++++++++++++++++-------------------- 1 file changed, 64 insertions(+), 52 deletions(-) diff --git a/phpBB/viewtopic.php b/phpBB/viewtopic.php index 99416acc96..a5c155e4c1 100644 --- a/phpBB/viewtopic.php +++ b/phpBB/viewtopic.php @@ -53,7 +53,6 @@ if (empty($topic_id) && empty($post_id)) $user->start(); // Configure style, language, etc. -$user->setup(false, $forum_style); $auth->acl($user->data); // Find topic id if user requested a newer or older topic @@ -178,6 +177,9 @@ if (!$topic_data = $db->sql_fetchrow($result)) extract($topic_data); +$user->setup(); + + // Start auth check if (!$auth->acl_get('f_read', $forum_id)) { @@ -524,7 +526,7 @@ if (!$row = $db->sql_fetchrow($result)) // and the global bbcode_bitfield are built do { - $poster_id = intval($row['poster_id']); + $poster_id = $row['poster_id']; $poster = ($poster_id == ANONYMOUS) ? ((!empty($row['post_username'])) ? $row['post_username'] : $user->lang['GUEST']) : $row['username']; if ($row['user_karma'] < $user->data['user_min_karma'] && (empty($_GET['view']) || $_GET['view'] != 'karma' || $post_id != $row['post_id'])) @@ -539,23 +541,24 @@ do } $rowset[] = array( - 'post_id' => $row['post_id'], - 'poster' => $poster, - 'user_id' => $row['user_id'], - 'topic_id' => $row['topic_id'], - 'post_subject' => $row['spost_ubject'], - 'post_edit_count' => $row['post_edit_count'], - 'post_edit_time' => $row['post_edit_time'], - 'icon_id' => $row['icon_id'], - 'post_approved' => $row['post_approved'], - 'post_reported' => $row['post_reported'], - 'post_text' => $row['post_text'], - 'post_encoding' => $row['post_encoding'], - 'bbcode_uid' => $row['bbcode_uid'], - 'bbcode_bitfield' => $row['bbcode_bitfield'], - 'enable_html' => $row['enable_html'], - 'enable_smilies' => $row['enable_smilies'], - 'enable_sig' => $row['enable_sig'] + 'post_id' => $row['post_id'], + 'post_date' => $user->format_date($row['post_time']), + 'poster' => $poster, + 'user_id' => $row['user_id'], + 'topic_id' => $row['topic_id'], + 'post_subject' => $row['post_subject'], + 'post_edit_count' => $row['post_edit_count'], + 'post_edit_time' => $row['post_edit_time'], + 'icon_id' => $row['icon_id'], + 'post_approved' => $row['post_approved'], + 'post_reported' => $row['post_reported'], + 'post_text' => $row['post_text'], + 'post_encoding' => $row['post_encoding'], + 'bbcode_uid' => $row['bbcode_uid'], + 'bbcode_bitfield' => $row['bbcode_bitfield'], + 'enable_html' => $row['enable_html'], + 'enable_smilies' => $row['enable_smilies'], + 'enable_sig' => $row['enable_sig'] ); // Does post have an attachment? If so, add it to the list @@ -610,7 +613,7 @@ do else { $user_sig = ($row['user_sig'] && $config['allow_sig']) ? $row['user_sig'] : ''; - if ($user_sig && $auth->acl_get('f_sigs', $forum_id)) + if ($user_sig) { // if (!$auth->acl_get('f_html', $forum_id)) // { @@ -674,7 +677,7 @@ do if (!empty($row['user_rank'])) { $user_cache[$poster_id]['rank_title'] = $ranks['special'][$row['user_rank']]['rank_title']; - $user_cache[$poster_id]['rank_image'] = (!empty($ranks['special'][$row['user_rank']]['rank_image'])) ? '' . $ranks['special'][$row['user_rank']]['rank_title'] . '
' : ''; + $user_cache[$poster_id]['rank_image'] = (!empty($ranks['special'][$row['user_rank']]['rank_image'])) ? '' . $ranks['special'][$row['user_rank']]['rank_title'] . '
' : ''; } else { @@ -827,12 +830,13 @@ foreach ($rowset as $key => $row) { $bbcode->bbcode_second_pass(&$user_cache[$poster_id]['sig'], $row['sig_bbcode_uid'], $row['sig_bbcode_bitfield']); } + if (count($censors)) { $user_cache[$poster_id]['sig'] = str_replace('\"', '"', substr(preg_replace('#(\>(((?>([^><]+|(?R)))*)\<))#se', "preg_replace(\$censors['match'], \$censors['replace'], '\\0')", '>' . $user_cache[$poster_id]['sig'] . '<'), 1, -1)); } - $user_cache[$poster_id]['sig'] = nl2br($user_cache[$poster_id]['user_sig']); + $user_cache[$poster_id]['sig'] = str_replace("\n", "
", $user_cache[$poster_id]['user_sig']); $user_cache[$poster_id]['sig_parsed'] = TRUE; } @@ -879,9 +883,9 @@ foreach ($rowset as $key => $row) // Parse the message and subject - $post_subject = ($row['post_subject'] != '') ? $row['post_subject'] : ''; $message = $row['post_text']; + // If the board has HTML off but the post has HTML // on then we process it, else leave it alone if (!$auth->acl_get('f_html', $forum_id)) @@ -917,16 +921,18 @@ foreach ($rowset as $key => $row) // Replace naughty words such as farty pants if (sizeof($censors)) { - $post_subject = preg_replace($censors['match'], $censors['replace'], $post_subject); + $row['post_subject'] = preg_replace($censors['match'], $censors['replace'], $row['post_subject']); $message = str_replace('\"', '"', substr(preg_replace('#(\>(((?>([^><]+|(?R)))*)\<))#se', "preg_replace(\$censors['match'], \$censors['replace'], '\\0')", '>' . $message . '<'), 1, -1)); } - $message = str_replace("\n", "\n
\n", $message); + + $message = str_replace("\n", '
', $message); + // Editing information - if (intval($row['post_edit_count'])) + if (!empty($row['post_edit_count'])) { - $l_edit_time_total = (intval($row['post_edit_count']) == 1) ? $user->lang['Edited_time_total'] : $user->lang['Edited_times_total']; + $l_edit_time_total = ($row['post_edit_count'] == 1) ? $user->lang['Edited_time_total'] : $user->lang['Edited_times_total']; $l_edited_by = '

' . sprintf($l_edit_time_total, $row['poster'], $user->format_date($row['post_edit_time']), $row['post_edit_count']); } @@ -953,9 +959,9 @@ foreach ($rowset as $key => $row) 'POSTER_POSTS' => $user_cache[$poster_id]['posts'], 'POSTER_FROM' => $user_cache[$poster_id]['from'], 'POSTER_AVATAR' => $user_cache[$poster_id]['avatar'], - 'POST_DATE' => $user->format_date($row['post_time']), + 'POST_DATE' => $row['post_date'], - 'POST_SUBJECT' => $post_subject, + 'POST_SUBJECT' => $row['post_subject'], 'MESSAGE' => $message, 'SIGNATURE' => ($row['enable_sig']) ? $user_cache[$poster_id]['sig'] : '', 'EDITED_MESSAGE'=> $l_edited_by, @@ -1007,13 +1013,13 @@ foreach ($rowset as $key => $row) 'U_MCP_APPROVE' => "mcp.$phpEx$SID&mode=approve&p=" . $row['post_id'], 'U_MINI_POST' => $mini_post_url, - 'U_POST_ID' => $u_post_id - )); + 'U_POST_ID' => $u_post_id) + ); // Process Attachments for this post if (sizeof($attachments[$row['post_id']])) { - foreach($attachments[$row['post_id']] as $attachment) + foreach ($attachments[$row['post_id']] as $attachment) { // Some basics... $attachment['extension'] = strtolower(trim($attachment['extension'])); @@ -1050,7 +1056,7 @@ foreach ($rowset as $key => $row) $update_count = false; // Admin is allowed to view forbidden Attachments, but the error-message is displayed too to inform the Admin - if ( (!in_array($attachment['extension'], $extensions['_allowed_'])) ) + if ((!in_array($attachment['extension'], $extensions['_allowed_']))) { $denied = true; @@ -1078,9 +1084,11 @@ foreach ($rowset as $key => $row) case STREAM_CAT: $stream = TRUE; break; -/* case SWF_CAT: +/* + case SWF_CAT: $swf = TRUE; - break;*/ + break; +*/ case IMAGE_CAT: if (intval($config['img_display_inlined'])) { @@ -1105,7 +1113,8 @@ foreach ($rowset as $key => $row) } - if ( (!$image) && (!$stream) /*&& (!$swf)*/ && (!$thumbnail) ) + // && !$swf + if (!$image && !$stream && !$thumbnail) { $link = TRUE; } @@ -1119,7 +1128,7 @@ foreach ($rowset as $key => $row) // $download_link = TRUE; // // BEGIN - if ((intval($config['ftp_upload'])) && (trim($config['upload_dir']) == '')) + if (!empty($config['ftp_upload']) && trim($config['upload_dir']) == '') { $img_source = $phpbb_root_path . 'download.' . $phpEx . $SID . '&id=' . $attachment['attach_id']; $download_link = TRUE; @@ -1149,7 +1158,7 @@ foreach ($rowset as $key => $row) // $thumb_source = $phpbb_root_path . 'download.' . $phpEx . $SID . '&id=' . $attachment['attach_id'] . '&thumb=1'; // // BEGIN - if ( (intval($config['allow_ftp_upload'])) && (trim($config['upload_dir']) == '') ) + if (!empty($config['allow_ftp_upload']) && trim($config['upload_dir']) == '') { $thumb_source = $phpbb_root_path . 'download.' . $phpEx . $SID . '&id=' . $attachment['attach_id'] . '&thumb=1'; } @@ -1172,10 +1181,10 @@ foreach ($rowset as $key => $row) // Streams $l_downloaded_viewed = $user->lang['VIEWED']; $download_link = $filename; -// $download_link = $phpbb_root_path . 'download.' . $phpEx . $SID . '&id=' . $attachment['attach_id']; +// $download_link = $phpbb_root_path . 'download.' . $phpEx . $SID . '&id=' . $attachment['attach_id']; // Viewed/Heared File ... update the download count (download.php is not called here) - $update_count = true; + $update_count = !preg_match("#&t=$topic_id#", $user->data['session_page']) ? true : false; } /* if ($swf) @@ -1201,21 +1210,24 @@ foreach ($rowset as $key => $row) $download_link = $phpbb_root_path . 'download.' . $phpEx . $SID . '&id=' . $attachment['attach_id']; } - if ($image || $thumbnail || $stream || $thumbnail || $link) + if ($image || $thumbnail || $stream || $link) { $template_array = array_merge($additional_array, array( -// 'IS_FLASH' => ($swf) ? true : false, - 'IS_STREAM' => ($stream) ? true : false, - 'IS_THUMBNAIL' => ($thumbnail) ? true : false, - 'IS_IMAGE' => ($image) ? true : false, - 'U_DOWNLOAD_LINK' => $download_link, - 'UPLOAD_IMG' => $upload_image, +// 'IS_FLASH' => ($swf) ? true : false, + 'IS_STREAM' => ($stream) ? true : false, + 'IS_THUMBNAIL' => ($thumbnail) ? true : false, + 'IS_IMAGE' => ($image) ? true : false, 'DOWNLOAD_NAME' => $display_name, - 'FILESIZE' => $filesize, - 'SIZE_VAR' => $size_lang, - 'COMMENT' => $comment, - 'L_DOWNLOADED_VIEWED' => $l_downloaded_viewed, - 'L_DOWNLOAD_COUNT' => sprintf($user->lang['DOWNLOAD_NUMBER'], $attachment['download_count'])) + 'FILESIZE' => $filesize, + 'SIZE_VAR' => $size_lang, + 'COMMENT' => $comment, + + 'U_DOWNLOAD_LINK' => $download_link, + + 'UPLOAD_IMG' => $upload_image, + + 'L_DOWNLOADED_VIEWED' => $l_downloaded_viewed, + 'L_DOWNLOAD_COUNT' => sprintf($user->lang['DOWNLOAD_NUMBER'], $attachment['download_count'])) ); $template->assign_block_vars('postrow.attachment', $template_array);