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 | $myts = MyTextSanitizer::getInstance(); |
||
12 | |||
13 | $op = isset($_GET['op']) ? $_GET['op'] : ''; |
||
14 | |||
15 | switch ($op) { |
||
16 | case 'createdir': |
||
17 | $path = isset($_GET['path']) ? $_GET['path'] : false; |
||
18 | if ($path) { |
||
19 | if ($path === 'root') { |
||
20 | $path = ''; |
||
21 | } |
||
22 | $thePath = smartpartner_getUploadDir(true, $path); |
||
23 | |||
24 | $res = smartpartner_admin_mkdir($thePath); |
||
25 | if ($res) { |
||
26 | $source = SMARTPARTNER_ROOT_PATH . 'assets/images/blank.png'; |
||
27 | $dest = $thePath . 'blank.png'; |
||
28 | |||
29 | smartpartner_copyr($source, $dest); |
||
30 | } |
||
31 | $msg = $res ? _AM_SPARTNER_DIRCREATED : _AM_SPARTNER_DIRNOTCREATED; |
||
32 | } else { |
||
33 | $msg = _AM_SPARTNER_DIRNOTCREATED; |
||
34 | } |
||
35 | |||
36 | redirect_header('main.php', 2, $msg . ': ' . $thePath); |
||
37 | |||
38 | break; |
||
39 | } |
||
40 | $pick = isset($_GET['pick']) ? (int)$_GET['pick'] : 0; |
||
41 | $pick = isset($_POST['pick']) ? (int)$_POST['pick'] : $pick; |
||
42 | |||
43 | $statussel = isset($_GET['statussel']) ? (int)$_GET['statussel'] : 0; |
||
44 | $statussel = isset($_POST['statussel']) ? (int)$_POST['statussel'] : $statussel; |
||
45 | |||
46 | $sortsel = isset($_GET['sortsel']) ? $_GET['sortsel'] : 'id'; |
||
47 | $sortsel = isset($_POST['sortsel']) ? $_POST['sortsel'] : $sortsel; |
||
48 | |||
49 | $ordersel = isset($_GET['ordersel']) ? $_GET['ordersel'] : 'DESC'; |
||
50 | $ordersel = isset($_POST['ordersel']) ? $_POST['ordersel'] : $ordersel; |
||
51 | |||
52 | $module_id = $xoopsModule->getVar('mid'); |
||
53 | |||
54 | function pathConfiguration() |
||
55 | { |
||
56 | global $xoopsModule; |
||
0 ignored issues
–
show
|
|||
57 | // Upload and Images Folders |
||
58 | smartpartner_collapsableBar('configtable', 'configtableicon', _AM_SPARTNER_PATHCONFIGURATION); |
||
59 | echo '<br>'; |
||
60 | echo "<table width='100%' class='outer' cellspacing='1' cellpadding='3' border='0' ><tr>"; |
||
61 | echo "<td class='bg3'><b>" . _AM_SPARTNER_PATH_ITEM . '</b></td>'; |
||
62 | echo "<td class='bg3'><b>" . _AM_SPARTNER_PATH . '</b></td>'; |
||
63 | echo "<td class='bg3' align='center'><b>" . _AM_SPARTNER_STATUS . '</b></td></tr>'; |
||
64 | |||
65 | echo "<tr><td class='odd'>" . _AM_SPARTNER_PATH_IMAGES . '</td>'; |
||
66 | $image_path = smartpartner_getImageDir(); |
||
67 | echo "<td class='odd'>" . $image_path . '</td>'; |
||
68 | echo "<td class='even' style='text-align: center;'>" . smartpartner_admin_getPathStatus('images') . '</td></tr>'; |
||
69 | |||
70 | echo "<tr><td class='odd'>" . _AM_SPARTNER_PATH_CATEGORY_IMAGES . '</td>'; |
||
71 | $image_path = smartpartner_getImageDir('category'); |
||
72 | echo "<td class='odd'>" . $image_path . '</td>'; |
||
73 | echo "<td class='even' style='text-align: center;'>" . smartpartner_admin_getPathStatus('images/category') . '</td></tr>'; |
||
74 | |||
75 | echo '</table>'; |
||
76 | echo '<br>'; |
||
77 | |||
78 | smartpartner_close_collapsable('configtable', 'configtableicon'); |
||
79 | } |
||
80 | |||
81 | function buildTable() |
||
82 | { |
||
83 | global $xoopsConfig, $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
}
}
![]() |
|||
84 | echo "<table width='100%' cellspacing='1' cellpadding='3' border='0' class='outer'>"; |
||
85 | echo '<tr>'; |
||
86 | echo "<td class='bg3' width='200px' align='left'><b>" . _AM_SPARTNER_NAME . '</b></td>'; |
||
87 | echo "<td width='' class='bg3' align='left'><b>" . _AM_SPARTNER_INTRO . '</b></td>'; |
||
88 | echo "<td width='90' class='bg3' align='center'><b>" . _AM_SPARTNER_HITS . '</b></td>'; |
||
89 | echo "<td width='90' class='bg3' align='center'><b>" . _AM_SPARTNER_STATUS . '</b></td>'; |
||
90 | echo "<td width='90' class='bg3' align='center'><b>" . _AM_SPARTNER_ACTION . '</b></td>'; |
||
91 | echo '</tr>'; |
||
92 | } |
||
93 | |||
94 | // Code for the page |
||
95 | include_once XOOPS_ROOT_PATH . '/class/xoopslists.php'; |
||
96 | include_once XOOPS_ROOT_PATH . '/class/pagenav.php'; |
||
97 | |||
98 | // Creating the Partner handler object |
||
99 | $smartPartnerPartnerHandler = smartpartner_gethandler('partner'); |
||
100 | |||
101 | $startentry = isset($_GET['startentry']) ? (int)$_GET['startentry'] : 0; |
||
102 | |||
103 | smartpartner_xoops_cp_header(); |
||
104 | $indexAdmin = new ModuleAdmin(); |
||
105 | //xoops_cp_header(); |
||
106 | echo $indexAdmin->addNavigation(basename(__FILE__)); |
||
107 | |||
108 | global $xoopsUser, $xoopsConfig, $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
}
}
![]() |
|||
109 | |||
110 | // Total Partners -- includes everything on the table |
||
111 | $totalpartners = $smartPartnerPartnerHandler->getPartnerCount(_SPARTNER_STATUS_ALL); |
||
112 | |||
113 | // Total Submitted Partners |
||
114 | $totalsubmitted = $smartPartnerPartnerHandler->getPartnerCount(_SPARTNER_STATUS_SUBMITTED); |
||
115 | |||
116 | // Total active Partners |
||
117 | $totalactive = $smartPartnerPartnerHandler->getPartnerCount(_SPARTNER_STATUS_ACTIVE); |
||
118 | |||
119 | // Total inactive Partners |
||
120 | $totalinactive = $smartPartnerPartnerHandler->getPartnerCount(_SPARTNER_STATUS_INACTIVE); |
||
121 | |||
122 | // Total rejected Partners |
||
123 | $totalrejected = $smartPartnerPartnerHandler->getPartnerCount(_SPARTNER_STATUS_REJECTED); |
||
124 | |||
125 | // Check Path Configuration |
||
126 | //if ((smartpartner_admin_getPathStatus('images', true) < 0) || (smartpartner_admin_getPathStatus('images/category', true) < 0)) { |
||
127 | // pathConfiguration(); |
||
128 | //} |
||
129 | |||
130 | $indexAdmin->addItemButton(_AM_SPARTNER_CATEGORY_CREATE, 'category.php?op=mod', 'add', ''); |
||
131 | $indexAdmin->addItemButton(_AM_SPARTNER_PARTNER_CREATE, 'partner.php?op=add', 'add', ''); |
||
132 | echo $indexAdmin->renderButton('left', ''); |
||
133 | |||
134 | // -- // |
||
135 | //smartpartner_collapsableBar('index', 'indexicon', _AM_SPARTNER_INVENTORY); |
||
136 | //echo "<br>"; |
||
137 | //echo "<table width='100%' class='outer' cellspacing='1' cellpadding='3' border='0' ><tr>"; |
||
138 | //echo "<td class='head'>" . _AM_SPARTNER_TOTAL_SUBMITTED . "</td><td align='center' class='even'>" . $totalsubmitted . "</td>"; |
||
139 | //echo "<td class='head'>" . _AM_SPARTNER_TOTAL_ACTIVE . "</td><td align='center' class='even'>" . $totalactive . "</td>"; |
||
140 | //echo "<td class='head'>" . _AM_SPARTNER_TOTAL_REJECTED . "</td><td align='center' class='even'>" . $totalrejected . "</td>"; |
||
141 | //echo "<td class='head'>" . _AM_SPARTNER_TOTAL_INACTIVE . "</td><td align='center' class='even'>" . $totalinactive . "</td>"; |
||
142 | //echo "</tr></table>"; |
||
143 | //echo "<br>"; |
||
144 | // |
||
145 | //echo "<form><div style=\"margin-bottom: 24px;\">"; |
||
146 | //echo "<input type='button' name='button' onclick=\"location='category.php?op=mod'\" value='" . _AM_SPARTNER_CATEGORY_CREATE . "'> "; |
||
147 | //echo "<input type='button' name='button' onclick=\"location='partner.php?op=add'\" value='" . _AM_SPARTNER_PARTNER_CREATE . "'> "; |
||
148 | //echo "</div></form>"; |
||
149 | //smartpartner_close_collapsable('index', 'indexicon'); |
||
150 | |||
151 | // Construction of lower table |
||
152 | smartpartner_collapsableBar('allitems', 'allitemsicon', _AM_SPARTNER_ALLITEMS, _AM_SPARTNER_ALLITEMSMSG); |
||
153 | |||
154 | $showingtxt = ''; |
||
155 | $selectedtxt = ''; |
||
156 | $cond = ''; |
||
157 | $selectedtxt0 = ''; |
||
158 | $selectedtxt1 = ''; |
||
159 | $selectedtxt2 = ''; |
||
160 | $selectedtxt3 = ''; |
||
161 | $selectedtxt4 = ''; |
||
162 | |||
163 | $sorttxtid = ''; |
||
164 | $sorttxttitle = ''; |
||
165 | $sorttxtweight = ''; |
||
166 | |||
167 | $ordertxtasc = ''; |
||
168 | $ordertxtdesc = ''; |
||
169 | |||
170 | switch ($sortsel) { |
||
171 | case 'title': |
||
172 | $sorttxttitle = "selected='selected'"; |
||
173 | break; |
||
174 | |||
175 | case 'weight': |
||
176 | $sorttxtweight = "selected='selected'"; |
||
177 | break; |
||
178 | |||
179 | default: |
||
180 | $sorttxtid = "selected='selected'"; |
||
181 | break; |
||
182 | } |
||
183 | |||
184 | switch ($ordersel) { |
||
185 | case 'ASC': |
||
186 | $ordertxtasc = "selected='selected'"; |
||
187 | break; |
||
188 | |||
189 | default: |
||
190 | $ordertxtdesc = "selected='selected'"; |
||
191 | break; |
||
192 | } |
||
193 | |||
194 | switch ($statussel) { |
||
195 | case _SPARTNER_STATUS_ALL: |
||
196 | $selectedtxt0 = "selected='selected'"; |
||
197 | $caption = _AM_SPARTNER_ALL; |
||
198 | $cond = ''; |
||
199 | $status_explaination = _AM_SPARTNER_ALL_EXP; |
||
200 | break; |
||
201 | |||
202 | case _SPARTNER_STATUS_SUBMITTED: |
||
203 | $selectedtxt1 = "selected='selected'"; |
||
204 | $caption = _AM_SPARTNER_SUBMITTED; |
||
205 | $cond = ' WHERE status = ' . _SPARTNER_STATUS_SUBMITTED . ' '; |
||
206 | $status_explaination = _AM_SPARTNER_SUBMITTED_EXP; |
||
207 | break; |
||
208 | |||
209 | case _SPARTNER_STATUS_ACTIVE: |
||
210 | $selectedtxt2 = "selected='selected'"; |
||
211 | $caption = _AM_SPARTNER_ACTIVE; |
||
212 | $cond = ' WHERE status = ' . _SPARTNER_STATUS_ACTIVE . ' '; |
||
213 | $status_explaination = _AM_SPARTNER_ACTIVE_EXP; |
||
214 | break; |
||
215 | |||
216 | case _SPARTNER_STATUS_REJECTED: |
||
217 | $selectedtxt3 = "selected='selected'"; |
||
218 | $caption = _AM_SPARTNER_REJECTED; |
||
219 | $cond = ' WHERE status = ' . _SPARTNER_STATUS_REJECTED . ' '; |
||
220 | $status_explaination = _AM_SPARTNER_REJECTED_EXP; |
||
221 | break; |
||
222 | |||
223 | case _SPARTNER_STATUS_INACTIVE: |
||
224 | $selectedtxt4 = "selected='selected'"; |
||
225 | $caption = _AM_SPARTNER_INACTIVE; |
||
226 | $cond = ' WHERE status = ' . _SPARTNER_STATUS_INACTIVE . ' '; |
||
227 | $status_explaination = _AM_SPARTNER_INACTIVE_EXP; |
||
228 | break; |
||
229 | } |
||
230 | |||
231 | /* -- Code to show selected terms -- */ |
||
232 | echo "<form name='pick' id='pick' action='" . $_SERVER['PHP_SELF'] . "' method='POST' style='margin: 0;'>"; |
||
233 | echo " |
||
234 | <table width='100%' cellspacing='1' cellpadding='2' border='0' style='border-left: 1px solid silver; border-top: 1px solid silver; border-right: 1px solid silver;'> |
||
235 | <tr> |
||
236 | <td><span style='font-weight: bold; font-variant: small-caps;'>" . _AM_SPARTNER_SHOWING . ' ' . $caption . "</span></td> |
||
237 | <td align='right'>" . _AM_SPARTNER_SELECT_SORT . " |
||
238 | <select name='sortsel' onchange='submit()'> |
||
239 | <option value='id' $sorttxtid>" . _AM_SPARTNER_ID . "</option> |
||
240 | <option value='title' $sorttxttitle>" . _AM_SPARTNER_TITLE . "</option> |
||
241 | <option value='weight' $sorttxtweight>" . _AM_SPARTNER_WEIGHT . "</option> |
||
242 | </select> |
||
243 | <select name='ordersel' onchange='submit()'> |
||
244 | <option value='ASC' $ordertxtasc>" . _AM_SPARTNER_ASC . "</option> |
||
245 | <option value='DESC' $ordertxtdesc>" . _AM_SPARTNER_DESC . '</option> |
||
246 | </select> |
||
247 | ' . _AM_SPARTNER_SELECT_STATUS . ": |
||
248 | <select name='statussel' onchange='submit()'> |
||
249 | <option value='0' $selectedtxt0>" . _AM_SPARTNER_ALL . " [$totalpartners]</option> |
||
250 | <option value='1' $selectedtxt1>" . _AM_SPARTNER_SUBMITTED . " [$totalsubmitted]</option> |
||
251 | <option value='2' $selectedtxt2>" . _AM_SPARTNER_ACTIVE . " [$totalactive]</option> |
||
252 | <option value='3' $selectedtxt3>" . _AM_SPARTNER_REJECTED . " [$totalrejected]</option> |
||
253 | <option value='4' $selectedtxt4>" . _AM_SPARTNER_INACTIVE . " [$totalinactive]</option> |
||
254 | </select> |
||
255 | </td> |
||
256 | </tr> |
||
257 | </table> |
||
258 | </form>"; |
||
259 | |||
260 | // Get number of entries in the selected state |
||
261 | $statusSelected = ($statussel == 0) ? _SPARTNER_STATUS_ALL : $statussel; |
||
262 | |||
263 | $numrows = $smartPartnerPartnerHandler->getPartnerCount($statusSelected); |
||
264 | // creating the Q&As objects |
||
265 | $partnersObj = $smartPartnerPartnerHandler->getPartners($xoopsModuleConfig['perpage_admin'], $startentry, $statusSelected, $sortsel, $ordersel); |
||
266 | |||
267 | $totalPartnersOnPage = count($partnersObj); |
||
268 | |||
269 | buildTable(); |
||
270 | |||
271 | if ($numrows > 0) { |
||
272 | for ($i = 0; $i < $totalPartnersOnPage; ++$i) { |
||
273 | $approve = ''; |
||
274 | switch ($partnersObj[$i]->status()) { |
||
275 | |||
276 | View Code Duplication | case _SPARTNER_STATUS_SUBMITTED: |
|
277 | $statustxt = _AM_SPARTNER_SUBMITTED; |
||
278 | $approve = "<a href='partner.php?op=mod&id=" |
||
279 | . $partnersObj[$i]->id() |
||
280 | . "'><img src='" |
||
281 | . $pathIcon16 |
||
282 | . '/on.png' |
||
283 | . "' title='" |
||
284 | . _AM_SPARTNER_PARTNER_APPROVE |
||
285 | . "' alt='" |
||
286 | . _AM_SPARTNER_PARTNER_APPROVE |
||
287 | . "' /></a> "; |
||
288 | $delete = "<a href='partner.php?op=del&id=" |
||
289 | . $partnersObj[$i]->id() |
||
290 | . "'><img src='" |
||
291 | . $pathIcon16 |
||
292 | . '/delete.png' |
||
293 | . "' title='" |
||
294 | . _AM_SPARTNER_PARTNER_DELETE |
||
295 | . "' alt='" |
||
296 | . _AM_SPARTNER_PARTNER_DELETE |
||
297 | . "' /></a> "; |
||
298 | $modify = ''; |
||
299 | break; |
||
300 | |||
301 | View Code Duplication | case _SPARTNER_STATUS_ACTIVE: |
|
302 | $statustxt = _AM_SPARTNER_ACTIVE; |
||
303 | $approve = ''; |
||
304 | $modify = "<a href='partner.php?op=mod&id=" |
||
305 | . $partnersObj[$i]->id() |
||
306 | . "'><img src='" |
||
307 | . $pathIcon16 |
||
308 | . '/edit.png' |
||
309 | . "' title='" |
||
310 | . _AM_SPARTNER_PARTNER_EDIT |
||
311 | . "' alt='" |
||
312 | . _AM_SPARTNER_PARTNER_EDIT |
||
313 | . "' /></a> "; |
||
314 | $delete = "<a href='partner.php?op=del&id=" |
||
315 | . $partnersObj[$i]->id() |
||
316 | . "'><img src='" |
||
317 | . $pathIcon16 |
||
318 | . '/delete.png' |
||
319 | . "' title='" |
||
320 | . _AM_SPARTNER_PARTNER_DELETE |
||
321 | . "' alt='" |
||
322 | . _AM_SPARTNER_PARTNER_DELETE |
||
323 | . "' /></a> "; |
||
324 | break; |
||
325 | |||
326 | View Code Duplication | case _SPARTNER_STATUS_INACTIVE: |
|
327 | $statustxt = _AM_SPARTNER_INACTIVE; |
||
328 | $approve = ''; |
||
329 | $modify = "<a href='partner.php?op=mod&id=" |
||
330 | . $partnersObj[$i]->id() |
||
331 | . "'><img src='" |
||
332 | . $pathIcon16 |
||
333 | . '/edit.png' |
||
334 | . "' title='" |
||
335 | . _AM_SPARTNER_PARTNER_EDIT |
||
336 | . "' alt='" |
||
337 | . _AM_SPARTNER_PARTNER_EDIT |
||
338 | . "' /></a> "; |
||
339 | $delete = "<a href='partner.php?op=del&id=" |
||
340 | . $partnersObj[$i]->id() |
||
341 | . "'><img src='" |
||
342 | . $pathIcon16 |
||
343 | . '/delete.png' |
||
344 | . "' title='" |
||
345 | . _AM_SPARTNER_PARTNER_DELETE |
||
346 | . "' alt='" |
||
347 | . _AM_SPARTNER_PARTNER_DELETE |
||
348 | . "' /></a> "; |
||
349 | break; |
||
350 | |||
351 | View Code Duplication | case _SPARTNER_STATUS_REJECTED: |
|
352 | $statustxt = _AM_SPARTNER_REJECTED; |
||
353 | $approve = ''; |
||
354 | $modify = "<a href='partner.php?op=mod&id=" |
||
355 | . $partnersObj[$i]->id() |
||
356 | . "'><img src='" |
||
357 | . $pathIcon16 |
||
358 | . '/edit.png' |
||
359 | . "' title='" |
||
360 | . _AM_SPARTNER_PARTNER_EDIT |
||
361 | . "' alt='" |
||
362 | . _AM_SPARTNER_PARTNER_EDIT |
||
363 | . "' /></a> "; |
||
364 | $delete = "<a href='partner.php?op=del&id=" |
||
365 | . $partnersObj[$i]->id() |
||
366 | . "'><img src='" |
||
367 | . $pathIcon16 |
||
368 | . '/delete.png' |
||
369 | . "' title='" |
||
370 | . _AM_SPARTNER_PARTNER_DELETE |
||
371 | . "' alt='" |
||
372 | . _AM_SPARTNER_PARTNER_DELETE |
||
373 | . "' /></a> "; |
||
374 | break; |
||
375 | |||
376 | case 'default': |
||
377 | default: |
||
378 | $statustxt = ''; |
||
379 | $approve = ''; |
||
380 | $modify = ''; |
||
381 | break; |
||
382 | } |
||
383 | |||
384 | echo '<tr>'; |
||
385 | echo "<td class='head' align='left'><a href='" |
||
386 | . SMARTPARTNER_URL |
||
387 | . 'partner.php?id=' |
||
388 | . $partnersObj[$i]->id() |
||
389 | . "'><img src='" |
||
390 | . SMARTPARTNER_URL |
||
391 | . "assets/images/links/partner.gif' alt=''/> " |
||
392 | . $partnersObj[$i]->title() |
||
393 | . '</a></td>'; |
||
394 | echo "<td class='even' align='left'>" . $partnersObj[$i]->summary(100) . '</td>'; |
||
395 | echo "<td class='even' align='center'>" . $partnersObj[$i]->hits() . '</td>'; |
||
396 | echo "<td class='even' align='center'>" . $statustxt . '</td>'; |
||
397 | echo "<td class='even' align='center'> " . $approve . $modify . $delete . '</td>'; |
||
398 | echo '</tr>'; |
||
399 | } |
||
400 | } else { |
||
401 | // that is, $numrows = 0, there's no entries yet |
||
402 | echo '<tr>'; |
||
403 | echo "<td class='head' align='center' colspan= '7'>" . _AM_SPARTNER_NOPARTNERS . '</td>'; |
||
404 | echo '</tr>'; |
||
405 | } |
||
406 | echo "</table>\n"; |
||
407 | echo "<span style=\"color: #567; margin: 3px 0 18px 0; font-size: small; display: block; \">$status_explaination</span>"; |
||
408 | |||
409 | $pagenav = new XoopsPageNav($numrows, $xoopsModuleConfig['perpage_admin'], $startentry, 'startentry', "statussel=$statussel&sortsel=$sortsel&ordersel=$ordersel"); |
||
410 | |||
411 | if ($xoopsModuleConfig['useimagenavpage'] == 1) { |
||
412 | echo '<div style="text-align:right; background-color: white; margin: 10px 0;">' . $pagenav->renderImageNav() . '</div>'; |
||
413 | } else { |
||
414 | echo '<div style="text-align:right; background-color: white; margin: 10px 0;">' . $pagenav->renderNav() . '</div>'; |
||
415 | } |
||
416 | // ENDs code to show active entries |
||
417 | smartpartner_close_collapsable('allitems', 'allitemsicon'); |
||
418 | // Close the collapsable div |
||
419 | // Check Path Configuration |
||
420 | if ((smartpartner_admin_getPathStatus('images', true) > 0) && (smartpartner_admin_getPathStatus('images/category', true) > 0)) { |
||
421 | pathConfiguration(); |
||
422 | } |
||
423 | echo '</div>'; |
||
424 | echo '</div>'; |
||
425 | |||
426 | //smart_modFooter(); |
||
427 | //xoops_cp_footer(); |
||
428 | include_once __DIR__ . '/admin_footer.php'; |
||
429 |
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