Project

General

Profile

1
<?php
2
/**
3
 *
4
 * @category        modules
5
 * @package         modules_news
6
 * @author          WebsiteBaker Project
7
 * @copyright       WebsiteBaker Org. e.V.
8
 * @link            http://websitebaker.org/
9
 * @license         http://www.gnu.org/licenses/gpl.html
10
 * @platform        WebsiteBaker 2.8.3
11
 * @requirements    PHP 5.3.6 and higher
12
 * @version         $Id: view.php 2 2017-07-02 15:14:29Z Manuela $
13
 * @filesource      $HeadURL: svn://isteam.dynxs.de/wb/2.10.x/branches/main/modules/news/view.php $
14
 * @lastmodified    $Date: 2017-07-02 17:14:29 +0200 (Sun, 02 Jul 2017) $
15
 *  if ( $setting_posts_per_page && $setting_posts_per_page + $position <= $i ) { break; }
16
 */
17

    
18
/* -------------------------------------------------------- */
19
// Must include code to stop this file being accessed directly
20
if(defined('WB_PATH') == false) { die('Illegale file access /'.basename(__DIR__).'/'.basename(__FILE__).''); }
21
/* -------------------------------------------------------- */
22
global $post_id, $post_section, $TEXT, $MESSAGE, $MOD_NEWS;
23
// load module language file
24
$sAddonName = basename(__DIR__);
25
require(WB_PATH .'/modules/'.$sAddonName.'/languages/EN.php');
26
if(file_exists(WB_PATH .'/modules/'.$sAddonName.'/languages/'.LANGUAGE .'.php')) {
27
    require(WB_PATH .'/modules/'.$sAddonName.'/languages/'.LANGUAGE .'.php');
28
}
29
//overwrite php.ini on Apache servers for valid SESSION ID Separator
30
if (function_exists('ini_set')) {
31
    ini_set('arg_separator.output', '&amp;');
32
}
33

    
34
$addBracket = function ()
35
{
36
    $aList = func_get_args();
37
//    return preg_replace('/^(.*)$/', '/\[$1\]/s', $aList);
38
    return preg_replace('/^(.*)$/', '[$1]', $aList);
39
};
40
$modRel = str_replace(WB_PATH, '', __DIR__).'/';
41
$ModuleRel = '/modules/'.basename(__DIR__).'/';
42
$ModuleUrl = WB_URL.'/modules/'.basename(__DIR__).'/';
43
$ModulePath = WB_PATH.'/modules/'.basename(__DIR__).'/';
44
$sRecallAddress = WB_URL.PAGES_DIRECTORY.$GLOBALS['wb']->page['link'].PAGE_EXTENSION;
45

    
46
// Get user's username, display name, email, and id - needed for insertion into post info
47
$users = array();
48
$sql = 'SELECT `user_id`,`username`,`display_name`,`email` FROM `'.TABLE_PREFIX.'users`';
49
if (($resUsers = $database->query($sql))) {
50
    while ($recUser = $resUsers->fetchRow( MYSQLI_ASSOC )) {
51
        $users[$recUser['user_id']] = $recUser;
52
    }
53
}
54
// Get all groups (id, title, active, image)
55
$groups = array(
56
    0 => array(
57
        'group_id'  => 0,
58
        'title'     => '',
59
        'active'    => true,
60
        'image'     => ''
61
    )
62
);
63

    
64

    
65
$sql = 'SELECT `group_id`, `title`, `active` FROM `'.TABLE_PREFIX.'mod_news_groups` '
66
     . 'WHERE `section_id`='.(int)$section_id.' '
67
     . 'ORDER BY `position` ASC';
