Completed
Push — master ( 8ca430...3024c9 )
by Michael
03:12
created

include/functions.php (8 issues)

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

Code
1
<?php
0 ignored issues
show
Coding Style Compatibility introduced by
For compatibility and reusability of your code, PSR1 recommends that a file should introduce either new symbols (like classes, functions, etc.) or have side-effects (like outputting something, or including other files), but not both at the same time. The first symbol is defined on line 33 and the first side effect is on line 23.

The PSR-1: Basic Coding Standard recommends that a file should either introduce new symbols, that is classes, functions, constants or similar, or have side effects. Side effects are anything that executes logic, like for example printing output, changing ini settings or writing to a file.

The idea behind this recommendation is that merely auto-loading a class should not change the state of an application. It also promotes a cleaner style of programming and makes your code less prone to errors, because the logic is not spread out all over the place.

To learn more about the PSR-1, please see the PHP-FIG site on the PSR-1.

Loading history...
2
/**
3
 * Module: XoopsTube
4
 *
5
 * You may not change or alter any portion of this comment or credits
6
 * of supporting developers from this source code or any supporting source code
7
 * which is considered copyrighted (c) material of the original comment or credit authors.
8
 *
9
 * PHP version 5
10
 *
11
 * @category        Module
12
 * @package         Xoopstube
13
 * @author          XOOPS Development Team
14
 * @copyright       2001-2013 The XOOPS Project
15
 * @license         GNU GPL 2 or later (http://www.gnu.org/licenses/gpl-2.0.html)
16
 * @version         $Id$
17
 * @link            http://sourceforge.net/projects/xoops/
18
 * @since           1.0.6
19
 */
20
21
// defined('XOOPS_ROOT_PATH') || die('XOOPS Root Path not defined');
0 ignored issues
show
Unused Code Comprehensibility introduced by
70% 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...
22
23
include_once __DIR__ . '/common.php';
24
25
/**
26
 * xtubeGetHandler()
27
 *
28
 * @param         $name
29
 * @param boolean $optional
30
 *
31
 * @return bool
32
 */
33
function &xtubeGetHandler($name, $optional = false)
34
{
35
    global $handlers, $xoopsModule;
36
37
    $name = strtolower(trim($name));
38
    if (!isset($handlers[$name])) {
39
        if (file_exists(
40
            $hnd_file
41
                = XOOPS_ROOT_PATH . '/modules/' . $xoopsModule->getVar('dirname') . '/class/class_' . $name . '.php'
42
        )
43
        ) {
44
            require_once $hnd_file;
45
        }
46
        $class = 'xtube' . ucfirst($name) . 'Handler';
47
        if (class_exists($class)) {
48
            $handlers[$name] = new $class($GLOBALS['xoopsDB']);
49
        }
50
    }
51
    if (!isset($handlers[$name]) && !$optional) {
52
        trigger_error(
53
            '<div>Class <span style="font-weight: bold;">' . $class . '</span> does not exist.</div><div>Handler Name: ' . $name,
54
            E_USER_ERROR
55
        ) . '</div>';
56
    }
57
58
    return isset($handlers[$name]) ? $handlers[$name] : false;
59
}
60
61
/**
62
 * @param int    $cid
63
 * @param string $permType
64
 * @param bool   $redirect
65
 *
66
 * @return bool
67
 */
68
function xtubeCheckGroups($cid = 0, $permType = 'XTubeCatPerm', $redirect = false)
69
{
70
    global $xoopsUser, $xoopsModule;
71
72
    $groups        = is_object($xoopsUser) ? $xoopsUser->getGroups() : XOOPS_GROUP_ANONYMOUS;
73
    $gperm_handler = & xoops_gethandler('groupperm');
74
    if (!$gperm_handler->checkRight($permType, $cid, $groups, $xoopsModule->getVar('mid'))) {
75
        if ($redirect == false) {
76
            return false;
77
        } else {
78
            redirect_header('index.php', 3, _NOPERM);
79
            exit();
80
        }
81
    }
82
83
    return true;
84
}
85
86
/**
87
 * @param int $lid
88
 *
89
 * @return bool
90
 */
91
function xtubeGetVoteDetails($lid = 0)
92
{
93
    global $xoopsDB;
94
95
    $sql
96
        = 'SELECT
97
        COUNT(rating) AS rate,
98
        MIN(rating) AS min_rate,
99
        MAX(rating) AS max_rate,
100
        AVG(rating) AS avg_rate,
101
        COUNT(ratinguser) AS rating_user,
102
        MAX(ratinguser) AS max_user,
103
        MAX(title) AS max_title,
104
        MIN(title) AS min_title,
105
        sum(ratinguser = 0) AS null_ratinguser
106
            FROM ' . $xoopsDB->prefix('xoopstube_votedata');
107
    if ($lid > 0) {
108
        $sql .= ' WHERE lid=' . $lid;
109
    }
110
    if (!$result = $xoopsDB->query($sql)) {
111
        return false;
112
    }
113
    $ret = $xoopsDB->fetchArray($result);
114
115
    return $ret;
116
}
117
118
/**
119
 * @param int $sel_id
120
 *
121
 * @return array|bool
122
 */
123
function xtubeCalculateVoteData($sel_id = 0)
124
{
125
    global $xoopsDB;
126
    $ret                  = array();
127
    $ret['useravgrating'] = 0;
128
129
    $sql = 'SELECT rating FROM ' . $xoopsDB->prefix('xoopstube_votedata');
130
    if ($sel_id != 0) {
131
        $sql .= ' WHERE lid=' . $sel_id;
132
    }
133
    if (!$result = $xoopsDB->query($sql)) {
134
        return false;
135
    }
136
    $ret['uservotes'] = $xoopsDB->getRowsNum($result);
137
    while (list($rating) = $xoopsDB->fetchRow($result)) {
138
        $ret['useravgrating'] += intval($rating);
139
    }
140
    if ($ret['useravgrating'] > 0) {
141
        $ret['useravgrating'] = number_format(($ret['useravgrating'] / $ret['uservotes']), 2);
142
    }
143
144
    return $ret;
145
}
146
147
/**
148
 * @param      $array
149
 * @param null $name
150
 * @param null $def
151
 * @param bool $strict
152
 * @param int  $lengthcheck
153
 *
154
 * @return array|int|null|string
155
 */
156
function xtubeCleanRequestVars(&$array, $name = null, $def = null, $strict = false, $lengthcheck = 15)
157
{
158
    // Sanitise $_request for further use.  This method gives more control and security.
159
    // Method is more for functionality rather than beauty at the moment, will correct later.
160
    unset($array['usercookie']);
161
    unset($array['PHPSESSID']);
162
163
    if (is_array($array) && $name == null) {
164
        $globals = array();
165
        foreach (array_keys($array) as $k) {
166
            $value = strip_tags(trim($array[$k]));
167
            if (strlen($value >= $lengthcheck)) {
168
                return null;
169
            }
170 View Code Duplication
            if (ctype_digit($value)) {
171
                $value = intval($value);
172
            } else {
173
                if ($strict == true) {
174
                    $value = preg_replace('/\W/', '', trim($value));
175
                }
176
                $value = strtolower(strval($value));
177
            }
178
            $globals[$k] = $value;
179
        }
180
181
        return $globals;
182
    }
183
    if (!isset($array[$name]) || !array_key_exists($name, $array)) {
184
        return $def;
185
    } else {
186
        $value = strip_tags(trim($array[$name]));
187
    }
188 View Code Duplication
    if (ctype_digit($value)) {
189
        $value = intval($value);
190
    } else {
191
        if ($strict == true) {
192
            $value = preg_replace('/\W/', '', trim($value));
193
        }
194
        $value = strtolower(strval($value));
195
    }
196
197
    return $value;
198
}
199
200
/**
201
 * @param int $cid
202
 *
203
 * @return string
204
 */
205
function xtubeRenderToolbar($cid = 0)
206
{
207
    $toolbar = '[ ';
208
    if (true == xtubeCheckGroups($cid, 'XTubeSubPerm')) {
209
        $toolbar .= '<a href="submit.php?cid=' . $cid . '">' . _MD_XOOPSTUBE_SUBMITVIDEO . '</a> | ';
210
    }
211
    $toolbar
212
        .= '<a href="newlist.php?newvideoshowdays=7">' . _MD_XOOPSTUBE_LATESTLIST . '</a> | <a href="topten.php?list=hit">' . _MD_XOOPSTUBE_POPULARITY . '</a> | <a href="topten.php?list=rate">'
213
        . _MD_XOOPSTUBE_TOPRATED . '</a> ]';
214
215
    return $toolbar;
216
}
217
218
/**
219
 *
220
 */
221
function xtubeGetServerStatistics()
222
{
223
    global $xoopsModule;
224
    echo '<fieldset style="border: #E8E8E8 1px solid;">
225
          <legend style="display: inline; font-weight: bold; color: #0A3760;">' . _AM_XOOPSTUBE_VIDEO_IMAGEINFO . '</legend>
226
          <div style="padding: 8px;">
227
            <img src="' . XOOPS_URL . '/modules/' . $xoopsModule->getVar('dirname') . '/assets/images/icon/server.png" alt="" style="float: left; padding-right: 10px;" />
228
          <div>' . _AM_XOOPSTUBE_VIDEO_SPHPINI . '</div>';
229
230
    $safemode        = (ini_get('safe_mode')) ? _AM_XOOPSTUBE_VIDEO_ON . _AM_XOOPSTUBE_VIDEO_SAFEMODEPROBLEMS : _AM_XOOPSTUBE_VIDEO_OFF;
231
    $registerglobals = (ini_get('register_globals') == '') ? _AM_XOOPSTUBE_VIDEO_OFF : _AM_XOOPSTUBE_VIDEO_ON;
232
    $videos          = (ini_get('file_uploads')) ? _AM_XOOPSTUBE_VIDEO_ON : _AM_XOOPSTUBE_VIDEO_OFF;
233
234
    $gdlib = (function_exists('gd_info')) ? _AM_XOOPSTUBE_VIDEO_GDON : _AM_XOOPSTUBE_VIDEO_GDOFF;
235
    echo '<li>' . _AM_XOOPSTUBE_VIDEO_GDLIBSTATUS . $gdlib;
236
    if (function_exists('gd_info')) {
237
        if (true == $gdlib = gd_info()) {
238
            echo '<li>' . _AM_XOOPSTUBE_VIDEO_GDLIBVERSION . '<b>' . $gdlib['GD Version'] . '</b>';
239
        }
240
    }
241
    echo '<br /><br />';
242
    echo '<li>' . _AM_XOOPSTUBE_VIDEO_SAFEMODESTATUS . $safemode;
243
    echo '<li>' . _AM_XOOPSTUBE_VIDEO_REGISTERGLOBALS . $registerglobals;
244
    echo '<li>' . _AM_XOOPSTUBE_VIDEO_SERVERUPLOADSTATUS . $videos;
245
    echo '</div>';
246
    echo '</fieldset>';
247
}
248
249
// xtubeDisplayIcons()
250
//
251
// @param  $time
252
// @param integer $status
253
// @param integer $counter
254
// @return
255
/**
256
 * @param     $time
257
 * @param int $status
258
 * @param int $counter
259
 *
260
 * @return string
261
 */
