Passed
Push — master ( c48d79...0ef847 )
by Michael
05:17
created

viewpost.php (1 issue)

Labels
Severity
1
<?php
2
/*
3
 * You may not change or alter any portion of this comment or credits
4
 * of supporting developers from this source code or any supporting source code
5
 * which is considered copyrighted (c) material of the original comment or credit authors.
6
 *
7
 * This program is distributed in the hope that it will be useful,
8
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
9
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
10
 */
11
//  ------------------------------------------------------------------------ //
12
//  Author: phppp (D.J., [email protected])                                  //
13
//  URL: https://xoops.org                                                    //
14
//  Project: Article Project                                                 //
15
//  ------------------------------------------------------------------------ //
16
17
use Xmf\Request;
18
use XoopsModules\Newbb\{
19
    UserHandler,
20
    Post,
21
    OnlineHandler,
22
    ModerateHandler
23
};
24
/** @var Post[] $posts */
25
/** @var OnlineHandler $onlineHandler */
26
/** @var Post $post */
27
/** @var ModerateHandler $moderateHandler */
28
29
require_once __DIR__ . '/header.php';
30
31
$start    = Request::getInt('start', 0, 'GET');
32
$forum_id = Request::getInt('forum', 0, 'GET');
33
$order    = Request::getString('order', 'DESC', 'GET');
34
35
$uid = Request::getInt('uid', 0, 'GET');
36
37
$status = (Request::getString('status', '', 'GET')
38
           && in_array(Request::getString('status', '', 'GET'), ['active', 'pending', 'deleted', 'new', 'all', 'digest'])) ? Request::getString('status', '', 'GET') : '';
