1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
|
<?php
// -------------------------------------------------------------
//
// $Id$
//
// FILENAME : mcp_forum.php
// STARTED : Thu Jul 08, 2004
// COPYRIGHT : © 2004 phpBB Group
// WWW : http://www.phpbb.com/
// LICENCE : GPL vs2.0 [ see /docs/COPYING ]
//
// -------------------------------------------------------------
//
// TODO:
//
function mcp_forum_view($id, $mode, $action, $url, $forum_info)
{
global $SID, $phpEx, $phpbb_root_path, $config;
global $template, $db, $user, $auth;
global $_POST, $_REQUEST;
if ($action == 'merge_select')
{
// Fixes a "bug" that makes forum_view use the same ordering as topic_view
unset($_POST['sk'], $_POST['sd'], $_REQUEST['sk'], $_REQUEST['sd']);
}
$forum_id = $forum_info['forum_id'];
$start = request_var('start', 0);
$topic_id_list = request_var('topic_id_list', 0);
$post_id_list = request_var('post_id_list', 0);
$topic_id = request_var('t', 0);
$selected_ids = '';
if ($post_id_list)
{
foreach ($post_id_list as $num => $post_id)
{
$selected_ids .= '&post_id_list[' . $num . ']=' . $post_id;
}
}
make_jumpbox($url . "&action=$action&mode=$mode", $forum_id . (($action == 'merge_select') ? $selected_ids : ''), false, 'm_');
$topics_per_page = ($forum_info['forum_topics_per_page']) ? $forum_info['forum_topics_per_page'] : $config['topics_per_page'];
mcp_sorting('viewforum', $sort_days, $sort_key, $sort_dir, $sort_by_sql, $sort_order_sql, $total, $forum_id);
$forum_topics = ($total == -1) ? $forum_info['forum_topics'] : $total;
$limit_time_sql = ($sort_days) ? 'AND t.topic_last_post_time >= ' . (time() - ($sort_days * 86400)) : '';
$template->assign_vars(array(
'FORUM_NAME' => $forum_info['forum_name'],
'REPORTED_IMG' => $user->img('icon_reported', 'TOPIC_REPORTED'),
'UNAPPROVED_IMG' => $user->img('icon_unapproved', 'TOPIC_UNAPPROVED'),
'S_CAN_DELETE' => $auth->acl_get('m_delete', $forum_id),
'S_CAN_MOVE' => $auth->acl_get('m_move', $forum_id),
'S_CAN_FORK' => $auth->acl_get('m_', $forum_id),
'S_CAN_LOCK' => $auth->acl_get('m_lock', $forum_id),
'S_CAN_SYNC' => $auth->acl_get('m_', $forum_id),
'S_CAN_APPROVE' => $auth->acl_get('m_approve', $forum_id),
'U_VIEW_FORUM' => "viewforum.$phpEx$SID&f=" . $forum_id,
'S_MCP_ACTION' => $url . "&action=$action&mode=$mode&start=$start" . (($action == 'merge_select') ? $selected_ids : ''),
'PAGINATION' => generate_pagination($url . "&action=$action&mode=$mode" . (($action == 'merge_select') ? $selected_ids : ''), $forum_topics, $topics_per_page, $start),
'PAGE_NUMBER' => on_page($forum_topics, $topics_per_page, $start),
'TOTAL' => $forum_topics)
);
$topic_rows = array();
$sql = 'SELECT t.*
FROM ' . TOPICS_TABLE . " t
WHERE (t.forum_id = $forum_id OR t.forum_id = 0)
" . (($auth->acl_get('m_approve', $forum_id)) ? '' : 'AND t.topic_approved = 1') . "
AND t.topic_type IN (" . POST_ANNOUNCE . ", " . POST_GLOBAL . ")
$limit_time_sql
ORDER BY $sort_order_sql";
$result = $db->sql_query($sql);
while ($row = $db->sql_fetchrow($result))
{
$topic_rows[] = $row;
}
$db->sql_freeresult($result);
$sql = 'SELECT t.*
FROM ' . TOPICS_TABLE . " t
WHERE t.forum_id = $forum_id
" . (($auth->acl_get('m_approve', $forum_id)) ? '' : 'AND t.topic_approved = 1') . '
AND t.topic_type IN (' . POST_NORMAL . ', ' . POST_STICKY . ")
$limit_time_sql
ORDER BY t.topic_type DESC, $sort_order_sql";
$result = $db->sql_query_limit($sql, $topics_per_page, $start);
while ($row = $db->sql_fetchrow($result))
{
$topic_rows[] = $row;
}
$db->sql_freeresult($result);
foreach ($topic_rows as $row)
{
$topic_title = '';
if ($auth->acl_get('m_approve', $row['forum_id']))
{
$row['topic_replies'] = $row['topic_replies_real'];
}
if ($row['topic_status'] == ITEM_LOCKED)
{
$folder_img = $user->img('folder_locked', 'VIEW_TOPIC_LOCKED');
}
else
{
if ($row['topic_type'] == POST_ANNOUNCE || $row['topic_type'] == POST_GLOBAL)
{
$folder_img = $user->img('folder_announce', 'VIEW_TOPIC_ANNOUNCEMENT');
}
else if ($row['topic_type'] == POST_STICKY)
{
$folder_img = $user->img('folder_sticky', 'VIEW_TOPIC_STICKY');
}
else if ($row['topic_status'] == ITEM_MOVED)
{
$folder_img = $user->img('folder_moved', 'VIEW_TOPIC_MOVED');
}
else
{
$folder_img = $user->img('folder', 'NO_NEW_POSTS');
}
}
if ($row['topic_type'] == POST_ANNOUNCE || $row['topic_type'] == POST_GLOBAL)
{
$topic_type = $user->lang['VIEW_TOPIC_ANNOUNCEMENT'] . ' ';
}
else if ($row['topic_type'] == POST_STICKY)
{
$topic_type = $user->lang['VIEW_TOPIC_STICKY'] . ' ';
}
else if ($row['topic_status'] == ITEM_MOVED)
{
$topic_type = $user->lang['VIEW_TOPIC_MOVED'] . ' ';
}
else
{
$topic_type = '';
}
if (intval($row['poll_start']))
{
$topic_type .= $user->lang['VIEW_TOPIC_POLL'] . ' ';
}
$topic_title = censor_text($row['topic_title']);
$template->assign_block_vars('topicrow', array(
'U_VIEW_TOPIC' => "mcp.$phpEx$SID&t=" . $row['topic_id'] . '&mode=topic_view',
'S_SELECT_TOPIC' => ($action == 'merge_select' && $row['topic_id'] != $topic_id) ? true : false,
'U_SELECT_TOPIC' => $url . '&mode=topic_view&action=merge&to_topic_id=' . $row['topic_id'] . $selected_ids,
'U_MCP_QUEUE' => $url . '&i=queue&mode=approve&t=' . $row['topic_id'],
'U_MCP_REPORT' => $url . '&mode=reports&t=' . $row['topic_id'],
'ATTACH_ICON_IMG' => ($auth->acl_gets('f_download', 'u_download', $row['forum_id']) && $row['topic_attachment']) ? $user->img('icon_attach', sprintf($user->lang['TOTAL_ATTACHMENTS'], $row['topic_attachment'])) : '',
'TOPIC_FOLDER_IMG' => $folder_img,
'TOPIC_TYPE' => $topic_type,
'TOPIC_TITLE' => $topic_title,
'REPLIES' => $row['topic_replies'],
'LAST_POST_TIME' => $user->format_date($row['topic_last_post_time']),
'TOPIC_ID' => $row['topic_id'],
'S_TOPIC_CHECKED' => ($topic_id_list && in_array($row['topic_id'], $topic_id_list)) ? 'checked="checked" ' : '',
'S_TOPIC_REPORTED' => ($row['topic_reported']) ? true : false,
'S_TOPIC_UNAPPROVED'=> ($row['topic_approved']) ? false : true)
);
}
unset($topic_rows);
}
?>
|