262
function xtubeDisplayIcons($time, $status = 0, $counter = 0)
263
{
264
    global $xoopsModuleConfig, $xoopsModule;
265
266
    $new = '';
267
    $pop = '';
268
269
    $newdate = (time() - (86400 * intval($xoopsModuleConfig['daysnew'])));
270
    $popdate = (time() - (86400 * intval($xoopsModuleConfig['daysupdated'])));
271
272
    if ($xoopsModuleConfig['displayicons'] != 3) {
273
        if ($newdate < $time) {
274
            if (intval($status) > 1) {
275
                if ($xoopsModuleConfig['displayicons'] == 1) {
276
                    $new
277
                        = '&nbsp;<img src="' . XOOPS_URL . '/modules/' . $xoopsModule->getVar(
278
                            'dirname'
279
                        ) . '/assets/images/icon/updated.gif" alt="" style="vertical-align: middle;" />';
280
                }
281
                if ($xoopsModuleConfig['displayicons'] == 2) {
282
                    $new = '<em>' . _MD_XOOPSTUBE_UPDATED . '</em>';
283
                }
284 View Code Duplication
            } else {
285
                if ($xoopsModuleConfig['displayicons'] == 1) {
286
                    $new
287
                        = '&nbsp;<img src="' . XOOPS_URL . '/modules/' . $xoopsModule->getVar(
288
                            'dirname'
289
                        ) . '/assets/images/icon/new.gif" alt="" style="vertical-align: middle;" />';
290
                }
291
                if ($xoopsModuleConfig['displayicons'] == 2) {
292
                    $new = '<em>' . _MD_XOOPSTUBE_NEW . '</em>';
293
                }
294
            }
295
        }
296
        if ($popdate > $time) {
297 View Code Duplication
            if ($counter >= $xoopsModuleConfig['popular']) {
298
                if ($xoopsModuleConfig['displayicons'] == 1) {
299
                    $pop
300
                        = '&nbsp;<img src="' . XOOPS_URL . '/modules/' . $xoopsModule->getVar(
301
                            'dirname'
302
                        ) . '/assets/images/icon/popular.png" alt="" style="vertical-align: middle;" />';
303
                }
304
                if ($xoopsModuleConfig['displayicons'] == 2) {
305
                    $pop = '<em>' . _MD_XOOPSTUBE_POPULAR . '!</em>';
306
                }
307
            }
308
        }
309
    }
310
    $icons = $new . ' ' . $pop;
311
312
    return $icons;
313
}
314
315 View Code Duplication
if (!function_exists('xtubeConvertOrderByIn')) {
316
    // Reusable Link Sorting Functions
317
    // xtubeConvertOrderByIn()
318
    // @param  $orderby
319
    // @return
320
    /**
321
     * @param $orderby
322
     *
323
     * @return string
324
     */
325
    function xtubeConvertOrderByIn($orderby)
326
    {
327
        switch (trim($orderby)) {
328
            case 'titleA':
329
                $orderby = 'title ASC';
330
                break;
331
            case 'dateA':
332
                $orderby = 'published ASC';
333
                break;
334
            case 'hitsA':
335
                $orderby = 'hits ASC';
336
                break;
337
            case 'ratingA':
338
                $orderby = 'rating ASC';
339
                break;
340
            case 'countryA':
341
                $orderby = 'country ASC';
342
                break;
343
            case 'titleD':
344
                $orderby = 'title DESC';
345
                break;
346
            case 'hitsD':
347
                $orderby = 'hits DESC';
348
                break;
349
            case 'ratingD':
350
                $orderby = 'rating DESC';
351
                break;
352
            case'dateD':
353
                $orderby = 'published DESC';
354
                break;
355
            case 'countryD':
356
                $orderby = 'country DESC';
357
                break;
358
        }
359
360
        return $orderby;
361
    }
362
}
363
if (!function_exists('xtubeConvertOrderByTrans')) {
364
    /**
365
     * @param $orderby
366
     *
367
     * @return string
368
     */
369
    function xtubeConvertOrderByTrans($orderby)
370
    {
371
        switch ($orderby) {
372
            case 'hits ASC':
373
                $orderByTrans = _MD_XOOPSTUBE_POPULARITYLTOM;
374
                break;
375
            case 'hits DESC':
376
                $orderByTrans = _MD_XOOPSTUBE_POPULARITYMTOL;
377
                break;
378
            case 'title ASC':
379
                $orderByTrans = _MD_XOOPSTUBE_TITLEATOZ;
380
                break;
381
            case 'title DESC':
382
                $orderByTrans = _MD_XOOPSTUBE_TITLEZTOA;
383
                break;
384
            case 'published ASC':
385
                $orderByTrans = _MD_XOOPSTUBE_DATEOLD;
386
                break;
387
            case 'published DESC':
388
                $orderByTrans = _MD_XOOPSTUBE_DATENEW;
389
                break;
390
            case 'rating ASC':
391
                $orderByTrans = _MD_XOOPSTUBE_RATINGLTOH;
392
                break;
393
            case 'rating DESC':
394
                $orderByTrans = _MD_XOOPSTUBE_RATINGHTOL;
395
                break;
396
            case'country ASC':
397
                $orderByTrans = _MD_XOOPSTUBE_COUNTRYLTOH;
398
                break;
399
            case 'country DESC':
400
                $orderByTrans = _MD_XOOPSTUBE_COUNTRYHTOL;
401
                break;
402
        }
403
404
        return $orderByTrans;
405
    }
406
}
407 View Code Duplication
if (!function_exists('xtubeConvertOrderByOut')) {
408
    /**
409
     * @param $orderby
410
     *
411
     * @return string
412
     */
413
    function xtubeConvertOrderByOut($orderby)
414
    {
415
        switch ($orderby) {
416
            case 'title ASC':
417
                $orderby = 'titleA';
418
                break;
419
            case 'published ASC':
420
                $orderby = 'dateA';
421
                break;
422
            case 'hits ASC':
423
                $orderby = 'hitsA';
424
                break;
425
            case 'rating ASC':
426
                $orderby = 'ratingA';
427
                break;
428
            case 'country ASC':
429
                $orderby = 'countryA';
430
                break;
431
            case 'title DESC':
432
                $orderby = 'titleD';
433
                break;
434
            case 'published DESC':
435
                $orderby = 'dateD';
436
                break;
437
            case 'hits DESC':
438
                $orderby = 'hitsD';
439
                break;
440
            case 'rating DESC':
441
                $orderby = 'ratingD';
442
                break;
443
            case 'country DESC':
444
                $orderby = 'countryD';
445
                break;
446
        }
447
448
        return $orderby;
449
    }
450
}
451
452
// updaterating()
453
// @param  $sel_id
454
// @return updates rating data in itemtable for a given item
455
/**
456
 * @param $sel_id
457
 */
458
function xtubeUpdateRating($sel_id)
459
{
460
    global $xoopsDB;
461
    $query       = 'SELECT rating FROM ' . $xoopsDB->prefix('xoopstube_votedata') . ' WHERE lid=' . $sel_id;
462
    $voteresult  = $xoopsDB->query($query);
463
    $votesDB     = $xoopsDB->getRowsNum($voteresult);
464
    $totalrating = 0;
465
    while (list($rating) = $xoopsDB->fetchRow($voteresult)) {
466
        $totalrating += $rating;
467
    }
468
    $finalrating = $totalrating / $votesDB;
469
    $finalrating = number_format($finalrating, 4);
470
    $sql         = sprintf(
471
        'UPDATE %s SET rating = %u, votes = %u WHERE lid = %u',
472
        $xoopsDB->prefix('xoopstube_videos'),
473
        $finalrating,
474
        $votesDB,
475
        $sel_id
476
    );
477
    $xoopsDB->query($sql);
478
}
479
480
// totalcategory()
481
// @param integer $pid
482
// @return
483
/**
484
 * @param int $pid
485
 *
486
 * @return int
487
 */
488
function xtubeGetTotalCategoryCount($pid = 0)
489
{
490
    global $xoopsDB;
491
492
    $sql = 'SELECT cid FROM ' . $xoopsDB->prefix('xoopstube_cat');
493
    if ($pid > 0) {
494
        $sql .= ' WHERE pid = 0';
495
    }
496
    $result     = $xoopsDB->query($sql);
497
    $catlisting = 0;
498
    while (list($cid) = $xoopsDB->fetchRow($result)) {
499
        if (xtubeCheckGroups($cid)) {
500
            ++$catlisting;
501
        }
502
    }
503
504
    return $catlisting;
505
}
506
507
// xtubeGetTotalItems()
508
// @param integer $sel_id
509
// @param integer $get_child
510
// @param integer $return_sql
511
// @return
512
/**
513
 * @param int $sel_id
514
 * @param int $get_child
515
 * @param int $return_sql
516
 *
517
 * @return string
518
 */
