diff --git a/phpBB/config.php b/phpBB/config.php
index 16f36cc071..b6cefb27d3 100644
--- a/phpBB/config.php
+++ b/phpBB/config.php
@@ -99,4 +99,18 @@ define('USERS_TABLE', $table_prefix.'users');
define('WHOSONLINE_TABLE', $table_prefix.'whosonline');
define('WORDS_TABLE', $table_prefix.'words');
+$url_images = "images";
+$image_quote = "$url_images/quote.gif";
+
+$image_edit = "$url_images/edit.gif";
+$image_profile = "$url_images/profile.gif";
+$image_email = "$url_images/email.gif";
+
+$image_ip = "$url_images/ip_logged.gif";
+
+$image_www = "$url_images/www_icon.gif";
+$image_icq = "$url_images/icq_add.gif";
+$image_aim = "$url_images/aim.gif";
+$image_yim = "$url_images/yim.gif";
+$image_msnm = "$url_images/msnm.gif";
?>
diff --git a/phpBB/page_header.php b/phpBB/page_header.php
index cc5a577bf5..e05aeca7d1 100644
--- a/phpBB/page_header.php
+++ b/phpBB/page_header.php
@@ -72,38 +72,56 @@ $template->pparse("output", "overall_header");
// Do a switch on page type, this way we only load the templates that we need at the time
switch($pagetype)
{
- case 'index':
- $template->set_file(array("header" => "index_header.tpl",
- "body" => "index_body.tpl",
- "footer" => "index_footer.tpl"));
-
- $template->set_var(array("TOTAL_POSTS" => $total_posts,
- "TOTAL_USERS" => $total_users,
- "NEWEST_USER" => $newest_user,
- "NEWEST_UID" => $newest_uid,
- "USERS_BROWSING" => $users_browsing));
-
- $template->pparse("output", "header");
- break;
-
- case 'viewforum':
- $template->set_file(array("header" => "viewforum_header.tpl",
- "body" => "viewforum_body.tpl",
- "jumpbox" => "jumpbox.tpl",
- "footer" => "viewforum_footer.tpl"));
-
- $jumpbox = make_jumpbox($db);
- $template->set_var(array("JUMPBOX_LIST" => $jumpbox,
- "JUMPBOX_ACTION" => "viewforum.".$phpEx,
- "SELECT_NAME" => "forum_id"));
- $template->parse("JUMPBOX","jumpbox");
-
- $template->set_var(array("FORUM_ID" => $forum_id,
- "FORUM_NAME" => $forum_name,
- "MODERATORS" => $forum_moderators));
-
- $template->pparse("output", "header");
- break;
+ case 'index':
+ $template->set_file(array("header" => "index_header.tpl",
+ "body" => "index_body.tpl",
+ "footer" => "index_footer.tpl"));
+
+ $template->set_var(array("TOTAL_POSTS" => $total_posts,
+ "TOTAL_USERS" => $total_users,
+ "NEWEST_USER" => $newest_user,
+ "NEWEST_UID" => $newest_uid,
+ "USERS_BROWSING" => $users_browsing));
+
+ $template->pparse("output", "header");
+ break;
+
+ case 'viewforum':
+ $template->set_file(array("header" => "viewforum_header.tpl",
+ "body" => "viewforum_body.tpl",
+ "jumpbox" => "jumpbox.tpl",
+ "footer" => "viewforum_footer.tpl"));
+
+ $jumpbox = make_jumpbox($db);
+ $template->set_var(array("JUMPBOX_LIST" => $jumpbox,
+ "JUMPBOX_ACTION" => "viewforum.".$phpEx,
+ "SELECT_NAME" => "forum_id"));
+ $template->parse("JUMPBOX","jumpbox");
+
+ $template->set_var(array("FORUM_ID" => $forum_id,
+ "FORUM_NAME" => $forum_name,
+ "MODERATORS" => $forum_moderators));
+
+ $template->pparse("output", "header");
+ break;
+ case 'viewtopic':
+ $template->set_file(array("header" => "viewtopic_header.tpl",
+ "body" => "viewtopic_body.tpl",
+ "jumpbox" => "jumpbox.tpl",
+ "footer" => "viewtopic_footer.tpl"));
+ $jumpbox = make_jumpbox($db);
+ $template->set_var(array("JUMPBOX_LIST" => $jumpbox,
+ "JUMPBOX_ACTION" => "viewforum.".$phpEx,
+ "SELECT_NAME" => "forum_id"));
+ $template->parse("JUMPBOX","jumpbox");
+
+ $template->set_var(array("FORUM_ID" => $forum_id,
+ "FORUM_NAME" => $forum_name,
+ "TOPIC_ID" => $topic_id,
+ "TOPIC_TITLE" => $topic_title));
+ $template->pparse("output", "header");
+ break;
+
}
?>
diff --git a/phpBB/page_tail.php b/phpBB/page_tail.php
index 2fa923a97e..a9f5ee8086 100644
--- a/phpBB/page_tail.php
+++ b/phpBB/page_tail.php
@@ -25,16 +25,19 @@
// Load/parse the footer template we need based on pagetype.
switch($pagetype)
{
- case 'index':
- $template->pparse("output", "footer");
- break;
-
- case 'viewforum':
-
- $template->set_var(array("PHPEX" => $phpEx,
- "FORUM_ID" => $forum_id));
- $template->pparse("output", "footer");
- break;
+ case 'index':
+ $template->pparse("output", "footer");
+ break;
+
+ case 'viewforum':
+
+ $template->set_var(array("PHPEX" => $phpEx,
+ "FORUM_ID" => $forum_id));
+ $template->pparse("output", "footer");
+ break;
+ case 'viewtopic':
+ $template->pparse("output", "footer");
+ break;
}
// Show the overall footer.
diff --git a/phpBB/templates/Default/viewtopic_body.tpl b/phpBB/templates/Default/viewtopic_body.tpl
new file mode 100644
index 0000000000..e1bd52e275
--- /dev/null
+++ b/phpBB/templates/Default/viewtopic_body.tpl
@@ -0,0 +1,32 @@
+
+
+
+
+
+
+
+
+
+
+ {POSTER_NAME}
+ {POSTER_RANK}
+
+
+ {L_JOINED}: {POSTER_JOINED} {L_POSTS}: {POSTER_POSTS} {POSTER_FROM}
+ |
+
+ {L_POSTED}: {POST_DATE}
+ {MESSAGE}
+ {PROFILE_IMG} {EMAIL_IMG} {WWW_IMG} {ICQ_STATUS_IMG} {ICQ_ADD_IMG} {AIM_IMG} {YIM_IMG} {MSN_IMG} | {EDIT_IMG} {QUOTE_IMG} {PMSG_IMG} | {IP_IMG} {DELPOST_IMG}
+ |
+
+
+
+ |
+
+
+ |
+
diff --git a/phpBB/templates/Default/viewtopic_footer.tpl b/phpBB/templates/Default/viewtopic_footer.tpl
new file mode 100644
index 0000000000..4de01bcef3
--- /dev/null
+++ b/phpBB/templates/Default/viewtopic_footer.tpl
@@ -0,0 +1,40 @@
+
+
+
+ |
+
diff --git a/phpBB/templates/Default/viewtopic_header.tpl b/phpBB/templates/Default/viewtopic_header.tpl
new file mode 100644
index 0000000000..a6e2b3f244
--- /dev/null
+++ b/phpBB/templates/Default/viewtopic_header.tpl
@@ -0,0 +1,40 @@
+
+
+
+ |
+
diff --git a/phpBB/viewtopic.php b/phpBB/viewtopic.php
index b4278d1182..fba5d0352a 100644
--- a/phpBB/viewtopic.php
+++ b/phpBB/viewtopic.php
@@ -1,6 +1,6 @@
sql_query($sql))
+{
+ error_die($db, QUERY_ERROR);
+}
+
+//
+// Add checking for private forums here
+//
+
+if(!$total_rows = $db->sql_numrows($result))
+{
+ error_die($db, GENERAL_ERROR, "The forum you selected does not exist. Please go back and try again.");
+}
+
+$forum_row = $db->sql_fetchrowset($result);
+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;
+ }
+}
+
+if(!isset($start))
+{
+ $start = 0;
+}
+$sql = "SELECT t.topic_title, t.topic_status, f.forum_name
+ FROM ".TOPICS_TABLE." t, ".FORUMS_TABLE." f
+ WHERE t.topic_id = '$topic_id' AND f.forum_id = t.forum_id";
+
+if(!$result = $db->sql_query($sql))
+{
+ error_die($db, QUERY_ERROR);
+}
+if(!$topic_info = $db->sql_fetchrowset($result))
+{
+ error_die($db, GENERAL_ERROR, "Could not get topic data
$sql");
+}
+$forum_name = stripslashes($topic_info[0]["forum_name"]);
+$topic_title = stripslashes($topic_info[0]["topic_title"]);
+$pagetype = "viewtopic";
+$page_title = "View Topic - $topic_title";
+include('page_header.'.$phpEx);
+
+$sql = "SELECT u.*, r.rank_title, r.rank_image,
+ p.post_time, p.post_id, pt.post_text
+ FROM ".POSTS_TABLE." p
+ LEFT JOIN ".USERS_TABLE." u ON p.poster_id = u.user_id
+ LEFT JOIN ".RANKS_TABLE." r ON (u.user_rank = r.rank_id OR (u.user_posts > r.rank_min AND u.user_posts < r.rank_max))
+ LEFT JOIN ".POSTS_TEXT_TABLE." pt ON p.post_id = pt.post_id
+ 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($db, QUERY_ERROR);
+}
+if(!$total_posts = $db->sql_numrows($result))
+{
+ error_die($db, GENERAL_ERROR, "Error getting post data.");
+}
+$postrow = $db->sql_fetchrowset($result);
+
+$template->set_block("body", "postrow", "posts");
+
+for($x = 0; $x < $total_posts; $x++)
+{
+ $poster = stripslashes($postrow[$x]["username"]);
+ $poster_id = $postrow[$x]["user_id"];
+ $poster_rank = stripslashes($postrow[$x]["rank_title"]);
+ $rank_image = ($postrow[$x]["rank_image"]) ? "
" : "";
+ $post_date = date($date_format, $postrow[$x]["post_time"]);
+
+ $poster_posts = $postrow[$x]["user_posts"];
+ $poster_from = ($postrow[$x]["user_from"]) ? "$l_from: ".$postrow[$x]["user_from"] : "";
+ $poster_joined = $postrow[$x]["user_regdate"];
+
+ $profile_img = "
";
+ $email_img = ($postrow[$x]["user_viewemail"] == 1) ? "
" : "";
+ $www_img = ($postrow[$x]["user_website"]) ? "
" : "";
+ if($postrow[$x]["user_icq"])
+ {
+
+ $icq_status_img = "
";
+ $icq_add_img = "
";
+ }
+ else
+ {
+ $icq_status_img = "";
+ $icq_add_img = "";
+ }
+ $aim_img = ($postrow[$x]["user_aim"]) ? "
" : "";
+ $msn_img = ($postrow[$x]["user_msn"]) ? "
" : "";
+ $yim_img = ($postrow[$x]["user_yim"]) ? "
" : "";
+
+ $edit_img = "
";
+ $quote_img = "
";
+ $pmsg_img = "
";
+ if($is_moderator)
+ {
+ $ip_img = "
";
+ $delpost_img = "
";
+ }
+
+ $message = stripslashes($postrow[$x]["post_text"]);
+ if(!$allow_html)
+ {
+ $message = strip_tags($message);
+ }
+ if($allow_bbcode)
+ {
+ // do bbcode stuff here
+ }
+
+ if(!($x % 2))
+ {
+ $color = "#DDDDDD";
+ }
+ else
+ {
+ $color = "#CCCCCC";
+ }
+
+ $message = eregi_replace("\[addsig]$", "
_________________
" . stripslashes($postrow[$x]["user_sig"]), $message);
+
+ $template->set_var(array("TOPIC_TITLE" => $topic_title,
+ "L_POSTED" => $l_posted,
+ "L_JOINED" => $l_joined,
+ "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));
+ $template->parse("posts", "postrow", true);
+}
+$template->pparse("output", array("posts", "body"));
+
+include('page_tail.'.$phpEx);
+
+
+
?>