<?php /*************************************************************************** * viewtopic.php * ------------------- * begin : Saturday, Feb 13, 2001 * copyright : (C) 2001 The phpBB Group * email : support@phpbb.com * * $Id$ * * ***************************************************************************/ /*************************************************************************** * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * ***************************************************************************/ include('extension.inc'); include('common.'.$phpEx); include('includes/bbcode.'.$phpEx); if(!isset($HTTP_GET_VARS['topic'])) // For backward compatibility { $topic_id = $HTTP_GET_VARS[POST_TOPIC_URL]; } else { $topic_id = $HTTP_GET_VARS['topic']; } $is_moderator = 0; if(!isset($topic_id)) { error_die(GENERAL_ERROR, "You have reached this page in error, please go back and try again"); } $sql = "SELECT t.topic_title, t.topic_status, t.topic_replies, f.forum_type, f.forum_name, f.forum_id, u.username, u.user_id FROM ".TOPICS_TABLE." t, ".FORUMS_TABLE." f, ".FORUM_MODS_TABLE." fm, ".USERS_TABLE." u WHERE t.topic_id = '$topic_id' AND f.forum_id = t.forum_id AND fm.forum_id = t.forum_id AND u.user_id = fm.user_id"; if(!$result = $db->sql_query($sql)) { error_die(SQL_QUERY, "Couldn't obtain topic information.", __LINE__, __FILE__); } if(!$total_rows = $db->sql_numrows($result)) { error_die(GENERAL_ERROR, "The forum you selected does not exist. Please go back and try again."); } $forum_row = $db->sql_fetchrowset($result); $topic_title = $forum_row[0]["topic_title"]; $forum_id = $forum_row[0]["forum_id"]; $forum_name = stripslashes($forum_row[0]["forum_name"]); // // Start session management // $userdata = session_pagestart($user_ip, $forum_id, $session_length); init_userprefs($userdata); // // End session management // for($x = 0; $x < $total_rows; $x++) { $moderators[] = array("user_id" => $forum_row[$x]["user_id"], "username" => $forum_row[$x]["username"]); if($userdata["user_id"] == $forum_row[$x]["user_id"]) { $is_moderator = 1; } } // // Add checking for private forums here // $total_replies = $forum_row[0]["topic_replies"] + 1; $page_title = "View Topic - $topic_title"; $pagetype = "viewtopic"; include('includes/page_header.'.$phpEx); if(!isset($start)) { $start = 0; } $sql = "SELECT u.username, u.user_id, u.user_posts, u.user_from, u.user_website, u.user_icq, u.user_aim, u.user_yim, u.user_regdate, u.user_msnm, u.user_viewemail, r.rank_title, r.rank_image, p.post_time, p.post_id, p.bbcode_uid, pt.post_text FROM ".POSTS_TABLE." p LEFT JOIN ".USERS_TABLE." u ON p.poster_id = u.user_id LEFT JOIN ".POSTS_TEXT_TABLE." pt ON p.post_id = pt.post_id LEFT JOIN ".RANKS_TABLE." r ON ( u.user_rank = r.rank_id ) AND (r.rank_special = 1) WHERE p.topic_id = '$topic_id' ORDER BY p.post_time ASC LIMIT $start, $posts_per_page"; if(!$result = $db->sql_query($sql)) { error_die(SQL_QUERY, "Couldn't obtain post/user information.", __LINE__, __FILE__); } if(!$total_posts = $db->sql_numrows($result)) { error_die(GENERAL_ERROR, "There don't appear to be any posts for this topic.", __LINE__, __FILE__); } $sql = "SELECT * FROM ".RANKS_TABLE." ORDER BY rank_min"; if(!$ranks_result = $db->sql_query($sql)) { error_die(SQL_QUERY, "Couldn't obtain ranks information.", __LINE__, __FILE__); } $postrow = $db->sql_fetchrowset($result); $ranksrow = $db->sql_fetchrowset($ranksresult); for($x = 0; $x < $total_posts; $x++) { $poster = stripslashes($postrow[$x]["username"]); $poster_id = $postrow[$x]["user_id"]; $post_date = create_date($date_format, $postrow[$x]["post_time"], $sys_timezone); $poster_posts = $postrow[$x]["user_posts"]; $poster_from = ($postrow[$x]["user_from"]) ? "$l_from: ".$postrow[$x]["user_from"] : ""; $poster_joined = $postrow[$x]["user_regdate"]; if($poster_id != ANONYMOUS && $poster_id != DELETED) { if(!$postrow[$x]["rank_title"]) { for($i = 0; $i < count($ranksrow); $i++) { if($poster_posts > $ranksrow[$i]['rank_min'] && $poster_posts < $ranksrow[$i]['rank_max']) { $poster_rank = $ranksrow[$i]['rank_title']; $rank_image = ($ranksrow[$x]["rank_image"]) ? "<img src=\"".$ranksrow[$x]["rank_image"]."\">" : ""; } } } else { $poster_rank = stripslashes($postrow[$x]["rank_title"]); $rank_image = ($postrow[$x]["rank_image"]) ? "<img src=\"".$postrow[$x]["rank_image"]."\">" : ""; } } else { $poster_rank = ""; } $profile_img = "<a href=\"profile.$phpEx?mode=viewprofile&user_id=$poster_id\"><img src=\"$image_profile\" alt=\"$l_profileof $poster\" border=\"0\"></a>"; $email_img = ($postrow[$x]["user_viewemail"] == 1) ? "<a href=\"mailto:".$postrow[$x]["user_email"]."\"><img src=\"$image_email\" alt=\"$l_email $poster\" border=\"0\"></a>" : ""; $www_img = ($postrow[$x]["user_website"]) ? "<a href=\"".$postrow[$x]["user_website"]."\"><img src=\"$image_www\" alt=\"$l_viewsite\" border=\"0\"></a>" : ""; if($postrow[$x]["user_icq"]) { $icq_status_img = "<a href=\"http://wwp.icq.com/".$postrow[$x]["user_icq"]."#pager\"><img src=\"http://online.mirabilis.com/scripts/online.dll?icq=".$postrow[$x]["user_icq"]."&img=5\" alt=\"$l_icqstatus\" border=\"0\"></a>"; $icq_add_img = "<a href=\"http://wwp.icq.com/scripts/search.dll?to=".$postrow[$x]["user_icq"]."\"><img src=\"$image_icq\" alt=\"$l_icq\" border=\"0\"></a>"; } else { $icq_status_img = ""; $icq_add_img = ""; } $aim_img = ($postrow[$x]["user_aim"]) ? "<a href=\"aim:goim?screenname=".$postrow[$x]["user_aim"]."&message=Hello+Are+you+there?\"><img src=\"$image_aim\" border=\"0\"></a>" : ""; $msn_img = ($postrow[$x]["user_msnm"]) ? "<a href=\"profile.$phpEx?mode=viewprofile&user_id=$poster_id\"><img src=\"$image_msn\" border=\"0\"></a>" : ""; $yim_img = ($postrow[$x]["user_yim"]) ? "<a href=\"http://edit.yahoo.com/config/send_webmesg?.target=".$postrow[$x]["user_yim"]."&.src=pg\"><img src=\"$image_yim\" border=\"0\"></a>" : ""; $edit_img = "<a href=\"posting.$phpEx?mode=editpost&post_id=".$postrow[$x]["post_id"]."&topic_id=$topic_id&forum_id=$forum_id\"><img src=\"$image_edit\" alt=\"$l_editdelete\" border=\"0\"></a>"; $quote_img = "<a href=\"posting.$phpEx?mode=reply"e=true&post_id=".$postrow[$x]["post_id"]."&topic_id=$topic_id&forum_id=$forum_id\"><img src=\"$image_quote\" alt=\"$l_replyquote\" border=\"0\"></a>"; $pmsg_img = "<a href=\"priv_msgs.$phpEx?mode=send\"><img src=\"$image_pmsg\" alt=\"$l_sendpmsg\" border=\"0\"></a>"; if($is_moderator) { $ip_img = "<a href=\"topicadmin.$phpEx?mode=viewip&user_id=".$poster_id."\"><img src=\"$image_ip\" alt=\"$l_viewip\" border=\"0\"></a>"; $delpost_img = "<a href=\"topicadmin.$phpEx?mode=delpost$post_id=".$postrow[$x]["post_id"]."\"><img src=\"$image_delpost\" alt=\"$l_delete\" border=\"0\"></a>"; } $message = stripslashes($postrow[$x]["post_text"]); $bbcode_uid = $postrow[$x]['bbcode_uid']; $user_sig = stripslashes($postrow[$x]['user_sig']); if(!$allow_html) { $user_sig = strip_tags($user_sig); $message = strip_tags($message); } if($allow_bbcode) { // do bbcode stuff here $sig_uid = make_bbcode_uid(); $user_sig = bbencode_first_pass($user_sig, $sig_uid); $user_sig = bbencode_second_pass($user_sig, $sig_uid); $message = bbencode_second_pass($message, $bbcode_uid); } $message = make_clickable($message); $message = str_replace("\n", "<br />", $message); if(!($x % 2)) { if(isset($theme)) { $color = "#".$theme['td_color1']; } else { $color = "#DDDDDD"; } } else { if(isset($theme)) { $color = "#".$theme['td_color2']; } else { $color = "#CCCCCC"; } } $message = eregi_replace("\[addsig]$", "<br />_________________<br />" . nl2br($user_sig), $message); $template->assign_block_vars("postrow", array("TOPIC_TITLE" => $topic_title, "POSTER_NAME" => $poster, "POSTER_RANK" => $poster_rank, "RANK_IMAGE" => $rank_image, "ROW_COLOR" => $color, "POSTER_JOINED" => $poster_joined, "POSTER_POSTS" => $poster_posts, "POSTER_FROM" => $poster_from, "POST_DATE" => $post_date, "MESSAGE" => $message, "PROFILE_IMG" => $profile_img, "EMAIL_IMG" => $email_img, "WWW_IMG" => $www_img, "ICQ_STATUS_IMG" => $icq_status_img, "ICQ_ADD_IMG" => $icq_add_img, "AIM_IMG" => $aim_img, "MSN_IMG" => $msn_img, "YIM_IMG" => $yim_img, "EDIT_IMG" => $edit_img, "QUOTE_IMG" => $quote_img, "PMSG_IMG" => $pmsg_img, "IP_IMG" => $ip_img, "DELPOST_IMG" => $delpost_img)); } if($total_replies > $posts_per_page) { $times = 0; for($x = 0; $x < $total_replies; $x += $posts_per_page) { $times++; } $pages = $times . " pages"; $times = 1; $pagination = "$l_gotopage ("; $last_page = $start - $posts_per_page; if($start > 0) { $pagination .= "<a href=\"$PHP_SELF?".POST_TOPIC_URL."=$topic_id&forum_id=$forum_id&start=$last_page\">$l_prevpage</a> "; } for($x = 0; $x < $total_replies; $x += $posts_per_page) { if($times != 1) { $pagination .= " | "; } if($start && ($start == $x)) { $pagination .= $times; } else if($start == 0 && $x == 0) { $pagination .= "1"; } else { $pagination .= "<a href=\"$PHP_SELF?".POST_TOPIC_URL."=$topic_id&forum_id=$forum_id&start=$x\">$times</a>"; } $times++; } if(($start + $posts_per_page) < $total_replies) { $next_page = $start + $posts_per_page; $pagination .= " <a href=\"$PHP_SELF?".POST_TOPIC_URL."=$topic_id&forum_id=$forum_id&start=$next_page\">$l_nextpage</a>"; } $pagination .= " )"; } else { $pages = "1 page"; } $template->assign_vars(array("PAGES" => $pages, "PAGINATION" => $pagination)); $template->pparse("body"); include('includes/page_tail.'.$phpEx); ?>