519
function xtubeGetTotalItems($sel_id = 0, $get_child = 0, $return_sql = 0)
520
{
521
    global $xoopsDB, $mytree, $_check_array;
522
523
    if ($sel_id > 0) {
524
        $sql = 'SELECT a.lid, a.cid, a.published FROM ' . $xoopsDB->prefix('xoopstube_videos') . ' a LEFT JOIN ' . $xoopsDB->prefix('xoopstube_altcat') . ' b' . ' ON b.lid=a.lid'
525
            . ' WHERE a.published > 0 AND a.published <= ' . time() . ' AND (a.expired = 0 OR a.expired > ' . time() . ') AND offline = 0 ' . ' AND (b.cid=a.cid OR (a.cid=' . $sel_id . ' OR b.cid='
526
            . $sel_id . '))' . ' GROUP BY a.lid, a.cid, a.published';
527
    } else {
528
        $sql
529
            = 'SELECT lid, cid, published FROM ' . $xoopsDB->prefix('xoopstube_videos') . ' WHERE offline = 0 AND published > 0 AND published <= ' . time() . ' AND (expired = 0 OR expired > ' . time()
530
            . ')';
531
    }
532
    if ($return_sql == 1) {
533
        return $sql;
534
    }
535
536
    $count          = 0;
537
    $published_date = 0;
538
539
    $arr    = array();
540
    $result = $xoopsDB->query($sql);
541 View Code Duplication
    while (list($lid, $cid, $published) = $xoopsDB->fetchRow($result)) {
542
        if (true == xtubeCheckGroups()) {
543
            ++$count;
544
            $published_date = ($published > $published_date) ? $published : $published_date;
545
        }
546
    }
547
548
    $child_count = 0;
549
    if ($get_child == 1) {
550
        $arr  = $mytree->getAllChildId($sel_id);
551
        $size = count($arr);
552
        for ($i = 0; $i < count($arr); ++$i) {
553
            $query2 = 'SELECT a.lid, a.published, a.cid FROM ' . $xoopsDB->prefix('xoopstube_videos') . ' a LEFT JOIN ' . $xoopsDB->prefix('xoopstube_altcat') . ' b' . ' ON b.lid = a.lid'
554
                . ' WHERE a.published > 0 AND a.published <= ' . time() . ' AND (a.expired = 0 OR a.expired > ' . time() . ') AND offline = 0' . ' AND (b.cid=a.cid OR (a.cid=' . $arr[$i]
555
                . ' OR b.cid=' . $arr[$i] . ')) GROUP BY a.lid, a.published, a.cid';
556
557
            $result2 = $xoopsDB->query($query2);
558 View Code Duplication
            while (list($lid, $published) = $xoopsDB->fetchRow($result2)) {
559
                if ($published == 0) {
560
                    continue;
561
                }
562
                $published_date = ($published > $published_date) ? $published : $published_date;
563
                ++$child_count;
564
            }
565
        }
566
    }
567
    $info['count']     = $count + $child_count;
568
    $info['published'] = $published_date;
569
570
    return $info;
571
}
572
573
/**
574
 * @param string $indeximage
575
 * @param string $indexheading
576
 *
577
 * @return string
578
 */
579
function xtubeRenderImageHeader($indeximage = '', $indexheading = '')
580
{
581
    global $xoopsDB, $xoopsModuleConfig;
582
    if ($indeximage == '') {
583
        $result = $xoopsDB->query('SELECT indeximage, indexheading FROM ' . $xoopsDB->prefix('xoopstube_indexpage'));
584
        list($indeximage, $indexheading) = $xoopsDB->fetchrow($result);
585
    }
586
587
    $image = '';
588
    if (!empty($indeximage)) {
589
        $image = xtubeDisplayImage($indeximage, 'index.php', $xoopsModuleConfig['mainimagedir'], $indexheading);
590
    }
591
592
    return $image;
593
}
594
595
/**
596
 * @param string $image
597
 * @param string $path
598
 * @param string $imgsource
599
 * @param string $alttext
600
 *
601
 * @return string
602
 */
603
function xtubeDisplayImage($image = '', $path = '', $imgsource = '', $alttext = '')
604
{
605
    global $xoopsConfig, $xoopsUser, $xoopsModule;
606
607
    $showimage = '';
608
    // Check to see if link is given
609
    if ($path) {
610
        $showimage = '<a href="' . $path . '">';
611
    }
612
    // checks to see if the file is valid else displays default blank image
613
    if (!is_dir(XOOPS_ROOT_PATH . "/{$imgsource}/{$image}") && file_exists(XOOPS_ROOT_PATH . "/{$imgsource}/{$image}")
614
    ) {
615
        $showimage
616
            .= "<img src='" . XOOPS_URL . "/{$imgsource}/{$image}' border='0' title='" . $alttext . "' alt='" . $alttext . "' /></a>";
617
    } else {
618
        if ($xoopsUser && $xoopsUser->isAdmin($xoopsModule->getVar('mid'))) {
619
            $showimage .= '<img src="' . XOOPS_URL . '/modules/' . $xoopsModule->getVar('dirname') . '/assets/images/brokenimg.png" alt="' . _MD_XOOPSTUBE_ISADMINNOTICE . '" /></a>';
620
        } else {
621
            $showimage
622
                .= '<img src="' . XOOPS_URL . '/modules/' . $xoopsModule->getVar('dirname') . '/assets/images/blank.png" alt="' . $alttext . '" /></a>';
623
        }
624
    }
625
    clearstatcache();
626
627
    return $showimage;
628
}
629
630
/**
631
 * @param $published
632
 *
633
 * @return mixed
634
 */
635
function xtubeIsNewImage($published)
636
{
637
    global $xoopsModule, $xoopsDB;
638
639
    $oneday    = (time() - (86400 * 1));
640
    $threedays = (time() - (86400 * 3));
641
    $week      = (time() - (86400 * 7));
642
643
    $path = 'modules/' . $xoopsModule->getVar('dirname') . '/assets/images/icon';
644
645
    if ($published > 0 && $published < $week) {
646
        $indicator['image']   = "$path/linkload4.png";
647
        $indicator['alttext'] = _MD_XOOPSTUBE_NEWLAST;
648
    } elseif ($published >= $week && $published < $threedays) {
649
        $indicator['image']   = "$path/linkload3.png";
650
        $indicator['alttext'] = _MD_XOOPSTUBE_NEWTHIS;
651
    } elseif ($published >= $threedays && $published < $oneday) {
652
        $indicator['image']   = "$path/linkload2.png";
653
        $indicator['alttext'] = _MD_XOOPSTUBE_THREE;
654
    } elseif ($published >= $oneday) {
655
        $indicator['image']   = "$path/linkload1.png";
656
        $indicator['alttext'] = _MD_XOOPSTUBE_TODAY;
657
    } else {
658
        $indicator['image']   = "$path/linkload.png";
659
        $indicator['alttext'] = _MD_XOOPSTUBE_NO_FILES;
660
    }
661
662
    return $indicator;
663
}
664
665
/**
666
 * @param $haystack
667
 * @param $needle
668
 *
669
 * @return string
670
 */
671
function xtubeFindStringChar($haystack, $needle)
672
{
673
    return substr($haystack, 0, strpos($haystack, $needle) + 1);
674
}
675
676
/**
677
 * @param string $header
678
 * @param string $menu
679
 * @param string $extra
680
 * @param int    $scount
681
 *
682
 * @return bool|null
683
 */
