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.
These results are based on our legacy PHP analysis, consider migrating to our new PHP analysis engine instead. Learn more
1 | <?php |
||
2 | |||
3 | /** |
||
4 | * |
||
5 | * Module: SmartPartner |
||
6 | * Author: The SmartFactory <www.smartfactory.ca> |
||
7 | * Licence: GNU |
||
8 | */ |
||
9 | |||
10 | include_once __DIR__ . '/admin_header.php'; |
||
11 | |||
12 | global $smartPartnerFileHandler; |
||
0 ignored issues
–
show
|
|||
13 | |||
14 | $op = ''; |
||
15 | if (isset($_GET['op'])) { |
||
16 | $op = $_GET['op']; |
||
17 | } |
||
18 | if (isset($_POST['op'])) { |
||
19 | $op = $_POST['op']; |
||
20 | } |
||
21 | |||
22 | /** |
||
23 | * @param bool $showmenu |
||
24 | * @param int $fileid |
||
25 | * @param int $id |
||
26 | */ |
||
27 | function editfile($showmenu = false, $fileid = 0, $id = 0) |
||
28 | { |
||
29 | global $smartPartnerFileHandler, $xoopsModule; |
||
0 ignored issues
–
show
Compatibility
Best Practice
introduced
by
Use of
global functionality is not recommended; it makes your code harder to test, and less reusable.
Instead of relying on 1. Pass all data via parametersfunction myFunction($a, $b) {
// Do something
}
2. Create a class that maintains your stateclass MyClass {
private $a;
private $b;
public function __construct($a, $b) {
$this->a = $a;
$this->b = $b;
}
public function myFunction() {
// Do something
}
}
![]() |
|||
30 | |||
31 | include_once XOOPS_ROOT_PATH . '/class/xoopsformloader.php'; |
||
32 | // if there is a parameter, and the id exists, retrieve data: we're editing a file |
||
33 | if ($fileid != 0) { |
||
34 | |||
35 | // Creating the File object |
||
36 | $fileObj = new smartpartnerfile($fileid); |
||
37 | |||
38 | if ($fileObj->notLoaded()) { |
||
39 | redirect_header('javascript:history.go(-1)', 1, _AM_SPARTNER_NOFILESELECTED); |
||
40 | } |
||
41 | |||
42 | echo "<br>\n"; |
||
43 | echo "<span style='color: #2F5376; font-weight: bold; font-size: 16px; margin: 6px 6px 0 0; '>" . _AM_SPARTNER_FILE_EDITING . '</span>'; |
||
44 | echo "<span style=\"color: #567; margin: 3px 0 12px 0; font-size: small; display: block; \">" . _AM_SPARTNER_FILE_EDITING_DSC . '</span>'; |
||
45 | smartpartner_collapsableBar('editfile', 'editfileicon', _AM_SPARTNER_FILE_INFORMATIONS); |
||
46 | } else { |
||
47 | // there's no parameter, so we're adding an item |
||
48 | $fileObj = $smartPartnerFileHandler->create(); |
||
49 | $fileObj->setVar('id', $id); |
||
50 | |||
51 | echo "<span style='color: #2F5376; font-weight: bold; font-size: 16px; margin: 6px 6px 0 0; '>" . _AM_SPARTNER_FILE_ADDING . '</span>'; |
||
52 | echo "<span style=\"color: #567; margin: 3px 0 12px 0; font-size: small; display: block; \">" . _AM_SPARTNER_FILE_ADDING_DSC . '</span>'; |
||
53 | smartpartner_collapsableBar('addfile', 'addfileicon', _AM_SPARTNER_FILE_INFORMATIONS); |
||
54 | } |
||
55 | |||
56 | // FILES UPLOAD FORM |
||
57 | $files_form = new XoopsThemeForm(_AM_SPARTNER_UPLOAD_FILE, 'files_form', xoops_getenv('PHP_SELF')); |
||
58 | $files_form->setExtra("enctype='multipart/form-data'"); |
||
59 | |||
60 | // NAME |
||
61 | $name_text = new XoopsFormText(_AM_SPARTNER_FILE_NAME, 'name', 50, 255, $fileObj->name()); |
||
62 | $name_text->setDescription(_AM_SPARTNER_FILE_NAME_DSC); |
||
63 | $files_form->addElement($name_text, true); |
||
64 | |||
65 | // DESCRIPTION |
||
66 | $description_text = new XoopsFormTextArea(_AM_SPARTNER_FILE_DESCRIPTION, 'description', $fileObj->description()); |
||
67 | $description_text->setDescription(_AM_SPARTNER_FILE_DESCRIPTION_DSC); |
||
68 | $files_form->addElement($description_text); |
||
69 | |||
70 | // FILE TO UPLOAD |
||
71 | if ($fileid == 0) { |
||
72 | $file_box = new XoopsFormFile(_AM_SPARTNER_FILE_TO_UPLOAD, 'userfile', 0); |
||
73 | $file_box->setExtra("size ='50'"); |
||
74 | $files_form->addElement($file_box); |
||
75 | } |
||
76 | |||
77 | $status_select = new XoopsFormRadioYN(_AM_SPARTNER_FILE_STATUS, 'file_status', $fileObj->status()); |
||
78 | $status_select->setDescription(_AM_SPARTNER_FILE_STATUS_DSC); |
||
79 | $files_form->addElement($status_select); |
||
80 | |||
81 | $files_button_tray = new XoopsFormElementTray('', ''); |
||
82 | $files_hidden = new XoopsFormHidden('op', 'uploadfile'); |
||
83 | $files_button_tray->addElement($files_hidden); |
||
84 | |||
85 | if ($fileid == 0) { |
||
86 | $files_butt_create = new XoopsFormButton('', '', _AM_SPARTNER_UPLOAD, 'submit'); |
||
87 | $files_butt_create->setExtra('onclick="this.form.elements.op.value=\'uploadfile\'"'); |
||
88 | $files_button_tray->addElement($files_butt_create); |
||
89 | |||
90 | $files_butt_another = new XoopsFormButton('', '', _AM_SPARTNER_FILE_UPLOAD_ANOTHER, 'submit'); |
||
91 | $files_butt_another->setExtra('onclick="this.form.elements.op.value=\'uploadanother\'"'); |
||
92 | $files_button_tray->addElement($files_butt_another); |
||
93 | } else { |
||
94 | $files_butt_create = new XoopsFormButton('', '', _AM_SPARTNER_MODIFY, 'submit'); |
||
95 | $files_butt_create->setExtra('onclick="this.form.elements.op.value=\'modify\'"'); |
||
96 | $files_button_tray->addElement($files_butt_create); |
||
97 | } |
||
98 | |||
99 | $files_butt_clear = new XoopsFormButton('', '', _AM_SPARTNER_CLEAR, 'reset'); |
||
100 | $files_button_tray->addElement($files_butt_clear); |
||
101 | |||
102 | $butt_cancel = new XoopsFormButton('', '', _AM_SPARTNER_CANCEL, 'button'); |
||
103 | $butt_cancel->setExtra('onclick="history.go(-1)"'); |
||
104 | $files_button_tray->addElement($butt_cancel); |
||
105 | |||
106 | $files_form->addElement($files_button_tray); |
||
107 | |||
108 | // fileid |
||
109 | $files_form->addElement(new XoopsFormHidden('fileid', $fileid)); |
||
110 | |||
111 | // id |
||
112 | $files_form->addElement(new XoopsFormHidden('id', $id)); |
||
113 | |||
114 | $files_form->display(); |
||
115 | |||
116 | if ($fileid != 0) { |
||
117 | smartpartner_close_collapsable('editfile', 'editfileicon'); |
||
118 | } else { |
||
119 | smartpartner_close_collapsable('addfile', 'addfileicon'); |
||
120 | } |
||
121 | } |
||
122 | |||
123 | $false = false; |
||
124 | /* -- Available operations -- */ |
||
125 | switch ($op) { |
||
126 | case 'uploadfile': |
||
127 | smartpartner_upload_file(false, true, $false); |
||
128 | exit; |
||
129 | break; |
||
130 | |||
131 | case 'uploadanother': |
||
132 | smartpartner_upload_file(true, true, $false); |
||
133 | exit; |
||
134 | break; |
||
135 | |||
136 | case 'mod': |
||
137 | global $smartPartnerFileHandler; |
||
0 ignored issues
–
show
Compatibility
Best Practice
introduced
by
Use of
global functionality is not recommended; it makes your code harder to test, and less reusable.
Instead of relying on 1. Pass all data via parametersfunction myFunction($a, $b) {
// Do something
}
2. Create a class that maintains your stateclass MyClass {
private $a;
private $b;
public function __construct($a, $b) {
$this->a = $a;
$this->b = $b;
}
public function myFunction() {
// Do something
}
}
![]() |
|||
138 | $fileid = isset($_GET['fileid']) ? $_GET['fileid'] : 0; |
||
139 | $id = isset($_GET['id']) ? $_GET['id'] : 0; |
||
140 | if (($fileid == 0) && ($id == 0)) { |
||
141 | redirect_header('javascript:history.go(-1)', 3, _AM_SPARTNER_NOITEMSELECTED); |
||
142 | } |
||
143 | |||
144 | smartpartner_xoops_cp_header(); |
||
145 | include_once XOOPS_ROOT_PATH . '/class/xoopsformloader.php'; |
||
146 | |||
147 | editfile(true, $fileid, $id); |
||
148 | break; |
||
149 | |||
150 | case 'modify': |
||
151 | global $xoopsUser; |
||
0 ignored issues
–
show
Compatibility
Best Practice
introduced
by
Use of
global functionality is not recommended; it makes your code harder to test, and less reusable.
Instead of relying on 1. Pass all data via parametersfunction myFunction($a, $b) {
// Do something
}
2. Create a class that maintains your stateclass MyClass {
private $a;
private $b;
public function __construct($a, $b) {
$this->a = $a;
$this->b = $b;
}
public function myFunction() {
// Do something
}
}
![]() |
|||
152 | |||
153 | $fileid = isset($_POST['fileid']) ? (int)$_POST['fileid'] : 0; |
||
154 | |||
155 | // Creating the file object |
||
156 | if ($fileid != 0) { |
||
157 | $fileObj = new SmartpartnerFile($fileid); |
||
158 | } else { |
||
159 | $fileObj = $smartPartnerFileHandler->create(); |
||
160 | } |
||
161 | |||
162 | // Putting the values in the file object |
||
163 | $fileObj->setVar('name', $_POST['name']); |
||
164 | $fileObj->setVar('description', $_POST['description']); |
||
165 | $fileObj->setVar('status', (int)$_POST['file_status']); |
||
166 | |||
167 | // Storing the file |
||
168 | View Code Duplication | if (!$fileObj->store()) { |
|
169 | redirect_header('partner.php?op=mod&id=' . $fileObj->id(), 3, _AM_SPARTNER_FILE_EDITING_ERROR . smartpartner_formatErrors($fileObj->getErrors())); |
||
170 | exit; |
||
171 | } |
||
172 | |||
173 | redirect_header('partner.php?op=mod&id=' . $fileObj->id(), 2, _AM_SPARTNER_FILE_EDITING_SUCCESS); |
||
174 | |||
175 | exit(); |
||
176 | break; |
||
177 | |||
178 | View Code Duplication | case 'del': |
|
179 | global $xoopsUser, $xoopsUser, $xoopsConfig, $xoopsDB, $_GET; |
||
0 ignored issues
–
show
Compatibility
Best Practice
introduced
by
Use of
global functionality is not recommended; it makes your code harder to test, and less reusable.
Instead of relying on 1. Pass all data via parametersfunction myFunction($a, $b) {
// Do something
}
2. Create a class that maintains your stateclass MyClass {
private $a;
private $b;
public function __construct($a, $b) {
$this->a = $a;
$this->b = $b;
}
public function myFunction() {
// Do something
}
}
![]() |
|||
180 | |||
181 | $module_id = $xoopsModule->getVar('mid'); |
||
182 | $gpermHandler = xoops_getHandler('groupperm'); |
||
183 | |||
184 | $fileid = isset($_POST['fileid']) ? (int)$_POST['fileid'] : 0; |
||
185 | $fileid = isset($_GET['fileid']) ? (int)$_GET['fileid'] : $fileid; |
||
186 | |||
187 | $fileObj = new SmartpartnerFile($fileid); |
||
188 | |||
189 | $confirm = isset($_POST['confirm']) ? $_POST['confirm'] : 0; |
||
190 | $title = isset($_POST['title']) ? $_POST['title'] : ''; |
||
191 | |||
192 | if ($confirm) { |
||
193 | if (!$smartPartnerFileHandler->delete($fileObj)) { |
||
194 | redirect_header('partner.php', 2, _AM_SPARTNER_FILE_DELETE_ERROR); |
||
195 | exit; |
||
196 | } |
||
197 | |||
198 | redirect_header('partner.php', 2, sprintf(_AM_SPARTNER_FILEISDELETED, $fileObj->name())); |
||
199 | } else { |
||
200 | // no confirm: show deletion condition |
||
201 | $fileid = isset($_GET['fileid']) ? (int)$_GET['fileid'] : 0; |
||
202 | |||
203 | smartpartner_xoops_cp_header(); |
||
204 | xoops_confirm(array('op' => 'del', 'fileid' => $fileObj->fileid(), 'confirm' => 1, 'name' => $fileObj->name()), 'file.php', |
||
205 | _AM_SPARTNER_DELETETHISFILE . ' <br>' . $fileObj->name() . ' <br> <br>', _AM_SPARTNER_DELETE); |
||
206 | xoops_cp_footer(); |
||
207 | } |
||
208 | |||
209 | exit(); |
||
210 | break; |
||
211 | |||
212 | case 'default': |
||
213 | default: |
||
214 | smartpartner_xoops_cp_header(); |
||
215 | |||
216 | exit; |
||
217 | include_once XOOPS_ROOT_PATH . '/class/xoopsformloader.php'; |
||
218 | include_once XOOPS_ROOT_PATH . '/class/pagenav.php'; |
||
219 | |||
220 | global $xoopsUser, $xoopsUser, $xoopsConfig, $xoopsDB, $xoopsModuleConfig, $xoopsModule; |
||
0 ignored issues
–
show
Compatibility
Best Practice
introduced
by
Use of
global functionality is not recommended; it makes your code harder to test, and less reusable.
Instead of relying on 1. Pass all data via parametersfunction myFunction($a, $b) {
// Do something
}
2. Create a class that maintains your stateclass MyClass {
private $a;
private $b;
public function __construct($a, $b) {
$this->a = $a;
$this->b = $b;
}
public function myFunction() {
// Do something
}
}
![]() |
|||
221 | |||
222 | echo "<br>\n"; |
||
223 | |||
224 | smartpartner_collapsableBar('toptable', 'toptableicon', _AM_SPARTNER_PUBLISHEDITEMS, _AM_SPARTNER_PUBLISHED_DSC); |
||
225 | |||
226 | // Get the total number of published ITEM |
||
227 | $totalitems = $smartPartnerItemHandler->getItemsCount(-1, array(_SPARTNER_STATUS_PUBLISHED)); |
||
228 | |||
229 | // creating the item objects that are published |
||
230 | $itemsObj = $smartPartnerItemHandler->getAllPublished($xoopsModuleConfig['perpage'], $startitem); |
||
231 | $totalItemsOnPage = count($itemsObj); |
||
232 | |||
233 | echo "<table width='100%' cellspacing=1 cellpadding=3 border=0 class = outer>"; |
||
234 | echo '<tr>'; |
||
235 | echo "<td width='40' class='bg3' align='center'><b>" . _AM_SPARTNER_ITEMID . '</b></td>'; |
||
236 | echo "<td width='20%' class='bg3' align='left'><b>" . _AM_SPARTNER_ITEMCATEGORYNAME . '</b></td>'; |
||
237 | echo "<td class='bg3' align='left'><b>" . _AM_SPARTNER_TITLE . '</b></td>'; |
||
238 | echo "<td width='90' class='bg3' align='center'><b>" . _AM_SPARTNER_CREATED . '</b></td>'; |
||
239 | echo "<td width='60' class='bg3' align='center'><b>" . _AM_SPARTNER_ACTION . '</b></td>'; |
||
240 | echo '</tr>'; |
||
241 | if ($totalitems > 0) { |
||
242 | for ($i = 0; $i < $totalItemsOnPage; ++$i) { |
||
243 | $categoryObj =& $itemsObj[$i]->category(); |
||
244 | |||
245 | $modify = "<a href='partner.php?op=mod&id=" |
||
246 | . $itemsObj[$i]->id() |
||
247 | . "'><img src='" |
||
248 | . $pathIcon16 |
||
249 | . '/edit.png' |
||
250 | . "' title='" |
||
251 | . _AM_SPARTNER_EDITITEM |
||
252 | . "' alt='" |
||
253 | . _AM_SPARTNER_EDITITEM |
||
254 | . "' /></a>"; |
||
255 | $delete = "<a href='partner.php?op=del&id=" |
||
256 | . $itemsObj[$i]->id() |
||
257 | . "'><img src='" |
||
258 | . $pathIcon16 |
||
259 | . '/delete.png' |
||
260 | . "' title='" |
||
261 | . _AM_SPARTNER_EDITITEM |
||
262 | . "' alt='" |
||
263 | . _AM_SPARTNER_DELETEITEM |
||
264 | . "'/></a>"; |
||
265 | |||
266 | echo '<tr>'; |
||
267 | echo "<td class='head' align='center'>" . $itemsObj[$i]->id() . '</td>'; |
||
268 | echo "<td class='even' align='left'>" . $categoryObj->name() . '</td>'; |
||
269 | echo "<td class='even' align='left'><a href='" |
||
270 | . XOOPS_URL |
||
271 | . '/modules/' |
||
272 | . $xoopsModule->dirname() |
||
273 | . '/partner.php?id=' |
||
274 | . $itemsObj[$i]->id() |
||
275 | . "'>" |
||
276 | . $itemsObj[$i]->title() |
||
277 | . '</a></td>'; |
||
278 | echo "<td class='even' align='center'>" . $itemsObj[$i]->datesub() . '</td>'; |
||
279 | echo "<td class='even' align='center'> $modify $delete </td>"; |
||
280 | echo '</tr>'; |
||
281 | } |
||
282 | } else { |
||
283 | $id = -1; |
||
284 | echo '<tr>'; |
||
285 | echo "<td class='head' align='center' colspan= '7'>" . _AM_SPARTNER_NOITEMS . '</td>'; |
||
286 | echo '</tr>'; |
||
287 | } |
||
288 | echo "</table>\n"; |
||
289 | echo "<br>\n"; |
||
290 | |||
291 | $pagenav = new XoopsPageNav($totalitems, $xoopsModuleConfig['perpage'], $startitem, 'startitem'); |
||
292 | echo '<div style="text-align:right;">' . $pagenav->renderNav() . '</div>'; |
||
293 | echo '</div>'; |
||
294 | |||
295 | $totalcategories = $smartPartnerCategoryHandler->getCategoriesCount(-1); |
||
296 | if ($totalcategories > 0) { |
||
297 | edititem(); |
||
298 | } |
||
299 | |||
300 | break; |
||
301 | } |
||
302 | //smart_modFooter(); |
||
303 | //xoops_cp_footer(); |
||
304 | include_once __DIR__ . '/admin_footer.php'; |
||
305 |
Instead of relying on
global
state, we recommend one of these alternatives:1. Pass all data via parameters
2. Create a class that maintains your state