mambax7 /
newbb5
| 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
Loading history...
|
|||
| 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 |