684
function xtubeRenderAdminMenu($header = '', $menu = '', $extra = '', $scount = 4)
685
{
686
    global $xoopsConfig, $xoopsModule, $xoopsModuleConfig;
687
688
    $_named_vidid = xoops_getenv('PHP_SELF');
689
    if ($_named_vidid) {
690
        $thispage = basename($_named_vidid);
691
    }
692
693
    $op = (isset($_GET['op'])) ? $op = '?op=' . $_GET['op'] : '';
694
695
    echo '<h4 style="color: #2F5376;">' . _AM_XOOPSTUBE_MODULE_NAME . '</h4>';
696
    echo '
697
        <div style="font-size: 10px; text-align: left; color: #2F5376; padding: 2px 6px; line-height: 18px;">
698
        <span style="margin: 1px; padding: 4px; border: #E8E8E8 1px solid;">
699
            <a href="../admin/index.php">' . _AM_XOOPSTUBE_BINDEX . '</a>
700
        </span>
701
        <span  style="margin: 1px; padding: 4px; border: #E8E8E8 1px solid;">
702
            <a href="../index.php">' . _AM_XOOPSTUBE_GOMODULE . '</a>
703
        </span>
704
        <span  style="margin: 1px; padding: 4px; border: #E8E8E8 1px solid;">
705
            <a href="../../system/admin.php?fct=preferences&op=showmod&mod=' . $xoopsModule->getVar('mid') . '">' . _AM_XOOPSTUBE_PREFS . '</a>
706
        </span>
707
        <span  style="margin: 1px; padding: 4px; border: #E8E8E8 1px solid;">
708
            <a href="../admin/permissions.php">' . _AM_XOOPSTUBE_BPERMISSIONS . '</a>
709
        </span>
710
        <span  style="margin: 1px; padding: 4px; border: #E8E8E8 1px solid;">
711
            <a href="../admin/myblocksadmin.php">' . _AM_XOOPSTUBE_BLOCKADMIN . '</a>
712
        </span>
713
        <span  style="margin: 1px; padding: 4px; border: #E8E8E8 1px solid;">
714
            <a href="../../system/admin.php?fct=modulesadmin&op=update&module=' . $xoopsModule->getVar('dirname') . '">' . _AM_XOOPSTUBE_BUPDATE . '</a>
715
        </span>
716
        <span  style="margin: 1px; padding: 4px; border: #E8E8E8 1px solid;">
717
            <a href="../admin/about.php">' . _AM_XOOPSTUBE_ABOUT . '</a>
718
        </span>
719
        </div><br />';
720
721
    if (empty($menu)) {
722
        // You can change this part to suit your own module. Defining this here will save you form having to do this each time.
723
        $menu = array(
724
            _AM_XOOPSTUBE_MVIDEOS   => 'main.php?op=edit',
725
            _AM_XOOPSTUBE_MCATEGORY => 'category.php',
726
            _AM_XOOPSTUBE_INDEXPAGE => 'indexpage.php',
727
            //            _AM_XOOPSTUBE_MXOOPSTUBE     => 'main.php?op=edit',
0 ignored issues
show
Unused Code Comprehensibility introduced by
43% 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...
728
            _AM_XOOPSTUBE_MUPLOADS  => 'upload.php',
729
            _AM_XOOPSTUBE_VUPLOADS  => 'vupload.php',
730
            _AM_XOOPSTUBE_MVOTEDATA => 'votedata.php',
731
            _AM_XOOPSTUBE_MCOMMENTS => '../../system/admin.php?module=' . $xoopsModule->getVar('mid') . '&status=0&limit=100&fct=comments&selsubmit=Go'
732
        );
733
    }
734
735
    if (!is_array($menu)) {
736
        echo '<table width="100%" cellpadding="2" cellspacing="1" class="outer">';
737
        echo '<tr><td class="even" align="center"><b>' . _AM_XOOPSTUBE_NOMENUITEMS . '</b></td></tr></table><br />';
738
739
        return false;
740
    }
741
742
    $oddnum = array(
743
        1  => '1',
744
        3  => '3',
745
        5  => '5',
746
        7  => '7',
747
        9  => '9',
748
        11 => '11',
749
        13 => '13'
750
    );
751
    // number of rows per menu
752
    $menurows = count($menu) / $scount;
753
    // total amount of rows to complete menu
754
    $menurow = ceil($menurows) * $scount;
755
    // actual number of menuitems per row
756
    $rowcount = $menurow / ceil($menurows);
757
    $count    = 0;
758
    for ($i = count($menu); $i < $menurow; ++$i) {
759
        $tempArray = array(1 => null);
760
        $menu      = array_merge($menu, $tempArray);
761
        ++$count;
762
    }
763
764
    // Sets up the width of each menu cell
765
    $width = 100 / $scount;
766
    $width = ceil($width);
767
768
    $menucount = 0;
769
    $count     = 0;
770
    // Menu table output
771
    echo '<table width="100%" cellpadding="2" cellspacing="1" class="outer" border="1"><tr>';
772
    // Check to see if $menu is and array
773
    if (is_array($menu)) {
774
        $classcounts = 0;
775
        $classcol[0] = 'even';
776
777
        for ($i = 1; $i < $menurow; ++$i) {
778
            ++$classcounts;
779
            if ($classcounts >= $scount) {
780
                if ($classcol[$i - 1] == 'odd') {
781
                    $classcol[$i] = ($classcol[$i - 1] == 'odd' && in_array($classcounts, $oddnum)) ? 'even' : 'odd';
782
                } else {
783
                    $classcol[$i] = ($classcol[$i - 1] == 'even' && in_array($classcounts, $oddnum)) ? 'odd' : 'even';
784
                }
785
                $classcounts = 0;
786
            } else {
787
                $classcol[$i] = ($classcol[$i - 1] == 'even') ? 'odd' : 'even';
788
            }
789
        }
790
        unset($classcounts);
791
792
        foreach ($menu as $menutitle => $menuvideo) {
793
            if ($thispage . $op == $menuvideo) {
794
                $classcol[$count] = 'outer';
795
            }
796
            echo '<td class="' . $classcol[$count] . '" style="padding: 4px; text-align: center;" valign="middle" width="' . $width . '%">';
797
            if (is_string($menuvideo)) {
798
                echo '<a href="' . $menuvideo . '"><span style="font-size: small;">' . $menutitle . '</span></a></td>';
799
            } else {
800
                echo '&nbsp;</td>';
801
            }
802
            ++$menucount;
803
            ++$count;
804
            // Break menu cells to start a new row if $count > $scount
805
            if ($menucount >= $scount) {
806
                echo '</tr>';
807
                $menucount = 0;
808
            }
809
        }
810
        echo '</table><br />';
811
        unset($count);
812
        unset($menucount);
813
    }
814
    // ###### Output warn messages for security ######
815
    if (is_dir(XOOPS_ROOT_PATH . '/modules/' . $xoopsModule->getVar('dirname') . '/update/')) {
816
        xoops_error(
817
            sprintf(
818
                _AM_XOOPSTUBE_WARNINSTALL1,
819
                XOOPS_ROOT_PATH . '/modules/' . $xoopsModule->getVar('dirname') . '/update/'
820
            )
821
        );
822
        echo '<br />';
823
    }
824
825
    $_file = XOOPS_ROOT_PATH . '/modules/' . $xoopsModule->getVar('dirname') . '/update.php';
826
    if (file_exists($_file)) {
827
        xoops_error(
828
            sprintf(
829
                _AM_XOOPSTUBE_WARNINSTALL2,
830
                XOOPS_ROOT_PATH . '/modules/' . $xoopsModule->getVar('dirname') . '/update.php'
831
            )
832
        );
833
        echo '<br />';
834
    }
835
836
    $path1 = XOOPS_ROOT_PATH . '/' . $xoopsModuleConfig['mainimagedir'];
837
    if (!is_dir($path1)) {
838
        xoops_error(sprintf(_AM_XOOPSTUBE_WARNINSTALL3, $path1));
839
        echo '<br />';
840
    }
841
    if (!is_writable($path1)) {
842
        xoops_error(sprintf(_AM_XOOPSTUBE_WARNINSTALL4, $path1));
843
        echo '<br />';
844
    }
845
846
    $path1_t = XOOPS_ROOT_PATH . '/' . $xoopsModuleConfig['mainimagedir'] . '/thumbs';
847
    if (!is_dir($path1_t)) {
848
        xoops_error(sprintf(_AM_XOOPSTUBE_WARNINSTALL3, $path1_t));
849
        echo '<br />';
850
    }
851
    if (!is_writable($path1_t)) {
852
        xoops_error(sprintf(_AM_XOOPSTUBE_WARNINSTALL4, $path1_t));
853
        echo '<br />';
854
    }
855
856
    $path2 = XOOPS_ROOT_PATH . '/' . $xoopsModuleConfig['videoimgdir'];
857
    if (!is_dir($path2)) {
858
        xoops_error(sprintf(_AM_XOOPSTUBE_WARNINSTALL3, $path2));
859
        echo '<br />';
860
    }
861
    if (!is_writable($path2)) {
862
        xoops_error(sprintf(_AM_XOOPSTUBE_WARNINSTALL4, $path2));
863
        echo '<br />';
864
    }
865
866
//    $path2_t = XOOPS_ROOT_PATH . '/' . $xoopsModuleConfig['videoimgdir'] . '/thumbs';
0 ignored issues
show
Unused Code Comprehensibility introduced by
43% 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...
867
//    if ( !is_dir( $path2_t ) || !is_writable( $path2_t ) ) {
868
//        xoops_error( sprintf( _AM_XOOPSTUBE_WARNINSTALL3, $path2_t ) );
869
//        echo '<br />';
870
//    }
871
872
    $path3 = XOOPS_ROOT_PATH . '/' . $xoopsModuleConfig['catimage'];
873
    if (!is_dir($path3)) {
874
        xoops_error(sprintf(_AM_XOOPSTUBE_WARNINSTALL3, $path3));
875
        echo '<br />';
876
    }
877
    if (!is_writable($path3)) {
878
        xoops_error(sprintf(_AM_XOOPSTUBE_WARNINSTALL4, $path3));
879
        echo '<br />';
880
    }
881
882
    $path3_t = XOOPS_ROOT_PATH . '/' . $xoopsModuleConfig['catimage'] . '/thumbs';
883
    if (!is_dir($path3_t)) {
884
        xoops_error(sprintf(_AM_XOOPSTUBE_WARNINSTALL3, $path3_t));
885
        echo '<br />';
886
    }
887
    if (!is_writable($path3_t)) {
888
        xoops_error(sprintf(_AM_XOOPSTUBE_WARNINSTALL4, $path3_t));
889
        echo '<br />';
890
    }
891
892
    $path4 = XOOPS_ROOT_PATH . '/' . $xoopsModuleConfig['videodir'];
893
    if (!is_dir($path4)) {
894
        xoops_error(sprintf(_AM_XOOPSTUBE_WARNINSTALL3, $path4));
895
        echo '<br />';
896
    }
897
    if (!is_writable($path4)) {
898
        xoops_error(sprintf(_AM_XOOPSTUBE_WARNINSTALL4, $path4));
899
        echo '<br />';
900
    }
901
902
    echo '<h4 style="color: #2F5376;">' . $header . '</h4>';
903
    if ($extra) {
904
        echo '<div>' . $extra . '</div>';
905
    }
906
907
    return null;
908
}
909
910
/**
911
 * @param $selected
912
 * @param $dirarray
913
 * @param $namearray
914
 */
915 View Code Duplication
function xtubeGetDirSelectOption($selected, $dirarray, $namearray)
916
{
917
    echo "<select size='1' name='workd' onchange='location.href=\"upload.php?rootpath=\"+this.options[this.selectedIndex].value'>";
918
    echo "<option value=''>--------------------------------------</option>";
919
    foreach ($namearray as $namearray => $workd) {
920
        if ($workd === $selected) {
921
            $opt_selected = 'selected';
922
        } else {
923
            $opt_selected = '';
924
        }
925
        echo '<option value="' . htmlspecialchars($namearray, ENT_QUOTES) . '" $opt_selected>' . $workd . '</option>';
926
    }
927
    echo '</select>';
928
}
929
930
/**
931
 * @param $selected
932
 * @param $dirarray
933
 * @param $namearray
934
 */
935 View Code Duplication
function xtubeVGetDirSelectOption($selected, $dirarray, $namearray)
936
{
937
    echo "<select size='1' name='workd' onchange='location.href=\"vupload.php?rootpath=\"+this.options[this.selectedIndex].value'>";
938
    echo "<option value=''>--------------------------------------</option>";
939
    foreach ($namearray as $namearray => $workd) {
940
        if ($workd === $selected) {
941
            $opt_selected = 'selected';
942
        } else {
943
            $opt_selected = '';
944
        }
945
        echo '<option value="' . htmlspecialchars($namearray, ENT_QUOTES) . '" $opt_selected>' . $workd . '</option>';
946
    }
947
    echo '</select>';
948
}
949
950
/**
951
 * @param        $FILES
952
 * @param string $uploaddir
953
 * @param string $allowed_mimetypes
954
 * @param string $redirecturl
955
 * @param int    $redirect
956
 * @param int    $usertype
957
 *
958
 * @return array|null
959
 */