39
$mode   = Request::getInt('mode', 0, 'GET');
40
$mode   = (!empty($status) && in_array($status, ['active', 'pending', 'deleted'])) ? 2 : $mode;
41
42
///** @var Newbb\ForumHandler $forumHandler */
43
//$forumHandler = \XoopsModules\Newbb\Helper::getInstance()->getHandler('Forum');
44
///** @var Newbb\PostHandler $postHandler */
45
//$postHandler = \XoopsModules\Newbb\Helper::getInstance()->getHandler('Post');
46
47
if (empty($forum_id)) {
48
    $forums       = $forumHandler->getByPermission(0, 'view');
49
    $accessForums = array_keys($forums);
50
    $isAdmin      = $GLOBALS['xoopsUserIsAdmin'];
51
} else {
52
    $forumObject       = $forumHandler->get($forum_id);
53
    $forums[$forum_id] = $forumObject;
54
    $accessForums      = [$forum_id];
55
    $isAdmin           = newbbIsAdmin($forumObject);
56
}
57
58
/* Only admin has access to admin mode */
59
if (!$isAdmin && 2 === $mode) {
60
    $status = in_array($status, ['active', 'pending', 'deleted']) ? '' : $status;
61
    $mode   = 0;
62
}
63
if ($mode) {
64
    $_GET['viewmode'] = 'flat';
65
}
66
//echo $mode.' - '.$status;
67
$post_perpage = $GLOBALS['xoopsModuleConfig']['posts_per_page'];
68
69
$criteria_count = new \CriteriaCompo(new \Criteria('forum_id', '(' . implode(',', $accessForums) . ')', 'IN'));
70
$criteria_post  = new \CriteriaCompo(new \Criteria('p.forum_id', '(' . implode(',', $accessForums) . ')', 'IN'));
71
$criteria_post->setSort('p.post_id');
72
$criteria_post->setOrder($order);
73
74
if (!empty($uid)) {
75
    $criteria_count->add(new \Criteria('uid', $uid));
76
    $criteria_post->add(new \Criteria('p.uid', $uid));
77
}
78
79
$join = null;
80
// START irmtfan solve the status issues and specially status = new issue
81
switch ($status) {
82
    case 'pending':
83
        $criteria_count->add(new \Criteria('approved', 0)); // irmtfan add new \Criteria
84
        $criteria_post->add(new \Criteria('p.approved', 0)); // irmtfan add new \Criteria
85
        break;
86
    case 'deleted':
87
        $criteria_count->add(new \Criteria('approved', -1)); // irmtfan add new \Criteria
88
        $criteria_post->add(new \Criteria('p.approved', -1)); // irmtfan add new \Criteria
89
        break;
90
    case 'new':
91
        //$criteria_status_count = new \CriteriaCompo(new \Criteria("post_time", (int)($last_visit), ">"));// irmtfan commented and removed
92
        //$criteria_status_post = new \CriteriaCompo(new \Criteria("p.post_time", (int)($last_visit), ">"));// irmtfan commented and removed
93
        $criteria_count->add(new \Criteria('approved', 1)); // irmtfan uncomment
94
        $criteria_post->add(new \Criteria('p.approved', 1)); // irmtfan uncomment
95
        // following is for 'unread' -- not finished -- irmtfan Now it is finished!
96
        if (empty($GLOBALS['xoopsModuleConfig']['read_mode'])) {
97
            //$criteria_status_count->add(new \Criteria('approved', 1));// irmtfan commented and removed
98
            //$criteria_status_post->add(new \Criteria('p.approved', 1));// irmtfan commented and removed
99
        } elseif (2 == $GLOBALS['xoopsModuleConfig']['read_mode']) {
100
            // START irmtfan use read_uid to find the unread posts when the user is logged in
101
            $read_uid = is_object($GLOBALS['xoopsUser']) ? $GLOBALS['xoopsUser']->getVar('uid') : 0;
102
            if (!empty($read_uid)) {
103
                $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
104
                $criteria_status_post = new \CriteriaCompo(); // irmtfan new \Criteria
105
                $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
106
                $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
107
                $criteria_post->add($criteria_status_post); // irmtfan add the status criteria to post criteria - move here
108
                $criteria_count = $criteria_post; // irmtfan criteria count is equal to criteria post - move here
109
            }
110
111
            // END irmtfan use read_uid to find the unread posts when the user is logged in
112
            //$criteria_status_post->add(new \Criteria("p.approved", 1)); // irmtfan commented and removed
113
            //$criteria_status_count =& $criteria_status_post;
114
        } elseif (1 == $GLOBALS['xoopsModuleConfig']['read_mode']) {
115
            $criteria_count->add(new \Criteria('post_time', (int)$last_visit, '>')); // irmtfan add new \Criteria
116
            $criteria_post->add(new \Criteria('p.post_time', (int)$last_visit, '>')); // irmtfan add new \Criteria
117
            // START irmtfan fix read_mode = 1 bugs - for all users (member and anon)
118
            $topics         = [];
119
            $topic_lastread = newbbGetCookie('LT', true);
120
            if (count($topic_lastread) > 0) {
121
                foreach ($topic_lastread as $id => $time) {
122
                    if ($time > (int)$last_visit) {
123
                        $topics[] = $id;
124
                    }
125
                }
126
            }
127
            if (count($topics) > 0) {
128
                $criteria_count->add(new \Criteria('topic_id', '(' . implode(',', $topics) . ')', 'NOT IN'));
129
                $criteria_post->add(new \Criteria('p.topic_id', '(' . implode(',', $topics) . ')', 'NOT IN'));
130
            }
131
            // END irmtfan fix read_mode = 1 bugs - for all users (member and anon)
132
            //$criteria_status_count->add(new \Criteria("approved", 1));// irmtfan commented and removed
133
            //$criteria_status_post->add(new \Criteria("p.approved", 1));// irmtfan commented and removed
134
        }
135
        break;
136
    default:
137
        $criteria_count->add(new \Criteria('approved', 1)); // irmtfan add new \Criteria
138
        $criteria_post->add(new \Criteria('p.approved', 1)); // irmtfan add new \Criteria
139
        break;
140
}
141
//$criteria_count->add($criteria_status_count); // irmtfan commented and removed
142
//$criteria_post->add($criteria_status_post); // irmtfan commented and removed
143
// END irmtfan solve the status issues and specially status = new issue
144
///** @var Newbb\KarmaHandler $karmaHandler */
145
//$karmaHandler = \XoopsModules\Newbb\Helper::getInstance()->getHandler('Karma');
146
$user_karma = $karmaHandler->getUserKarma();
147
148
$valid_modes     = ['flat', 'compact'];
149
$viewmode_cookie = newbbGetCookie('V');
150
151
if ('compact' === Request::getString('viewmode', '', 'GET')) {
152
    newbbSetCookie('V', 'compact', $forumCookie['expire']);
153
}
154
155
$viewmode = Request::getString('viewmode', (!empty($viewmode_cookie) ? $viewmode_cookie : (@$valid_modes[$GLOBALS['xoopsModuleConfig']['view_mode'] - 1])), 'GET');
156
$viewmode = in_array($viewmode, $valid_modes) ? $viewmode : $valid_modes[0];
157
158
$postCount = $postHandler->getPostCount($criteria_count, $join); // irmtfan add join for read_mode = 2
159
$posts     = $postHandler->getPostsByLimit($criteria_post, $post_perpage, $start, $join); // irmtfan add join for read_mode = 2
160
161
$poster_array = [];
162
if (count($posts) > 0) {
163
    foreach (array_keys($posts) as $id) {
164
        $poster_array[$posts[$id]->getVar('uid')] = 1;
165
    }
166
}
167
168
$xoops_pagetitle                = $xoopsModule->getVar('name') . ' - ' . _MD_NEWBB_VIEWALLPOSTS;
169
$xoopsOption['xoops_pagetitle'] = $xoops_pagetitle;
170
$xoopsOption['template_main']   = 'newbb_viewpost.tpl';
171
172
require_once $GLOBALS['xoops']->path('header.php');
173
require_once __DIR__ . '/include/functions.time.php';
174
require_once __DIR__ . '/include/functions.render.php';
175
176
//global $xoTheme;
177
//$xoTheme->addScript('/Frameworks/textsanitizer/xoops.js');
178
179
if (!empty($forum_id)) {
180
    if (!$forumHandler->getPermission($forumObject, 'view')) {
181
        redirect_header(XOOPS_URL . '/index.php', 2, _MD_NEWBB_NORIGHTTOACCESS);
182
    }
183
    if ($forumObject->getVar('parent_forum')) {
184
        $parent_forumObject = $forumHandler->get($forumObject->getVar('parent_forum'), ['forum_name']);
185
        $parentforum        = [
186
            'id'   => $forumObject->getVar('parent_forum'),
187
            'name' => $parent_forumObject->getVar('forum_name'),
188
        ];
189
        unset($parent_forumObject);
190
        $xoopsTpl->assign_by_ref('parentforum', $parentforum);
191
    }
192
    $xoopsTpl->assign('forum_name', $forumObject->getVar('forum_name'));
193
    $xoopsTpl->assign('forum_moderators', $forumObject->dispForumModerators());
194
195
    $xoops_pagetitle = $forumObject->getVar('forum_name') . ' - ' . _MD_NEWBB_VIEWALLPOSTS . ' [' . $xoopsModule->getVar('name') . ']';
196
    $xoopsTpl->assign('forum_id', $forumObject->getVar('forum_id'));
197
    // irmtfan new method
198
    if (!empty($GLOBALS['xoopsModuleConfig']['rss_enable'])) {
199
        $xoopsTpl->assign(
200
            'xoops_module_header',
201
            '
202
            <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 . '" >
203
            ' . @$xoopsTpl->get_template_vars('xoops_module_header')
204
        );
205
    }
206
} elseif (!empty($GLOBALS['xoopsModuleConfig']['rss_enable'])) {
207
    $xoopsTpl->assign(
208
        'xoops_module_header',
209
        '
210
        <link rel="alternate" type="application/xml+rss" title="' . $xoopsModule->getVar('name') . '" href="' . XOOPS_URL . '/modules/' . $xoopsModule->getVar('dirname') . '/rss.php" >
211
    ' . @$xoopsTpl->get_template_vars('xoops_module_header')
212
    );
213
}
214
// irmtfan remove and move to footer.php
215
//$xoopsTpl->assign('xoops_module_header', $xoops_module_header);
216
$xoopsTpl->assign('xoops_pagetitle', $xoops_pagetitle);
217
// irmtfan - remove icon_path and use newbbDisplayImage
218
$xoopsTpl->assign('anonym_avatar', newbbDisplayImage('anonym'));
219
$userid_array = [];
220
if (count($poster_array) > 0) {
221
    /** @var \XoopsMemberHandler $memberHandler */
222
    $memberHandler = xoops_getHandler('member');
223
    $userid_array  = array_keys($poster_array);
224
    $user_criteria = '(' . implode(',', $userid_array) . ')';
225
    $users         = $memberHandler->getUsers(new \Criteria('uid', $user_criteria, 'IN'), true);
226
} else {
227
    $user_criteria = '';
228
    $users         = null;
229
}
230
231
$online = [];
232
233
if ($GLOBALS['xoopsModuleConfig']['wol_enabled']) {
234
    if (!empty($user_criteria)) {
235
        //        $onlineHandler = \XoopsModules\Newbb\Helper::getInstance()->getHandler('Online');
236
        $onlineHandler->init($forum_id);
237
    }
238
}
239
240
$viewtopic_users = [];
241
242
if (count($userid_array) > 0) {
243
    //    require_once $GLOBALS['xoops']->path('modules/' . $xoopsModule->getVar('dirname', 'n') . '/class/user.php');
244
    $userHandler         = new UserHandler($GLOBALS['xoopsModuleConfig']['groupbar_enabled'], $GLOBALS['xoopsModuleConfig']['wol_enabled']);
245
    $userHandler->users  = $users;
246
    $userHandler->online = $online;
0 ignored issues
show
The property online does not seem to exist on XoopsModules\Newbb\UserHandler.
Loading history...
247
    $viewtopic_users     = $userHandler->getUsers();
248
}
249
250
$pn = 0;
251
//$topicHandler = \XoopsModules\Newbb\Helper::getInstance()->getHandler('Topic');
252
static $suspension = [];
253
foreach (array_keys($posts) as $id) {
254
    ++$pn;
255
256
    $post       = $posts[$id];
257
    $post_title = $post->getVar('subject');
258
259
    $posticon = $post->getVar('icon');
260
    if ($posticon) {
261
        $post_image = '<a name="' . $post->getVar('post_id') . '"><img src="' . XOOPS_URL . '/images/subject/' . htmlspecialchars($posticon, ENT_QUOTES | ENT_HTML5) . '" alt="" ></a>';
262
    } else {
263
        $post_image = '<a name="' . $post->getVar('post_id') . '"><img src="' . XOOPS_URL . '/images/icons/no_posticon.gif" alt="" ></a>';
264
    }
265
    $poster = [
266
        'uid'  => 0,
267
        'name' => $post->getVar('poster_name') ?: htmlspecialchars($GLOBALS['xoopsConfig']['anonymous'], ENT_QUOTES | ENT_HTML5),
268
        'link' => $post->getVar('poster_name') ?: htmlspecialchars($GLOBALS['xoopsConfig']['anonymous'], ENT_QUOTES | ENT_HTML5),
269
    ];
270
    if ($post->getVar('uid') > 0 && isset($viewtopic_users[$post->getVar('uid')])) {
271
        $poster = $viewtopic_users[$post->getVar('uid')];
272
    }
273
    if ($isAdmin || $post->checkIdentity()) {
274
        $post_text       = $post->getVar('post_text');
275
        $post_attachment = $post->displayAttachment();
276
    } elseif ($GLOBALS['xoopsModuleConfig']['enable_karma'] && $post->getVar('post_karma') > $user_karma) {
277
        $post_text       = "<div class='karma'>" . sprintf(_MD_NEWBB_KARMA_REQUIREMENT, $user_karma, $post->getVar('post_karma')) . '</div>';
278
        $post_attachment = '';
279
    } elseif ($GLOBALS['xoopsModuleConfig']['allow_require_reply'] && $post->getVar('require_reply')) {
280
        $post_text       = "<div class='karma'>" . _MD_NEWBB_REPLY_REQUIREMENT . '</div>';
281
        $post_attachment = '';
282
    } else {
283
        $post_text       = $post->getVar('post_text');
284
        $post_attachment = $post->displayAttachment();
285
    }
286
287
    $thread_buttons = [];
288
289
    if ($GLOBALS['xoopsModuleConfig']['enable_permcheck']) {
290
        if (!isset($suspension[$post->getVar('forum_id')])) {
291
            //            $moderateHandler                       = \XoopsModules\Newbb\Helper::getInstance()->getHandler('Moderate');
292
            $suspension[$post->getVar('forum_id')] = !$moderateHandler->verifyUser(-1, '', $post->getVar('forum_id'));
293
        }
294
295
        if ($isAdmin
296
            || (!$suspension[$post->getVar('forum_id')] && $post->checkIdentity()
297
                && $post->checkTimelimit('delete_timelimit'))) {
298
            $thread_buttons['delete']['image'] = newbbDisplayImage('p_delete', _DELETE);
299
            $thread_buttons['delete']['link']  = XOOPS_URL . '/modules/' . $xoopsModule->getVar('dirname') . '/delete.php?forum=' . $post->getVar('forum_id') . '&amp;topic_id=' . $post->getVar('topic_id');
300
            $thread_buttons['delete']['name']  = _DELETE;
301
        }
302
        if ($isAdmin
303
            || !$suspension[$post->getVar('forum_id')] && $post->checkIdentity()
304
               && $post->checkTimelimit('edit_timelimit')) {
305
            $thread_buttons['edit']['image'] = newbbDisplayImage('p_edit', _EDIT);
306
            $thread_buttons['edit']['link']  = XOOPS_URL . '/modules/' . $xoopsModule->getVar('dirname') . '/edit.php?forum=' . $post->getVar('forum_id') . '&amp;topic_id=' . $post->getVar('topic_id');
307
            $thread_buttons['edit']['name']  = _EDIT;
308
        }
309
        if (is_object($GLOBALS['xoopsUser']) && !$suspension[$post->getVar('forum_id')]) {
310
            $thread_buttons['reply']['image'] = newbbDisplayImage('p_reply', _MD_NEWBB_REPLY);
311
            $thread_buttons['reply']['link']  = XOOPS_URL . '/modules/' . $xoopsModule->getVar('dirname') . '/reply.php?forum=' . $post->getVar('forum_id') . '&amp;topic_id=' . $post->getVar('topic_id');
312
            $thread_buttons['reply']['name']  = _MD_NEWBB_REPLY;
313
314
            $thread_buttons['quote']['image'] = newbbDisplayImage('p_quote', _MD_NEWBB_QUOTE);
315
            $thread_buttons['quote']['link']  = XOOPS_URL . '/modules/' . $xoopsModule->getVar('dirname') . '/reply.php?forum=' . $post->getVar('forum_id') . '&amp;topic_id=' . $post->getVar('topic_id') . '&amp;quotedac=1';
316
            $thread_buttons['quote']['name']  = _MD_NEWBB_QUOTE;
317
        }
318
    } else {
319
        $thread_buttons['delete']['image'] = newbbDisplayImage('p_delete', _DELETE);
320
        $thread_buttons['delete']['link']  = XOOPS_URL . '/modules/' . $xoopsModule->getVar('dirname') . '/delete.php?forum=' . $post->getVar('forum_id') . '&amp;topic_id=' . $post->getVar('topic_id');
321
        $thread_buttons['delete']['name']  = _DELETE;
322
        $thread_buttons['edit']['image']   = newbbDisplayImage('p_edit', _EDIT);
323
        $thread_buttons['edit']['link']    = XOOPS_URL . '/modules/' . $xoopsModule->getVar('dirname') . '/edit.php?forum=' . $post->getVar('forum_id') . '&amp;topic_id=' . $post->getVar('topic_id');
324
        $thread_buttons['edit']['name']    = _EDIT;
325
        $thread_buttons['reply']['image']  = newbbDisplayImage('p_reply', _MD_NEWBB_REPLY);
326
        $thread_buttons['reply']['link']   = XOOPS_URL . '/modules/' . $xoopsModule->getVar('dirname') . '/reply.php?forum=' . $post->getVar('forum_id') . '&amp;topic_id=' . $post->getVar('topic_id');
327
        $thread_buttons['reply']['name']   = _MD_NEWBB_REPLY;
328
    }
329
330
    if (!$isAdmin && $GLOBALS['xoopsModuleConfig']['reportmod_enabled']) {
331
        $thread_buttons['report']['image'] = newbbDisplayImage('p_report', _MD_NEWBB_REPORT);
332
        $thread_buttons['report']['link']  = XOOPS_URL . '/modules/' . $xoopsModule->getVar('dirname') . '/report.php?forum=' . $post->getVar('forum_id') . '&amp;topic_id=' . $post->getVar('topic_id');
333
        $thread_buttons['report']['name']  = _MD_NEWBB_REPORT;
334
    }
335
    $thread_action = [];
336
337
    $xoopsTpl->append(
338
        'posts',
339
        [
340
            'post_id'         => $post->getVar('post_id'),
341
            'topic_id'        => $post->getVar('topic_id'),
342
            'forum_id'        => $post->getVar('forum_id'),
343
            'post_date'       => newbbFormatTimestamp($post->getVar('post_time')),
344
            'post_image'      => $post_image,
345
            'post_title'      => $post_title,
346
            'post_text'       => $post_text,
347
            'post_attachment' => $post_attachment,
348
            'post_edit'       => $post->displayPostEdit(),
349
            'post_no'         => $start + $pn,
350
            'post_signature'  => $post->getVar('attachsig') ? @$poster['signature'] : '',
351
            //                                 'poster_ip'       => ($isAdmin && $GLOBALS['xoopsModuleConfig']['show_ip']) ? long2ip($post->getVar('poster_ip')) : '',
352
            'poster_ip'       => ($isAdmin && $GLOBALS['xoopsModuleConfig']['show_ip']) ? $post->getVar('poster_ip') : '',
353
            'thread_action'   => $thread_action,
354
            'thread_buttons'  => $thread_buttons,
355
            'poster'          => $poster,
356
        ]
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 . '&amp;viewmode=' . $viewmode . '&amp;status=' . $status . '&amp;uid=' . $uid . '&amp;order=' . $order . '&amp;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 . "&amp;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 . '&amp;status=new';
417
$digest_link    = XOOPS_URL . '/modules/' . $xoopsModule->getVar('dirname') . '/viewpost.php?forum=' . $forum_id . "&amp;start=$start&amp;status=digest";
418
$unreplied_link = XOOPS_URL . '/modules/' . $xoopsModule->getVar('dirname') . '/viewpost.php?forum=' . $forum_id . "&amp;start=$start&amp;status=unreplied";
419
$unread_link    = XOOPS_URL . '/modules/' . $xoopsModule->getVar('dirname') . '/viewpost.php?forum=' . $forum_id . "&amp;start=$start&amp;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&amp;order=ASC&amp;forum=' . $forum_id,
432
        'title' => _OLDESTFIRST,
433
    ];
434
} else {
435
    $viewmode_options[] = [
436
        'link'  => XOOPS_URL . '/modules/' . $xoopsModule->getVar('dirname') . '/viewpost.php?viewmode=flat&amp;order=DESC&amp;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