Passed
Pull Request — master (#23)
by Michael
06:31 queued 02:41
created

singlevideo.php (1 issue)

Labels
Severity
1
<?php
2
3
/**
4
 * Module: XoopsTube
5
 *
6
 * You may not change or alter any portion of this comment or credits
7
 * of supporting developers from this source code or any supporting source code
8
 * which is considered copyrighted (c) material of the original comment or credit authors.
9
 *
10
 * PHP version 5
11
 *
12
 * @category        Module
13
 * @package         Xoopstube
14
 * @author          XOOPS Development Team
15
 * @copyright       2001-2016 XOOPS Project (https://xoops.org)
16
 * @license         GNU GPL 2 or later (https://www.gnu.org/licenses/gpl-2.0.html)
17
 * @link            https://xoops.org/
18
 * @since           1.0.6
19
 */
20
21
use Xmf\Request;
22
use XoopsModules\Xoopstube\{
23
    Utility,
24
    Tree
25
};
26
27
$GLOBALS['xoopsOption']['template_main'] = 'xoopstube_singlevideo.tpl';
28
29
require_once __DIR__ . '/header.php';
30
31
$lid = Request::getInt('lid', Request::getInt('lid', '', 'POST'), 'GET');
32
$cid = Request::getInt('cid', Request::getInt('cid', '', 'POST'), 'GET');
33
34
$sql2 = 'SELECT count(*) FROM '
35
        . $GLOBALS['xoopsDB']->prefix('xoopstube_videos')
36
        . ' a LEFT JOIN '
37
        . $GLOBALS['xoopsDB']->prefix('xoopstube_altcat')
38
        . ' b'
39
        . ' ON b.lid = a.lid'
40
        . ' WHERE a.published > 0 AND a.published <= '
41
        . time()
42
        . ' AND (a.expired = 0 OR a.expired > '
43
        . time()
44
        . ') AND a.offline = 0'
45
        . ' AND (b.cid=a.cid OR (a.cid='
46
        . $cid
47
        . ' OR b.cid='
48
        . $cid
49
        . '))';
50
[$count] = $GLOBALS['xoopsDB']->fetchRow($GLOBALS['xoopsDB']->query($sql2));
51
52
if (false === Utility::checkGroups($cid) || 0 === $count) {
53
    redirect_header('index.php', 1, _MD_XOOPSTUBE_MUSTREGFIRST);
54
}
55
56
$sql       = 'SELECT * FROM ' . $GLOBALS['xoopsDB']->prefix('xoopstube_videos') . ' WHERE lid=' . $lid . '
57
        AND (published > 0 AND published <= ' . time() . ')
58
        AND (expired = 0 OR expired > ' . time() . ')
59
        AND offline = 0
60
        AND cid > 0';
61
$result    = $GLOBALS['xoopsDB']->query($sql);
62
$videoArray = $GLOBALS['xoopsDB']->fetchArray($result);
63
64
if (!is_array($videoArray)) {
65
    redirect_header('index.php', 1, _MD_XOOPSTUBE_NOVIDEOLOAD);
66
}
67
68
69
require_once XOOPS_ROOT_PATH . '/header.php';
70
$xoTheme->addStylesheet('modules/' . $moduleDirName . '/assets/css/xtubestyle.css');
71
72
// tags support
73
if (Utility::isModuleTagInstalled()) {
74
    require_once XOOPS_ROOT_PATH . '/modules/tag/include/tagbar.php';
75
    $xoopsTpl->assign('tagbar', tagBar($videoArray['lid'], 0));
76
}
77
78
$video['imageheader']  = Utility::renderImageHeader();
79
$video['id']           = $videoArray['lid'];
80
$video['cid']          = $videoArray['cid'];
81
$video['vidid']        = $videoArray['vidid'];
82
$video['description2'] = $myts->displayTarea($videoArray['description'], 1, 1, 1, 1, 1);
83
84
$mytree        = new Tree($GLOBALS['xoopsDB']->prefix('xoopstube_cat'), 'cid', 'pid');
85
$pathstring    = '<a href="index.php">' . _MD_XOOPSTUBE_MAIN . '</a>&nbsp;:&nbsp;';
86
$pathstring    .= $mytree->getNicePathFromId($cid, 'title', 'viewcat.php?op=');
87
$video['path'] = $pathstring;
88
// Get video from source
89
$video['showvideo'] = xtubeShowVideo($videoArray['vidid'], $videoArray['vidsource'], $videoArray['screenshot'], $videoArray['picurl']);
90
91
// Get Social Bookmarks
92
$video['sbmarks'] = getSocialBookmarks($videoArray['lid']);
93
94
// Start of meta tags
95
global $xoopsTpl, $xoTheme;
96
97
$maxWords = 100;
98
$words    = [];
99
$words    = explode(' ', Utility::convertHtml2text($videoArray['description']));
0 ignored issues
show
It seems like XoopsModules\Xoopstube\U...eoArray['description']) can also be of type array and null and string[]; however, parameter $string of explode() does only seem to accept string, maybe add an additional type check? ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-type  annotation