960
function xtubeUploadFiles(
961
    $FILES,
962
    $uploaddir = 'uploads',
963
    $allowed_mimetypes = '',
964
    $redirecturl = 'index.php',
965
//    $num = 0,
0 ignored issues
show
Unused Code Comprehensibility introduced by
43% 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...
966
    $redirect = 0,
967
    $usertype = 1
968
) {
969
    global $FILES, $xoopsConfig, $xoopsModuleConfig, $xoopsModule;
970
971
    $down = array();
972
    include_once XOOPS_ROOT_PATH . '/modules/' . $xoopsModule->getVar('dirname') . '/class/uploader.php';
973
    if (empty($allowed_mimetypes)) {
974
        $allowed_mimetypes = xtube_retmime($FILES['userfile']['name'], $usertype);
975
    }
976
    $upload_dir = XOOPS_ROOT_PATH . '/' . $uploaddir . '/';
977
978
    $maxfilesize   = $xoopsModuleConfig['maxfilesize'];
979
    $maxfilewidth  = $xoopsModuleConfig['maximgwidth'];
980
    $maxfileheight = $xoopsModuleConfig['maximgheight'];
981
982
    $uploader = new XoopsMediaUploader($upload_dir, $allowed_mimetypes, $maxfilesize, $maxfilewidth, $maxfileheight);
983
    $uploader->noAdminSizeCheck(1);
984
    if ($uploader->fetchMedia($_POST['xoops_upload_file'][0])) {
985
        if (!$uploader->upload()) {
986
            $errors = $uploader->getErrors();
987
            redirect_header($redirecturl, 2, $errors);
988
        } else {
989
            if ($redirect) {
990
                redirect_header($redirecturl, 1, _AM_XOOPSTUBE_UPLOADFILE);
991
            } else {
992
                if (is_file($uploader->savedDestination)) {
993
                    $down['url']  = XOOPS_URL . '/' . $uploaddir . '/' . strtolower($uploader->savedFileName);
994
                    $down['size'] = filesize(
995
                        XOOPS_ROOT_PATH . '/' . $uploaddir . '/' . strtolower($uploader->savedFileName)
996
                    );
997
                }
998
999
                return $down;
1000
            }
1001
        }
1002
    } else {
1003
        $errors = $uploader->getErrors();
1004
        redirect_header($redirecturl, 1, $errors);
1005
    }
1006
1007
    return null;
1008
}
1009
1010
/**
1011
 * @param $heading
1012
 */
1013 View Code Duplication
function xtubeRenderCategoryListHeader($heading)
1014
{
1015
    echo '
1016
        <h4 style="font-weight: bold; color: #0A3760;">' . $heading . '</h4>
1017
        <table width="100%" cellspacing="1" class="outer" summary>
1018
        <tr>
1019
            <th style="text-align: center; font-size: smaller;">' . _AM_XOOPSTUBE_MINDEX_ID . '</th>
1020
            <th style=" font-size: smaller;"><b>' . _AM_XOOPSTUBE_FCATEGORY_TITLE . '</th>
1021
            <th style="text-align: center; font-size: smaller;">' . _AM_XOOPSTUBE_FCATEGORY_WEIGHT . '</th>
1022
            <th style="text-align: center; font-size: smaller;">' . _AM_XOOPSTUBE_FCATEGORY_CIMAGE . '</th>
1023
            <th style="text-align: center; font-size: smaller;">' . _AM_XOOPSTUBE_CATSPONSOR . '</th>
1024
<!--			<th style="text-align: center; font-size: smaller;">' . _AM_XOOPSTUBE_MINDEX_PUBLISH . '</th>
1025
            <th style="text-align: center; font-size: smaller;">' . _AM_XOOPSTUBE_MINDEX_EXPIRE . '</th>
1026
            <th style="text-align: center; font-size: smaller;">' . _AM_XOOPSTUBE_MINDEX_ONLINE . '</th>
1027
            <th style="text-align: center; font-size: smaller;">' . _AM_XOOPSTUBE_MINDEX_ACTION . '</th> -->
1028
        </tr>
1029
        ';
1030
}
1031
1032
/**
1033
 * @param $published
1034
 */
1035
function xtubeRenderCategoryListBody($published)
1036
{
1037
    global $xtubemyts, $xtubeImageArray, $xoopsModuleConfig;
1038
1039
    $lid = $published['lid'];
1040
    $cid = $published['cid'];
1041
1042
    $title     = '<a href="../singlevideo.php?cid=' . $published['cid'] . '&amp;lid=' . $published['lid'] . '">' . $xtubemyts->htmlSpecialCharsStrip(trim($published['title'])) . '</a>';
1043
    $maintitle = urlencode($xtubemyts->htmlSpecialChars(trim($published['title'])));
1044
    $cattitle
1045
                  = '<a href="../viewcat.php?cid=' . $published['cid'] . '">' . xtubeGetCategoryTitle($published['cid']) . '</a>';
1046
    $submitter    = xtubeGetLinkedUserNameFromId($published['submitter']);
1047
    $returnsource = xtubeReturnSource($published['vidsource']);
1048
    $submitted    = xtubeGetTimestamp(formatTimestamp($published['date'], $xoopsModuleConfig['dateformatadmin']));
1049
    $publish      = ($published['published'] > 0) ? xtubeGetTimestamp(
1050
        formatTimestamp($published['published'], $xoopsModuleConfig['dateformatadmin'])
1051
    ) : 'Not Published';
1052
    $expires      = $published['expired'] ? xtubeGetTimestamp(
1053
        formatTimestamp($published['expired'], $xoopsModuleConfig['dateformatadmin'])
1054
    ) : _AM_XOOPSTUBE_MINDEX_NOTSET;
1055
1056
    if ((($published['expired'] && $published['expired'] > time()) OR $published['expired'] == 0)
1057
        && ($published['published'] && $published['published'] < time())
1058
        && $published['offline'] == 0
1059
    ) {
1060
        $published_status = $xtubeImageArray['online'];
1061 View Code Duplication
    } elseif (($published['expired'] && $published['expired'] < time()) && $published['offline'] == 0) {
1062
        $published_status = $xtubeImageArray['expired'];
1063
    } else {
1064
        $published_status = ($published['published'] == 0) ? '<a href="newvideos.php">' . $xtubeImageArray['offline'] . '</a>' : $xtubeImageArray['offline'];
1065
    }
1066
1067 View Code Duplication
    if ($published['vidsource'] == 200) {
1068
        $icon = '<a href="main.php?op=edit&amp;lid=' . $lid . '" title="' . _AM_XOOPSTUBE_ICO_EDIT . '">' . $xtubeImageArray['editimg'] . '</a>&nbsp;';
1069
    } else {
1070
        $icon = '<a href="main.php?op=edit&amp;lid=' . $lid . '" title="' . _AM_XOOPSTUBE_ICO_EDIT . '">' . $xtubeImageArray['editimg'] . '</a>&nbsp;';
1071
    }
1072
    $icon .= '<a href="main.php?op=delete&amp;lid=' . $lid . '" title="' . _AM_XOOPSTUBE_ICO_DELETE . '">' . $xtubeImageArray['deleteimg'] . '</a>&nbsp;';
1073
    $icon .= '<a href="altcat.php?op=main&amp;cid=' . $cid . '&amp;lid=' . $lid . '&amp;title=' . $published['title'] . '" title="' . _AM_XOOPSTUBE_ALTCAT_CREATEF . '">' . $xtubeImageArray['altcat']
1074
        . '</a>';
1075
1076
    echo '
1077
        <tr style="text-align: center; font-size: smaller;">
1078
        <td class="head">' . $lid . '</span></td>
1079
        <td class="even" style="text-align: left;">' . $title . '</td>
1080
        <td class="even">' . $returnsource . '</td>
1081
        <td class="even">' . $cattitle . '</td>
1082
        <td class="even">' . $submitter . '</td>
1083
        <td class="even">' . $publish . '</td>
1084
        <td class="even">' . $expires . '</td>
1085
        <td class="even" style="width: 4%;">' . $published_status . '</td>
1086
        <td class="even" style="text-align: center; width: 6%; white-space: nowrap;">' . $icon . '</td>
1087
        </tr>';
1088
    unset($published);
1089
}
1090
1091
/**
1092
 * @param        $pubrowamount
1093
 * @param        $start
1094
 * @param string $art
1095
 * @param string $_this
1096
 * @param        $align
1097
 *
1098
 * @return bool|null
1099
 */
1100 View Code Duplication
function xtubeSetPageNavigationCategoryList($pubrowamount, $start, $art = 'art', $_this = '', $align)
1101
{
1102
    global $xoopsModuleConfig;
1103
1104
    if (($pubrowamount < $xoopsModuleConfig['admin_perpage'])) {
1105
        return false;
1106
    }
1107
    // Display Page Nav if published is > total display pages amount.
1108
    include_once XOOPS_ROOT_PATH . '/class/pagenav.php';
1109
    $pagenav = new XoopsPageNav($pubrowamount, $xoopsModuleConfig['admin_perpage'], $start, 'st' . $art, $_this);
1110
    echo '<div style="text-align: ' . $align . '; padding: 8px;">' . $pagenav->renderNav() . '</div>';
1111
1112
    return null;
1113
}
1114
1115
/**
1116
 *
1117
 */
1118
function xtubeRenderCategoryListFooter()
1119
{
1120
    echo '<tr style="text-align: center;">
1121
            <td class="head" colspan="7">' . _AM_XOOPSTUBE_MINDEX_NOVIDEOSFOUND . '</td>
1122
          </tr>';
1123
}
1124
1125
/**
1126
 * @param $heading
1127
 */
1128 View Code Duplication
function xtubeRenderVideoListHeader($heading)
1129
{
1130
    echo '
1131
        <h4 style="font-weight: bold; color: #0A3760;">' . $heading . '</h4>
1132
        <table width="100%" cellspacing="1" class="outer" summary>
1133
        <tr>
1134
            <th style="text-align: center; font-size: smaller;">' . _AM_XOOPSTUBE_MINDEX_ID . '</th>
1135
            <th style=" font-size: smaller;"><b>' . _AM_XOOPSTUBE_MINDEX_TITLE . '</th>
1136
            <th style="text-align: center; font-size: smaller;">' . _AM_XOOPSTUBE_VIDSOURCE2 . '</th>
1137
            <th style="text-align: center; font-size: smaller;">' . _AM_XOOPSTUBE_CATTITLE . '</th>
1138
            <th style="text-align: center; font-size: smaller;">' . _AM_XOOPSTUBE_MINDEX_POSTER . '</th>
1139
            <th style="text-align: center; font-size: smaller;">' . _AM_XOOPSTUBE_MINDEX_PUBLISH . '</th>
1140
            <th style="text-align: center; font-size: smaller;">' . _AM_XOOPSTUBE_MINDEX_EXPIRE . '</th>
1141
            <th style="text-align: center; font-size: smaller;">' . _AM_XOOPSTUBE_MINDEX_ONLINE . '</th>
1142
            <th style="text-align: center; font-size: smaller;">' . _AM_XOOPSTUBE_MINDEX_ACTION . '</th>
1143
        </tr>
1144
        ';
1145
}
1146
1147
/**
1148
 * @param $published
1149
 */
