This project does not seem to handle request data directly as such no vulnerable execution paths were found.
include
, or for example
via PHP's auto-loading mechanism.
1 | <?php declare(strict_types=1); |
||
2 | |||
3 | /** |
||
4 | * **************************************************************************** |
||
5 | * marquee - MODULE FOR XOOPS |
||
6 | * Copyright (c) Hervé Thouzard (https://www.herve-thouzard.com) |
||
7 | * |
||
8 | * You may not change or alter any portion of this comment or credits |
||
9 | * of supporting developers from this source code or any supporting source code |
||
10 | * which is considered copyrighted (c) material of the original comment or credit authors. |
||
11 | * This program is distributed in the hope that it will be useful, |
||
12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of |
||
13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
||
14 | * |
||
15 | * @copyright Hervé Thouzard (https://www.herve-thouzard.com) |
||
16 | * @license GNU GPL 2.0 or later (https://www.gnu.org/licenses/gpl-2.0.html) |
||
17 | * @author Hervé Thouzard (https://www.herve-thouzard.com) |
||
18 | * **************************************************************************** |
||
19 | * |
||
20 | * @param $limit |
||
21 | * @param $dateFormat |
||
22 | * @param $itemsSize |
||
23 | * |
||
24 | * @return array |
||
25 | */ |
||
26 | |||
27 | use XoopsModules\Newbb; |
||
0 ignored issues
–
show
|
|||
28 | |||
29 | // Script to list recent posts from Newbb 1 & 2 |
||
30 | /** |
||
31 | * @param $limit |
||
32 | * @param $dateFormat |
||
33 | * @param $itemsSize |
||
34 | * @return array|false |
||
35 | */ |
||
36 | function b_marquee_newbb($limit, $dateFormat, $itemsSize) |
||
37 | { |
||
38 | // require_once XOOPS_ROOT_PATH . '/modules/marquee/class/Utility.php'; |
||
39 | $block = []; |
||
40 | /** @var \XoopsModuleHandler $moduleHandler */ |
||
41 | $moduleHandler = xoops_getHandler('module'); |
||
42 | $newbb = $moduleHandler->getByDirname('newbb'); |
||
43 | $newbbVersion = (int)$newbb->getInfo('version'); |
||
44 | if ($newbbVersion >= 2) { |
||
45 | $order = 't.topic_time'; |
||
46 | $forumHandler = Newbb\Helper::getInstance()->getHandler('Forum'); |
||
0 ignored issues
–
show
The type
XoopsModules\Newbb\Helper was not found. Maybe you did not declare it correctly or list all dependencies?
The issue could also be caused by a filter entry in the build configuration.
If the path has been excluded in your configuration, e.g. filter:
dependency_paths: ["lib/*"]
For further information see https://scrutinizer-ci.com/docs/tools/php/php-scrutinizer/#list-dependency-paths ![]() |
|||
47 | /** @var \XoopsModuleHandler $moduleHandler */ |
||
48 | $moduleHandler = xoops_getHandler('module'); |
||
49 | $newbb = $moduleHandler->getByDirname('newbb'); |
||
50 | if (null === $newbbConfig) { |
||
0 ignored issues
–
show
Comprehensibility
Best Practice
introduced
by
|
|||
51 | /** @var \XoopsConfigHandler $configHandler */ |
||
52 | $configHandler = xoops_getHandler('config'); |
||
53 | $newbbConfig = $configHandler->getConfigsByCat(0, $newbb->getVar('mid')); |
||
0 ignored issues
–
show
|
|||
54 | } |
||
55 | if (null === $access_forums) { |
||
0 ignored issues
–
show
Comprehensibility
Best Practice
introduced
by
|
|||
56 | $access_forums = $forumHandler->getForums(0, 'access'); // get all accessible forums |
||
57 | } |
||
58 | $validForums = array_keys($access_forums); |
||
0 ignored issues
–
show
Comprehensibility
Best Practice
introduced
by
|
|||
59 | $forumCriteria = ' AND t.forum_id IN (' . implode(',', $validForums) . ')'; |
||
60 | unset($access_forums); |
||
61 | $approveCriteria = ' AND t.approved = 1 AND p.approved = 1'; |
||
62 | $db = \XoopsDatabaseFactory::getDatabaseConnection(); |
||
63 | $query = 'SELECT t.*, f.forum_name, f.allow_subject_prefix, p.post_id, p.icon, p.uid, p.poster_name, u.uname, u.name FROM ' |
||
64 | . $db->prefix('bb_topics') |
||
65 | . ' t, ' |
||
66 | . $db->prefix('bb_forums') |
||
67 | . ' f, ' |
||
68 | . $db->prefix('bb_posts') |
||
69 | . ' p LEFT JOIN ' |
||
70 | . $db->prefix('users') |
||
71 | . ' u ON u.uid = p.uid WHERE f.forum_id=t.forum_id ' |
||
72 | . $forumCriteria |
||
73 | . $approveCriteria |
||
74 | . ' AND t.topic_last_post_id=p.post_id ORDER BY ' |
||
75 | . $order |
||
76 | . ' DESC'; |
||
77 | $result = $db->query($query, $limit, 0); |
||
78 | if (!$result) { |
||
79 | return false; |
||
80 | } |
||
81 | $rows = []; |
||
82 | while (false !== ($row = $db->fetchArray($result))) { |
||
83 | $rows[] = $row; |
||
84 | } |
||
85 | if (count($rows) < 1) { |
||
86 | return false; |
||
87 | } |
||
88 | $myts = \MyTextSanitizer::getInstance(); |
||
0 ignored issues
–
show
|
|||
89 | foreach ($rows as $arr) { |
||
90 | $title = htmlspecialchars($arr['topic_title'], ENT_QUOTES | ENT_HTML5); |
||
91 | if ($itemsSize > 0) { |
||
92 | $title = xoops_substr($title, 0, $itemsSize + 3); |
||
93 | } |
||
94 | $block[] = [ |
||
95 | 'date' => formatTimestamp($arr['topic_time'], $dateFormat), |
||
96 | 'category' => $arr['forum_name'], |
||
97 | 'author' => $arr['uid'], |
||
98 | 'title' => $title, |
||
99 | 'link' => "<a href='" . XOOPS_URL . '/modules/newbb/viewtopic.php?topic_id=' . $arr['topic_id'] . '&post_id=' . $arr['post_id'] . '#forumpost' . $arr['post_id'] . "'>" . $title . '</a>', |
||
100 | ]; |
||
101 | } |
||
102 | } else { // Newbb 1 |
||
103 | $db = \XoopsDatabaseFactory::getDatabaseConnection(); |
||
104 | $myts = \MyTextSanitizer::getInstance(); |
||
105 | $order = 't.topic_time'; |
||
106 | $time = $tmpuser = ''; |
||
107 | $query = 'SELECT t.topic_id, t.topic_title, t.topic_last_post_id, t.topic_time, t.topic_views, t.topic_replies, t.forum_id, f.forum_name FROM ' |
||
108 | . $db->prefix('bb_topics') |
||
109 | . ' t, ' |
||
110 | . $db->prefix('bb_forums') |
||
111 | . ' f WHERE f.forum_id=t.forum_id AND f.forum_type <> 1 ORDER BY ' |
||
112 | . $order |
||
113 | . ' DESC'; |
||
114 | if (!$result = $db->query($query, $limit, 0)) { |
||
115 | return false; |
||
116 | } |
||
117 | while (false !== ($arr = $db->fetchArray($result))) { |
||
118 | $lastpostername = $db->query('SELECT post_id, uid FROM ' . $db->prefix('bb_posts') . ' WHERE post_id = ' . $arr['topic_last_post_id']); |
||
119 | while (false !== ($tmpdb = $db->fetchArray($lastpostername))) { |
||
120 | $tmpuser = \XoopsUser::getUnameFromId($tmpdb['uid']); |
||
121 | $time = formatTimestamp($arr['topic_time'], $dateFormat); |
||
122 | } |
||
123 | $title = htmlspecialchars($arr['topic_title'], ENT_QUOTES | ENT_HTML5); |
||
124 | if ($itemsSize > 0) { |
||
125 | $title = xoops_substr($title, 0, $itemsSize + 3); |
||
126 | } |
||
127 | $block[] = [ |
||
128 | 'date' => $time, |
||
129 | 'category' => $arr['forum_name'], |
||
130 | 'author' => $tmpuser, |
||
131 | 'title' => $title, |
||
132 | 'link' => "<a href='" . XOOPS_URL . '/modules/newbb/viewtopic.php?topic_id=' . $arr['topic_id'] . '&forum=' . $arr['forum_id'] . '&post_id=' . $arr['topic_last_post_id'] . '#forumpost' . $arr['topic_last_post_id'] . "'>" . $title . '</a>', |
||
133 | ]; |
||
134 | } |
||
135 | } |
||
136 | |||
137 | return $block; |
||
138 | } |
||
139 |
The issue could also be caused by a filter entry in the build configuration. If the path has been excluded in your configuration, e.g.
excluded_paths: ["lib/*"]
, you can move it to the dependency path list as follows:For further information see https://scrutinizer-ci.com/docs/tools/php/php-scrutinizer/#list-dependency-paths