Completed
Push — master ( 249590...ebae0d )
by Michael
05:58
created

viewtopic.php (1 issue)

Upgrade to new PHP Analysis Engine

These results are based on our legacy PHP analysis, consider migrating to our new PHP analysis engine instead. Learn more

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
// irmtfan enhance include
32
33
use Xmf\Request;
34
use XoopsModules\Newbb;
35
use XoopsModules\Xoopspoll;
36
37
include_once __DIR__ . '/header.php';
38
$xoopsLogger->startTime('newBB_viewtopic');
39
include_once __DIR__ . '/include/functions.read.php';
40
include_once __DIR__ . '/include/functions.render.php';
41
xoops_loadLanguage('user');
42
43
/*Build the page query*/
44
$query_vars  = ['post_id', 'topic_id', 'status', 'order', 'start', 'move', 'mode'];
45
$query_array = [];
46
foreach ($query_vars as $var) {
47
    if (Request::getString($var, '', 'GET')) {
48
        $query_array[$var] = "{$var}=" . Request::getString($var, '', 'GET');
49
    }
50
}
51
$page_query = htmlspecialchars(implode('&', array_values($query_array)));
52
unset($query_array);
53
54
$forum_id = Request::getInt('forum', 0, 'GET');
55
$read     = (Request::getString('read', '', 'GET')
56
             && 'new' === Request::getString('read', '', 'GET')) ? Request::getString('read', '', 'GET') : '';
57
$topic_id = Request::getInt('topic_id', 0, 'GET'); // isset($_GET['topic_id']) ? (int)($_GET['topic_id']) : 0;
58
$post_id  = Request::getInt('post_id', 0, 'GET'); // !empty($_GET['post_id']) ? (int)($_GET['post_id']) : 0;
59
$move     = strtolower(Request::getString('move', '', 'GET')); // isset($_GET['move']) ? strtolower($_GET['move']) : '';
60
$start    = Request::getInt('start', 0, 'GET'); // !empty($_GET['start']) ? (int)($_GET['start']) : 0;
61
$status   = (Request::getString('status', '', 'GET')
62
             && in_array(Request::getString('status', '', 'GET'), ['active', 'pending', 'deleted'], true)) ? Request::getString('status', '', 'GET') : '';
63
$mode     = Request::getInt('mode', (!empty($status) ? 2 : 0), 'GET'); // !empty($_GET['mode']) ? (int)($_GET['mode']) : (!empty($status) ? 2 : 0);
64
$order    = (Request::getString('order', '', 'GET')
65
             && in_array(Request::getString('order', '', 'GET'), ['ASC', 'DESC'], true)) ? Request::getString('order', '', 'GET') : '';