1150
function xtubeRenderVideoListBody($published)
1151
{
1152
    global $xtubemyts, $xtubeImageArray, $xoopsModuleConfig, $pathIcon16;
1153
1154
    $lid = $published['lid'];
1155
    $cid = $published['cid'];
1156
1157
    $title     = '<a href="../singlevideo.php?cid=' . $published['cid'] . '&amp;lid=' . $published['lid'] . '">' . $xtubemyts->htmlSpecialCharsStrip(trim($published['title'])) . '</a>';
1158
    $maintitle = urlencode($xtubemyts->htmlSpecialChars(trim($published['title'])));
1159
    $cattitle
1160
                  = '<a href="../viewcat.php?cid=' . $published['cid'] . '">' . xtubeGetCategoryTitle($published['cid']) . '</a>';
1161
    $submitter    = xtubeGetLinkedUserNameFromId($published['submitter']);
1162
    $returnsource = xtubeReturnSource($published['vidsource']);
1163
    $submitted    = xtubeGetTimestamp(formatTimestamp($published['date'], $xoopsModuleConfig['dateformatadmin']));
1164
    $publish      = ($published['published'] > 0) ? xtubeGetTimestamp(
1165
        formatTimestamp($published['published'], $xoopsModuleConfig['dateformatadmin'])
1166
    ) : 'Not Published';
1167
    $expires      = $published['expired'] ? xtubeGetTimestamp(
1168
        formatTimestamp($published['expired'], $xoopsModuleConfig['dateformatadmin'])
1169
    ) : _AM_XOOPSTUBE_MINDEX_NOTSET;
1170
1171
    if ((($published['expired'] && $published['expired'] > time()) OR $published['expired'] == 0)
1172
        && ($published['published'] && $published['published'] < time())
1173
        && $published['offline'] == 0
1174
    ) {
1175
//        $published_status = $xtubeImageArray['online'];
0 ignored issues
show
Unused Code Comprehensibility introduced by
60% 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...
1176
        $published_status = '<a href="main.php?op=toggle&amp;lid=' . $lid . '&amp;offline=' . $published['offline'] . '"><img src="' . $pathIcon16 . '/1.png' . '" /></a>';
1177
1178 View Code Duplication
    } elseif (($published['expired'] && $published['expired'] < time()) && $published['offline'] == 0) {
1179
        $published_status = $xtubeImageArray['expired'];
1180
    } else {
1181
        $published_status = ($published['published'] == 0) ? '<a href="newvideos.php">' . $xtubeImageArray['offline'] . '</a>'
1182
            : '<a href="main.php?op=toggle&amp;lid=' . $lid . '&amp;offline=' . $published['offline'] . '"><img src="' . $pathIcon16 . '/0.png' . '" /></a>';
1183
    }
1184
1185 View Code Duplication
    if ($published['vidsource'] == 200) {
1186
        $icon = '<a href="main.php?op=edit&amp;lid=' . $lid . '" title="' . _AM_XOOPSTUBE_ICO_EDIT . '">' . $xtubeImageArray['editimg'] . '</a>&nbsp;';
1187
    } else {
1188
        $icon = '<a href="main.php?op=edit&amp;lid=' . $lid . '" title="' . _AM_XOOPSTUBE_ICO_EDIT . '">' . $xtubeImageArray['editimg'] . '</a>&nbsp;';
1189
    }
1190
    $icon .= '<a href="main.php?op=delete&amp;lid=' . $lid . '" title="' . _AM_XOOPSTUBE_ICO_DELETE . '">' . $xtubeImageArray['deleteimg'] . '</a>&nbsp;';
1191
    $icon .= '<a href="altcat.php?op=main&amp;cid=' . $cid . '&amp;lid=' . $lid . '&amp;title=' . $published['title'] . '" title="' . _AM_XOOPSTUBE_ALTCAT_CREATEF . '">' . $xtubeImageArray['altcat']
1192
        . '</a>';
1193
1194
    echo '
1195
        <tr style="text-align: center; font-size: smaller;">
1196
        <td class="head">' . $lid . '</span></td>
1197
        <td class="even" style="text-align: left;">' . $title . '</td>
1198
        <td class="even">' . $returnsource . '</td>
1199
        <td class="even">' . $cattitle . '</td>
1200
        <td class="even">' . $submitter . '</td>
1201
        <td class="even">' . $publish . '</td>
1202
        <td class="even">' . $expires . '</td>
1203
        <td class="even" style="width: 4%;">' . $published_status . '</td>
1204
        <td class="even" style="text-align: center; width: 6%; white-space: nowrap;">' . $icon . '</td>
1205
        </tr>';
1206
    unset($published);
1207
}
1208
1209
/**
1210
 * @param $catt
1211
 *
1212
 * @return mixed
1213
 */
1214
function xtubeGetCategoryTitle($catt)
1215
{
1216
    global $xoopsDB;
1217
    $sql    = 'SELECT title FROM ' . $xoopsDB->prefix('xoopstube_cat') . ' WHERE cid=' . $catt;
1218
    $result = $xoopsDB->query($sql);
1219
    $result = $xoopsDB->fetchArray($result);
1220
1221
    return $result['title'];
1222
}
1223
1224
/**
1225
 *
1226
 */
1227
function xtubeRenderVideoListFooter()
1228
{
1229
    echo '<tr style="text-align: center;">
1230
            <td class="head" colspan="7">' . _AM_XOOPSTUBE_MINDEX_NOVIDEOSFOUND . '</td>
1231
          </tr>';
1232
}
1233
1234
/**
1235
 * @param        $pubrowamount
1236
 * @param        $start
1237
 * @param string $art
1238
 * @param string $_this
1239
 * @param        $align
1240
 *
1241
 * @return bool|null
1242
 */
1243 View Code Duplication
function xtubeSetPageNavigationVideoList($pubrowamount, $start, $art = 'art', $_this = '', $align)
1244
{
1245
    global $xoopsModuleConfig;
1246
1247
    if (($pubrowamount < $xoopsModuleConfig['admin_perpage'])) {
1248
        return false;
1249
    }
1250
    // Display Page Nav if published is > total display pages amount.
1251
    include_once XOOPS_ROOT_PATH . '/class/pagenav.php';
1252
    $pagenav = new XoopsPageNav($pubrowamount, $xoopsModuleConfig['admin_perpage'], $start, 'st' . $art, $_this);
1253
    echo '<div style="text-align: ' . $align . '; padding: 8px;">' . $pagenav->renderNav() . '</div>';
1254
1255
    return null;
1256
}
1257
1258
/**
1259
 * @param $document
1260
 *
1261
 * @return mixed
1262
 */
1263
function xtubeConvertHtml2Text($document)
1264
{
1265
    // PHP Manual:: function preg_replace
1266
    // $document should contain an HTML document.
1267
    // This will remove HTML tags, javascript sections
1268
    // and white space. It will also convert some
1269
    // common HTML entities to their text equivalent.
1270
    // Credits : newbb2
1271
    $search = array(
1272
        "'<script[^>]*?>.*?</script>'si", // Strip out javascript
1273
        "'<img.*?/>'si", // Strip out img tags
1274
        "'<[\/\!]*?[^<>]*?>'si", // Strip out HTML tags
1275
        "'([\r\n])[\s]+'", // Strip out white space
1276
        "'&(quot|#34);'i", // Replace HTML entities
1277
        "'&(amp|#38);'i",
1278
        "'&(lt|#60);'i",
1279
        "'&(gt|#62);'i",
1280
        "'&(nbsp|#160);'i",
1281
        "'&(iexcl|#161);'i",
1282
        "'&(cent|#162);'i",
1283
        "'&(pound|#163);'i",
1284
        "'&(copy|#169);'i",
1285
    ); // evaluate as php
1286
1287
    $replace = array(
1288
        "",
1289
        "",
1290
        "",
1291
        "\\1",
1292
        "\"",
1293
        "&",
1294
        "<",
1295
        ">",
1296
        " ",
1297
        chr(161),
1298
        chr(162),
1299
        chr(163),
1300
        chr(169),
1301
    );
1302
1303
    $text = preg_replace($search, $replace, $document);
1304
1305
    return $text;
1306
}
1307
1308
// Check if Tag module is installed
1309
/**
1310
 * @return bool
1311
 */
1312
function xtubeIsModuleTagInstalled()
1313
{
1314
    static $isModuleTagInstalled;
1315
    if (!isset($isModuleTagInstalled)) {
1316
        $modules_handler = xoops_gethandler('module');
1317
        $tag_mod         = $modules_handler->getByDirName('tag');
1318
        if (!$tag_mod) {
1319
            $tag_mod = false;
1320
        } else {
1321
            $isModuleTagInstalled = $tag_mod->getVar('isactive') == 1;
1322
        }
1323
    }
1324
1325
    return $isModuleTagInstalled;
1326
}
1327
1328
// Add item_tag to Tag-module
1329
/**
1330
 * @param $lid
1331
 * @param $item_tag
1332
 */
1333
function xtubeUpdateTag($lid, $item_tag)
1334
{
1335
    global $xoopsModule;
1336
    if (xtubeIsModuleTagInstalled()) {
1337
        include_once XOOPS_ROOT_PATH . '/modules/tag/include/formtag.php';
1338
        $tag_handler = xoops_getmodulehandler('tag', 'tag');
1339
        $tag_handler->updateByItem($item_tag, $lid, $xoopsModule->getVar('dirname'), 0);
1340
    }
1341
}
1342
1343
/**
1344
 * @param $lid
1345
 */
1346
function xtubeUpdateCounter($lid)
1347
{
1348
    global $xoopsDB;
1349
    $sql    = 'UPDATE ' . $xoopsDB->prefix('xoopstube_videos') . ' SET hits=hits+1 WHERE lid=' . intval($lid);
1350
    $result = $xoopsDB->queryF($sql);
1351
}
1352
1353
/**
1354
 * @param $banner_id
1355
 *
1356
 * @return null|string
1357
 */