99
$words    = explode(' ', /** @scrutinizer ignore-type */ Utility::convertHtml2text($videoArray['description']));
Loading history...
100
$newWords = [];
101
$i        = 0;
102
while ($i < $maxWords - 1 && $i < count($words)) {
103
    if (isset($words[$i])) {
104
        $newWords[] = trim($words[$i]);
105
    }
106
    ++$i;
107
}
108
$video_meta_description = implode(' ', $newWords);
109
110
if (is_object($GLOBALS['xoTheme'])) {
111
    if ($videoArray['keywords']) {
112
        $GLOBALS['xoTheme']->addMeta('meta', 'keywords', $videoArray['keywords']);
113
    }
114
    $GLOBALS['xoTheme']->addMeta('meta', 'title', $videoArray['title']);
115
    if (1 == $GLOBALS['xoopsModuleConfig']['usemetadescr']) {
116
        $GLOBALS['xoTheme']->addMeta('meta', 'description', $video_meta_description);
117
    }
118
} else {
119
    if ($videoArray['keywords']) {
120
        $xoopsTpl->assign('xoops_meta_keywords', $videoArray['keywords']);
121
    }
122
    if (1 == $GLOBALS['xoopsModuleConfig']['usemetadescr']) {
123
        $GLOBALS['xoTheme']->assign('xoops_meta_description', $video_meta_description);
124
    }
125
}
126
$xoopsTpl->assign('xoops_pagetitle', $videoArray['title']);
127
// End of meta tags
128
129
$moderate = 0;
130
require_once XOOPS_ROOT_PATH . '/modules/' . $xoopsModule->getVar('dirname') . '/include/videoloadinfo.php';
131
132
$xoopsTpl->assign('show_screenshot', false);
133
if (isset($GLOBALS['xoopsModuleConfig']['screenshot']) && 1 == $GLOBALS['xoopsModuleConfig']['screenshot']) {
134
    $xoopsTpl->assign('shotwidth', $GLOBALS['xoopsModuleConfig']['shotwidth']);
135
    $xoopsTpl->assign('shotheight', $GLOBALS['xoopsModuleConfig']['shotheight']);
136
    $xoopsTpl->assign('show_screenshot', true);
137
}
138
139
if (false === $video['isadmin']) {
140
    $count = Utility::updateCounter($lid);
141
}
142
143
// Show other author videos
144
$sql    = 'SELECT lid, cid, title, published FROM ' . $GLOBALS['xoopsDB']->prefix('xoopstube_videos') . '
145
        WHERE submitter=' . $videoArray['submitter'] . '
146
        AND lid <> ' . $videoArray['lid'] . '
147
        AND published > 0 AND published <= ' . time() . ' AND (expired = 0 OR expired > ' . time() . ')
148
        AND offline = 0 ORDER BY published DESC';
149
$result = $GLOBALS['xoopsDB']->query($sql, 10, 0);
150
151
while (false !== ($arr = $GLOBALS['xoopsDB']->fetchArray($result))) {
152
    if (true === Utility::checkGroups($arr['cid'])) {
153
        $videouid['title']     = htmlspecialchars($arr['title'], ENT_QUOTES | ENT_HTML5);
154
        $videouid['lid']       = $arr['lid'];
155
        $videouid['cid']       = $arr['cid'];
156
        $videouid['published'] = Utility::getTimestamp(formatTimestamp($arr['published'], $GLOBALS['xoopsModuleConfig']['dateformat']));
157
        $xoopsTpl->append('video_uid', $videouid);
158
    }
159
}
160
161
// Copyright notice
162
if (isset($GLOBALS['xoopsModuleConfig']['copyright']) && 1 == $GLOBALS['xoopsModuleConfig']['copyright']) {
163
    $xoopsTpl->assign('lang_copyright', '' . $video['publisher'] . ' &#0169; ' . _MD_XOOPSTUBE_COPYRIGHT . ' ' . formatTimestamp(time(), 'Y') . ' - ' . XOOPS_URL);
164
}
165
166
// Show other videos by submitter
167
if (isset($GLOBALS['xoopsModuleConfig']['othervideos']) && 1 == $GLOBALS['xoopsModuleConfig']['othervideos']) {
168
    $xoopsTpl->assign('other_videos', '<b>' . _MD_XOOPSTUBE_OTHERBYUID . '</b>' . $video['submitter'] . '<br>');
169
} else {
170
    $xoopsTpl->assign('other_videos', '<b>' . _MD_XOOPSTUBE_NOOTHERBYUID . '</b>' . $video['submitter'] . '<br>');
171
}
172
173
$video['showsubmitterx'] = $GLOBALS['xoopsModuleConfig']['showsubmitter'];
174
$video['showsbookmarx']  = $GLOBALS['xoopsModuleConfig']['showsbookmarks'];
175
$video['othervideox']    = $GLOBALS['xoopsModuleConfig']['othervideos'];
176
$xoopsTpl->assign('video', $video);
177
178
$xoopsTpl->assign('back', '<a href="javascript:history.go(-1)"><img src="' . XOOPS_URL . '/modules/' . $xoopsModule->getVar('dirname') . '/assets/images/icon/back.png"></a>'); // Displays Back button
179
$xoopsTpl->assign('module_dir', $xoopsModule->getVar('dirname'));
180
$xoopsTpl->assign('mod_url', XOOPS_URL . '/modules/' . $moduleDirName);
181
182
require XOOPS_ROOT_PATH . '/include/comment_view.php';
183
require_once XOOPS_ROOT_PATH . '/footer.php';
184