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); |
||||||
0 ignored issues
–
show
The method
getUsers() does not exist on XoopsMembershipHandler . Did you maybe mean getUsersByGroup() ?
(
Ignorable by Annotation
)
If this is a false-positive, you can also ignore this issue in your code via the
This check looks for calls to methods that do not seem to exist on a given type. It looks for the method on the type itself as well as in inherited classes or implemented interfaces. This is most likely a typographical error or the method has been renamed. ![]() |
|||||||
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; |
||||||
0 ignored issues
–
show
|
|||||||
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 |