Passed
Push — master ( a1dcc6...f00187 )
by Michael
03:26
created

admin/categories.php (1 issue)

Labels
Severity
1
<?php
2
3
declare(strict_types=1);
4
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
 This program is distributed in the hope that it will be useful,
11
 but WITHOUT ANY WARRANTY; without even the implied warranty of
12
 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
13
*/
14
15
/**
16
 * Module: Adslight
17
 *
18
 * @category        Module
19
 * @author          XOOPS Development Team <https://xoops.org>
20
 * @copyright       {@link https://xoops.org/ XOOPS Project}
21
 * @license         GPL 2.0 or later
22
 */
23
24
use Xmf\Module\Admin;
25
use Xmf\Request;
26
use XoopsModules\Adslight\{
27
    Categories,
28
    CategoriesHandler,
29
    Helper,
30
    Utility
31
};
32
/** @var Helper $helper */
33
/** @var Utility $utility */
34
/** @var Categories $categoriesObject */
35
/** @var CategoriesHandler $categoriesHandler */
36
/** @var Admin $adminObject */
37
38
global $xoopsModule, $xoopsDB, $xoopsConfig, $xoTheme;
39
40
require __DIR__ . '/admin_header.php';
41
xoops_cp_header();
42
//It recovered the value of argument op in URL$
43
44
$helper      = Helper::getInstance();
45
$utility = new Utility();
46
$adminObject = Admin::getInstance();
47
$op          = Request::getString('op', 'list');
48
$order       = Request::getString('order', 'desc');
49
$sort        = Request::getString('sort', '');
50
51
$moduleDirName = \basename(\dirname(__DIR__));
52
$GLOBALS['xoopsTpl']->assign('mod_url', XOOPS_URL . '/modules/' . $moduleDirName);
53
$xoTheme->addStylesheet($helper->url('assets/js/tablesorter/css/theme.blue.css'));
54
55
$adminObject->displayNavigation(basename(__FILE__));
56
$permHelper = new \Xmf\Module\Helper\Permission();
57
$uploadDir  = XOOPS_UPLOAD_PATH . "/$moduleDirName/categories/";
58
$uploadUrl  = XOOPS_UPLOAD_URL . "/$moduleDirName/categories/";
59
$categoriesHandler = $helper->getHandler('Categories');
60
61
switch ($op) {
62
    case 'new':
63
        $adminObject->addItemButton(AM_ADSLIGHT_CATEGORIES_LIST, 'categories.php', 'list');
64
        $adminObject->displayButton('left');
65
        /** @var Categories $categoriesObject */
66
        $categoriesObject = $categoriesHandler->create();
67
        $form             = $categoriesObject->getForm();
68
        $form->display();
69
        break;
70
71
    case 'save':
72
        if (!$GLOBALS['xoopsSecurity']->check()) {
73
            redirect_header('categories.php', 3, implode(',', $GLOBALS['xoopsSecurity']->getErrors()));
74
        }
75
        /** @var Categories $categoriesObject */
76
        if (0 !== Request::getInt('cid', 0)) {
77
            $categoriesObject = $categoriesHandler->get(Request::getInt('cid', 0));
78
        } else {
79
            $categoriesObject = $categoriesHandler->create();
80
        }
81
        // Form save fields
82
        $categoriesObject->setVar('pid', Request::getVar('pid', ''));
83
        $categoriesObject->setVar('title', Request::getVar('title', ''));
84
        $categoriesObject->setVar('cat_desc', Request::getText('cat_desc', ''));
85
        $categoriesObject->setVar('cat_keywords', Request::getVar('cat_keywords', ''));
86
87
        require_once XOOPS_ROOT_PATH . '/class/uploader.php';
88
        $uploadDir = XOOPS_UPLOAD_PATH . '/adslight/categories/';
89
        $uploader  = new \XoopsMediaUploader(
90
            $uploadDir, $helper->getConfig('mimetypes'), $helper->getConfig('maxsize'), null, null
91
        );
92
        if ($uploader->fetchMedia(Request::getArray('xoops_upload_file', '', 'POST')[0])) {
93
            //$extension = preg_replace( '/^.+\.([^.]+)$/sU' , '' , $_FILES['attachedfile']['name']);
94
            //$imgName = str_replace(' ', '', $_POST['img']).'.'.$extension;
95
96
            $uploader->setPrefix('img_');
97
            $uploader->fetchMedia(Request::getArray('xoops_upload_file', '', 'POST')[0]);
98
            if (!$uploader->upload()) {
99
                $errors = $uploader->getErrors();
100
                redirect_header('javascript:history.go(-1)', 3, $errors);
101
            } else {
102
                $categoriesObject->setVar('img', $uploader->getSavedFileName());
103
            }
104
        } else {
105
            $categoriesObject->setVar('img', Request::getVar('img', ''));
106
        }
107
108
        $categoriesObject->setVar('cat_order', Request::getVar('cat_order', ''));
109
        $categoriesObject->setVar('affprice', Request::getVar('affprice', ''));
110
        $categoriesObject->setVar('cat_moderate', Request::getVar('cat_moderate', ''));
111
        $categoriesObject->setVar('moderate_subcat', Request::getVar('moderate_subcat', ''));
112
        if ($categoriesHandler->insert($categoriesObject)) {
113
            redirect_header('categories.php?op=list', 2, AM_ADSLIGHT_FORMOK);
114
        }
115
116
        echo $categoriesObject->getHtmlErrors();
117
        $form = $categoriesObject->getForm();
0 ignored issues
show
The method getForm() does not exist on XoopsObject. It seems like you code against a sub-type of XoopsObject such as XoopsModules\Adslight\Pictures or XoopsModules\Adslight\Categories or SystemSmilies or XoopsModules\Adslight\Iplog or SystemBanner or SystemBannerclient or XoopsModules\Adslight\Picture or XoopsModules\Adslight\Uservotedata or XoopsModules\Adslight\Type or XoopsModules\Adslight\Listing or XoopsModules\Adslight\Replies or XoopsModules\Adslight\Uservotes or XoopsModules\Adslight\Condition or ProfileCategory or XoopsModules\Adslight\Itemvotes or SystemUserrank or XoopsModules\Adslight\Itemvotedata or XoopsModules\Adslight\Price or SystemGroup or SystemBlock or SystemAvatar or SystemUsers. ( Ignorable by Annotation )

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

117
        /** @scrutinizer ignore-call */ 
118
        $form = $categoriesObject->getForm();
Loading history...
118
        $form->display();
119
        break;
120
121
    case 'edit':
122
        $adminObject->addItemButton(AM_ADSLIGHT_ADD_CATEGORIES, 'categories.php?op=new', 'add');
123
        $adminObject->addItemButton(AM_ADSLIGHT_CATEGORIES_LIST, 'categories.php', 'list');
124
        $adminObject->displayButton('left');
125
        $categoriesObject = $categoriesHandler->get(Request::getString('cid', ''));
126
        $form             = $categoriesObject->getForm();
127
        $form->display();
128
        break;
129
130
    case 'delete':
131
        $categoriesObject = $categoriesHandler->get(Request::getString('cid', ''));
132
        if (1 == Request::getInt('ok', 0)) {
133
            if (!$GLOBALS['xoopsSecurity']->check()) {
134
                redirect_header('categories.php', 3, implode(', ', $GLOBALS['xoopsSecurity']->getErrors()));
135
            }
136
            if ($categoriesHandler->delete($categoriesObject)) {
137
                redirect_header('categories.php', 3, AM_ADSLIGHT_FORMDELOK);
138
            } else {
139
                echo $categoriesObject->getHtmlErrors();
140
            }
141
        } else {
142
            xoops_confirm(['ok' => 1, 'cid' => Request::getString('cid', ''), 'op' => 'delete',], Request::getUrl('REQUEST_URI', '', 'SERVER'), sprintf(AM_ADSLIGHT_FORMSUREDEL, $categoriesObject->getVar('title')));
143
        }
144
        break;
145
146
    case 'clone':
147
148
        $id_field = Request::getString('cid', '');
149
150
        if ($utility::cloneRecord('adslight_categories', 'cid', (int)$id_field)) {
151
            redirect_header('categories.php', 3, AM_ADSLIGHT_CLONED_OK);
152
        } else {
153
            redirect_header('categories.php', 3, AM_ADSLIGHT_CLONED_FAILED);
154
        }
155
156
        break;
157
    case 'list':
158
    default:
159
        $adminObject->addItemButton(AM_ADSLIGHT_ADD_CATEGORIES, 'categories.php?op=new', 'add');
160
        $adminObject->displayButton('left');
161
        $start                     = Request::getInt('start', 0);
162
        $categoriesPaginationLimit = $helper->getConfig('userpager');
163
164
        $criteria = new \CriteriaCompo();
165
        $criteria->setSort('cid ASC, title');
166
        $criteria->setOrder('ASC');
167
        $criteria->setLimit($categoriesPaginationLimit);
168
        $criteria->setStart($start);
169
        $categoriesTempRows  = $categoriesHandler->getCount();
170
        $categoriesTempArray = $categoriesHandler->getAll($criteria);
171
        /*
172
        //
173
        //
174
                            <th class='center width5'>".AM_ADSLIGHT_FORM_ACTION."</th>
175
        //                    </tr>";
176
        //            $class = "odd";
177
        */
178
179
        //    // Creating the objects for top categories
180
        //    $categoriesObj = $helper->getHandler('Categories')->getCategories($helper->getConfig('idxcat_perpage'), $startcategory, 0);
181
        //
182
        //    echo '</tr>';
183
        //    /** @var \XoopsPersistableObjectHandler $categoriesHandler */
184
        //    $totalCategories = $categoriesHandler->getCount();
185
        //
186
        ////    $totalCategories2 = $helper->getHandler('Categories')->getCategoriesCount(0);
187
        //
188
        //    if (is_array($categoriesObject) && count($categoriesObject) > 0) {
189
        //        foreach ($categoriesObject as $key => $thiscat) {
190
        //            Utility::displayCategory($thiscat);
191
        //        }
192
        //        unset($key);
193
        //    } else {
194
        //        echo '<tr>';
195
        //        echo "<td class='head' align='center' colspan= '7'>" . _AM_PUBLISHER_NOCAT . '</td>';
196
        //        echo '</tr>';
197
        //        $categoryId = '0';
198
        //    }
199
200
        // Display Page Navigation
201
        if ($categoriesTempRows > $categoriesPaginationLimit) {
202
            xoops_load('XoopsPageNav');
203
204
            $pagenav = new \XoopsPageNav(
205
                $categoriesTempRows, $categoriesPaginationLimit, $start, 'start', 'op=list' . '&sort=' . $sort . '&order=' . $order . ''
206
            );
207
            $GLOBALS['xoopsTpl']->assign('pagenav', null === $pagenav ? $pagenav->renderNav() : '');
208
        }
209
210
        $GLOBALS['xoopsTpl']->assign('categoriesRows', $categoriesTempRows);
211
        $categoriesArray = [];
212
213
        //    $fields = explode('|', cid:int:11::NOT NULL::primary:ID:0|pid:int:5:unsigned:NOT NULL:0::Parent:1|title:varchar:50::NOT NULL:::Title:2|cat_desc:text:200::NOT NULL:::Desc:3|cat_keywords:varchar:1000::NOT NULL:::Keywords:4|img:varchar:150::NOT NULL:default.png::Image:5|cat_order:int:5::NOT NULL:0::Order:6|affprice:int:5::NOT NULL:1::Price:7|cat_moderate:int:5::NOT NULL:1::CatModerator:8|moderate_subcat:int:5::NOT NULL:1::SubcatModerator:9);
214
        //    $fieldsCount    = count($fields);
215
216
        $criteria = new \CriteriaCompo();
217
218
        //$criteria->setOrder('DESC');
219
        $criteria->setSort($sort);
220
        $criteria->setOrder($order);
221
        $criteria->setLimit($categoriesPaginationLimit);
222
        $criteria->setStart($start);
223
224
        $categoriesCount     = $categoriesHandler->getCount($criteria);
225
        $categoriesTempArray = $categoriesHandler->getAll($criteria);
226
227
        //    for ($i = 0; $i < $fieldsCount; ++$i) {
228
        if ($categoriesCount > 0) {
229
            foreach (array_keys($categoriesTempArray) as $i) {
230
                //        $field = explode(':', $fields[$i]);
231
232
                $GLOBALS['xoopsTpl']->assign('selectorcid', AM_ADSLIGHT_CATEGORIES_CID);
233
                $categoriesArray['cid'] = $categoriesTempArray[$i]->getVar('cid');
234
235
                $GLOBALS['xoopsTpl']->assign('selectorpid', AM_ADSLIGHT_CATEGORIES_PID);
236
                $categoriesArray['pid'] = $categoriesTempArray[$i]->getVar('pid');
237
238
                $GLOBALS['xoopsTpl']->assign('selectortitle', AM_ADSLIGHT_CATEGORIES_TITLE);
239
                $categoriesArray['title'] = $categoriesTempArray[$i]->getVar('title');
240
241
                $GLOBALS['xoopsTpl']->assign('selectorcat_desc', AM_ADSLIGHT_CATEGORIES_CAT_DESC);
242
                $categoriesArray['cat_desc'] = $categoriesTempArray[$i]->getVar('cat_desc');
243
244
                $GLOBALS['xoopsTpl']->assign('selectorcat_keywords', AM_ADSLIGHT_CATEGORIES_CAT_KEYWORDS);
245
                $categoriesArray['cat_keywords'] = $categoriesTempArray[$i]->getVar('cat_keywords');
246
247
                $GLOBALS['xoopsTpl']->assign('selectorimg', AM_ADSLIGHT_CATEGORIES_IMG);
248
                $categoriesArray['img'] = "<img src='" . $uploadUrl . $categoriesTempArray[$i]->getVar('img') . "' name='" . 'name' . "' id=" . 'id' . " alt='' style='max-width:100px'>";
249
250
                $GLOBALS['xoopsTpl']->assign('selectorcat_order', AM_ADSLIGHT_CATEGORIES_CAT_ORDER);
251
                $categoriesArray['cat_order'] = $categoriesTempArray[$i]->getVar('cat_order');
252
253
                $GLOBALS['xoopsTpl']->assign('selectoraffprice', AM_ADSLIGHT_CATEGORIES_AFFPRICE);
254
                $categoriesArray['affprice'] = $categoriesTempArray[$i]->getVar('affprice');
255
256
                $GLOBALS['xoopsTpl']->assign('selectorcat_moderate', AM_ADSLIGHT_CATEGORIES_CAT_MODERATE);
257
                $categoriesArray['cat_moderate'] = strip_tags(\XoopsUser::getUnameFromId($categoriesTempArray[$i]->getVar('cat_moderate')));
258
259
                $pathIcon16 = \Xmf\Module\Admin::iconUrl('', '16');
260
                $GLOBALS['xoopsTpl']->assign('selectormoderate_subcat', AM_ADSLIGHT_CATEGORIES_MODERATE_SUBCAT);
261
                $categoriesArray['moderate_subcat'] = strip_tags(\XoopsUser::getUnameFromId($categoriesTempArray[$i]->getVar('moderate_subcat')));
262
                $categoriesArray['edit_delete']     = "<a href='categories.php?op=edit&cid=" . $i . "'><img src=" . $pathIcon16 . "/edit.png alt='" . _EDIT . "' title='" . _EDIT . "'></a>
263
               <a href='categories.php?op=delete&cid=" . $i . "'><img src=" . $pathIcon16 . "/delete.png alt='" . _DELETE . "' title='" . _DELETE . "'></a>
264
               <a href='categories.php?op=clone&cid=" . $i . "'><img src=" . $pathIcon16 . "/editcopy.png alt='" . _CLONE . "' title='" . _CLONE . "'></a>";
265
266
                $GLOBALS['xoopsTpl']->append_by_ref('categoriesArrays', $categoriesArray);
267
                unset($categoriesArray);
268
            }
269
            unset($categoriesTempArray);
270
            // Display Navigation
271
            if ($categoriesCount > $categoriesPaginationLimit) {
272
                xoops_load('XoopsPageNav');
273
                $pagenav = new \XoopsPageNav(
274
                    $categoriesCount, $categoriesPaginationLimit, $start, 'start', 'op=list' . '&sort=' . $sort . '&order=' . $order . ''
275
                );
276
                $GLOBALS['xoopsTpl']->assign('pagenav', $pagenav->renderNav(4));
277
            }
278
279
            //                     echo "<td class='center width5'>
280
281
            //                    <a href='categories.php?op=edit&cid=".$i."'><img src=".$pathIcon16."/edit.png alt='"._EDIT."' title='"._EDIT."'></a>
282
            //                    <a href='categories.php?op=delete&cid=".$i."'><img src=".$pathIcon16."/delete.png alt='"._DELETE."' title='"._DELETE."'></a>
283
            //                    </td>";
284
285
            //                echo "</tr>";
286
287
            //            }
288
289
            //            echo "</table><br><br>";
290
291
            //        } else {
292
293
            //            echo "<table width='100%' cellspacing='1' class='outer'>
294
295
            //                    <tr>
296
297
            //                     <th class='center width5'>".AM_ADSLIGHT_FORM_ACTION."XXX</th>
298
            //                    </tr><tr><td class='errorMsg' colspan='11'>There are noXXX categories</td></tr>";
299
            //            echo "</table><br><br>";
300
301
            //-------------------------------------------
302
303
            echo $GLOBALS['xoopsTpl']->fetch(
304
                XOOPS_ROOT_PATH . '/modules/' . $GLOBALS['xoopsModule']->getVar('dirname') . '/templates/admin/adslight_admin_categories.tpl'
305
            );
306
        }
307
308
        break;
309
}
310
311
require __DIR__ . '/admin_footer.php';
312