68
if (($query_users = $database->query($sql))) {
69
    while (($group = $query_users->fetchRow( MYSQLI_ASSOC ))) {
70
        // Insert user info into users array
71
        $groups[$group['group_id']] = $group;
72
        $sImageUrl = MEDIA_DIRECTORY.'/.news/image'.$group['group_id'].'.jpg';
73
        $groups[$group['group_id']]['image'] = (is_readable(WB_PATH.$sImageUrl) ? WB_URL.$sImageUrl : '');
74
    }
75
}
76
    // Check if we should only list posts from a certain group
77
    if (isset($_GET['g']) AND is_numeric($_GET['g'])) {
78
        $query_extra = 'AND `group_id`='.(int)$_GET['g'].' ';
79
    } else {
80
        $query_extra = '';
81
    }
82
    // Get settings
83
    $setting_header = $setting_post_loop = $setting_footer = $setting_posts_per_page = '';
84
    $sql = 'SELECT `header`, `post_loop`, `footer`, `posts_per_page` '
85
         . 'FROM `'.TABLE_PREFIX.'mod_news_settings` '
86
         . 'WHERE `section_id`='.(int)$section_id;
87
    if (($resSettings = $database->query($sql))) {
88
        if (($recSettings = $resSettings->fetchRow(MYSQL_ASSOC))) {
89
            foreach ($recSettings as $key=>$val) {
90
                ${'setting_'.$key} = $val;
91
            }
92
        }
93
    }
94
    // Get total number of posts relatet to now
95
// Check if we should show the main page or a post itself
96
    $now = $t = time();
97
    $sql = 'SELECT COUNT(*) FROM `'.TABLE_PREFIX.'mod_news_posts` '
98
         . 'WHERE `section_id`='.(int)$section_id.' AND `active`=1 '
99
         .        'AND `title`!=\'\' '
100
         .        'AND (`published_when`=0 OR `published_when`<='.$now.') '
101
         .        'AND (`published_until`=0 OR `published_until`>='.$now.') '
102
         .        $query_extra;
103
    $total_num = intval($database->get_one($sql));
104
    if ( $total_num && $setting_posts_per_page ) {
105
        $iNumberOfPages = (int)($total_num / $setting_posts_per_page)+($total_num % $setting_posts_per_page ? 1:0 );
106
        $position  = intval( isset($_GET['p'] ) ? $_GET['p'] : 0 );
107
        $position  = abs( ( $position < $total_num) ? $position : ($iNumberOfPages*$setting_posts_per_page) );
108
        // Work-out if we need to add limit code to sql
109
        $limit_sql = ' LIMIT '.$position.', '.$setting_posts_per_page;
110
    } else {
111
        $display_previous_next_links = '';
112
        $position = 0;
113
        $next_link = '';
114
        $next_page_link = '';
115
        $previous_link = '';
116
        $previous_page_link = '';
117
        $out_of = '';
118
        $of = '';
119
        $limit_sql = '';
120
    }