1358 View Code Duplication
function xtubeGetBannerFromBannerId($banner_id)
1359
{
1360
###### Hack by www.stefanosilvestrini.com ######
1361
    global $xoopsConfig;
1362
    $db      =& XoopsDatabaseFactory::getDatabaseConnection();
1363
    $bresult = $db->query('SELECT COUNT(*) FROM ' . $db->prefix('banner') . ' WHERE bid=' . $banner_id);
1364
    list ($numrows) = $db->fetchRow($bresult);
1365
    if ($numrows > 1) {
1366
        $numrows = $numrows - 1;
1367
        mt_srand((double)microtime() * 1000000);
1368
        $bannum = mt_rand(0, $numrows);
1369
    } else {
1370
        $bannum = 0;
1371
    }
1372
    if ($numrows > 0) {
1373
        $bresult = $db->query('SELECT * FROM ' . $db->prefix('banner') . ' WHERE bid=' . $banner_id, 1, $bannum);
1374
        list ($bid, $cid, $imptotal, $impmade, $clicks, $imageurl, $clickurl, $date, $htmlbanner, $htmlcode) = $db->fetchRow(
1375
            $bresult
1376
        );
1377
        if ($xoopsConfig['my_ip'] == xoops_getenv('REMOTE_ADDR')) {
1378
            // EMPTY
1379
        } else {
1380
            $db->queryF(sprintf('UPDATE %s SET impmade = impmade+1 WHERE bid = %u', $db->prefix('banner'), $bid));
1381
        }
1382
        /* Check if this impression is the last one and print the banner */
1383
        if ($imptotal == $impmade) {
1384
            $newid = $db->genId($db->prefix('bannerfinish') . '_bid_seq');
1385
            $sql   = sprintf(
1386
                'INSERT INTO %s (bid, cid, impressions, clicks, datestart, dateend) VALUES (%u, %u, %u, %u, %u, %u)',
1387
                $db->prefix('bannerfinish'),
1388
                $newid,
1389
                $cid,
1390
                $impmade,
1391
                $clicks,
1392
                $date,
1393
                time()
1394
            );
1395
            $db->queryF($sql);
1396
            $db->queryF(sprintf('DELETE FROM %s WHERE bid = %u', $db->prefix('banner'), $bid));
1397
        }
1398
        if ($htmlbanner) {
1399
            $bannerobject = $htmlcode;
1400
        } else {
1401
            $bannerobject = '<div align="center"><a href="' . XOOPS_URL . '/banners.php?op=click&bid=' . $bid . '" target="_blank">';
1402
            if (stristr($imageurl, '.swf')) {
1403
                $bannerobject = $bannerobject
1404
                    . '<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0" width="468" height="60">'
1405
                    . '<param name="movie" value="' . $imageurl . '"></param>' . '<param name="quality" value="high"></param>' . '<embed src="' . $imageurl
1406
                    . '" quality="high" pluginspage="http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash" type="application/x-shockwave-flash" width="468" height="60">'
1407
                    . '</embed>' . '</object>';
1408
            } else {
1409
                $bannerobject = $bannerobject . '<img src="' . $imageurl . '" alt="" />';
1410
            }
1411
            $bannerobject = $bannerobject . '</a></div>';
1412
        }
1413
1414
        return $bannerobject;
1415
    }
1416
1417
    return null;
1418
}
1419
1420
/**
1421
 * @param $client_id
1422
 *
1423
 * @return null|string
1424
 */
1425 View Code Duplication
function xtubeGetBannerFromClientId($client_id)
1426
{
1427
###### Hack by www.stefanosilvestrini.com ######
1428
    global $xoopsConfig;
1429
    $db      =& XoopsDatabaseFactory::getDatabaseConnection();
1430
    $bresult = $db->query('SELECT COUNT(*) FROM ' . $db->prefix('banner') . ' WHERE cid=' . $client_id);
1431
    list ($numrows) = $db->fetchRow($bresult);
1432
    if ($numrows > 1) {
1433
        $numrows = $numrows - 1;
1434
        mt_srand((double)microtime() * 1000000);
1435
        $bannum = mt_rand(0, $numrows);
1436
    } else {
1437
        $bannum = 0;
1438
    }
1439
    if ($numrows > 0) {
1440
        $bresult = $db->query(
1441
            'SELECT * FROM ' . $db->prefix('banner') . ' WHERE cid=' . $client_id . ' ORDER BY rand()',
1442
            1,
1443
            $bannum
1444
        );
1445
        list ($bid, $cid, $imptotal, $impmade, $clicks, $imageurl, $clickurl, $date, $htmlbanner, $htmlcode) = $db->fetchRow(
1446
            $bresult
1447
        );
1448
        if ($xoopsConfig['my_ip'] == xoops_getenv('REMOTE_ADDR')) {
1449
            // EMPTY
1450
        } else {
1451
            $db->queryF(sprintf('UPDATE %s SET impmade = impmade+1 WHERE bid = %u', $db->prefix('banner'), $bid));
1452
        }
1453
        /* Check if this impression is the last one and print the banner */
1454
        if ($imptotal == $impmade) {
1455
            $newid = $db->genId($db->prefix('bannerfinish') . '_bid_seq');
1456
            $sql   = sprintf(
1457
                'INSERT INTO %s (bid, cid, impressions, clicks, datestart, dateend) VALUES (%u, %u, %u, %u, %u, %u)',
1458
                $db->prefix('bannerfinish'),
1459
                $newid,
1460
                $cid,
1461
                $impmade,
1462
                $clicks,
1463
                $date,
1464
                time()
1465
            );
1466
            $db->queryF($sql);
1467
            $db->queryF(sprintf('DELETE FROM %s WHERE bid = %u', $db->prefix('banner'), $bid));
1468
        }
1469
        if ($htmlbanner) {
1470
            $bannerobject = $htmlcode;
1471
        } else {
1472
            $bannerobject = '<div align="center"><a href="' . XOOPS_URL . '/banners.php?op=click&bid=' . $bid . '" target="_blank">';
1473
            if (stristr($imageurl, '.swf')) {
1474
                $bannerobject = $bannerobject
1475
                    . '<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0" width="468" height="60">'
1476
                    . '<param name="movie" value="' . $imageurl . '"></param>' . '<param name="quality" value="high"></param>' . '<embed src="' . $imageurl
1477
                    . '" quality="high" pluginspage="http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash" type="application/x-shockwave-flash" width="468" height="60">'
1478
                    . '</embed>' . '</object>';
1479
            } else {
1480
                $bannerobject = $bannerobject . '<img src="' . $imageurl . '" alt="" />';
1481
            }
1482
            $bannerobject = $bannerobject . '</a></div>';
1483
        }
1484
1485
        return $bannerobject;
1486
    }
1487
1488
    return null;
1489
}
1490
1491
/**
1492
 *
1493
 */
1494
function xtubeSetNoIndexNoFollow()
1495
{
1496
    global $xoTheme, $xoopsTpl;
1497
    if (is_object($xoTheme)) {
1498
        $xoTheme->addMeta('meta', 'robots', 'noindex,nofollow');
1499
    } else {
1500
        $xoopsTpl->assign('xoops_meta_robots', 'noindex,nofollow');
1501
    }
1502
}
1503
1504
/**
1505
 * @param $userid
1506
 *
1507
 * @return string
1508
 */
1509
function xtubeGetLinkedUserNameFromId($userid)
1510
{
1511
    $userid = intval($userid);
1512
    if ($userid > 0) {
1513
        $member_handler =& xoops_gethandler('member');
1514
        $user           =& $member_handler->getUser($userid);
1515
        if (is_object($user)) {
1516
            $linkeduser
1517
                = '<a href="' . XOOPS_URL . '/userinfo.php?uid=' . $userid . '">' . $user->getVar('uname') . '</a>';
1518
1519
            return $linkeduser;
1520
        }
1521
    }
1522
1523
    return $GLOBALS['xoopsConfig']['anonymous'];
1524
}
1525
1526
/**
1527
 * @param $time
1528
 *
1529
 * @return string
1530
 */
1531
function xtubeGetTimestamp($time)
1532
{
1533
    global $xoopsConfig, $xoopsModuleConfig;
1534
    $mydirname = basename(dirname(__DIR__));
1535
    include_once XOOPS_ROOT_PATH . '/modules/' . $mydirname . '/language/' . $xoopsConfig['language'] . '/local.php';
1536
1537
    $trans     = array(
1538
        'Monday'    => _XOOPSTUBE_MONDAY,
1539
        'Tuesday'   => _XOOPSTUBE_TUESDAY,
1540
        'Wednesday' => _XOOPSTUBE_WEDNESDAY,
1541
        'Thursday'  => _XOOPSTUBE_THURSDAY,
1542
        'Friday'    => _XOOPSTUBE_FRIDAY,
1543
        'Saturday'  => _XOOPSTUBE_SATURDAY,
1544
        'Sunday'    => _XOOPSTUBE_SUNDAY,
1545
        'Mon'       => _XOOPSTUBE_MON,
1546
        'Tue'       => _XOOPSTUBE_TUE,
1547
        'Wed'       => _XOOPSTUBE_WED,
1548
        'Thu'       => _XOOPSTUBE_THU,
1549
        'Fri'       => _XOOPSTUBE_FRI,
1550
        'Sat'       => _XOOPSTUBE_SAT,
1551
        'Sun'       => _XOOPSTUBE_SUN,
1552
        'January'   => _XOOPSTUBE_JANUARI,
1553
        'February'  => _XOOPSTUBE_FEBRUARI,
1554
        'March'     => _XOOPSTUBE_MARCH,
1555
        'April'     => _XOOPSTUBE_APRIL,
1556
        'May'       => _XOOPSTUBE_MAY,
1557
        'June'      => _XOOPSTUBE_JUNE,
1558
        'July'      => _XOOPSTUBE_JULY,
1559
        'August'    => _XOOPSTUBE_AUGUST,
1560
        'September' => _XOOPSTUBE_SEPTEMBER,
1561
        'October'   => _XOOPSTUBE_OCTOBER,
1562
        'November'  => _XOOPSTUBE_NOVEMBER,
1563
        'December'  => _XOOPSTUBE_DECEMBER,
1564
        'Jan'       => _XOOPSTUBE_JAN,
1565
        'Feb'       => _XOOPSTUBE_FEB,
1566
        'Mar'       => _XOOPSTUBE_MAR,
1567
        'Apr'       => _XOOPSTUBE_APR,
1568
        //        'May'       => _XOOPSTUBE_MAY2,
0 ignored issues
show
Unused Code Comprehensibility introduced by
43% 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...
1569
        'Jun'       => _XOOPSTUBE_JUN,
1570
        'Jul'       => _XOOPSTUBE_JUL,
1571
        'Aug'       => _XOOPSTUBE_AUG,
1572
        'Sep'       => _XOOPSTUBE_SEP,
1573
        'Oct'       => _XOOPSTUBE_OCT,
1574
        'Nov'       => _XOOPSTUBE_NOV,
1575
        'Dec'       => _XOOPSTUBE_DEC
1576
    );
1577
    $timestamp = strtr($time, $trans);
1578
1579
    return $timestamp;
1580
}
1581
1582
/**
1583
 * Do some basic file checks and stuff.
1584
 * Author: Andrew Mills  Email:  [email protected]
1585
 * from amReviews module
1586
 */
