]> scripts.mit.edu Git - autoinstalls/phpBB.git/blob - includes/topic_review.php
phpBB 2.0.19-scripts
[autoinstalls/phpBB.git] / includes / topic_review.php
1 <?php
2 /***************************************************************************
3  *                              topic_review.php
4  *                            -------------------
5  *   begin                : Saturday, Feb 13, 2001
6  *   copyright            : (C) 2001 The phpBB Group
7  *   email                : support@phpbb.com
8  *
9  *   $Id: topic_review.php,v 1.5.2.4 2005/05/06 20:50:12 acydburn Exp $
10  *
11  *
12  ***************************************************************************/
13
14 /***************************************************************************
15  *
16  *   This program is free software; you can redistribute it and/or modify
17  *   it under the terms of the GNU General Public License as published by
18  *   the Free Software Foundation; either version 2 of the License, or
19  *   (at your option) any later version.
20  *
21  *
22  ***************************************************************************/
23
24 function topic_review($topic_id, $is_inline_review)
25 {
26         global $db, $board_config, $template, $lang, $images, $theme, $phpEx, $phpbb_root_path;
27         global $userdata, $user_ip;
28         global $orig_word, $replacement_word;
29         global $starttime;
30
31         if ( !$is_inline_review )
32         {
33                 if ( !isset($topic_id) || !$topic_id)
34                 {
35                         message_die(GENERAL_MESSAGE, 'Topic_post_not_exist');
36                 }
37
38                 //
39                 // Get topic info ...
40                 //
41                 $sql = "SELECT t.topic_title, f.forum_id, f.auth_view, f.auth_read, f.auth_post, f.auth_reply, f.auth_edit, f.auth_delete, f.auth_sticky, f.auth_announce, f.auth_pollcreate, f.auth_vote, f.auth_attachments 
42                         FROM " . TOPICS_TABLE . " t, " . FORUMS_TABLE . " f 
43                         WHERE t.topic_id = $topic_id
44                                 AND f.forum_id = t.forum_id";
45                 if ( !($result = $db->sql_query($sql)) )
46                 {
47                         message_die(GENERAL_ERROR, 'Could not obtain topic information', '', __LINE__, __FILE__, $sql);
48                 }
49
50                 if ( !($forum_row = $db->sql_fetchrow($result)) )
51                 {
52                         message_die(GENERAL_MESSAGE, 'Topic_post_not_exist');
53                 }
54                 $db->sql_freeresult($result);
55
56                 $forum_id = $forum_row['forum_id'];
57                 $topic_title = $forum_row['topic_title'];
58                 
59                 //
60                 // Start session management
61                 //
62                 $userdata = session_pagestart($user_ip, $forum_id);
63                 init_userprefs($userdata);
64                 //
65                 // End session management
66                 //
67
68                 $is_auth = array();
69                 $is_auth = auth(AUTH_ALL, $forum_id, $userdata, $forum_row);
70
71                 if ( !$is_auth['auth_read'] )
72                 {
73                         message_die(GENERAL_MESSAGE, sprintf($lang['Sorry_auth_read'], $is_auth['auth_read_type']));
74                 }
75         }
76
77         //
78         // Define censored word matches
79         //
80         if ( empty($orig_word) && empty($replacement_word) )
81         {
82                 $orig_word = array();
83                 $replacement_word = array();
84
85                 obtain_word_list($orig_word, $replacement_word);
86         }
87
88         //
89         // Dump out the page header and load viewtopic body template
90         //
91         if ( !$is_inline_review )
92         {
93                 $gen_simple_header = TRUE;
94
95                 $page_title = $lang['Topic_review'] . ' - ' . $topic_title;
96                 include($phpbb_root_path . 'includes/page_header.'.$phpEx);
97
98                 $template->set_filenames(array(
99                         'reviewbody' => 'posting_topic_review.tpl')
100                 );
101         }
102
103         //
104         // Go ahead and pull all data for this topic
105         //
106         $sql = "SELECT u.username, u.user_id, p.*,  pt.post_text, pt.post_subject, pt.bbcode_uid
107                 FROM " . POSTS_TABLE . " p, " . USERS_TABLE . " u, " . POSTS_TEXT_TABLE . " pt
108                 WHERE p.topic_id = $topic_id
109                         AND p.poster_id = u.user_id
110                         AND p.post_id = pt.post_id
111                 ORDER BY p.post_time DESC
112                 LIMIT " . $board_config['posts_per_page'];
113         if ( !($result = $db->sql_query($sql)) )
114         {
115                 message_die(GENERAL_ERROR, 'Could not obtain post/user information', '', __LINE__, __FILE__, $sql);
116         }
117
118         //
119         // Okay, let's do the loop, yeah come on baby let's do the loop
120         // and it goes like this ...
121         //
122         if ( $row = $db->sql_fetchrow($result) )
123         {
124                 $mini_post_img = $images['icon_minipost'];
125                 $mini_post_alt = $lang['Post'];
126
127                 $i = 0;
128                 do
129                 {
130                         $poster_id = $row['user_id'];
131                         $poster = $row['username'];
132
133                         $post_date = create_date($board_config['default_dateformat'], $row['post_time'], $board_config['board_timezone']);
134
135                         //
136                         // Handle anon users posting with usernames
137                         //
138                         if( $poster_id == ANONYMOUS && $row['post_username'] != '' )
139                         {
140                                 $poster = $row['post_username'];
141                                 $poster_rank = $lang['Guest'];
142                         }
143                         elseif ( $poster_id == ANONYMOUS )
144                         {
145                                 $poster = $lang['Guest'];
146                                 $poster_rank = '';
147                         }
148
149                         $post_subject = ( $row['post_subject'] != '' ) ? $row['post_subject'] : '';
150
151                         $message = $row['post_text'];
152                         $bbcode_uid = $row['bbcode_uid'];
153
154                         //
155                         // If the board has HTML off but the post has HTML
156                         // on then we process it, else leave it alone
157                         //
158                         if ( !$board_config['allow_html'] && $row['enable_html'] )
159                         {
160                                 $message = preg_replace('#(<)([\/]?.*?)(>)#is', '&lt;\2&gt;', $message);
161                         }
162
163                         if ( $bbcode_uid != "" )
164                         {
165                                 $message = ( $board_config['allow_bbcode'] ) ? bbencode_second_pass($message, $bbcode_uid) : preg_replace('/\:[0-9a-z\:]+\]/si', ']', $message);
166                         }
167
168                         $message = make_clickable($message);
169
170                         if ( count($orig_word) )
171                         {
172                                 $post_subject = preg_replace($orig_word, $replacement_word, $post_subject);
173                                 $message = preg_replace($orig_word, $replacement_word, $message);
174                         }
175
176                         if ( $board_config['allow_smilies'] && $row['enable_smilies'] )
177                         {
178                                 $message = smilies_pass($message);
179                         }
180
181                         $message = str_replace("\n", '<br />', $message);
182
183                         //
184                         // Again this will be handled by the templating
185                         // code at some point
186                         //
187                         $row_color = ( !($i % 2) ) ? $theme['td_color1'] : $theme['td_color2'];
188                         $row_class = ( !($i % 2) ) ? $theme['td_class1'] : $theme['td_class2'];
189
190                         $template->assign_block_vars('postrow', array(
191                                 'ROW_COLOR' => '#' . $row_color, 
192                                 'ROW_CLASS' => $row_class, 
193
194                                 'MINI_POST_IMG' => $mini_post_img, 
195                                 'POSTER_NAME' => $poster, 
196                                 'POST_DATE' => $post_date, 
197                                 'POST_SUBJECT' => $post_subject, 
198                                 'MESSAGE' => $message,
199                                         
200                                 'L_MINI_POST_ALT' => $mini_post_alt)
201                         );
202
203                         $i++;
204                 }
205                 while ( $row = $db->sql_fetchrow($result) );
206         }
207         else
208         {
209                 message_die(GENERAL_MESSAGE, 'Topic_post_not_exist', '', __LINE__, __FILE__, $sql);
210         }
211         $db->sql_freeresult($result);
212
213         $template->assign_vars(array(
214                 'L_AUTHOR' => $lang['Author'],
215                 'L_MESSAGE' => $lang['Message'],
216                 'L_POSTED' => $lang['Posted'],
217                 'L_POST_SUBJECT' => $lang['Post_subject'], 
218                 'L_TOPIC_REVIEW' => $lang['Topic_review'])
219         );
220
221         if ( !$is_inline_review )
222         {
223                 $template->pparse('reviewbody');
224                 include($phpbb_root_path . 'includes/page_tail.'.$phpEx);
225         }
226 }
227
228 ?>