1 | <?php |
||
2 | // |
||
3 | // ------------------------------------------------------------------------ // |
||
4 | // XOOPS - PHP Content Management System // |
||
5 | // Copyright (c) 2000-2016 XOOPS.org // |
||
6 | // <https://xoops.org/> // |
||
7 | // ------------------------------------------------------------------------ // |
||
8 | // This program is free software; you can redistribute it and/or modify // |
||
9 | // it under the terms of the GNU General Public License as published by // |
||
10 | // the Free Software Foundation; either version 2 of the License, or // |
||
11 | // (at your option) any later version. // |
||
12 | // // |
||
13 | // You may not change or alter any portion of this comment or credits // |
||
14 | // of supporting developers from this source code or any supporting // |
||
15 | // source code which is considered copyrighted (c) material of the // |
||
16 | // original comment or credit authors. // |
||
17 | // // |
||
18 | // This program is distributed in the hope that it will be useful, // |
||
19 | // but WITHOUT ANY WARRANTY; without even the implied warranty of // |
||
20 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // |
||
21 | // GNU General Public License for more details. // |
||
22 | // // |
||
23 | // You should have received a copy of the GNU General Public License // |
||
24 | // along with this program; if not, write to the Free Software // |
||
25 | // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // |
||
26 | // ------------------------------------------------------------------------ // |
||
27 | // Author: phppp (D.J., [email protected]) // |
||
28 | // URL: https://xoops.org // |
||
29 | // Project: Article Project // |
||
30 | // ------------------------------------------------------------------------ // |
||
31 | |||
32 | use Xmf\Request; |
||
33 | use XoopsModules\Newbb; |
||
34 | |||
35 | require_once __DIR__ . '/header.php'; |
||
36 | |||
37 | $start = Request::getInt('start', 0, 'GET'); |
||
38 | $forum_id = Request::getInt('forum', 0, 'GET'); |
||
39 | $order = Request::getString('order', 'DESC', 'GET'); |
||
40 | |||
41 | $uid = Request::getInt('uid', 0, 'GET'); |
||
42 | |||
43 | $status = (Request::getString('status', '', 'GET') |
||
44 | && in_array(Request::getString('status', '', 'GET'), ['active', 'pending', 'deleted', 'new', 'all', 'digest'], true)) ? Request::getString('status', '', 'GET') : ''; |
||
45 | $mode = Request::getInt('mode', 0, 'GET'); |
||
46 | $mode = (!empty($status) && in_array($status, ['active', 'pending', 'deleted'], true)) ? 2 : $mode; |
||
47 | |||
48 | ///** @var Newbb\ForumHandler $forumHandler */ |
||
49 | //$forumHandler = Newbb\Helper::getInstance()->getHandler('Forum'); |
||
50 | ///** @var Newbb\PostHandler $postHandler */ |
||
51 | //$postHandler = Newbb\Helper::getInstance()->getHandler('Post'); |
||
52 | |||
53 | if (empty($forum_id)) { |
||
54 | $forums = $forumHandler->getByPermission(0, 'view'); |
||
55 | $accessForums = array_keys($forums); |
||
56 | $isAdmin = $GLOBALS['xoopsUserIsAdmin']; |
||
57 | } else { |
||
58 | $forumObject = $forumHandler->get($forum_id); |
||
59 | $forums[$forum_id] = $forumObject; |
||
60 | $accessForums = [$forum_id]; |
||
61 | $isAdmin = newbbIsAdmin($forumObject); |
||
62 | } |
||
63 | |||
64 | /* Only admin has access to admin mode */ |
||
65 | if (!$isAdmin && 2 === $mode) { |
||
66 | $status = in_array($status, ['active', 'pending', 'deleted'], true) ? '' : $status; |
||
67 | $mode = 0; |
||
68 | } |
||
69 | if ($mode) { |
||
70 | $_GET['viewmode'] = 'flat'; |
||
71 | } |
||
72 | //echo $mode.' - '.$status; |
||
73 | $post_perpage = $GLOBALS['xoopsModuleConfig']['posts_per_page']; |
||
74 | |||
75 | $criteria_count = new \CriteriaCompo(new \Criteria('forum_id', '(' . implode(',', $accessForums) . ')', 'IN')); |
||
76 | $criteria_post = new \CriteriaCompo(new \Criteria('p.forum_id', '(' . implode(',', $accessForums) . ')', 'IN')); |
||
77 | $criteria_post->setSort('p.post_id'); |
||
78 | $criteria_post->setOrder($order); |
||
79 | |||
80 | if (!empty($uid)) { |
||
81 | $criteria_count->add(new \Criteria('uid', $uid)); |
||
82 | $criteria_post->add(new \Criteria('p.uid', $uid)); |
||
83 | } |
||
84 | |||
85 | $join = null; |
||
86 | // START irmtfan solve the status issues and specially status = new issue |
||
87 | switch ($status) { |
||
88 | case 'pending': |
||
89 | $criteria_count->add(new \Criteria('approved', 0)); // irmtfan add new \Criteria |
||
90 | $criteria_post->add(new \Criteria('p.approved', 0)); // irmtfan add new \Criteria |
||
91 | break; |
||
92 | case 'deleted': |
||
93 | $criteria_count->add(new \Criteria('approved', -1)); // irmtfan add new \Criteria |
||
94 | $criteria_post->add(new \Criteria('p.approved', -1)); // irmtfan add new \Criteria |
||
95 | break; |
||
96 | case 'new': |
||
97 | //$criteria_status_count = new \CriteriaCompo(new \Criteria("post_time", (int)($last_visit), ">"));// irmtfan commented and removed |
||
98 | //$criteria_status_post = new \CriteriaCompo(new \Criteria("p.post_time", (int)($last_visit), ">"));// irmtfan commented and removed |
||
99 | $criteria_count->add(new \Criteria('approved', 1)); // irmtfan uncomment |
||
100 | $criteria_post->add(new \Criteria('p.approved', 1)); // irmtfan uncomment |
||
101 | // following is for 'unread' -- not finished -- irmtfan Now it is finished! |
||
102 | if (empty($GLOBALS['xoopsModuleConfig']['read_mode'])) { |
||
103 | //$criteria_status_count->add(new \Criteria('approved', 1));// irmtfan commented and removed |
||
104 | //$criteria_status_post->add(new \Criteria('p.approved', 1));// irmtfan commented and removed |
||
105 | } elseif (2 == $GLOBALS['xoopsModuleConfig']['read_mode']) { |
||
106 | // START irmtfan use read_uid to find the unread posts when the user is logged in |
||
107 | $read_uid = is_object($GLOBALS['xoopsUser']) ? $GLOBALS['xoopsUser']->getVar('uid') : 0; |
||
108 | if (!empty($read_uid)) { |
||
109 | $join = ' LEFT JOIN ' . $GLOBALS['xoopsDB']->prefix('newbb_reads_topic') . ' AS r ON r.read_item = p.topic_id AND r.uid = ' . $read_uid . ' '; // irmtfan corrected add AS |
||
110 | $criteria_status_post = new \CriteriaCompo(); // irmtfan new \Criteria |
||
111 | $criteria_status_post->add(new \Criteria('p.post_id', 'r.`post_id`', '>')); // irmtfan corrected - should use $value='r.``' to render in XOOPS/class/criteria.php |
||
112 | $criteria_status_post->add(new \Criteria('r.read_id', null, 'IS NULL'), 'OR'); // irmtfan corrected - should use "IS NULL" to render in XOOPS/class/criteria.php |
||
113 | $criteria_post->add($criteria_status_post); // irmtfan add the status criteria to post criteria - move here |
||
114 | $criteria_count = $criteria_post; // irmtfan criteria count is equal to criteria post - move here |
||
115 | } |
||
116 | |||
117 | // END irmtfan use read_uid to find the unread posts when the user is logged in |
||
118 | //$criteria_status_post->add(new \Criteria("p.approved", 1)); // irmtfan commented and removed |
||
119 | //$criteria_status_count =& $criteria_status_post; |
||
120 | } elseif (1 == $GLOBALS['xoopsModuleConfig']['read_mode']) { |
||
121 | $criteria_count->add(new \Criteria('post_time', (int)$last_visit, '>')); // irmtfan add new \Criteria |
||
122 | $criteria_post->add(new \Criteria('p.post_time', (int)$last_visit, '>')); // irmtfan add new \Criteria |
||
123 | // START irmtfan fix read_mode = 1 bugs - for all users (member and anon) |
||
124 | $topics = []; |
||
125 | $topic_lastread = newbbGetCookie('LT', true); |
||
126 | if (count($topic_lastread) > 0) { |
||
127 | foreach ($topic_lastread as $id => $time) { |
||
128 | if ($time > (int)$last_visit) { |
||
129 | $topics[] = $id; |
||
130 | } |
||
131 | } |
||
132 | } |
||
133 | if (count($topics) > 0) { |
||
134 | $criteria_count->add(new \Criteria('topic_id', '(' . implode(',', $topics) . ')', 'NOT IN')); |
||
135 | $criteria_post->add(new \Criteria('p.topic_id', '(' . implode(',', $topics) . ')', 'NOT IN')); |
||
136 | } |
||
137 | // END irmtfan fix read_mode = 1 bugs - for all users (member and anon) |
||
138 | //$criteria_status_count->add(new \Criteria("approved", 1));// irmtfan commented and removed |
||
139 | //$criteria_status_post->add(new \Criteria("p.approved", 1));// irmtfan commented and removed |
||
140 | } |
||
141 | break; |
||
142 | default: |
||
143 | $criteria_count->add(new \Criteria('approved', 1)); // irmtfan add new \Criteria |
||
144 | $criteria_post->add(new \Criteria('p.approved', 1)); // irmtfan add new \Criteria |
||
145 | break; |
||
146 | } |
||
147 | //$criteria_count->add($criteria_status_count); // irmtfan commented and removed |
||
148 | //$criteria_post->add($criteria_status_post); // irmtfan commented and removed |
||
149 | // END irmtfan solve the status issues and specially status = new issue |
||
150 | ///** @var Newbb\KarmaHandler $karmaHandler */ |
||
151 | //$karmaHandler = Newbb\Helper::getInstance()->getHandler('Karma'); |
||
152 | $user_karma = $karmaHandler->getUserKarma(); |
||
153 | |||
154 | $valid_modes = ['flat', 'compact']; |
||
155 | $viewmode_cookie = newbbGetCookie('V'); |
||
156 | |||
157 | if ('compact' === Request::getString('viewmode', '', 'GET')) { |
||
158 | newbbSetCookie('V', 'compact', $forumCookie['expire']); |
||
159 | } |
||
160 | |||
161 | $viewmode = Request::getString('viewmode', (!empty($viewmode_cookie) ? $viewmode_cookie : (@$valid_modes[$GLOBALS['xoopsModuleConfig']['view_mode'] - 1])), 'GET'); |
||
0 ignored issues
–
show
Bug
introduced
by
![]() |
|||
162 | $viewmode = in_array($viewmode, $valid_modes, true) ? $viewmode : $valid_modes[0]; |
||
163 | |||
164 | $postCount = $postHandler->getPostCount($criteria_count, $join); // irmtfan add join for read_mode = 2 |
||
165 | $posts = $postHandler->getPostsByLimit($criteria_post, $post_perpage, $start, $join); // irmtfan add join for read_mode = 2 |
||
166 | |||
167 | $poster_array = []; |
||
168 | if (count($posts) > 0) { |
||
169 | foreach (array_keys($posts) as $id) { |
||
170 | /** @var Newbb\Post[] $posts */ |
||
171 | $poster_array[$posts[$id]->getVar('uid')] = 1; |
||
172 | } |
||
173 | } |
||
174 | |||
175 | $xoops_pagetitle = $xoopsModule->getVar('name') . ' - ' . _MD_NEWBB_VIEWALLPOSTS; |
||
176 | $xoopsOption['xoops_pagetitle'] = $xoops_pagetitle; |
||
177 | $xoopsOption['template_main'] = 'newbb_viewpost.tpl'; |
||
178 | |||
179 | require_once $GLOBALS['xoops']->path('header.php'); |
||
180 | require_once __DIR__ . '/include/functions.time.php'; |
||
181 | require_once __DIR__ . '/include/functions.render.php'; |
||
182 | |||
183 | //global $xoTheme; |
||
184 | //$xoTheme->addScript('/Frameworks/textsanitizer/xoops.js'); |
||
185 | |||
186 | if (!empty($forum_id)) { |
||
187 | if (!$forumHandler->getPermission($forumObject, 'view')) { |
||
188 | redirect_header(XOOPS_URL . '/index.php', 2, _MD_NEWBB_NORIGHTTOACCESS); |
||
189 | } |
||
190 | if ($forumObject->getVar('parent_forum')) { |
||
191 | $parent_forumObject = $forumHandler->get($forumObject->getVar('parent_forum'), ['forum_name']); |
||
192 | $parentforum = [ |
||
193 | 'id' => $forumObject->getVar('parent_forum'), |
||
194 | 'name' => $parent_forumObject->getVar('forum_name'), |
||
195 | ]; |
||
196 | unset($parent_forumObject); |
||
197 | $xoopsTpl->assign_by_ref('parentforum', $parentforum); |
||
198 | } |
||
199 | $xoopsTpl->assign('forum_name', $forumObject->getVar('forum_name')); |
||
200 | $xoopsTpl->assign('forum_moderators', $forumObject->dispForumModerators()); |
||
201 | |||
202 | $xoops_pagetitle = $forumObject->getVar('forum_name') . ' - ' . _MD_NEWBB_VIEWALLPOSTS . ' [' . $xoopsModule->getVar('name') . ']'; |
||
203 | $xoopsTpl->assign('forum_id', $forumObject->getVar('forum_id')); |
||
204 | // irmtfan new method |
||
205 | if (!empty($GLOBALS['xoopsModuleConfig']['rss_enable'])) { |
||
206 | $xoopsTpl->assign('xoops_module_header', ' |
||
207 | <link rel="alternate" type="application/xml+rss" title="' . $xoopsModule->getVar('name') . '-' . $forumObject->getVar('forum_name') . '" href="' . XOOPS_URL . '/modules/' . $xoopsModule->getVar('dirname') . '/rss.php?f=' . $forum_id . '" > |
||
208 | ' . @$xoopsTpl->get_template_vars('xoops_module_header')); |
||
209 | } |
||
210 | } elseif (!empty($GLOBALS['xoopsModuleConfig']['rss_enable'])) { |
||
211 | $xoopsTpl->assign('xoops_module_header', ' |
||
212 | <link rel="alternate" type="application/xml+rss" title="' . $xoopsModule->getVar('name') . '" href="' . XOOPS_URL . '/modules/' . $xoopsModule->getVar('dirname') . '/rss.php" > |
||
213 | ' . @$xoopsTpl->get_template_vars('xoops_module_header')); |
||
214 | } |
||
215 | // irmtfan remove and move to footer.php |
||
216 | //$xoopsTpl->assign('xoops_module_header', $xoops_module_header); |
||
217 | $xoopsTpl->assign('xoops_pagetitle', $xoops_pagetitle); |
||
218 | // irmtfan - remove icon_path and use newbbDisplayImage |
||
219 | $xoopsTpl->assign('anonym_avatar', newbbDisplayImage('anonym')); |
||
220 | $userid_array = []; |
||
221 | if (count($poster_array) > 0) { |
||
222 | /** @var \XoopsMembershipHandler $memberHandler */ |
||
223 | $memberHandler = xoops_getHandler('member'); |
||
224 | $userid_array = array_keys($poster_array); |
||
225 | $user_criteria = '(' . implode(',', $userid_array) . ')'; |
||
226 | $users = $memberHandler->getUsers(new \Criteria('uid', $user_criteria, 'IN'), true); |
||
227 | } else { |
||
228 | $user_criteria = ''; |
||
229 | $users = null; |
||
230 | } |
||
231 | |||
232 | $online = []; |
||
233 | |||
234 | if ($GLOBALS['xoopsModuleConfig']['wol_enabled']) { |
||
235 | if (!empty($user_criteria)) { |
||
236 | // /** @var Newbb\OnlineHandler $onlineHandler */ |
||
237 | // $onlineHandler = Newbb\Helper::getInstance()->getHandler('Online'); |
||
238 | $onlineHandler->init($forum_id); |
||
239 | } |
||
240 | } |
||
241 | |||
242 | $viewtopic_users = []; |
||
243 | |||
244 | if (count($userid_array) > 0) { |
||
245 | // require_once $GLOBALS['xoops']->path('modules/' . $xoopsModule->getVar('dirname', 'n') . '/class/user.php'); |
||
246 | $userHandler = new Newbb\UserHandler($GLOBALS['xoopsModuleConfig']['groupbar_enabled'], $GLOBALS['xoopsModuleConfig']['wol_enabled']); |
||
247 | $userHandler->users = $users; |
||
248 | $userHandler->online = $online; |
||
249 | $viewtopic_users = $userHandler->getUsers(); |
||
250 | } |
||
251 | |||
252 | $pn = 0; |
||
253 | //$topicHandler = Newbb\Helper::getInstance()->getHandler('Topic'); |
||
254 | static $suspension = []; |
||
255 | foreach (array_keys($posts) as $id) { |
||
256 | ++$pn; |
||
257 | |||
258 | /** @var Newbb\Post $post */ |
||
259 | $post = $posts[$id]; |
||
260 | $post_title = $post->getVar('subject'); |
||
261 | |||
262 | if ($posticon = $post->getVar('icon')) { |
||
263 | $post_image = '<a name="' . $post->getVar('post_id') . '"><img src="' . XOOPS_URL . '/images/subject/' . htmlspecialchars($posticon, ENT_QUOTES | ENT_HTML5) . '" alt="" ></a>'; |
||
264 | } else { |
||
265 | $post_image = '<a name="' . $post->getVar('post_id') . '"><img src="' . XOOPS_URL . '/images/icons/no_posticon.gif" alt="" ></a>'; |
||
266 | } |
||
267 | $poster = [ |
||
268 | 'uid' => 0, |
||
269 | 'name' => $post->getVar('poster_name') ?: $myts->htmlSpecialChars($GLOBALS['xoopsConfig']['anonymous']), |
||
270 | 'link' => $post->getVar('poster_name') ?: $myts->htmlSpecialChars($GLOBALS['xoopsConfig']['anonymous']), |
||
271 | ]; |
||
272 | if ($post->getVar('uid') > 0 && isset($viewtopic_users[$post->getVar('uid')])) { |
||
273 | $poster = $viewtopic_users[$post->getVar('uid')]; |
||
274 | } |
||
275 | if ($isAdmin || $post->checkIdentity()) { |
||
276 | $post_text = $post->getVar('post_text'); |
||
277 | $post_attachment = $post->displayAttachment(); |
||
278 | } elseif ($GLOBALS['xoopsModuleConfig']['enable_karma'] && $post->getVar('post_karma') > $user_karma) { |
||
279 | $post_text = "<div class='karma'>" . sprintf(_MD_NEWBB_KARMA_REQUIREMENT, $user_karma, $post->getVar('post_karma')) . '</div>'; |
||
280 | $post_attachment = ''; |
||
281 | } elseif ($GLOBALS['xoopsModuleConfig']['allow_require_reply'] && $post->getVar('require_reply')) { |
||
282 | $post_text = "<div class='karma'>" . _MD_NEWBB_REPLY_REQUIREMENT . '</div>'; |
||
283 | $post_attachment = ''; |
||
284 | } else { |
||
285 | $post_text = $post->getVar('post_text'); |
||
286 | $post_attachment = $post->displayAttachment(); |
||
287 | } |
||
288 | |||
289 | $thread_buttons = []; |
||
290 | |||
291 | if ($GLOBALS['xoopsModuleConfig']['enable_permcheck']) { |
||
292 | if (!isset($suspension[$post->getVar('forum_id')])) { |
||
293 | // /** @var Newbb\ModerateHandler $moderateHandler */ |
||
294 | // $moderateHandler = Newbb\Helper::getInstance()->getHandler('Moderate'); |
||
295 | $suspension[$post->getVar('forum_id')] = !$moderateHandler->verifyUser(-1, '', $post->getVar('forum_id')); |
||
296 | } |
||
297 | |||
298 | if ($isAdmin |
||
299 | || (!$suspension[$post->getVar('forum_id')] && $post->checkIdentity() |
||
300 | && $post->checkTimelimit('delete_timelimit'))) { |
||
301 | $thread_buttons['delete']['image'] = newbbDisplayImage('p_delete', _DELETE); |
||
302 | $thread_buttons['delete']['link'] = XOOPS_URL . '/modules/' . $xoopsModule->getVar('dirname') . '/delete.php?forum=' . $post->getVar('forum_id') . '&topic_id=' . $post->getVar('topic_id'); |
||
303 | $thread_buttons['delete']['name'] = _DELETE; |
||
304 | } |
||
305 | if ($isAdmin |
||
306 | || !$suspension[$post->getVar('forum_id')] && $post->checkIdentity() |
||
307 | && $post->checkTimelimit('edit_timelimit')) { |
||
308 | $thread_buttons['edit']['image'] = newbbDisplayImage('p_edit', _EDIT); |
||
309 | $thread_buttons['edit']['link'] = XOOPS_URL . '/modules/' . $xoopsModule->getVar('dirname') . '/edit.php?forum=' . $post->getVar('forum_id') . '&topic_id=' . $post->getVar('topic_id'); |
||
310 | $thread_buttons['edit']['name'] = _EDIT; |
||
311 | } |
||
312 | if (is_object($GLOBALS['xoopsUser']) && !$suspension[$post->getVar('forum_id')]) { |
||
313 | $thread_buttons['reply']['image'] = newbbDisplayImage('p_reply', _MD_NEWBB_REPLY); |
||
314 | $thread_buttons['reply']['link'] = XOOPS_URL . '/modules/' . $xoopsModule->getVar('dirname') . '/reply.php?forum=' . $post->getVar('forum_id') . '&topic_id=' . $post->getVar('topic_id'); |
||
315 | $thread_buttons['reply']['name'] = _MD_NEWBB_REPLY; |
||
316 | |||
317 | $thread_buttons['quote']['image'] = newbbDisplayImage('p_quote', _MD_NEWBB_QUOTE); |
||
318 | $thread_buttons['quote']['link'] = XOOPS_URL . '/modules/' . $xoopsModule->getVar('dirname') . '/reply.php?forum=' . $post->getVar('forum_id') . '&topic_id=' . $post->getVar('topic_id') . '&quotedac=1'; |
||
319 | $thread_buttons['quote']['name'] = _MD_NEWBB_QUOTE; |
||
320 | } |
||
321 | } else { |
||
322 | $thread_buttons['delete']['image'] = newbbDisplayImage('p_delete', _DELETE); |
||
323 | $thread_buttons['delete']['link'] = XOOPS_URL . '/modules/' . $xoopsModule->getVar('dirname') . '/delete.php?forum=' . $post->getVar('forum_id') . '&topic_id=' . $post->getVar('topic_id'); |
||
324 | $thread_buttons['delete']['name'] = _DELETE; |
||
325 | $thread_buttons['edit']['image'] = newbbDisplayImage('p_edit', _EDIT); |
||
326 | $thread_buttons['edit']['link'] = XOOPS_URL . '/modules/' . $xoopsModule->getVar('dirname') . '/edit.php?forum=' . $post->getVar('forum_id') . '&topic_id=' . $post->getVar('topic_id'); |
||
327 | $thread_buttons['edit']['name'] = _EDIT; |
||
328 | $thread_buttons['reply']['image'] = newbbDisplayImage('p_reply', _MD_NEWBB_REPLY); |
||
329 | $thread_buttons['reply']['link'] = XOOPS_URL . '/modules/' . $xoopsModule->getVar('dirname') . '/reply.php?forum=' . $post->getVar('forum_id') . '&topic_id=' . $post->getVar('topic_id'); |
||
330 | $thread_buttons['reply']['name'] = _MD_NEWBB_REPLY; |
||
331 | } |
||
332 | |||
333 | if (!$isAdmin && $GLOBALS['xoopsModuleConfig']['reportmod_enabled']) { |
||
334 | $thread_buttons['report']['image'] = newbbDisplayImage('p_report', _MD_NEWBB_REPORT); |
||
335 | $thread_buttons['report']['link'] = XOOPS_URL . '/modules/' . $xoopsModule->getVar('dirname') . '/report.php?forum=' . $post->getVar('forum_id') . '&topic_id=' . $post->getVar('topic_id'); |
||
336 | $thread_buttons['report']['name'] = _MD_NEWBB_REPORT; |
||
337 | } |
||
338 | $thread_action = []; |
||
339 | |||
340 | $xoopsTpl->append('posts', [ |
||
341 | 'post_id' => $post->getVar('post_id'), |
||
342 | 'topic_id' => $post->getVar('topic_id'), |
||
343 | 'forum_id' => $post->getVar('forum_id'), |
||
344 | 'post_date' => newbbFormatTimestamp($post->getVar('post_time')), |
||
345 | 'post_image' => $post_image, |
||
346 | 'post_title' => $post_title, |
||
347 | 'post_text' => $post_text, |
||
348 | 'post_attachment' => $post_attachment, |
||
349 | 'post_edit' => $post->displayPostEdit(), |
||
350 | 'post_no' => $start + $pn, |
||
351 | 'post_signature' => $post->getVar('attachsig') ? @$poster['signature'] : '', |
||
352 | // 'poster_ip' => ($isAdmin && $GLOBALS['xoopsModuleConfig']['show_ip']) ? long2ip($post->getVar('poster_ip')) : '', |
||
353 | 'poster_ip' => ($isAdmin && $GLOBALS['xoopsModuleConfig']['show_ip']) ? $post->getVar('poster_ip') : '', |
||
354 | 'thread_action' => $thread_action, |
||
355 | 'thread_buttons' => $thread_buttons, |
||
356 | 'poster' => $poster, |
||
357 | ]); |
||
358 | |||
359 | unset($thread_buttons, $poster); |
||
360 | } |
||
361 | unset($viewtopic_users, $forums); |
||
362 | |||
363 | if (!empty($GLOBALS['xoopsModuleConfig']['show_jump'])) { |
||
364 | require_once __DIR__ . '/include/functions.forum.php'; |
||
365 | $xoopsTpl->assign('forum_jumpbox', newbbMakeJumpbox($forum_id)); |
||
366 | } |
||
367 | |||
368 | if ($postCount > $post_perpage) { |
||
369 | require_once $GLOBALS['xoops']->path('class/pagenav.php'); |
||
370 | $nav = new \XoopsPageNav($postCount, $post_perpage, $start, 'start', 'forum=' . $forum_id . '&viewmode=' . $viewmode . '&status=' . $status . '&uid=' . $uid . '&order=' . $order . '&mode=' . $mode); |
||
371 | //if (isset($GLOBALS['xoopsModuleConfig']['do_rewrite'])) $nav->url = formatURL(Request::getString('SERVER_NAME', '', 'SERVER')) . $nav->url; |
||
372 | if ('select' === $GLOBALS['xoopsModuleConfig']['pagenav_display']) { |
||
373 | $navi = $nav->renderSelect(); |
||
374 | } elseif ('image' === $GLOBALS['xoopsModuleConfig']['pagenav_display']) { |
||
375 | $navi = $nav->renderImageNav(4); |
||
376 | } else { |
||
377 | $navi = $nav->renderNav(4); |
||
378 | } |
||
379 | |||
380 | $xoopsTpl->assign('pagenav', $navi); |
||
381 | } else { |
||
382 | $xoopsTpl->assign('pagenav', ''); |
||
383 | } |
||
384 | |||
385 | $xoopsTpl->assign('lang_forum_index', sprintf(_MD_NEWBB_FORUMINDEX, htmlspecialchars($GLOBALS['xoopsConfig']['sitename'], ENT_QUOTES))); |
||
386 | |||
387 | switch ($status) { |
||
388 | case 'active': |
||
389 | $lang_title = _MD_NEWBB_VIEWALLPOSTS . ' [' . _MD_NEWBB_TYPE_ADMIN . ']'; |
||
390 | break; |
||
391 | case 'pending': |
||
392 | $lang_title = _MD_NEWBB_VIEWALLPOSTS . ' [' . _MD_NEWBB_TYPE_PENDING . ']'; |
||
393 | break; |
||
394 | case 'deleted': |
||
395 | $lang_title = _MD_NEWBB_VIEWALLPOSTS . ' [' . _MD_NEWBB_TYPE_DELETED . ']'; |
||
396 | break; |
||
397 | case 'new': |
||
398 | $lang_title = _MD_NEWBB_NEWPOSTS; |
||
399 | break; |
||
400 | default: |
||
401 | $lang_title = _MD_NEWBB_VIEWALLPOSTS; |
||
402 | break; |
||
403 | } |
||
404 | if ($uid > 0) { |
||
405 | $lang_title .= ' (' . \XoopsUser::getUnameFromId($uid) . ')'; |
||
406 | } |
||
407 | $xoopsTpl->assign('lang_title', $lang_title); |
||
408 | // irmtfan up to p_up |
||
409 | $xoopsTpl->assign('p_up', newbbDisplayImage('up', _MD_NEWBB_TOP)); |
||
410 | $xoopsTpl->assign('groupbar_enable', $GLOBALS['xoopsModuleConfig']['groupbar_enabled']); |
||
411 | $xoopsTpl->assign('anonymous_prefix', $GLOBALS['xoopsModuleConfig']['anonymous_prefix']); |
||
412 | $xoopsTpl->assign('down', newbbDisplayImage('down', _MD_NEWBB_BOTTOM)); |
||
413 | |||
414 | $all_link = XOOPS_URL . '/modules/' . $xoopsModule->getVar('dirname') . '/viewpost.php?forum=' . $forum_id . "&start=$start"; |
||
415 | $post_link = XOOPS_URL . '/modules/' . $xoopsModule->getVar('dirname') . '/viewpost.php?forum=' . $forum_id; |
||
416 | $newpost_link = XOOPS_URL . '/modules/' . $xoopsModule->getVar('dirname') . '/viewpost.php?forum=' . $forum_id . '&status=new'; |
||
417 | $digest_link = XOOPS_URL . '/modules/' . $xoopsModule->getVar('dirname') . '/viewpost.php?forum=' . $forum_id . "&start=$start&status=digest"; |
||
418 | $unreplied_link = XOOPS_URL . '/modules/' . $xoopsModule->getVar('dirname') . '/viewpost.php?forum=' . $forum_id . "&start=$start&status=unreplied"; |
||
419 | $unread_link = XOOPS_URL . '/modules/' . $xoopsModule->getVar('dirname') . '/viewpost.php?forum=' . $forum_id . "&start=$start&status=unread"; |
||
420 | |||
421 | $xoopsTpl->assign('all_link', $all_link); |
||
422 | $xoopsTpl->assign('post_link', $post_link); |
||
423 | $xoopsTpl->assign('newpost_link', $newpost_link); |
||
424 | $xoopsTpl->assign('digest_link', $digest_link); |
||
425 | $xoopsTpl->assign('unreplied_link', $unreplied_link); |
||
426 | $xoopsTpl->assign('unread_link', $unread_link); |
||
427 | |||
428 | $viewmode_options = []; |
||
429 | if ('DESC' === $order) { |
||
430 | $viewmode_options[] = [ |
||
431 | 'link' => XOOPS_URL . '/modules/' . $xoopsModule->getVar('dirname') . '/viewpost.php?viewmode=flat&order=ASC&forum=' . $forum_id, |
||
432 | 'title' => _OLDESTFIRST, |
||
433 | ]; |
||
434 | } else { |
||
435 | $viewmode_options[] = [ |
||
436 | 'link' => XOOPS_URL . '/modules/' . $xoopsModule->getVar('dirname') . '/viewpost.php?viewmode=flat&order=DESC&forum=' . $forum_id, |
||
437 | 'title' => _NEWESTFIRST, |
||
438 | ]; |
||
439 | } |
||
440 | |||
441 | //$xoopsTpl->assign('viewmode_compact', ($viewmode=="compact")?1:0); |
||
442 | $xoopsTpl->assign_by_ref('viewmode_options', $viewmode_options); |
||
443 | $xoopsTpl->assign('menumode', $menumode); |
||
444 | $xoopsTpl->assign('menumode_other', $menumode_other); |
||
445 | |||
446 | $xoopsTpl->assign('viewer_level', $isAdmin ? 2 : is_object($GLOBALS['xoopsUser'])); |
||
447 | $xoopsTpl->assign('uid', $uid); |
||
448 | $xoopsTpl->assign('mode', $mode); |
||
449 | $xoopsTpl->assign('status', $status); |
||
450 | // irmtfan move to footer.php |
||
451 | require_once __DIR__ . '/footer.php'; |
||
452 | require_once $GLOBALS['xoops']->path('footer.php'); |
||
453 |