1587
function xtubeFileChecks()
1588
{
1589
    global $xoopsModule, $xoopsModuleConfig;
1590
1591
    echo "<fieldset>";
1592
    echo "<legend style=\"color: #990000; font-weight: bold;\">" . _AM_XOOPSTUBE_FILECHECKS . "</legend>";
1593
1594
    $dirPhotos      = XOOPS_ROOT_PATH . '/' . $xoopsModuleConfig['catimage'];
1595
    $dirVideos      = XOOPS_ROOT_PATH . '/' . $xoopsModuleConfig['videodir'];
1596
    $dirScreenshots = XOOPS_ROOT_PATH . '/' . $xoopsModuleConfig['videoimgdir'];
1597
1598 View Code Duplication
    if (file_exists($dirPhotos)) {
1599
        if (!is_writable($dirPhotos)) {
1600
            echo "<span style=\" color: red; font-weight: bold;\">Warning:</span> " . _AM_XOOPSTUBE_UNABLE_TO_WRITE . $dirPhotos . "<br />";
1601
        } else {
1602
            echo "<span style=\" color: green; font-weight: bold;\">OK:</span> " . $dirPhotos . "<br />";
1603
        }
1604
    } else {
1605
        echo "<span style=\" color: red; font-weight: bold;\">" . _AM_XOOPSTUBE_WARNING . "</span> " . $dirPhotos . " <span style=\" color: red; \">" . _AM_XOOPSTUBE_NOT_EXISTS . "</span> <br />";
1606
    }
1607
    // photothumbdir
1608 View Code Duplication
    if (file_exists($dirVideos)) {
1609
        if (!is_writable($dirVideos)) {
1610
            echo "<span style=\" color: red; font-weight: bold;\">" . _AM_XOOPSTUBE_WARNING . "</span> " . _AM_XOOPSTUBE_UNABLE_TO_WRITE . $dirVideos . "<br />";
1611
        } else {
1612
            echo "<span style=\" color: green; font-weight: bold;\">OK:</span> " . $dirVideos . "<br />";
1613
        }
1614
    } else {
1615
        echo "<span style=\" color: red; font-weight: bold;\">" . _AM_XOOPSTUBE_WARNING . "</span> " . $dirVideos . " <span style=\" color: red; \">" . _AM_XOOPSTUBE_NOT_EXISTS . "</span> <br />";
1616
    }
1617
    // photohighdir
1618 View Code Duplication
    if (file_exists($dirScreenshots)) {
1619
        if (!is_writable($dirScreenshots)) {
1620
            echo "<span style=\" color: red; font-weight: bold;\">Warning:</span> " . _AM_XOOPSTUBE_UNABLE_TO_WRITE . $dirScreenshots . "<br />";
1621
        } else {
1622
            echo "<span style=\" color: green; font-weight: bold;\">OK:</span> " . $dirScreenshots . "<br />";
1623
        }
1624
    } else {
1625
        echo "<span style=\" color: red; font-weight: bold;\">" . _AM_XOOPSTUBE_WARNING . "</span> " . $dirScreenshots . " <span style=\" color: red; \">" . _AM_XOOPSTUBE_NOT_EXISTS
1626
            . "</span> <br />";
1627
    }
1628
1629
    /**
1630
     * Some info.
1631
     */
1632
    $uploads = (ini_get('file_uploads')) ? _AM_XOOPSTUBE_UPLOAD_ON : _AM_XOOPSTUBE_UPLOAD_OFF;
1633
    echo "<br />";
1634
    echo "<ul>";
1635
    echo "<li>" . _AM_XOOPSTUBE_UPLOADMAX . "<b>" . ini_get('upload_max_filesize') . "</b></li>";
1636
    echo "<li>" . _AM_XOOPSTUBE_POSTMAX . "<b>" . ini_get('post_max_size') . "</b></li>";
1637
    echo "<li>" . _AM_XOOPSTUBE_UPLOADS . "<b>" . $uploads . "</b></li>";
1638
1639
    $gdinfo = gd_info();
1640
    if (function_exists('gd_info')) {
1641
        echo "<li>" . _AM_XOOPSTUBE_GDIMGSPPRT . "<b>" . _AM_XOOPSTUBE_GDIMGON . "</b></li>";
1642
        echo "<li>" . _AM_XOOPSTUBE_GDIMGVRSN . "<b>" . $gdinfo['GD Version'] . "</b></li>";
1643
    } else {
1644
        echo "<li>" . _AM_XOOPSTUBE_GDIMGSPPRT . "<b>" . _AM_XOOPSTUBE_GDIMGOFF . "</b></li>";
1645
    }
1646
    echo "</ul>";
1647
1648
    //$inithingy = ini_get_all();
0 ignored issues
show
Unused Code Comprehensibility introduced by
50% 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...
1649
    //print_r($inithingy);
1650
1651
    echo "</fieldset>";
1652
1653
}
1654
1655
/**
1656
 * @param      $path
1657
 * @param int  $mode
1658
 * @param      $fileSource
1659
 * @param null $fileTarget
1660
 */
1661
function createDirectory($path, $mode = 0777, $fileSource, $fileTarget = null)
1662
{
1663
    if (!is_dir($path)) {
1664
        mkdir($path, $mode);
1665
        file_put_contents($path . '/index.html', '<script>history.go(-1);</script>');
1666
        if (!empty($fileSource) && !empty($fileTarget)) {
1667
            @copy($fileSource, $fileTarget);
1668
        }
1669
    }
1670
    chmod($path, $mode);
1671
}
1672
1673
/**
1674
 * @return string
1675
 */
1676
function xtubeGetLetters()
1677
{
1678
    global $xoopsModule, $xoopsDB;
1679
1680
    $letterchoice          = '<div>' . _MD_XOOPSTUBE_BROWSETOTOPIC . '</div>';
1681
    $alphabet              = getXtubeAlphabet();
1682
    $num                   = count($alphabet) - 1;
1683
    $counter               = 0;
1684
    $distinctDbLetters_arr = array();
1685
    $sql                   = 'SELECT DISTINCT (UPPER(LEFT(title, 1))) AS letter FROM ' . $xoopsDB->prefix(
1686
            'xoopstube_videos WHERE expired = 0 AND offline = 0'
1687
        );
1688
    if ($result = $xoopsDB->query($sql)) {
1689
        while ($row = $xoopsDB->fetchArray($result)) {
1690
            $distinctDbLetters_arr[] = $row['letter'];
1691
        }
1692
    }
1693
    unset($sql);
1694
1695
    while (list(, $ltr) = each($alphabet)) {
1696
1697
        if (in_array($ltr, $distinctDbLetters_arr)) {
1698
            $letterchoice
1699
                .= '<a class="xoopstube_letters xoopstube_letters_green" href="';
1700
        } else {
1701
            $letterchoice
1702
                .= '<a class="xoopstube_letters" href="';
1703
        }
1704
        $letterchoice .= XOOPS_URL . '/modules/' . $xoopsModule->getVar('dirname') . '/viewcat.php?list=' . $ltr . '">' . $ltr . '</a>';
1705
        if ($counter == round($num / 2)) {
1706
            $letterchoice .= '<br />';
1707
        } elseif ($counter != $num) {
1708
            $letterchoice .= '&nbsp;';
1709
        }
1710
        ++$counter;
1711
    }
1712
1713
    return $letterchoice;
1714
}
1715
1716
/**
1717
 * @return mixed|string
1718
 */
1719
function xtubeLettersChoice()
1720
{
1721
    global $xoopsModule;
1722
1723
    $mydirname = $xoopsModule->getVar('dirname');
1724
    include_once XOOPS_ROOT_PATH . "/modules/$mydirname/class/$mydirname.php";
1725
    $xoopstube = XoopstubeXoopstube::getInstance();
1726
1727
    $a = $xoopstube->getHandler('xoopstube');
1728
    $b = $a->getActiveCriteria();
1729
    $mydirname = basename(dirname(__DIR__));
1730
1731
    $criteria = $xoopstube->getHandler('xoopstube')->getActiveCriteria();
1732
    $criteria->setGroupby('UPPER(LEFT(title,1))');
1733
    $countsByLetters = $xoopstube->getHandler($mydirname)->getCounts($criteria);
1734
    // Fill alphabet array
1735
    $alphabet       = getXtubeAlphabet();
1736
    $alphabet_array = array();
1737
    foreach ($alphabet as $letter) {
1738
        $letter_array = array();
1739
        if (isset($countsByLetters[$letter])) {
1740
            $letter_array['letter'] = $letter;
1741
            $letter_array['count']  = $countsByLetters[$letter];
1742
            $letter_array['url']    = "" . XOOPS_URL . "/modules/$mydirname/viewcat.php?list={$letter}";
1743
        } else {
1744
            $letter_array['letter'] = $letter;
1745
            $letter_array['count']  = 0;
1746
            $letter_array['url']    = "";
1747
        }
1748
        $alphabet_array[$letter] = $letter_array;
1749
        unset($letter_array);
1750
    }
1751
    // Render output
1752
    if (!isset($GLOBALS['xoTheme']) || !is_object($GLOBALS['xoTheme'])) {
1753
        include_once $GLOBALS['xoops']->path("/class/theme.php");
1754
        $GLOBALS['xoTheme'] = new xos_opal_Theme();
1755
    }
1756
    require_once $GLOBALS['xoops']->path('class/template.php');
1757
    $letterschoiceTpl          = new XoopsTpl();
1758
    $letterschoiceTpl->caching = false; // Disable cache
1759
    $letterschoiceTpl->assign('alphabet', $alphabet_array);
1760
    $html = $letterschoiceTpl->fetch("db:" . $xoopstube->getModule()->dirname() . "_common_letterschoice.tpl");
1761
    unset($letterschoiceTpl);
1762
1763
    return $html;
1764
}
1765
1766
//===============  from WF-Downloads   ======================================
1767
1768
/**
1769
 * @return bool
1770
 */
1771
function xtubeUserIsAdmin()
1772
{
1773
    global $xoopsUser;
1774
    $xoopstube = XoopstubeXoopstube::getInstance();
1775
1776
    static $xtubeIsAdmin;
1777
1778
    if (isset($xtubeIsAdmin)) {
1779
        return $xtubeIsAdmin;
1780
    }
1781
1782
    if (!$xoopsUser) {
1783
        $xtubeIsAdmin = false;
1784
    } else {
1785
        $xtubeIsAdmin = $xoopsUser->isAdmin($xoopstube->getModule()->getVar('mid'));
1786
    }
1787
1788
    return $xtubeIsAdmin;
1789
}
1790