66
67
if ('' === $order) {
68
    if (is_object($GLOBALS['xoopsUser']) && $GLOBALS['xoopsUser']->isActive()) {
69
        $order = (1 == $GLOBALS['xoopsUser']->getVar('uorder')) ? 'DESC' : 'ASC';
70
    } else {
71
        $order = (1 == $GLOBALS['xoopsConfig']['com_order']) ? 'DESC' : 'ASC';
72
    }
73
}
74
75 View Code Duplication
if (!$topic_id && !$post_id) {
76
    $redirect = empty($forum_id) ? XOOPS_URL . '/modules/' . $xoopsModule->getVar('dirname') . '/index.php' : XOOPS_URL . '/modules/' . $xoopsModule->getVar('dirname') . "/viewforum.php?forum={$forum_id}";
77
    redirect_header($redirect, 2, _MD_NEWBB_ERRORTOPIC);
78
}
79
80
///** @var Newbb\TopicHandler $topicHandler */
81
//$topicHandler = Newbb\Helper::getInstance()->getHandler('Topic');
82
if (!empty($post_id)) {
83
    $topicObject = $topicHandler->getByPost($post_id);
84
    $topic_id    = $topicObject->getVar('topic_id');
85
} elseif (!empty($move)) {
86
    $topicObject = $topicHandler->getByMove($topic_id, ('prev' === $move) ? -1 : 1, $forum_id);
87
    $topic_id    = $topicObject->getVar('topic_id');
88
} else {
89
    $topicObject = $topicHandler->get($topic_id);
90
}
91
92 View Code Duplication
if (!is_object($topicObject) || !$topic_id = $topicObject->getVar('topic_id')) {
93
    $redirect = empty($forum_id) ? XOOPS_URL . '/modules/' . $xoopsModule->getVar('dirname') . '/index.php' : XOOPS_URL . '/modules/' . $xoopsModule->getVar('dirname') . "/viewforum.php?forum={$forum_id}";
94
    redirect_header($redirect, 2, _MD_NEWBB_ERRORTOPIC);
95
}
96
$forum_id = $topicObject->getVar('forum_id');
97
///** @var Newbb\ForumHandler $forumHandler */
98
//$forumHandler = Newbb\Helper::getInstance()->getHandler('Forum');
99
$forumObject = $forumHandler->get($forum_id);
100
101
$isAdmin = newbbIsAdmin($forumObject);
102
103
if ((!$isAdmin && $topicObject->getVar('approved') < 0) || (!$forumHandler->getPermission($forumObject))
104
    || (!$topicHandler->getPermission($forumObject, $topicObject->getVar('topic_status'), 'view'))) {
105
    redirect_header(XOOPS_URL . '/modules/' . $xoopsModule->getVar('dirname') . '/viewforum.php?forum=' . $forum_id, 2, _MD_NEWBB_NORIGHTTOVIEW);
106
}
107
108
// START irmtfan - find if topic is read or unread - for all users (member and anon)
109
$topic_is_unread = true;
110
/* if $GLOBALS['xoopsModuleConfig']["read_mode"] === 0 ||
111
 * never read && $GLOBALS['xoopsModuleConfig']["read_mode"] === 1 ||
112
 * never read && $GLOBALS['xoopsModuleConfig']["read_mode"] === 2 ||
113
 * => $topic_last_post_time_or_id_read = NULL
114
 * if !$GLOBALS['xoopsUser'] && $GLOBALS['xoopsModuleConfig']["read_mode"] === 2
115
 * => $topic_last_post_time_or_id_read = false
116
 * if !$GLOBALS['xoopsUser'] && $GLOBALS['xoopsModuleConfig']["read_mode"] === 1
117
 * => $topic_last_post_time_or_id_read = lastview(newbb_IP{ip}LT)
118
*/
119
$topic_last_post_time_or_id_read = newbbGetRead('topic', $topic_id);
120
if (!empty($topic_last_post_time_or_id_read)) {
121
    if (1 == $GLOBALS['xoopsModuleConfig']['read_mode']) {
122
        //        $postHandler     = Newbb\Helper::getInstance()->getHandler('Post');
123
        $postObject      = $postHandler->get($topicObject->getVar('topic_last_post_id'));
124
        $topic_is_unread = ($topic_last_post_time_or_id_read < $postObject->getVar('post_time'));
125
    }
126
    if (2 == $GLOBALS['xoopsModuleConfig']['read_mode']) {
127
        $topic_is_unread = ($topic_last_post_time_or_id_read < $topicObject->getVar('topic_last_post_id'));
128
        // hack jump to last post read if post_id is empty - is there any better way?
129
        if (empty($post_id) && $topic_is_unread
130
            && !empty($GLOBALS['xoopsModuleConfig']['jump_to_topic_last_post_read_enabled'])) {
131
            header('Location: ' . Request::getString('REQUEST_URI', '', 'SERVER') . '&post_id=' . $topic_last_post_time_or_id_read);
132
        }
133
    }
134
}
135
// END irmtfan - find if topic is read or unread - for all users (member and anon)
136
137
/* Only admin has access to admin mode */
138
if (!$isAdmin) {
139
    $status = '';
140
    $mode   = 0;
141
}
142
143
if (!empty($GLOBALS['xoopsModuleConfig']['enable_karma'])) {
144
    //    /** @var Newbb\KarmaHandler $karmaHandler */
145
    //    $karmaHandler = Newbb\Helper::getInstance()->getHandler('Karma');
146
    $user_karma = $karmaHandler->getUserKarma();
147
}
148
149
//$viewmode = "flat";
150
151
$total_posts = $topicHandler->getPostCount($topicObject, $status);
152
$postsArray  = [];
153
$postsArray  = $topicHandler->getAllPosts($topicObject, $order, $GLOBALS['xoopsModuleConfig']['posts_per_page'], $start, $post_id, $status);
154
155
//irmtfan - increment topic_views only if the topic is unread
156
if ($topic_is_unread) {
157
    $topicObject->incrementCounter();
158
}
159
newbbSetRead('topic', $topic_id, $topicObject->getVar('topic_last_post_id'));
160
161
$GLOBALS['xoopsOption']['template_main'] = 'newbb_viewtopic.tpl';
162
// irmtfan remove and move to footer.php
163
//$xoopsOption['xoops_module_header']= $xoops_module_header;
164
// irmtfan include header.php after defining $xoopsOption['template_main']
165
include_once $GLOBALS['xoops']->path('header.php');
166
//$xoopsTpl->assign('xoops_module_header', $xoops_module_header);
167
// irmtfan new method
168 View Code Duplication
if (!empty($GLOBALS['xoopsModuleConfig']['rss_enable'])) {
169
    $xoopsTpl->assign('xoops_module_header', '
170
    <link rel="alternate" type="application/rss+xml" title="' . $xoopsModule->getVar('name') . '-' . $forumObject->getVar('forum_name') . '" href="' . XOOPS_URL . '/modules/' . $xoopsModule->getVar('dirname') . '/rss.php?f=' . $forumObject->getVar('forum_id') . '" />
171
    ' . @$xoopsTpl->get_template_vars('xoops_module_header'));
172
}
173
174
if ($GLOBALS['xoopsModuleConfig']['wol_enabled']) {
175
    /** @var Newbb\OnlineHandler $onlineHandler */
176
    $onlineHandler = Newbb\Helper::getInstance()->getHandler('Online');
177
    $onlineHandler->init($forumObject, $topicObject);
178
    $xoopsTpl->assign('online', $onlineHandler->showOnline());
179
}
180
$xoopsTpl->assign('parentforum', $forumHandler->getParents($forumObject));
181
// irmtfan - remove icon_path and use newbbDisplayImage
182
$xoopsTpl->assign('anonym_avatar', newbbDisplayImage('anonym'));
183
184
// START irmtfan improve infobox
185
$infobox         = [];
186
$infobox['show'] = (int)$GLOBALS['xoopsModuleConfig']['show_infobox']; //4.05
187
// irmtfan removed then define after array
188
//$xoopsTpl->assign('infobox', $infobox); //4.05
189
$iconHandler = newbbGetIconHandler(); // can be use in the follwing codes in this file
190
191
if ($infobox['show'] > 0) {
192
    // irmtfan - remove icon_path and use newbbDisplayImage
193
    $infobox['icon'] = [
194
        'expand'   => $iconHandler->getImageSource('less'),
195
        'collapse' => $iconHandler->getImageSource('more')
196
    ];
197
    if (1 == $infobox['show']) {
198
        $infobox['style'] = 'none';        //irmtfan move semicolon
199
        $infobox['alt']   = _MD_NEWBB_SEEUSERDATA;
200
        $infobox['src']   = 'more';
201
    } else {
202
        $infobox['style'] = 'block';        //irmtfan move semicolon
203
        $infobox['alt']   = _MD_NEWBB_HIDEUSERDATA;
204
        $infobox['src']   = 'less';
205
    }
206
    $infobox['displayImage'] = newbbDisplayImage($infobox['src'], $infobox['alt']);
207
}
208
$xoopsTpl->assign('infobox', $infobox);
209
// END irmtfan improve infobox
210
211
$xoopsTpl->assign([
212
                      'topic_title'    => '<a href="' . XOOPS_URL . '/modules/' . $xoopsModule->getVar('dirname', 'n') . '/viewtopic.php?topic_id=' . $topic_id . '">' . $topicObject->getFullTitle() . '</a>',
213
                      'forum_name'     => $forumObject->getVar('forum_name'),
214
                      'lang_nexttopic' => _MD_NEWBB_NEXTTOPIC,
215
                      'lang_prevtopic' => _MD_NEWBB_PREVTOPIC,
216
                      'topic_status'   => $topicObject->getVar('topic_status')
217
                  ]);
218
219
//$categoryHandler = Newbb\Helper::getInstance()->getHandler('Category');
220
$categoryObject = $categoryHandler->get($forumObject->getVar('cat_id'), ['cat_title']);
221
$xoopsTpl->assign('category', ['id' => $forumObject->getVar('cat_id'), 'title' => $categoryObject->getVar('cat_title')]);
222
223
$xoopsTpl->assign('post_id', $post_id);
224
$xoopsTpl->assign('topic_id', $topic_id);
225
$xoopsTpl->assign('forum_id', $forum_id);
226
227
$order_current = ('DESC' === $order) ? 'DESC' : 'ASC';
228
$xoopsTpl->assign('order_current', $order_current);
229
230
$t_new   = newbbDisplayImage('t_new', _MD_NEWBB_POSTNEW);
231
$t_reply = newbbDisplayImage('t_reply', _MD_NEWBB_REPLY);
232
// irmtfan show topic status if show reg is 0 and revise forum_post_or_register
233
if ($topicHandler->getPermission($forumObject, $topicObject->getVar('topic_status'), 'post')) {
234
    $xoopsTpl->assign('forum_post', '<a href="' . XOOPS_URL . '/modules/' . $xoopsModule->getVar('dirname', 'n') . '/newtopic.php?forum=' . $forum_id . '"> ' . $t_new . '</a>');
235
} else {
236
    if ($topicObject->getVar('topic_status')) {
237
        $xoopsTpl->assign('topic_lock', _MD_NEWBB_TOPICLOCKED);
238
    }
239
    if (!is_object($GLOBALS['xoopsUser']) && !empty($GLOBALS['xoopsModuleConfig']['show_reg'])) {
240
        $xoopsTpl->assign('forum_register', '<a href="' . XOOPS_URL . '/user.php?xoops_redirect=' . htmlspecialchars($xoopsRequestUri) . '">' . _MD_NEWBB_REGTOPOST . '</a>');
241
    }
242
}
243
// irmtfan for backward compatibility assign forum_post_or_register smarty again.
244
$xoopsTpl->assign('forum_post_or_register', @$xoopsTpl->get_template_vars('forum_post') . @$xoopsTpl->get_template_vars('forum_register') . @$xoopsTpl->get_template_vars('topic_lock'));
245
246
if ($topicHandler->getPermission($forumObject, $topicObject->getVar('topic_status'), 'reply')) {
247
    $xoopsTpl->assign('forum_reply', '<a href="' . XOOPS_URL . '/modules/' . $xoopsModule->getVar('dirname', 'n') . '/reply.php?topic_id=' . $topic_id . '"> ' . $t_reply . '</a>');
248
}
249
250
$poster_array  = [];
251
$require_reply = false;
252
/** @var Post $eachpost */
253
foreach ($postsArray as $eachpost) {
254
    if ($eachpost->getVar('uid') > 0) {
255
        $poster_array[$eachpost->getVar('uid')] = 1;
256
    }
257
    if ($eachpost->getVar('require_reply') > 0) {
258
        $require_reply = true;
259
    }
260
}
261
262
$userid_array = [];
263
$online       = [];
264 View Code Duplication
if (is_array($poster_array) && count($poster_array) > 0) {
265
    /** @var \XoopsMemberHandler $memberHandler */
266
    $memberHandler = xoops_getHandler('member');
267
    $userid_array  = array_keys($poster_array);
268
    $user_criteria = '(' . implode(',', $userid_array) . ')';
269
    $users         = $memberHandler->getUsers(new \Criteria('uid', $user_criteria, 'IN'), true);
270
} else {
271
    $users = [];
272
}
273
274
$viewtopic_users = [];
275
if (is_array($userid_array) && count($userid_array) > 0) {
276
    require $GLOBALS['xoops']->path('modules/' . $xoopsModule->getVar('dirname', 'n') . '/class/user.php');
277
    $userHandler         = new Newbb\UserHandler($GLOBALS['xoopsModuleConfig']['groupbar_enabled'], $GLOBALS['xoopsModuleConfig']['wol_enabled']);
278
    $userHandler->users  = $users;
279
    $userHandler->online = $online;
280
    $viewtopic_users     = $userHandler->getUsers();
281
}
282
unset($users);
283
284
if ($GLOBALS['xoopsModuleConfig']['allow_require_reply'] && $require_reply) {
285
    if (!empty($GLOBALS['xoopsModuleConfig']['cache_enabled'])) {
286
        $viewtopic_posters = newbbGetSession('t' . $topic_id, true);
287
        if (!is_array($viewtopic_posters) || 0 === count($viewtopic_posters)) {
288
            $viewtopic_posters = $topicHandler->getAllPosters($topicObject);
289
            newbbSetSession('t' . $topic_id, $viewtopic_posters);
290
        }
291
    } else {
292
        $viewtopic_posters = $topicHandler->getAllPosters($topicObject);
293
    }
294
} else {
295
    $viewtopic_posters = [];
296
}
297
298
if ($GLOBALS['xoopsModuleConfig']['show_advertising']) {
299
    $post_werbung = [
300
        'post_id'         => 0,
301
        'post_parent_id'  => 0,
302
        'post_date'       => 0,
303
        'post_image'      => '',
304
        'post_title'      => '',
305
        'post_text'       => '<div style="text-align: center;vertical-align: middle;"><br>' . xoops_getbanner() . '</div>',
306
        'post_attachment' => '',
307
        'post_edit'       => 0,
308
        'post_no'         => 0,
309
        'post_signature'  => _MD_NEWBB_ADVERTISING_BLOCK,
310
        'poster_ip'       => '',
311
        'thread_action'   => '',
312
        'thread_buttons'  => '',
313
        'mod_buttons'     => '',
314
        'poster'          => [
315
            'uid'        => -1,
316
            'link'       => _MD_NEWBB_ADVERTISING_USER,
317
            'avatar'     => 'avatars/blank.gif',
318
            'regdate'    => 0,
319
            'last_login' => 0,
320
            'rank'       => ['title' => '']
321
        ],
322
        // irmtfan add last_login
323
        'post_permalink'  => ''
324
    ];
325
}
326
327
$i = 0;
328
/** @var Post $eachpost */
329
foreach ($postsArray as $eachpost) {
330
    if ($GLOBALS['xoopsModuleConfig']['show_advertising']) {
331
        if (2 === $i) {
332
            $xoopsTpl->append('topic_posts', $post_werbung);
333
        }
334
        ++$i;
335
    }
336
    $xoopsTpl->append('topic_posts', $eachpost->showPost($isAdmin));
337
}
338
339
if ($total_posts > $GLOBALS['xoopsModuleConfig']['posts_per_page']) {
340
    include $GLOBALS['xoops']->path('class/pagenav.php');
341
342
    $nav = new \XoopsPageNav($total_posts, $GLOBALS['xoopsModuleConfig']['posts_per_page'], $start, 'start', 'topic_id=' . $topic_id . '&amp;order=' . $order . '&amp;status=' . $status . '&amp;mode=' . $mode);
343
    //if (isset($GLOBALS['xoopsModuleConfig']['do_rewrite']) && $GLOBALS['xoopsModuleConfig']['do_rewrite'] === 1) $nav->url = XOOPS_URL . $nav->url;
344 View Code Duplication
    if ('select' === $GLOBALS['xoopsModuleConfig']['pagenav_display']) {
345
        $navi = $nav->renderSelect();
346
    } elseif ('image' === $GLOBALS['xoopsModuleConfig']['pagenav_display']) {
347
        $navi = $nav->renderImageNav(4);
348
    } else {
349
        $navi = $nav->renderNav(4);
350
    }
351
    $xoopsTpl->assign('forum_page_nav', $navi);
352
} else {
353
    $xoopsTpl->assign('forum_page_nav', '');
354
}
355
356
if (empty($post_id)) {
357
    $first   = array_keys($postsArray);
358
    $post_id = !empty($first[0]) ? $first[0] : 0;
359
}
360
361
if (!empty($postsArray[$post_id])) {
362
    $xoops_pagetitle = $postsArray[$post_id]->getVar('subject') . ' [' . $forumObject->getVar('forum_name') . ']';
363
    $xoopsTpl->assign('xoops_pagetitle', $xoops_pagetitle);
364
    $xoopsOption['xoops_pagetitle'] = $xoops_pagetitle;
365
    $kw                             = array_unique(explode(' ', strip_tags($postsArray[$post_id]->getVar('post_text')), 150));
366
    asort($kw);
367
    $kwort = '';
368
    $z     = 0;
369
    foreach ($kw as $k) {
370
        if ($z < 30 && strlen(trim($k)) > 5) {
371
            $kwort .= trim($k) . ' ';
372
            ++$z;
373
        }
374
    }
375
    $xoTheme->addMeta('meta', 'keywords', $kwort);
376
    $xoTheme->addMeta('meta', 'description', substr(strip_tags($postsArray[$post_id]->getVar('post_text')), 0, 120));
377
}
378
unset($postsArray);
379
380
$xoopsTpl->assign('topic_print_link', "print.php?form=1&amp;{$page_query}");
381
382
$admin_actions = [];
383
$ad_merge      = '';
384
$ad_move       = '';
385
$ad_delete     = '';
386
// irmtfan add restore to viewtopic
387
$ad_restore  = '';
388
$ad_lock     = '';
389
$ad_unlock   = '';
390
$ad_sticky   = '';
391
$ad_unsticky = '';
392
$ad_digest   = '';
393
$ad_undigest = '';
394
395
// START irmtfan add restore to viewtopic
396
// if the topic is active
397
if ($topicObject->getVar('approved') > 0) {
398
    $admin_actions['merge']  = [
399
        'link'  => XOOPS_URL . '/modules/' . $xoopsModule->getVar('dirname', 'n') . '/topicmanager.php?mode=merge&amp;topic_id=' . $topic_id,
400
        'name'  => _MD_NEWBB_MERGETOPIC,
401
        'image' => $ad_merge
402
    ];
403
    $admin_actions['move']   = [
404
        'link'  => XOOPS_URL . '/modules/' . $xoopsModule->getVar('dirname', 'n') . '/topicmanager.php?mode=move&amp;topic_id=' . $topic_id,
405
        'name'  => _MD_NEWBB_MOVETOPIC,
406
        'image' => $ad_move
407
    ];
408
    $admin_actions['delete'] = [
409
        'link'  => XOOPS_URL . '/modules/' . $xoopsModule->getVar('dirname', 'n') . '/topicmanager.php?mode=delete&amp;topic_id=' . $topic_id,
410
        'name'  => _MD_NEWBB_DELETETOPIC,
411
        'image' => $ad_delete
412
    ];
413 View Code Duplication
    if (!$topicObject->getVar('topic_status')) {
414
        $admin_actions['lock'] = [
415
            'link'  => XOOPS_URL . '/modules/' . $xoopsModule->getVar('dirname', 'n') . '/topicmanager.php?mode=lock&amp;topic_id=' . $topic_id,
416
            'image' => $ad_lock,
417
            'name'  => _MD_NEWBB_LOCKTOPIC
418
        ];
419
    } else {
420
        $admin_actions['unlock'] = [
421
            'link'  => XOOPS_URL . '/modules/' . $xoopsModule->getVar('dirname', 'n') . '/topicmanager.php?mode=unlock&amp;topic_id=' . $topic_id,
422
            'image' => $ad_unlock,
423
            'name'  => _MD_NEWBB_UNLOCKTOPIC
424
        ];
425
    }
426 View Code Duplication
    if (!$topicObject->getVar('topic_sticky')) {
427
        $admin_actions['sticky'] = [
428
            'link'  => XOOPS_URL . '/modules/' . $xoopsModule->getVar('dirname', 'n') . '/topicmanager.php?mode=sticky&amp;topic_id=' . $topic_id,
429
            'image' => $ad_sticky,
430
            'name'  => _MD_NEWBB_STICKYTOPIC
431
        ];
432
    } else {
433
        $admin_actions['unsticky'] = [
434
            'link'  => XOOPS_URL . '/modules/' . $xoopsModule->getVar('dirname', 'n') . '/topicmanager.php?mode=unsticky&amp;topic_id=' . $topic_id,
435
            'image' => $ad_unsticky,
436
            'name'  => _MD_NEWBB_UNSTICKYTOPIC
437
        ];
438
    }
439 View Code Duplication
    if (!$topicObject->getVar('topic_digest')) {
440
        $admin_actions['digest'] = [
441
            'link'  => XOOPS_URL . '/modules/' . $xoopsModule->getVar('dirname', 'n') . '/topicmanager.php?mode=digest&amp;topic_id=' . $topic_id,
442
            'image' => $ad_digest,
443
            'name'  => _MD_NEWBB_DIGESTTOPIC
444
        ];
445
    } else {
446
        $admin_actions['undigest'] = [
447
            'link'  => XOOPS_URL . '/modules/' . $xoopsModule->getVar('dirname', 'n') . '/topicmanager.php?mode=undigest&amp;topic_id=' . $topic_id,
448
            'image' => $ad_undigest,
449
            'name'  => _MD_NEWBB_UNDIGESTTOPIC
450
        ];
451
    }
452
    // if the topic is pending/deleted then restore/approve
453
} else {
454
    $admin_actions['restore'] = [
455
        'link'  => XOOPS_URL . '/modules/' . $xoopsModule->getVar('dirname', 'n') . '/topicmanager.php?mode=restore&amp;topic_id=' . $topic_id,
456
        'name'  => _MD_NEWBB_RESTORETOPIC,
457
        'image' => $ad_restore
458
    ];
459
}
460
// END irmtfan add restore to viewtopic
461
462
$xoopsTpl->assign_by_ref('admin_actions', $admin_actions);
463
$xoopsTpl->assign('viewer_level', (int)($isAdmin ? 2 : is_object($GLOBALS['xoopsUser'])));
464
465 View Code Duplication
if ($GLOBALS['xoopsModuleConfig']['show_permissiontable']) {
466
    //    /** var Newbb\PermissionHandler $permHandler */
467
    //    $permHandler      = Newbb\Helper::getInstance()->getHandler('Permission');
468
    $permission_table = $permHandler->getPermissionTable($forumObject, $topicObject->getVar('topic_status'), $isAdmin);
469
    $xoopsTpl->assign_by_ref('permission_table', $permission_table);
470
}
471
472
///////////////////////////////
473
// show Poll
474
// START irmtfan poll_module
475
// irmtfan remove
476
/*
477
$pollmodul = false;
478
$moduleHandler = xoops_getHandler( 'module' );
479
$PollModule = $moduleHandler->getByDirname('xoopspoll');
480
if ($PollModule && $PollModule->getVar('isactive')) {
481
    $pollmodul = 'xoopspoll';
482
} else {
483
    $PollModule = $moduleHandler->getByDirname('umfrage');
484
    if ($PollModule && $PollModule->getVar('isactive')) {
485
        $pollmodul = 'umfrage';
486
    }
487
}
488
*/
489
//irmtfan remove
490
$pollModuleHandler = $moduleHandler->getByDirname($GLOBALS['xoopsModuleConfig']['poll_module']);
491
if (is_object($pollModuleHandler) && $pollModuleHandler->getVar('isactive')) {
492
    $poll_id = $topicObject->getVar('poll_id');
493
    // can vote in poll
494
    $pollVote = ($topicObject->getVar('topic_haspoll') && $poll_id > 0
495
                 && $topicHandler->getPermission($forumObject, $topicObject->getVar('topic_status'), 'vote'));
496
    // can add poll
497
    $pollAdd = $topicHandler->getPermission($forumObject, $topicObject->getVar('topic_status'), 'addpoll');
498
    if ($pollVote || $pollAdd) {
499
        $pollModuleHandler = $moduleHandler->getByDirname($GLOBALS['xoopsModuleConfig']['poll_module']);
500
        // new xoopspoll module
501
        if ($pollModuleHandler->getVar('version') >= 140) {
502
//            xoops_load('renderer', $GLOBALS['xoopsModuleConfig']['poll_module']);
0 ignored issues
show
Unused Code Comprehensibility introduced by
80% of this comment could be valid code. Did you maybe forget this after debugging?

Sometimes obsolete code just ends up commented out instead of removed. In this case it is better to remove the code once you have checked you do not need it.

The code might also have been commented out for debugging purposes. In this case it is vital that someone uncomments it again or your project may behave in very unexpected ways in production.

This check looks for comments that seem to be mostly valid code and reports them.

Loading history...
503
            xoops_loadLanguage('main', $GLOBALS['xoopsModuleConfig']['poll_module']);
504
            // old xoopspoll or umfrage or any clone from them
505
        } else {
506
            $classPoll = $topicObject->loadOldPoll();
507
        }
508
    }
509
    // START can vote in poll
510
    if ($pollVote) {
511
        $xoopsTpl->assign('topic_poll', 1);
512
        $uid = is_object($GLOBALS['xoopsUser']) ? $GLOBALS['xoopsUser']->getVar('uid') : 0;
513
        // new xoopspoll module
514
        if ($pollModuleHandler->getVar('version') >= 140) {
515
            $xpollHandler = Xoopspoll\Helper::getInstance()->getHandler('Poll');
516
            /** @var \XoopsPoll $pollObject */
517
            $pollObject = $xpollHandler->get($poll_id);
518
            if (is_object($pollObject)) {
519
520
                /* check to see if user has rights to view the results */
521
                $vis_return = $pollObject->isResultVisible();
522
                $isVisible  = $vis_return;
523
                $visibleMsg = $isVisible ? '' : $vis_return;
524
525
                /* setup the module config handler */
526
                /** @var \XoopsConfigHandler $configHandler */
527
                $configHandler = xoops_getHandler('config');
528
                $xp_config     = $configHandler->getConfigsByCat(0, $pollModuleHandler->getVar('mid'));
529
530
                $GLOBALS['xoopsTpl']->assign([
531
                                                 'is_visible'      => $isVisible,
532
                                                 'visible_message' => $visibleMsg,
533
                                                 'disp_votes'      => $xp_config['disp_vote_nums'],
534
                                                 'lang_vote'       => constant('_MD_' . strtoupper($GLOBALS['xoopsModuleConfig']['poll_module']) . '_VOTE'),
535
                                                 'lang_results'    => constant('_MD_' . strtoupper($GLOBALS['xoopsModuleConfig']['poll_module']) . '_RESULTS'),
536
                                                 'back_link'       => ''
537
                                             ]);
538
                $classRenderer = ucfirst($GLOBALS['xoopsModuleConfig']['poll_module']) . 'Renderer';
539
                /** @var Xoopspoll\Renderer $renderer */
540
                $renderer = new $classRenderer($pollObject);
541
                // check to see if user has voted, show form if not, otherwise get results for form
542
543
                /** @var Xoopspoll\LogHandler $logHandler */
544
                $logHandler = Xoopspoll\Helper::getInstance()->getHandler('Log');
545
                if ($pollObject->isAllowedToVote()
546
                    && (!$logHandler->hasVoted($poll_id, xoops_getenv('REMOTE_ADDR'), $uid))) {
547
                    $myTpl = new \XoopsTpl();
548
                    $renderer->assignForm($myTpl);
549
                    $myTpl->assign('action', $GLOBALS['xoops']->url("modules/newbb/votepolls.php?topic_id={$topic_id}&amp;poll_id={$poll_id}"));
550
                    $topic_pollform = $myTpl->fetch($GLOBALS['xoops']->path('modules/' . $GLOBALS['xoopsModuleConfig']['poll_module'] . '/templates/' . $GLOBALS['xoopsModuleConfig']['poll_module'] . '_view.tpl'));
551
                    $GLOBALS['xoopsTpl']->assign('topic_pollform', $topic_pollform);
552
                } else {
553
                    $GLOBALS['xoopsTpl']->assign('can_vote', false);
554
                    $xoopsTpl->assign('topic_pollresult', 1);
555
                    $GLOBALS['xoopsTpl']->assign('topic_resultform', $renderer->renderResults());
556
                }
557
            }
558
            // old xoopspoll or umfrage or any clone from them
559
        } else {
560
            $pollObject    = new $classPoll($poll_id);
561
            $classRenderer = $classPoll . 'Renderer';
562
            $renderer      = new $classRenderer($pollObject);
563
            $xoopsTpl->assign('lang_alreadyvoted2', _PL_ALREADYVOTED2);
564
            $xoopsTpl->assign('has_ended', $pollObject->getVar('end_time') < time() ? 1 : 0);
565
            // umfrage has polltype
566
            $polltype = $pollObject->getVar('polltype');
567
            if (!empty($polltype)) {
568
                $xoopsTpl->assign('polltype', $polltype);
569
                switch ($polltype) {
570
                    case 1:
571
                        $xoopsTpl->assign('polltypecomment', '');
572
                        break;
573
                    case 2:
574
                        $xoopsTpl->assign('polltypecomment', _PL_FULLBLIND);
575
                        break;
576
                    case 3:
577
                        $xoopsTpl->assign('polltypecomment', _PL_HALFBLIND);
578
                        break;
579
580
                }
581
            }
582
            $classLog = $classPoll . 'Log';
583
            $hasvoted = 0;
584
            if ($GLOBALS['xoopsUser']) {
585
                if ($classLog::hasVoted($poll_id, Request::getString('REMOTE_ADDR', '', 'SERVER'), $uid)) {
586
                    $hasvoted = 1;
587
                }
588
            } else {
589
                $hasvoted = 1;
590
            }
591
            $xoopsTpl->assign('hasVoted', $hasvoted);
592
            $xoopsTpl->assign('lang_vote', _PL_VOTE);
593
            $xoopsTpl->assign('lang_results', $pollObject->getVar('end_time') < time() ? _PL_RESULTS : _PL_STANDINGS);
594
            // irmtfan - if the poll is expired show the result
595
            if ($hasvoted || $pollObject->hasExpired()) {
596
                $renderer->assignResults($xoopsTpl);
597
                $xoopsTpl->assign('topic_pollresult', 1);
598
                setcookie('newbb_polls[' . $poll_id . ']', 1);
599
            } else {
600
                $renderer->assignForm($xoopsTpl);
601
                $xoopsTpl->assign('lang_vote', _PL_VOTE);
602
                $xoopsTpl->assign('lang_results', _PL_RESULTS);
603
                setcookie('newbb_polls[' . $poll_id . ']', 1);
604
            }
605
        }
606
    }
607
    // END can vote in poll
608
    // START can add poll
609
    if ($pollAdd) {
610
        if (!$topicObject->getVar('topic_haspoll')) {
611
            if (is_object($GLOBALS['xoopsUser'])
612
                && $GLOBALS['xoopsUser']->getVar('uid') == $topicObject->getVar('topic_poster')) {
613
                $t_poll = newbbDisplayImage('t_poll', _MD_NEWBB_ADDPOLL);
614
                $xoopsTpl->assign('forum_addpoll', '<a href=\'' . XOOPS_URL . '/modules/' . $xoopsModule->getVar('dirname', 'n') . '/polls.php?op=add&amp;topic_id=' . $topic_id . '\'>' . $t_poll . '</a>');
615
            }
616
        } elseif ($isAdmin
617
                  || (is_object($pollObject) && is_object($GLOBALS['xoopsUser'])
618
                      && $GLOBALS['xoopsUser']->getVar('uid') == $pollObject->getVar('user_id'))) {
619
            $poll_edit    = '';
620
            $poll_delete  = '';
621
            $poll_restart = '';
622
            $poll_log     = '';
623
624
            $adminpoll_actions                = [];
625
            $adminpoll_actions['editpoll']    = [
626
                'link'  => XOOPS_URL . '/modules/' . $xoopsModule->getVar('dirname', 'n') . '/polls.php?op=edit&amp;poll_id=' . $topicObject->getVar('poll_id') . '&amp;topic_id=' . $topic_id,
627
                'image' => $poll_edit,
628
                'name'  => _MD_NEWBB_EDITPOLL
629
            ];
630
            $adminpoll_actions['deletepoll']  = [
631
                'link'  => XOOPS_URL . '/modules/' . $xoopsModule->getVar('dirname', 'n') . '/polls.php?op=delete&amp;poll_id=' . $topicObject->getVar('poll_id') . '&amp;topic_id=' . $topic_id,
632
                'image' => $poll_delete,
633
                'name'  => _MD_NEWBB_DELETEPOLL
634
            ];
635
            $adminpoll_actions['restartpoll'] = [
636
                'link'  => XOOPS_URL . '/modules/' . $xoopsModule->getVar('dirname', 'n') . '/polls.php?op=restart&amp;poll_id=' . $topicObject->getVar('poll_id') . '&amp;topic_id=' . $topic_id . '&amp;forum=' . $forum_id,
637
                'image' => $poll_restart,
638
                'name'  => _MD_NEWBB_RESTARTPOLL
639
            ];
640
            $adminpoll_actions['logpoll']     = [
641
                'link'  => XOOPS_URL . '/modules/' . $xoopsModule->getVar('dirname', 'n') . '/polls.php?op=log&amp;poll_id=' . $topicObject->getVar('poll_id') . '&amp;topic_id=' . $topic_id . '&amp;forum=' . $forum_id,
642
                'image' => $poll_log,
643
                'name'  => _MD_NEWBB_POLL_VIEWLOG
644
            ];
645
646
            $xoopsTpl->assign_by_ref('adminpoll_actions', $adminpoll_actions);
647
        }
648
    }
649
    // END can add poll
650
}
651
if (isset($pollObject)) {
652
    unset($pollObject);
653
}
654
// END irmtfan poll_module
655
656
$xoopsTpl->assign('p_up', newbbDisplayImage('up', _MD_NEWBB_TOP));
657
$xoopsTpl->assign('rating_enable', $GLOBALS['xoopsModuleConfig']['rating_enabled']);
658
$xoopsTpl->assign('groupbar_enable', $GLOBALS['xoopsModuleConfig']['groupbar_enabled']);
659
$xoopsTpl->assign('anonymous_prefix', $GLOBALS['xoopsModuleConfig']['anonymous_prefix']);
660
// irmtfan add alt for prev next and down icons.
661
$xoopsTpl->assign('previous', newbbDisplayImage('previous', _MD_NEWBB_PREVTOPIC));
662
$xoopsTpl->assign('next', newbbDisplayImage('next', _MD_NEWBB_NEXTTOPIC));
663
$xoopsTpl->assign('down', newbbDisplayImage('down', _MD_NEWBB_BOTTOM));
664
$xoopsTpl->assign('post_content', newbbDisplayImage('post'));
665
666
if (!empty($GLOBALS['xoopsModuleConfig']['rating_enabled'])) {
667
    $xoopsTpl->assign('votes', $topicObject->getVar('votes'));
668
    $rating = number_format($topicObject->getVar('rating') / 2, 0);
669 View Code Duplication
    if ($rating < 1) {
670
        $rating_img = newbbDisplayImage('blank');
671
    } else {
672
        // irmtfan - add alt key for rating
673
        $rating_img = newbbDisplayImage('rate' . $rating, constant('_MD_NEWBB_RATE' . $rating));
674
    }
675
    $xoopsTpl->assign('rating_img', $rating_img);
676
    $xoopsTpl->assign('rate1', newbbDisplayImage('rate1', _MD_NEWBB_RATE1));
677
    $xoopsTpl->assign('rate2', newbbDisplayImage('rate2', _MD_NEWBB_RATE2));
678
    $xoopsTpl->assign('rate3', newbbDisplayImage('rate3', _MD_NEWBB_RATE3));
679
    $xoopsTpl->assign('rate4', newbbDisplayImage('rate4', _MD_NEWBB_RATE4));
680
    $xoopsTpl->assign('rate5', newbbDisplayImage('rate5', _MD_NEWBB_RATE5));
681
}
682
683
// create jump box
684 View Code Duplication
if (!empty($GLOBALS['xoopsModuleConfig']['show_jump'])) {
685
    include_once __DIR__ . '/include/functions.forum.php';
686
    $xoopsTpl->assign('forum_jumpbox', newbbMakeJumpbox($forum_id));
687
}
688
689
$xoopsTpl->assign([
690
                      'lang_forum_index' => sprintf(_MD_NEWBB_FORUMINDEX, htmlspecialchars($GLOBALS['xoopsConfig']['sitename'], ENT_QUOTES)),
691
                      'lang_from'        => _MD_NEWBB_FROM,
692
                      'lang_joined'      => _MD_NEWBB_JOINED,
693
                      'lang_posts'       => _MD_NEWBB_POSTS,
694
                      'lang_poster'      => _MD_NEWBB_POSTER,
695
                      'lang_thread'      => _MD_NEWBB_THREAD,
696
                      'lang_edit'        => _EDIT,
697
                      'lang_delete'      => _DELETE,
698
                      'lang_reply'       => _REPLY,
699
                      'lang_postedon'    => _MD_NEWBB_POSTEDON,
700
                      'lang_groups'      => _MD_NEWBB_GROUPS
701
                  ]);
702
703
$viewmode_options = [];
704 View Code Duplication
if ('DESC' === $order) {
705
    $viewmode_options[] = [
706
        'link'  => XOOPS_URL . '/modules/' . $xoopsModule->getVar('dirname', 'n') . '/viewtopic.php?order=ASC&amp;status=$status&amp;topic_id=' . $topic_id,
707
        'title' => _OLDESTFIRST
708
    ];
709
} else {
710
    $viewmode_options[] = [
711
        'link'  => XOOPS_URL . '/modules/' . $xoopsModule->getVar('dirname', 'n') . '/viewtopic.php?order=DESC&amp;status=$status&amp;topic_id=' . $topic_id,
712
        'title' => _NEWESTFIRST
713
    ];
714
}
715
716
switch ($status) {
717
    case 'active':
718
        $current_status = '[' . _MD_NEWBB_TYPE_ADMIN . ']';
719
        break;
720
    case 'pending':
721
        $current_status = '[' . _MD_NEWBB_TYPE_PENDING . ']';
722
        break;
723
    case 'deleted':
724
        $current_status = '[' . _MD_NEWBB_TYPE_DELETED . ']';
725
        break;
726
    default:
727
        $current_status = '';
728
        break;
729
}
730
$xoopsTpl->assign('topicstatus', $current_status);
731
732
$xoopsTpl->assign('mode', $mode);
733
$xoopsTpl->assign('status', $status);
734
//$xoopsTpl->assign('viewmode_compact', ($viewmode=="compact")?1:0);
735
$xoopsTpl->assign_by_ref('viewmode_options', $viewmode_options);
736
unset($viewmode_options);
737
$xoopsTpl->assign('menumode', $menumode);
738
$xoopsTpl->assign('menumode_other', $menumode_other);
739
740
// START irmtfan add verifyUser to quick reply
741
//check banning
742
//$moderateHandler = Newbb\Helper::getInstance()->getHandler('Moderate');
743
if (!empty($GLOBALS['xoopsModuleConfig']['quickreply_enabled'])
744
    && $topicHandler->getPermission($forumObject, $topicObject->getVar('topic_status'), 'reply')
745
    && $moderateHandler->verifyUser(-1, '', $forumObject->getVar('forum_id'))) {
746
    // END irmtfan add verifyUser to quick reply
747
    $forum_form = new \XoopsThemeForm(_MD_NEWBB_POSTREPLY, 'quick_reply', XOOPS_URL . '/modules/' . $xoopsModule->getVar('dirname', 'n') . '/post.php', 'post', true);
748
    if (!is_object($GLOBALS['xoopsUser'])) {
749
        //$configHandler = xoops_getHandler('config');
750
        $user_tray = new \XoopsFormElementTray(_MD_NEWBB_ACCOUNT);
751
        $user_tray->addElement(new \XoopsFormText(_MD_NEWBB_NAME, 'uname', 26, 255));
752
        $user_tray->addElement(new \XoopsFormPassword(_MD_NEWBB_PASSWORD, 'pass', 10, 32));
753
        $login_checkbox = new \XoopsFormCheckBox('', 'login', 1);
754
        $login_checkbox->addOption(1, _MD_NEWBB_LOGIN);
755
        $user_tray->addElement($login_checkbox);
756
        $forum_form->addElement($user_tray);
757
        $captcha = new \XoopsFormCaptcha('', "topic_{$topic_id}_{$start}");
758
        $captcha->setConfig('mode', 'text');
759
        $forum_form->addElement($captcha);
760
    }
761
762
    //$quickform = ( !empty($GLOBALS['xoopsModuleConfig']["editor_default"]) ) ? $GLOBALS['xoopsModuleConfig']["editor_default"] : "textarea";
763
    $quickform               = !empty($GLOBALS['xoopsModuleConfig']['editor_quick_default']) ? $GLOBALS['xoopsModuleConfig']['editor_quick_default'] : 'textarea';
764
    $editor_configs          = [];
765
    $editor_configs ['name'] = 'message';
766
    //$editor_configs [ "value" ]     = $message ;
767
    $editor_configs ['rows']   = empty($GLOBALS['xoopsModuleConfig'] ['editor_rows']) ? 10 : $GLOBALS['xoopsModuleConfig'] ['editor_rows'];
768
    $editor_configs ['cols']   = empty($GLOBALS['xoopsModuleConfig'] ['editor_cols']) ? 30 : $GLOBALS['xoopsModuleConfig'] ['editor_cols'];
769
    $editor_configs ['width']  = empty($GLOBALS['xoopsModuleConfig'] ['editor_width']) ? '100%' : $GLOBALS['xoopsModuleConfig'] ['editor_width'];
770
    $editor_configs ['height'] = empty($GLOBALS['xoopsModuleConfig'] ['editor_height']) ? '400px' : $GLOBALS['xoopsModuleConfig'] ['editor_height'];
771
    $_editor                   = new \XoopsFormEditor(_MD_NEWBB_MESSAGEC, $quickform, $editor_configs, true);
772
    $forum_form->addElement($_editor, true);
773
774
    $forum_form->addElement(new \XoopsFormHidden('dohtml', 0));
775
    $forum_form->addElement(new \XoopsFormHidden('dosmiley', 1));
776
    $forum_form->addElement(new \XoopsFormHidden('doxcode', 1));
777
    $forum_form->addElement(new \XoopsFormHidden('dobr', 1));
778
    $forum_form->addElement(new \XoopsFormHidden('attachsig', 1));
779
780
    $forum_form->addElement(new \XoopsFormHidden('isreply', 1));
781
782
    $forum_form->addElement(new \XoopsFormHidden('subject', _MD_NEWBB_RE . ': ' . $topicObject->getVar('topic_title', 'e')));
783
    $forum_form->addElement(new \XoopsFormHidden('pid', empty($post_id) ? $topicHandler->getTopPostId($topic_id) : $post_id));
784
    $forum_form->addElement(new \XoopsFormHidden('topic_id', $topic_id));
785
    $forum_form->addElement(new \XoopsFormHidden('forum', $forum_id));
786
    //$forum_form->addElement(new \XoopsFormHidden('viewmode', $viewmode));
787
    $forum_form->addElement(new \XoopsFormHidden('order', $order));
788
    $forum_form->addElement(new \XoopsFormHidden('start', $start));
789
790
    $forum_form->addElement(new \XoopsFormHidden('notify', -1));
791
    $forum_form->addElement(new \XoopsFormHidden('contents_submit', 1));
792
793
    $submit_button = new \XoopsFormButton('', 'quick_submit', _SUBMIT, 'submit');
794
    $submit_button->setExtra('onclick="if (document.forms.quick_reply.message.value === \'RE\' || document.forms.quick_reply.message.value === \'\') { alert(\'' . _MD_NEWBB_QUICKREPLY_EMPTY . '\'); return false;} else { return true;}"');
795
    $forum_form->addElement($submit_button);
796
797
    $toggles = newbbGetCookie('G', true);
798
    // START irmtfan improve quickreply smarty variable - add alt key to quick reply button - change $display to $style for more comprehension - add toggle $quickreply['expand']
799
    $quickreply           = [];
800
    $qr_collapse          = 't_qr';
801
    $qr_expand            = 't_qr_expand'; // change this
802
    $quickreply['icon']   = [
803
        'expand'   => $iconHandler->getImageSource($qr_expand),
804
        'collapse' => $iconHandler->getImageSource($qr_collapse)
805
    ];
806
    $quickreply['show']   = 1; // = !empty($GLOBALS['xoopsModuleConfig']['quickreply_enabled']
807
    $quickreply['expand'] = (count($toggles) > 0) ? (in_array('qr', $toggles, true) ? false : true) : true;
808
    if ($quickreply['expand']) {
809
        $quickreply['style']     = 'block';        //irmtfan move semicolon
810
        $quickreply_icon_display = $qr_expand;
811
        $quickreply_alt          = _MD_NEWBB_HIDE . ' ' . _MD_NEWBB_QUICKREPLY;
812
    } else {
813
        $quickreply['style']     = 'none';        //irmtfan move semicolon
814
        $quickreply_icon_display = $qr_collapse;
815
        $quickreply_alt          = _MD_NEWBB_SEE . ' ' . _MD_NEWBB_QUICKREPLY;
816
    }
817
    $quickreply['displayImage'] = newbbDisplayImage($quickreply_icon_display, $quickreply_alt);
818
    $quickreply['form']         = $forum_form->render();
819
    $xoopsTpl->assign('quickreply', $quickreply);
820
    // END irmtfan improve quickreply smarty variable
821
    unset($forum_form);
822
} else {
823
    $xoopsTpl->assign('quickreply', ['show' => 0]);
824
}
825
826
if ($GLOBALS['xoopsModuleConfig']['do_tag']
827
    && @include_once $GLOBALS['xoops']->path('modules/tag/include/tagbar.php')) {
828
    $xoopsTpl->assign('tagbar', tagBar($topicObject->getVar('topic_tags', 'n')));
829
}
830
// irmtfan move to footer.php
831
include_once __DIR__ . '/footer.php';
832
include $GLOBALS['xoops']->path('footer.php');
833
$xoopsLogger->stopTime('newBB_viewtopic');
834