121

    
122
// if(!defined('POST_ID') OR !is_numeric(POST_ID))
123
if (!isset($post_id) || !is_numeric($post_id)) {
124
/*
125
$setting_posts_per_page = 12/5 = 2 5 = 10
126
*/
127
    // Query posts (for this page)
128
    $sql = 'SELECT * FROM `'.TABLE_PREFIX.'mod_news_posts` '
129
         . 'WHERE `section_id`='.$section_id.' '
130
         .        'AND `active`=1 '
131
         .        'AND `title`!=\'\' '
132
         .        'AND (`published_when`=0 OR `published_when`<='.$now.') '
133
         .        'AND (`published_until`=0 OR `published_until`>='.$now.') '
134
         .        $query_extra
135
         . 'ORDER BY `position` DESC'.$limit_sql;
136
    $query_posts = $database->query($sql);
137
//    $total_num = $query_posts->numRows();
138
    // Create previous and next links
139

    
140
    if ($setting_posts_per_page != 0) {
141
        $spaces = str_repeat('&#160;', 25);
142
        if ( ($position > 0) && ($position < $total_num) ) {
143
            if (isset($_GET['g']) AND is_numeric($_GET['g'])) {
144
                $pl_prepend = '<a href="?p='.($position-$setting_posts_per_page).'&amp;g='.$_GET['g'].'">&lt;&lt; ';
145
            } else {
146
                $pl_prepend = '<a href="?p='.($position-$setting_posts_per_page).'">&lt;&lt; ';
147
            }
148
            $pl_append = '</a>';
149
            $previous_link = $pl_prepend.$TEXT['PREVIOUS'].$pl_append;
150
            $previous_page_link = $pl_prepend.$TEXT['PREVIOUS_PAGE'].$pl_append;
151
        } else {
152
            $previous_link = $spaces;
153
            $previous_page_link = $spaces;
154
        }
155

    
156
        if ($position + $setting_posts_per_page >= $total_num) {
157
            $next_link = $spaces;
158
            $next_page_link = $spaces;
159
        } else {
160
            if (isset($_GET['g']) AND is_numeric($_GET['g'])) {
161
                $nl_prepend = '<a href="?p='.($position+$setting_posts_per_page).'&amp;g='.$_GET['g'].'"> ';
162
            } else {
163
                $nl_prepend = '<a href="?p='.($position+$setting_posts_per_page).'"> ';
164
            }
165
            $nl_append = ' &gt;&gt;</a>';
166
            $next_link = $nl_prepend.$TEXT['NEXT'].$nl_append;
167
            $next_page_link = $nl_prepend.$TEXT['NEXT_PAGE'].$nl_append;
168
        }
169
        if ($position+$setting_posts_per_page > $total_num) {  //
170
            $num_of = $total_num;
171
        } else {
172
            $num_of = $position+$setting_posts_per_page;
173
        }
174
        if ( ($position >= 0) && ($position < $total_num) ) {
175
            $out_of = ($position+1).'-'.$num_of.' '.strtolower($TEXT['OUT_OF']).' '.$total_num;
176
            $of = ($position+1).'-'.$num_of.' '.strtolower($TEXT['OF']).' '.$total_num;
177
            $display_previous_next_links = $spaces;
178
        } else {
179
            $display_previous_next_links = 'none';
180
        }
181
    }
182
    if ($total_num=== 0) { // $num_posts
183
        $setting_header = '';
184
        $setting_post_loop = '';
185
        $setting_footer = '';
186
        $setting_posts_per_page = '';
187
    }
188

    
189
// Print header
190
    $aPlaceHolders = $addBracket(
191
        'DISPLAY_PREVIOUS_NEXT_LINKS',
192
        'NEXT_PAGE_LINK',
193
        'NEXT_LINK',
194
        'PREVIOUS_PAGE_LINK',
195
        'PREVIOUS_LINK',
196
        'OUT_OF',
197
        'OF'
198
    );
199
    if ($display_previous_next_links == 'none') {
200
        $aReplacements = array(
201
            $display_previous_next_links
202
        );
203
    } else {
204
        $aReplacements = array(
205
            $display_previous_next_links,
206
            $next_page_link,
207
            $next_link,
208
            $previous_page_link,
209
            $previous_link,
210
            $out_of,
211
            $of
212
        );
213
    }
214
    print (str_replace($aPlaceHolders, $aReplacements, $setting_header));
215
    if ($total_num > 0) // $num_posts
216
    {
217
        $sScriptUrl = $_SERVER['SCRIPT_NAME'];
218
        if ($query_extra != '') {
219
            echo ('<div class="selected-group-title">'
220
                 .'<a href="'.htmlspecialchars(strip_tags($sScriptUrl))
221
                 .'">'.PAGE_TITLE.'</a> &gt;&gt; '.$groups[$_GET['g']]['title']
222
                 .'</div>'.PHP_EOL
223
            );
224
        }
225

    
226
        $aPlaceHolders = $addBracket(
227
            'PAGE_TITLE',
228
            'GROUP_ID',
229
            'GROUP_TITLE',
230
            'GROUP_IMAGE',
231
            'DISPLAY_GROUP',
232
            'DISPLAY_IMAGE',
233
            'TITLE',
234
            'SHORT',
235
            'MODI_DATE',
236
            'MODI_TIME',
237
            'CREATED_DATE',
238
            'CREATED_TIME',
239
            'PUBLISHED_DATE',
240
            'PUBLISHED_TIME',
241
            'LINK',
242
            'SHOW_READ_MORE',
243
            'TEXT_READ_MORE',
244
            'USER_ID',
245
            'USERNAME',
246
            'DISPLAY_NAME',
247
            'EMAIL'
248
        );
249
        $i=0;
250
        while (($post = $query_posts->fetchRow( MYSQLI_ASSOC )))
251
        {
252
            ++$i;
253
            if (
254
                isset($groups[$post['group_id']]['active']) AND
255
                $groups[$post['group_id']]['active'] != false
256
            ) { // Make sure parent group is active
257
                $uid = $post['posted_by']; // User who last modified the post
258
                // Workout date and time of last modified post
259
                if ($post['published_when'] === '0') {
260
                    $post['published_when'] = time();
261
                }
262
                if ($post['published_when'] > $post['posted_when']) {
263
                    $post_date = date(DATE_FORMAT, $post['published_when']+TIMEZONE);
264
                    $post_time = date(TIME_FORMAT, $post['published_when']+TIMEZONE);
265
                } else {
266
                    $post_date = date(DATE_FORMAT, $post['posted_when']+TIMEZONE);
267
                    $post_time = date(TIME_FORMAT, $post['posted_when']+TIMEZONE);
268
                }
269
                $publ_date      = date(DATE_FORMAT,$post['published_when']+TIMEZONE);
270
                $publ_time      = date(TIME_FORMAT,$post['published_when']+TIMEZONE);
271
                // Work-out the post link
272
                $post_link      = page_link($post['link']);
273
                $post_link_path = str_replace(WB_URL, WB_PATH,$post_link);
274
                $create_date    = date(DATE_FORMAT, $post['created_when']+TIMEZONE);
275
                $create_time    = date(TIME_FORMAT, $post['created_when']+TIMEZONE);
276
                if (isset($_GET['p']) AND $position > 0) {
277
                    $post_link .= '?p='.$position;
278
                }
279
                if (isset($_GET['g']) AND is_numeric($_GET['g'])) {
280
                    if (isset($_GET['p']) AND $position > 0) {
281
                        $post_link .= '&amp;';
282
                    } else {
283
                        $post_link .= '?';
284
                    }
285
                    $post_link .= 'g='.$_GET['g'];
286
                }
287
                // Get group id, title, and image
288
                $group_id      = $post['group_id'];
289
                $group_title   = $groups[$group_id]['title'];
290
                $group_image   = $groups[$group_id]['image'];
291
                $display_image = ($group_image == '') ? "none" : "inherit";
292
                $display_group = ($group_id == 0) ? 'none' : 'inherit';
293

    
294
                if ($group_image != "") {
295
                    $group_image= "<img src='".$group_image."' alt='".$group_title."' />";
296
                }
297
                // Replace [wblink--PAGE_ID--] with real link
298
                $sMediaUrl = WB_URL.MEDIA_DIRECTORY;
299
                $short = ($post['content_short']);
300
                $short = (str_replace('{SYSVAR:MEDIA_REL}', $sMediaUrl, $short));
301
                // Replace vars with values
302
//                $post_long_len = mb_strlen($post['content_long']);
303
//                $bIsEmptyLongContent = (bool)( $post_long_len == 0);
304
                $bIsEmptyLongContent = !(bool)mb_strlen(
305
                    trim(preg_replace('/^\s*?<(p|div)>(.*)?<\/\s*?\1>$/si', '\2', $post['content_long']))
306
                );
307
                // set replacements for exchange
308
                $aReplacements = array(
309
                    PAGE_TITLE,
310
                    $group_id,
311
                    $group_title,
312
                    $group_image,
313
                    $display_group,
314
                    $display_image,
315
                    $post['title'],
316
                    $short,
317
                    $post_date,
318
                    $post_time,
319
                    $create_date,
320
                    $create_time,
321
                    $publ_date,
322
                    $publ_time
323
                );
324
                if (isset($users[$uid]['username']) && $users[$uid]['username'] != '')
325
                {
326
                    if ($bIsEmptyLongContent) {
327
                        $aReplacements[] = '#" onclick="javascript:void(0);return false;" style="cursor:no-drop;';
328
                        $aReplacements[] = 'hidden';
329
                        $aReplacements[] = '';
330
                        $aReplacements[] = $uid;
331
                        $aReplacements[] = $users[$uid]['username'];
332
                        $aReplacements[] = $users[$uid]['display_name'];
333
                        $aReplacements[] = $users[$uid]['email'];
334
                    } else {
335
                        $aReplacements[] = $post_link;
336
                        $aReplacements[] = 'visible';
337
                        $aReplacements[] = $MOD_NEWS['TEXT_READ_MORE'];
338
                        $aReplacements[] = $uid;
339
                        $aReplacements[] = $users[$uid]['username'];
340
                        $aReplacements[] = $users[$uid]['display_name'];
341
                        $aReplacements[] = $users[$uid]['email'];
342
                    }
343
                } else {
344
                    if ($bIsEmptyLongContent) {
345
                        $aReplacements[] = '#" onclick="javascript:void(0);return false;" style="cursor:no-drop;';
346
                        $aReplacements[] = 'hidden';
347
                    } else {
348
                        $aReplacements[] = $post_link;
349
                        $aReplacements[] = 'visible';
350
                        $aReplacements[] = $MOD_NEWS['TEXT_READ_MORE'];
351
                    }
352
                }
353
                print (str_replace($aPlaceHolders, $aReplacements, $setting_post_loop));
354
            }
355
//            if ( $setting_posts_per_page == $i ) { break; }
356
            if ( $setting_posts_per_page && $setting_posts_per_page + $position <= $i ) { break; }
357
        } // end while posts
358
    }
359
    // Print footer
360
    $aPlaceHolders = $addBracket(
361
        'DISPLAY_PREVIOUS_NEXT_LINKS',
362
        'NEXT_PAGE_LINK',
363
        'NEXT_LINK',
364
        'PREVIOUS_PAGE_LINK',
365
        'PREVIOUS_LINK',
366
        'OUT_OF',
367
        'OF'
368
    );
369
    if ($display_previous_next_links == 'none') {
370
        $aReplacements = array(
371
            $display_previous_next_links
372
        );
373
    } else {
374
        $aReplacements = array(
375
            $display_previous_next_links,
376
            $next_page_link,
377
            $next_link,
378
            $previous_page_link,
379
            $previous_link,
380
            $out_of,
381
            $of
382
        );
383
    }
384
    print (str_replace($aPlaceHolders, $aReplacements, $setting_footer));
385

    
386
} elseif(isset($post_id) && is_numeric($post_id)) {
387
    if (isset($post_section) && ($post_section == $section_id)) {
388
        // Get settings
389
        $setting_post_header = $setting_post_footer = $setting_comments_header
390
                             = $setting_comments_loop = $setting_comments_footer = '';
391
        $sql = 'SELECT `post_header`, `post_footer`, `comments_header`, `comments_loop`, `comments_footer` '
392
             . 'FROM `'.TABLE_PREFIX.'mod_news_settings` '
393
             . 'WHERE `section_id`='.(int)$section_id;
394
        if (($resSettings = $database->query($sql)) ) {
395
            if (($recSettings = $resSettings->fetchRow( MYSQLI_ASSOC ))) {
396
                foreach ($recSettings as $key=>$val) {
397
                    ${'setting_'.$key} = $val;
398
                }
399
            }
400
        }
401
        // Get page info
402
        $sql = 'SELECT `link` FROM `'.TABLE_PREFIX.'pages` '
403
             . 'WHERE `page_id`='.PAGE_ID;
404
        $query_page = $database->query($sql);
405
        if ($query_page->numRows() > 0) {
406
            $page = $query_page->fetchRow( MYSQLI_ASSOC );
407
            $page_link = page_link($page['link']);
408
            if (isset($_GET['p']) AND $position > 0) {
409
                $page_link .= '?p='.$_GET['p'];
410
            }
411
            if (isset($_GET['g']) AND is_numeric($_GET['g'])) {
412
                if (isset($_GET['p']) AND $position > 0) {
413
                    $page_link .= '&amp;';
414
                } else {
415
                    $page_link .= '?';
416
                }
417
                $page_link .= 'g='.$_GET['g'];
418
            }
419
        } else {
420
            exit($MESSAGE['PAGES_NOT_FOUND']);
421
        }
422
        // Get post info
423
        $t = time();
424
        $sql = 'SELECT * FROM `'.TABLE_PREFIX.'mod_news_posts` '
425
             . 'WHERE `post_id`='.$post_id.' AND active=1 '
426
             .        'AND (`published_when`=0 OR `published_when`<='.$t.') '
427
             .        'AND (`published_until`=0 OR `published_until`>='.$t.')';
428
        $query_post = $database->query($sql);
429
        if ($post = $query_post->fetchRow( MYSQLI_ASSOC )) {
430
            if (isset($groups[$post['group_id']]['active'])
431
                AND $groups[$post['group_id']]['active'] != false
432
            ) { // Make sure parent group is active
433
                $uid = $post['posted_by']; // User who last modified the post
434
                // Workout date and time of last modified post
435
                if ($post['published_when'] === '0') {
436
                    $post['published_when'] = time();
437
                }
438
                if ($post['published_when'] > $post['posted_when']) {
439
                    $post_date = date(DATE_FORMAT, $post['published_when']+TIMEZONE);
440
                    $post_time = date(TIME_FORMAT, $post['published_when']+TIMEZONE);
441
                } else {
442
                    $post_date = date(DATE_FORMAT, $post['posted_when']+TIMEZONE);
443
                    $post_time = date(TIME_FORMAT, $post['posted_when']+TIMEZONE);
444
                }
445
                $publ_date      = date(DATE_FORMAT,$post['published_when']+TIMEZONE);
446
                $publ_time      = date(TIME_FORMAT,$post['published_when']+TIMEZONE);
447
                // Work-out the post link
448
                $post_link      = page_link($post['link']);
449
                $post_link_path = str_replace(WB_URL, WB_PATH,$post_link);
450
                $create_date    = date(DATE_FORMAT, $post['created_when']+TIMEZONE);
451
                $create_time    = date(TIME_FORMAT, $post['created_when']+TIMEZONE);
452
                // Get group id, title, and image
453
                $group_id       = $post['group_id'];
454
                $group_title    = $groups[$group_id]['title'];
455
                $group_image    = $groups[$group_id]['image'];
456
                $display_image  = ($group_image == '') ? "none" : "inherit";
457
                $display_group  = ($group_id == 0) ? 'none' : 'inherit';
458
                $sMediaUrl = WB_URL.MEDIA_DIRECTORY;
459
                $post_short = ($post['content_short']);
460
                $post_short = (str_replace('{SYSVAR:MEDIA_REL}', $sMediaUrl, $post_short));
461
                if ($group_image != "") $group_image= "<img src='".$group_image."' alt='".$group_title."' />";
462

    
463
                $aPlaceHolders = $addBracket(
464
                    'PAGE_TITLE',
465
                    'GROUP_ID',
466
                    'GROUP_TITLE',
467
                    'GROUP_IMAGE',
468
                    'DISPLAY_GROUP',
469
                    'DISPLAY_IMAGE',
470
                    'TITLE',
471
                    'SHORT',
472
                    'BACK',
473
                    'TEXT_BACK',
474
                    'TEXT_LAST_CHANGED',
475
                    'MODI_DATE',
476
                    'TEXT_AT',
477
                    'MODI_TIME',
478
                    'CREATED_DATE',
479
                    'CREATED_TIME',
480
                    'PUBLISHED_DATE',
481
                    'PUBLISHED_TIME',
482
                    'TEXT_POSTED_BY',
483
                    'TEXT_ON',
484
                    'USER_ID',
485
                    'USERNAME',
486
                    'DISPLAY_NAME',
487
                    'EMAIL'
488
                );
489
                $aReplacements = array(
490
                    PAGE_TITLE,
491
                    $group_id,
492
                    $group_title,
493
                    $group_image,
494
                    $display_group,
495
                    $display_image,
496
                    $post['title'],
497
                    $post_short,
498
                    $page_link,
499
                    $MOD_NEWS['TEXT_BACK'],
500
                    $MOD_NEWS['TEXT_LAST_CHANGED'],
501
                    $post_date,
502
                    $MOD_NEWS['TEXT_AT'],
503
                    $post_time,
504
                    $create_date,
505
                    $create_time,
506
                    $publ_date,
507
                    $publ_time,
508
                    $MOD_NEWS['TEXT_POSTED_BY'],
509
                    $MOD_NEWS['TEXT_ON']
510
                );
511
                if (isset($users[$uid]['username']) AND $users[$uid]['username'] != '') {
512
                    $aReplacements[] = $uid;
513
                    $aReplacements[] = $users[$uid]['username'];
514
                    $aReplacements[] = $users[$uid]['display_name'];
515
                    $aReplacements[] = $users[$uid]['email'];
516
                }
517
                $sMediaUrl = WB_URL.MEDIA_DIRECTORY;
518
                $post_long = ($post['content_long'] != '') ? $post['content_long'] : $post['content_short'];
519
                $post_long = (str_replace('{SYSVAR:MEDIA_REL}', $sMediaUrl, $post_long));
520
                print (str_replace($aPlaceHolders, $aReplacements, $setting_post_header));
521
                print $post_long;
522
                print (str_replace($aPlaceHolders, $aReplacements, $setting_post_footer));
523
            }
524
        } else {
525
                $aPlaceHolders = $addBracket(
526
                    'BACK',
527
                    'TEXT_BACK',
528
                    'TEXT_LAST_CHANGED',
529
                    'TEXT_AT',
530
                    'MODI_DATE',
531
                    'MODI_TIME'
532
                );
533
                $aReplacements = array(
534
                    $page_link,
535
                    $MOD_NEWS['TEXT_BACK'],
536
                    $MESSAGE['FRONTEND_SORRY_NO_ACTIVE_SECTIONS'],
537
                    '',
538
                    ''
539
                );
540
                print (str_replace($aPlaceHolders, $aReplacements, $setting_post_footer));
541

    
542
//                $wb->print_error($MESSAGE['FRONTEND_SORRY_NO_ACTIVE_SECTIONS'], $sRecallAddress, false);
543
        }
544
        // Show comments section if we have to
545
        if (($post['commenting'] == 'private' AND isset($wb) AND $wb->is_authenticated() == true)
546
            OR $post['commenting'] == 'public'
547
        ) {
548
            // Print comments header
549
            $aPlaceHolders = $addBracket(
550
                'ADD_COMMENT_URL',
551
                'TEXT_COMMENTS'
552
            );
553
            $aReplacements = array(
554
                WB_URL.'/modules/news/comment.php?post_id='.$post_id.'&amp;section_id='.$section_id,
555
                $MOD_NEWS['TEXT_COMMENTS']
556
            );
557
            print (str_replace($aPlaceHolders, $aReplacements, $setting_comments_header));
558
            // Query for comments
559
            $iNumberOfComments = 0;
560
            $aPlaceHolders = $addBracket(
561
                'COMMENT',
562
                'TITLE',
563
                'TEXT_ON',
564
                'DATE',
565
                'TEXT_AT',
566
                'TIME',
567
                'TEXT_BY',
568
                'USER_ID',
569
                'USERNAME',
570
                'DISPLAY_NAME',
571
                'EMAIL'
572
            );
573
            $sql = 'SELECT `title`, `comment`, `commented_when`, `commented_by` '
574
                 . 'FROM `'.TABLE_PREFIX.'mod_news_comments` '
575
                 . 'WHERE `post_id`='.$post_id.' '
576
                 . 'ORDER BY `commented_when` ASC';
577

    
578
            if (($query_comments = $database->query($sql))) {
579
                while (($comment = $query_comments->fetchRow( MYSQLI_ASSOC ))) {
580
                    $iNumberOfComments++;
581
                    // Display Comments without slashes, but with new-line characters
582
                    $comment['comment'] = nl2br($wb->strip_slashes($comment['comment']));
583
                    $comment['title'] = $wb->strip_slashes($comment['title']);
584
                    // Print comments loop
585
                    $commented_date = date(DATE_FORMAT, $comment['commented_when']+TIMEZONE);
586
                    $commented_time = date(TIME_FORMAT, $comment['commented_when']+TIMEZONE);
587
                    $uid = $comment['commented_by'];
588
                    $aReplacements = array(
589
                        $comment['comment'],
590
                        $comment['title'],
591
                        $MOD_NEWS['TEXT_ON'],
592
                        $commented_date,
593
                        $MOD_NEWS['TEXT_AT'],
594
                        $commented_time,
595
                        $MOD_NEWS['TEXT_BY']
596
                    );
597
                    if (isset($users[$uid]['username']) AND $users[$uid]['username'] != '') {
598
                        $aReplacements[] = $uid;
599
                        $aReplacements[] = $users[$uid]['username'];
600
                        $aReplacements[] = $users[$uid]['display_name'];
601
                        $aReplacements[] = $users[$uid]['email'];
602
                    } else {
603
                        $aReplacements[] = '0';
604
                        $aReplacements[] = strtolower($TEXT['UNKNOWN']);
605
                        $aReplacements[] = $TEXT['UNKNOWN'];
606
                    }
607
                    print (str_replace($aPlaceHolders, $aReplacements, $setting_comments_loop));
608
                }
609
            }
610
            if (! $iNumberOfComments) {
611
                // Say no comments found
612
                $content = '';
613
                $aReplacements = array(
614
                    $MOD_NEWS['NO_COMMENT_FOUND']
615
                );
616
                print (str_replace($aPlaceHolders, $aReplacements, $setting_comments_loop));
617
            }
618
            // Print comments footer
619
            $aPlaceHolders = $addBracket(
620
                'ADD_COMMENT_URL',
621
                'TEXT_ADD_COMMENT',
622
                'TEXT_COMMENTS'
623
            );
624
            $aReplacements = array(
625
                WB_URL.'/modules/news/comment.php?post_id='.$post_id.'&amp;section_id='.$section_id.'&amp;p='.$position,
626
                $MOD_NEWS['TEXT_ADD_COMMENT'],
627
                $MOD_NEWS['TEXT_COMMENTS']
628
            );
629
            print (str_replace($aPlaceHolders, $aReplacements, $setting_comments_footer));
630
        }
631
        if (ENABLED_ASP) {
632
            $_SESSION['comes_from_view'] = $post_id;
633
            $_SESSION['comes_from_view_time'] = time();
634
        }
635
    }
636
}
637
unset($addBracket);
(36-36/36)