Passed
Pull Request — master (#5)
by Michael
02:50
created

admin/downloads.php (2 issues)

Labels
Severity
1
<?php
2
/**
3
 * TDMDownload
4
 *
5
 * You may not change or alter any portion of this comment or credits
6
 * of supporting developers from this source code or any supporting source code
7
 * which is considered copyrighted (c) material of the original comment or credit authors.
8
 * This program is distributed in the hope that it will be useful,
9
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
11
 *
12
 * @copyright   Gregory Mage (Aka Mage)
13
 * @license     GNU GPL 2 (http://www.gnu.org/licenses/old-licenses/gpl-2.0.html)
14
 * @author      Gregory Mage (Aka Mage)
15
 */
16
17
use Xmf\Request;
18
use XoopsModules\Tdmdownloads\Tree;
19
use XoopsModules\Tdmdownloads;
20
21
require __DIR__ . '/admin_header.php';
22
23
/** @var \XoopsModules\Tdmdownloads\Helper $helper */
24
$helper = \XoopsModules\Tdmdownloads\Helper::getInstance();
25
26
$myts = \MyTextSanitizer::getInstance();
27
28
//On recupere la valeur de l'argument op dans l'URL$
29
$op = $utility->cleanVars($_REQUEST, 'op', 'list', 'string');
30
31
// compte le nombre de téléchargement non validé
32
$criteria = new \CriteriaCompo();
33
$criteria->add(new \Criteria('status', 0));
34
$downloads_waiting = $downloadsHandler->getCount($criteria);
35
36
$statut_menu = $utility->cleanVars($_REQUEST, 'statut_display', 1, 'int');
37
38
//Les valeurs de op qui vont permettre d'aller dans les differentes parties de la page
39
switch ($op) {
40
    // Vue liste
41
    case 'list':
42
        //Affichage de la partie haute de l'administration de Xoops
43
        xoops_cp_header();
44
        $adminObject = \Xmf\Module\Admin::getInstance();
45
        $adminObject->displayNavigation(basename(__FILE__));
46
        if (1 == $statut_menu) {
47
            $adminObject->addItemButton(_AM_TDMDOWNLOADS_DOWNLOADS_NEW, 'downloads.php?op=new_downloads', 'add');
48
            if ($downloads_waiting > 0) {
49
                $adminObject->addItemButton(_AM_TDMDOWNLOADS_DOWNLOADS_WAIT, 'downloads.php?op=list&statut_display=0', 'add', ' (<span style="color: #ff0000;">' . $downloads_waiting . '</span>)');
50
            }
51
        } else {
52
            $adminObject->addItemButton(_AM_TDMDOWNLOADS_DOWNLOADS_LISTE, 'downloads.php?op=list', 'list');
53
            $adminObject->addItemButton(_AM_TDMDOWNLOADS_DOWNLOADS_NEW, 'downloads.php?op=new_downloads', 'add');
54
        }
55
        $adminObject->displayButton('left');
56
        //nombre de téléchargement par page
57
        $limit        = $helper->getConfig('perpageadmin');
58
        $category_arr = $categoryHandler->getAll();
59
        $numrowscat   = count($category_arr);
60
        // redirection si il n'y a pas de catégories
61
        if (0 === $numrowscat) {
62
            redirect_header('category.php?op=new_cat', 2, _AM_TDMDOWNLOADS_REDIRECT_NOCAT);
63
        }
64
        $criteria = new \CriteriaCompo();
65
        // affiche uniquement les téléchargements activés
66
        if (\Xmf\Request::hasVar('statut_display', 'GET')) {
67
            if (0 === \Xmf\Request::getInt('statut_display', 0, 'GET')) {
68
                $criteria->add(new \Criteria('status', 0));
69
                $statut_display = 0;
70
            } else {
71
                $criteria->add(new \Criteria('status', 0, '!='));
72
                $statut_display = 1;
73
            }
74
        } else {
75
            $criteria->add(new \Criteria('status', 0, '!='));
76
            $statut_display = 1;
77
        }
78
        $document_tri   = 1;
79
        $document_order = 1;
80
        if (\Xmf\Request::hasVar('document_tri')) {
81
            if (1 == \Xmf\Request::getInt('document_tri')) {
82
                $criteria->setSort('date');
83
                $document_tri = 1;
84
            }
85
            if (2 == \Xmf\Request::getInt('document_tri')) {
86
                $criteria->setSort('title');
87
                $document_tri = 2;
88
            }
89
            if (3 == \Xmf\Request::getInt('document_tri')) {
90
                $criteria->setSort('hits');
91
                $document_tri = 3;
92
            }
93
            if (4 == \Xmf\Request::getInt('document_tri')) {
94
                $criteria->setSort('rating');
95
                $document_tri = 4;
96
            }
97
            if (5 == \Xmf\Request::getInt('document_tri')) {
98
                $criteria->setSort('cid');
99
                $document_tri = 5;
100
            }
101
        } else {
102
            $criteria->setSort('date');
103
        }
104
        if (\Xmf\Request::hasVar('document_order')) {
105
            if (1 == \Xmf\Request::getInt('document_order')) {
106
                $criteria->setOrder('DESC');
107
                $document_order = 1;
108
            }
109
            if (2 == \Xmf\Request::getInt('document_order')) {
110
                $criteria->setOrder('ASC');
111
                $document_order = 2;
112
            }
113
        } else {
114
            $criteria->setOrder('DESC');
115
        }
116
        $start = $utility->cleanVars($_REQUEST, 'start', 0, 'int');
117
        $criteria->setStart($start);
118
        $criteria->setLimit($limit);
119
        //pour faire une jointure de table
120
        $downloadsHandler->table_link   = $downloadsHandler->db->prefix('tdmdownloads_cat'); // Nom de la table en jointure
121
        $downloadsHandler->field_link   = 'cat_cid'; // champ de la table en jointure
122
        $downloadsHandler->field_object = 'cid'; // champ de la table courante
123
        $downloads_arr                  = $downloadsHandler->getByLink($criteria);
124
        $numrows                        = $downloadsHandler->getCount($criteria);
125
        if ($numrows > $limit) {
126
            $pagenav = new \XoopsPageNav($numrows, $limit, $start, 'start', 'op=list&document_tri=' . $document_tri . '&document_order=' . $document_order . '&statut_display=' . $statut_display);
127
            $pagenav = $pagenav->renderNav(4);
128
        } else {
129
            $pagenav = '';
130
        }
131
        //Affichage du tableau des téléchargements
132
        if ($numrows > 0) {
133
            echo '<div align="right"><form id="form_document_tri" name="form_document_tri" method="get" action="document.php">';
134
            echo _AM_TDMDOWNLOADS_TRIPAR
135
                 . "<select name=\"document_tri\" id=\"document_tri\" onchange=\"location='"
136
                 . XOOPS_URL
137
                 . '/modules/'
138
                 . $xoopsModule->dirname()
139
                 . "/admin/downloads.php?statut_display=$statut_display&document_order=$document_order&document_tri='+this.options[this.selectedIndex].value\">";
140
            echo '<option value="1"' . (1 == $document_tri ? ' selected' : '') . '>' . _AM_TDMDOWNLOADS_FORMDATE . '</option>';
141
            echo '<option value="2"' . (2 == $document_tri ? ' selected' : '') . '>' . _AM_TDMDOWNLOADS_FORMTITLE . '</option>';
142
            echo '<option value="3"' . (3 == $document_tri ? ' selected' : '') . '>' . _AM_TDMDOWNLOADS_FORMHITS . '</option>';
143
            echo '<option value="4"' . (4 == $document_tri ? ' selected' : '') . '>' . _AM_TDMDOWNLOADS_FORMRATING . '</option>';
144
            echo '<option value="5"' . (5 == $document_tri ? ' selected' : '') . '>' . _AM_TDMDOWNLOADS_FORMCAT . '</option>';
145
            echo '</select> ';
146
            echo _AM_TDMDOWNLOADS_ORDER
147
                 . "<select name=\"order_tri\" id=\"order_tri\" onchange=\"location='"
148
                 . XOOPS_URL
149
                 . '/modules/'
150
                 . $xoopsModule->dirname()
151
                 . "/admin/downloads.php?statut_display=$statut_display&document_tri=$document_tri&document_order='+this.options[this.selectedIndex].value\">";
152
            echo '<option value="1"' . (1 == $document_order ? ' selected' : '') . '>DESC</option>';
153
            echo '<option value="2"' . (2 == $document_order ? ' selected' : '') . '>ASC</option>';
154
            echo '</select> ';
155
            echo '</form></div>';
156
            echo '<table width="100%" cellspacing="1" class="outer">';
157
            echo '<tr>';
158
            echo '<th align="center" width="5%">' . _AM_TDMDOWNLOADS_FORMFILE . '</th>';
159
            echo '<th align="left" width="20%">' . _AM_TDMDOWNLOADS_FORMTITLE . '</th>';
160
            echo '<th align="left">' . _AM_TDMDOWNLOADS_FORMCAT . '</th>';
161
            echo '<th align="center" width="5%">' . _AM_TDMDOWNLOADS_FORMHITS . '</th>';
162
            echo '<th align="center" width="5%">' . _AM_TDMDOWNLOADS_FORMRATING . '</th>';
163
            echo '<th align="center" width="15%">' . _AM_TDMDOWNLOADS_FORMACTION . '</th>';
164
            echo '</tr>';
165
            $mytree = new \XoopsModules\Tdmdownloads\Tree($category_arr, 'cat_cid', 'cat_pid');
166
            $class  = 'odd';
167
            foreach (array_keys($downloads_arr) as $i) {
168
                $class    = ('even' === $class) ? 'odd' : 'even';
169
                $category = $utility->getPathTree($mytree, $downloads_arr[$i]->getVar('cid'), $category_arr, 'cat_title', $prefix = ' <img src="../assets/images/deco/arrow.gif"> ');
170
                echo '<tr class="' . $class . '">';
171
                echo '<td align="center">';
172
                echo '<a href="../visit.php?cid=' . $downloads_arr[$i]->getVar('cid') . '&lid=' . $i . '" target="_blank"><img src="../assets/images/icon/download.png" alt="Download ' . $downloads_arr[$i]->getVar('title') . '" title="Download ' . $downloads_arr[$i]->getVar('title') . '"></a>';
173
                echo '</td>';
174
                echo '<td align="left"><a href="../singlefile.php?.php?cid=' . $downloads_arr[$i]->getVar('cid') . '&lid=' . $i . '" target="_blank">' . $downloads_arr[$i]->getVar('title') . '</a></td>';
175
                echo '<td align="left">' . $category . '</td>';
176
                echo '<td align="center">' . $downloads_arr[$i]->getVar('hits') . '</td>';
177
                echo '<td align="center">' . number_format($downloads_arr[$i]->getVar('rating'), 1) . '</td>';
178
179
                echo '<td align="center">';
180
                echo(1 == $statut_display ? '<a href="downloads.php?op=lock_status&downloads_lid='
181
                                            . $i
182
                                            . '"><img src="./../assets/images/icon/on.png" border="0" alt="'
183
                                            . _AM_TDMDOWNLOADS_FORMLOCK
184
                                            . '" title="'
185
                                            . _AM_TDMDOWNLOADS_FORMLOCK
186
                                            . '"></a> ' : '<a href="downloads.php?op=update_status&downloads_lid=' . $i . '"><img src="./../assets/images/icon/off.png" border="0" alt="' . _AM_TDMDOWNLOADS_FORMVALID . '" title="' . _AM_TDMDOWNLOADS_FORMVALID . '"></a> ');
187
                echo '<a href="downloads.php?op=view_downloads&downloads_lid=' . $i . '"><img src="../assets/images/icon/view_mini.png" alt="' . _AM_TDMDOWNLOADS_FORMDISPLAY . '" title="' . _AM_TDMDOWNLOADS_FORMDISPLAY . '"></a> ';
188
                echo '<a href="downloads.php?op=edit_downloads&downloads_lid=' . $i . '"><img src="../assets/images/icon/edit.png" alt="' . _AM_TDMDOWNLOADS_FORMEDIT . '" title="' . _AM_TDMDOWNLOADS_FORMEDIT . '"></a> ';
189
                echo '<a href="downloads.php?op=del_downloads&downloads_lid=' . $i . '"><img src="../assets/images/icon/delete.png" alt="' . _AM_TDMDOWNLOADS_FORMDEL . '" title="' . _AM_TDMDOWNLOADS_FORMDEL . '"></a>';
190
                echo '</td>';
191
            }
192
            echo '</table><br>';
193
            echo '<br><div align=right>' . $pagenav . '</div><br>';
194
        } else {
195
            echo '<div class="errorMsg" style="text-align: center;">' . _AM_TDMDOWNLOADS_ERREUR_NODOWNLOADS . '</div>';
196
        }
197
198
        break;
199
    // vue création
200
    case 'new_downloads':
201
        //Affichage de la partie haute de l'administration de Xoops
202
        xoops_cp_header();
203
        $adminObject = \Xmf\Module\Admin::getInstance();
204
        $adminObject->displayNavigation(basename(__FILE__));
205
        $adminObject->addItemButton(_AM_TDMDOWNLOADS_DOWNLOADS_LISTE, 'downloads.php?op=list', 'list');
206
        if (0 == $downloads_waiting) {
207
            $adminObject->addItemButton(_AM_TDMDOWNLOADS_DOWNLOADS_WAIT, 'downloads.php?op=list&statut_display=0', 'add');
208
        } else {
209
            $adminObject->addItemButton(_AM_TDMDOWNLOADS_DOWNLOADS_WAIT, 'downloads.php?op=list&statut_display=0', 'add', 'style="color : Red"');
210
        }
211
        $adminObject->displayButton('left');
212
        //Affichage du formulaire de création des téléchargements
213
        $obj  = $downloadsHandler->create();
214
        $form = $obj->getForm($donnee = [], false);
215
        $form->display();
216
        break;
217
    // Pour éditer un téléchargement
218
    case 'edit_downloads':
219
        //Affichage de la partie haute de l'administration de Xoops
220
        xoops_cp_header();
221
        $adminObject = \Xmf\Module\Admin::getInstance();
222
        $adminObject->displayNavigation(basename(__FILE__));
223
        $adminObject->addItemButton(_AM_TDMDOWNLOADS_DOWNLOADS_LISTE, 'downloads.php?op=list', 'list');
224
        $adminObject->addItemButton(_AM_TDMDOWNLOADS_DOWNLOADS_NEW, 'downloads.php?op=new_downloads', 'add');
225
        if (0 == $downloads_waiting) {
226
            $adminObject->addItemButton(_AM_TDMDOWNLOADS_DOWNLOADS_WAIT, 'downloads.php?op=list&statut_display=0', 'add');
227
        } else {
228
            $adminObject->addItemButton(_AM_TDMDOWNLOADS_DOWNLOADS_WAIT, 'downloads.php?op=list&statut_display=0', 'add', 'style="color : Red"');
229
        }
230
        $adminObject->displayButton('left');
231
        //Affichage du formulaire de création des téléchargements
232
        $downloads_lid = $utility->cleanVars($_REQUEST, 'downloads_lid', 0, 'int');
233
        $obj           = $downloadsHandler->get($downloads_lid);
234
        $form          = $obj->getForm($donnee = [], false);
235
        $form->display();
236
        break;
237
    // Pour supprimer un téléchargement
238
    case 'del_downloads':
239
        global $xoopsModule;
240
        $downloads_lid = $utility->cleanVars($_REQUEST, 'downloads_lid', 0, 'int');
241
        $obj           = $downloadsHandler->get($downloads_lid);
242
        if (\Xmf\Request::hasVar('ok') && 1 == \Xmf\Request::getInt('ok')) {
243
            if (!$GLOBALS['xoopsSecurity']->check()) {
244
                redirect_header('downloads.php', 3, implode(',', $GLOBALS['xoopsSecurity']->getErrors()));
245
            }
246
            // permet d'extraire le nom du fichier
247
            $urlfile = substr_replace($obj->getVar('url'), '', 0, mb_strlen($uploadurl_downloads));
248
            if ($downloadsHandler->delete($obj)) {
249
                // permet de donner le chemin du fichier
250
                $urlfile = $uploaddir_downloads . $urlfile;
251
                // si le fichier est sur le serveur il es détruit
252
                if (is_file($urlfile)) {
253
                    chmod($urlfile, 0777);
254
                    unlink($urlfile);
255
                }
256
                // supression des votes
257
                $criteria = new \CriteriaCompo();
258
                $criteria->add(new \Criteria('lid', $downloads_lid));
259
                $downloads_votedata = $ratingHandler->getAll($criteria);
260
                foreach (array_keys($downloads_votedata) as $i) {
261
                    $objvotedata = $ratingHandler->get($downloads_votedata[$i]->getVar('ratingid'));
262
                    $ratingHandler->delete($objvotedata) || $objvotedata->getHtmlErrors();
263
                }
264
                // supression des rapports de fichier brisé
265
                $criteria = new \CriteriaCompo();
266
                $criteria->add(new \Criteria('lid', $downloads_lid));
267
                $downloads_broken = $brokenHandler->getAll($criteria);
268
                foreach (array_keys($downloads_broken) as $i) {
269
                    $objbroken = $brokenHandler->get($downloads_broken[$i]->getVar('reportid'));
270
                    $brokenHandler->delete($objbroken) || $objbroken->getHtmlErrors();
271
                }
272
                // supression des data des champs sup.
273
                $criteria = new \CriteriaCompo();
274
                $criteria->add(new \Criteria('lid', $downloads_lid));
275
                $downloads_fielddata = $fielddataHandler->getAll($criteria);
276
                foreach (array_keys($downloads_fielddata) as $i) {
277
                    $objfielddata = $fielddataHandler->get($downloads_fielddata[$i]->getVar('iddata'));
278
                    $fielddataHandler->delete($objfielddata) || $objvfielddata->getHtmlErrors();
279
                }
280
                // supression des commentaires
281
                xoops_comment_delete($xoopsModule->getVar('mid'), $downloads_lid);
282
                //supression des tags
283
                if ((1 === $helper->getConfig('usetag')) && is_dir('../../tag')) {
284
                    /** @var \XoopsModules\Tag\LinkHandler $linkHandler */
285
                    $linkHandler = \XoopsModules\Tag\Helper::getInstance()->getHandler('Link');
286
                    $criteria   = new \CriteriaCompo();
287
                    $criteria->add(new \Criteria('tag_itemid', $downloads_lid));
288
                    $downloads_tags = $linkHandler->getAll($criteria);
289
                    foreach (array_keys($downloads_tags) as $i) {
290
                        $objtags = $linkHandler->get($downloads_tags[$i]->getVar('tl_id'));
291
                        $linkHandler->delete($objtags) || $objtags->getHtmlErrors();
292
                    }
293
                }
294
                redirect_header('downloads.php', 1, _AM_TDMDOWNLOADS_REDIRECT_DELOK);
295
            } else {
296
                echo $obj->getHtmlErrors();
297
            }
298
        } else {
299
            //Affichage de la partie haute de l'administration de Xoops
300
            xoops_cp_header();
301
            $adminObject = \Xmf\Module\Admin::getInstance();
302
            $adminObject->addItemButton(_AM_TDMDOWNLOADS_DOWNLOADS_LISTE, 'downloads.php?op=list', 'list');
303
            $adminObject->addItemButton(_AM_TDMDOWNLOADS_DOWNLOADS_NEW, 'downloads.php?op=new_downloads', 'add');
304
            if (0 == $downloads_waiting) {
305
                $adminObject->addItemButton(_AM_TDMDOWNLOADS_DOWNLOADS_WAIT, 'downloads.php?op=list&statut_display=0', 'add');
306
            } else {
307
                $adminObject->addItemButton(_AM_TDMDOWNLOADS_DOWNLOADS_WAIT, 'downloads.php?op=list&statut_display=0', 'add', 'style="color : Red"');
308
            }
309
            $adminObject->displayButton('left');
310
            xoops_confirm(['ok' => 1, 'downloads_lid' => $downloads_lid, 'op' => 'del_downloads'], $_SERVER['REQUEST_URI'],
311
                          sprintf(_AM_TDMDOWNLOADS_FORMSUREDEL, $obj->getVar('title')) . '<br><br>' . _AM_TDMDOWNLOADS_FORMWITHFILE . ' <b><a href="' . $obj->getVar('url') . '">' . $obj->getVar('url') . '</a></b><br>');
312
        }
313
        break;
314
    // Pour voir les détails du téléchargement
315
    case 'view_downloads':
316
        //Affichage de la partie haute de l'administration de Xoops
317
        xoops_cp_header();
318
        $adminObject = \Xmf\Module\Admin::getInstance();
319
        $adminObject->displayNavigation(basename(__FILE__));
320
        $adminObject->addItemButton(_AM_TDMDOWNLOADS_DOWNLOADS_LISTE, 'downloads.php?op=list', 'list');
321
        $adminObject->addItemButton(_AM_TDMDOWNLOADS_DOWNLOADS_NEW, 'downloads.php?op=new_downloads', 'add');
322
        if (0 == $downloads_waiting) {
323
            $adminObject->addItemButton(_AM_TDMDOWNLOADS_DOWNLOADS_WAIT, 'downloads.php?op=list&statut_display=0', 'add');
324
        } else {
325
            $adminObject->addItemButton(_AM_TDMDOWNLOADS_DOWNLOADS_WAIT, 'downloads.php?op=list&statut_display=0', 'add', 'style="color : Red"');
326
        }
327
        $adminObject->displayButton('left');
328
        $downloads_lid = $utility->cleanVars($_REQUEST, 'downloads_lid', 0, 'int');
329
        //information du téléchargement
330
        $viewDownloads = $downloadsHandler->get($downloads_lid);
331
        //catégorie
332
        //$view_categorie = $categoryHandler->get($viewDownloads->getVar('cid'));
333
        $category_arr = $categoryHandler->getAll();
334
        $mytree       = new \XoopsModules\Tdmdownloads\Tree($category_arr, 'cat_cid', 'cat_pid');
335
        // sortie des informations
336
        $downloads_title       = $viewDownloads->getVar('title');
337
        $downloads_description = $viewDownloads->getVar('description');
338
        //permet d'enlever [pagebreak] du texte
339
        $downloads_description = str_replace('[pagebreak]', '', $downloads_description);
340
341
        $category = $utility->getPathTree($mytree, $viewDownloads->getVar('cid'), $category_arr, 'cat_title', $prefix = ' <img src="../assets/images/deco/arrow.gif"> ');
342
        // affichages des informations du téléchargement
343
        echo '<table width="100%" cellspacing="1" class="outer">';
344
        echo '<tr>';
345
        echo '<th align="center" colspan="2">' . $downloads_title . '</th>';
346
        echo '</tr>';
347
        echo '<tr class="even">';
348
        echo '<td width="30%">' . _AM_TDMDOWNLOADS_FORMFILE . ' </td>';
349
        echo '<td><a href="../visit.php?cid=' . $viewDownloads->getVar('cid') . '&lid=' . $downloads_lid . '"><img src="../assets/images/icon/download.png" alt="Download ' . $downloads_title . '" title="Download ' . $downloads_title . '"></a></td>';
350
        echo '</tr>';
351
        echo '<tr class="odd">';
352
        echo '<td width="30%">' . _AM_TDMDOWNLOADS_FORMCAT . ' </td>';
353
        echo '<td>' . $category . '</td>';
354
        echo '</tr>';
355
        $criteria = new \CriteriaCompo();
356
        $criteria->setSort('weight ASC, title');
357
        $criteria->setOrder('ASC');
358
        $criteria->add(new \Criteria('status', 1));
359
        $downloads_field = $fieldHandler->getAll($criteria);
360
        $class           = 'odd';
361
        foreach (array_keys($downloads_field) as $i) {
362
            if (1 == $downloads_field[$i]->getVar('status_def')) {
363
                if (1 == $downloads_field[$i]->getVar('fid')) {
364
                    //page d'accueil
365
                    if ('' !== $viewDownloads->getVar('homepage')) {
366
                        $class = ('even' === $class) ? 'odd' : 'even';
367
                        echo '<tr class="' . $class . '">';
368
                        echo '<td width="30%">' . _AM_TDMDOWNLOADS_FORMHOMEPAGE . ' </td>';
369
                        echo '<td><a href="' . $viewDownloads->getVar('homepage') . '">' . $viewDownloads->getVar('homepage') . '</a></td>';
370
                    }
371
                }
372
                if (2 == $downloads_field[$i]->getVar('fid')) {
373
                    //version
374
                    if ('' !== $viewDownloads->getVar('version')) {
375
                        $class = ('even' === $class) ? 'odd' : 'even';
376
                        echo '<tr class="' . $class . '">';
377
                        echo '<td width="30%">' . _AM_TDMDOWNLOADS_FORMVERSION . ' </td>';
378
                        echo '<td>' . $viewDownloads->getVar('version') . '</td></tr>';
379
                    }
380
                }
381
                if (3 == $downloads_field[$i]->getVar('fid')) {
382
                    //taille du fichier
383
                    if ('' !== $viewDownloads->getVar('size')) {
384
                        $class = ('even' === $class) ? 'odd' : 'even';
385
                        echo '<tr class="' . $class . '">';
386
                        echo '<td width="30%">' . _AM_TDMDOWNLOADS_FORMSIZE . '</td>';
387
                        echo '<td>' . $viewDownloads->getVar('size') . '</td></tr>';
388
                    }
389
                }
390
                if (4 == $downloads_field[$i]->getVar('fid')) {
391
                    //plateforme
392
                    if ('' !== $viewDownloads->getVar('platform')) {
393
                        $class = ('even' === $class) ? 'odd' : 'even';
394
                        echo '<tr class="' . $class . '">';
395
                        echo '<td width="30%">' . _AM_TDMDOWNLOADS_FORMPLATFORM . ' </td>';
396
                        echo '<td>' . $viewDownloads->getVar('platform') . '</td></tr>';
397
                    }
398
                }
399
            } else {
400
                $contenu  = '';
401
                $criteria = new \CriteriaCompo();
402
                $criteria->add(new \Criteria('lid', $downloads_lid));
403
                $criteria->add(new \Criteria('fid', $downloads_field[$i]->getVar('fid')));
404
                $downloadsfielddata = $fielddataHandler->getAll($criteria);
405
                foreach (array_keys($downloadsfielddata) as $j) {
406
                    $contenu = $downloadsfielddata[$j]->getVar('data');
407
                }
408
                if ('' !== $contenu) {
409
                    $class = ('even' === $class) ? 'odd' : 'even';
410
                    echo '<tr class="' . $class . '">';
411
                    echo '<td width="30%">' . $downloads_field[$i]->getVar('title') . ' </td>';
412
                    echo '<td>' . $contenu . '</td></tr>';
413
                }
414
            }
415
        }
416
        $class = ('even' === $class) ? 'odd' : 'even';
417
        echo '<tr class="' . $class . '">';
418
        echo '<td width="30%">' . _AM_TDMDOWNLOADS_FORMTEXT . ' </td>';
419
        echo '<td>' . $downloads_description . '</td>';
420
        echo '</tr>';
421
        // tags
422
        if ((1 == $helper->getConfig('usetag')) && is_dir('../../tag')) {
423
            require_once XOOPS_ROOT_PATH . '/modules/tag/include/tagbar.php';
424
            $tags_array = tagBar($downloads_lid, 0);
425
            if (!empty($tags_array)) {
426
                $tags = '';
427
                foreach (array_keys($tags_array['tags']) as $i) {
428
                    $tags .= $tags_array['delimiter'] . ' ' . $tags_array['tags'][$i] . ' ';
429
                }
430
431
                $class = ('even' === $class) ? 'odd' : 'even';
432
                echo '<tr class="' . $class . '">';
433
                echo '<td width="30%">' . $tags_array['title'] . ' </td>';
434
                echo '<td>' . $tags . '</td>';
435
                echo '</tr>';
436
            }
437
        }
438
        if ($helper->getConfig('useshots')) {
439
            if ('blank.gif' !== $viewDownloads->getVar('logourl')) {
440
                $class = ('even' === $class) ? 'odd' : 'even';
441
                echo '<tr class="' . $class . '">';
442
                echo '<td width="30%">' . _AM_TDMDOWNLOADS_FORMIMG . ' </td>';
443
                echo '<td><img src="' . $uploadurl_shots . $viewDownloads->getVar('logourl') . '" alt="" title=""></td>';
444
                echo '</tr>';
445
            }
446
        }
447
        $class = ('even' === $class) ? 'odd' : 'even';
448
        echo '<tr class="' . $class . '">';
449
        echo '<td width="30%">' . _AM_TDMDOWNLOADS_FORMDATE . ' </td>';
450
        echo '<td>' . formatTimestamp($viewDownloads->getVar('date')) . '</td>';
451
        echo '</tr>';
452
        $class = ('even' === $class) ? 'odd' : 'even';
453
        echo '<tr class="' . $class . '">';
454
        echo '<td width="30%">' . _AM_TDMDOWNLOADS_FORMPOSTER . ' </td>';
455
        echo '<td>' . \XoopsUser::getUnameFromId($viewDownloads->getVar('submitter')) . '</td>';
456
        echo '</tr>';
457
        $class = ('even' === $class) ? 'odd' : 'even';
458
        echo '<tr class="' . $class . '">';
459
        echo '<td width="30%">' . _AM_TDMDOWNLOADS_FORMHITS . ' </td>';
460
        echo '<td>' . $viewDownloads->getVar('hits') . '</td>';
461
        echo '</tr>';
462
        $class = ('even' === $class) ? 'odd' : 'even';
463
        echo '<tr class="' . $class . '">';
464
        echo '<td width="30%">' . _AM_TDMDOWNLOADS_FORMRATING . ' </td>';
465
        echo '<td>' . number_format($viewDownloads->getVar('rating'), 1) . ' (' . $viewDownloads->getVar('votes') . ' ' . _AM_TDMDOWNLOADS_FORMVOTE . ')</td>';
466
        echo '</tr>';
467
        if (true === $helper->getConfig('use_paypal') && '' !== $viewDownloads->getVar('paypal')) {
468
            $class = ('even' === $class) ? 'odd' : 'even';
469
            echo '<tr class="' . $class . '">';
470
            echo '<td width="30%">' . _AM_TDMDOWNLOADS_FORMPAYPAL . ' </td>';
471
            echo '<td>' . $viewDownloads->getVar('paypal') . '</td>';
472
            echo '</tr>';
473
        }
474
        $class = ('even' === $class) ? 'odd' : 'even';
475
        echo '<tr class="' . $class . '">';
476
        echo '<td width="30%">' . _AM_TDMDOWNLOADS_FORMCOMMENTS . ' </td>';
477
        echo '<td>'
478
             . $viewDownloads->getVar('comments')
479
             . ' <a href="../singlefile.php?cid='
480
             . $viewDownloads->getVar('cid')
481
             . '&lid='
482
             . $downloads_lid
483
             . '"><img src="../assets/images/icon/view_mini.png" alt="'
484
             . _AM_TDMDOWNLOADS_FORMDISPLAY
485
             . '" title="'
486
             . _AM_TDMDOWNLOADS_FORMDISPLAY
487
             . '"></a></td>';
488
        echo '</tr>';
489
        $class = ('even' === $class) ? 'odd' : 'even';
490
        echo '<tr class="' . $class . '">';
491
        echo '<td width="30%">' . _AM_TDMDOWNLOADS_FORMACTION . ' </td>';
492
        echo '<td>';
493
        echo(0 !== $viewDownloads->getVar('status') ? '' : '<a href="downloads.php?op=update_status&downloads_lid=' . $downloads_lid . '"><img src="./../assets/images/icon/off.png" border="0" alt="' . _AM_TDMDOWNLOADS_FORMVALID . '" title="' . _AM_TDMDOWNLOADS_FORMVALID . '"></a> ');
494
        echo '<a href="downloads.php?op=edit_downloads&downloads_lid=' . $downloads_lid . '"><img src="../assets/images/icon/edit.png" alt="' . _AM_TDMDOWNLOADS_FORMEDIT . '" title="' . _AM_TDMDOWNLOADS_FORMEDIT . '"></a> <a href="downloads.php?op=del_downloads&downloads_lid=' . $downloads_lid . '">
495
        <img src="../assets/images/icon/delete.png" alt="' . _AM_TDMDOWNLOADS_FORMDEL . '" title="' . _AM_TDMDOWNLOADS_FORMDEL . '"></a></td>';
496
        echo '</tr>';
497
        echo '</table>';
498
        echo '<br>';
499
        // Affichage des votes:
500
501
        // Utilisateur enregistré
502
        echo '<hr>';
503
        $criteria = new \CriteriaCompo();
504
        $criteria->add(new \Criteria('lid', $downloads_lid));
505
        $criteria->add(new \Criteria('ratinguser', 0, '!='));
506
        $downloadsvotedata_arr = $ratingHandler->getAll($criteria);
507
        $total_vote            = count($downloadsvotedata_arr);
508
        echo '<table width="100%">';
509
        echo '<tr><td colspan="5"><b>';
510
        printf(_AM_TDMDOWNLOADS_DOWNLOADS_VOTESUSER, $total_vote);
511
        echo '</b><br><br></td></tr>';
512
        echo '<tr><td><b>'
513
             . _AM_TDMDOWNLOADS_DOWNLOADS_VOTE_USER
514
             . '</b></td>'
515
             . '<td><b>'
516
             . _AM_TDMDOWNLOADS_DOWNLOADS_VOTE_IP
517
             . '</b></td>'
518
             . '<td align="center"><b>'
519
             . _AM_TDMDOWNLOADS_FORMRATING
520
             . '</b></td>'
521
             . '<td><b>'
522
             . _AM_TDMDOWNLOADS_FORMDATE
523
             . '</b></td>'
524
             . '<td align="center"><b>'
525
             . _AM_TDMDOWNLOADS_FORMDEL
526
             . '</b></td></tr>';
527
        foreach (array_keys($downloadsvotedata_arr) as $i) {
528
            echo '<tr>';
529
            echo '<td>' . \XoopsUser::getUnameFromId($downloadsvotedata_arr[$i]->getVar('ratinguser')) . '</td>';
530
            echo '<td>' . $downloadsvotedata_arr[$i]->getVar('ratinghostname') . '</td>';
531
            echo '<td align="center">' . $downloadsvotedata_arr[$i]->getVar('rating') . '</td>';
532
            echo '<td>' . formatTimestamp($downloadsvotedata_arr[$i]->getVar('ratingtimestamp')) . '</td>';
533
            echo '<td align="center">';
534
            echo myTextForm('downloads.php?op=del_vote&lid=' . $downloadsvotedata_arr[$i]->getVar('lid') . '&rid=' . $downloadsvotedata_arr[$i]->getVar('ratingid'), 'X');
535
            echo '</td>';
536
            echo '</tr>';
537
        }
538
        // Utilisateur anonyme
539
        $criteria = new \CriteriaCompo();
540
        $criteria->add(new \Criteria('lid', $downloads_lid));
541
        $criteria->add(new \Criteria('ratinguser', 0));
542
        $downloadsvotedata_arr = $ratingHandler->getAll($criteria);
543
        $total_vote            = count($downloadsvotedata_arr);
544
        echo '<tr><td colspan="5"><br><b>';
545
        printf(_AM_TDMDOWNLOADS_DOWNLOADS_VOTESANONYME, $total_vote);
546
        echo '</b><br><br></td></tr>';
547
        echo '<tr><td colspan="2"><b>' . _AM_TDMDOWNLOADS_DOWNLOADS_VOTE_IP . '</b></td>' . '<td align="center"><b>' . _AM_TDMDOWNLOADS_FORMRATING . '</b></td>' . '<td><b>' . _AM_TDMDOWNLOADS_FORMDATE . '</b></td>' . '<td align="center"><b>' . _AM_TDMDOWNLOADS_FORMDEL . '</b></td></tr>';
548
        foreach (array_keys($downloadsvotedata_arr) as $i) {
549
            echo '<tr>';
550
            echo '<td colspan="2">' . $downloadsvotedata_arr[$i]->getVar('ratinghostname') . '</td>';
551
            echo '<td align="center">' . $downloadsvotedata_arr[$i]->getVar('rating') . '</td>';
552
            echo '<td>' . formatTimestamp($downloadsvotedata_arr[$i]->getVar('ratingtimestamp')) . '</td>';
553
            echo '<td align="center">';
554
            echo myTextForm('downloads.php?op=del_vote&lid=' . $downloadsvotedata_arr[$i]->getVar('lid') . '&rid=' . $downloadsvotedata_arr[$i]->getVar('ratingid'), 'X');
555
            echo '</tr>';
556
        }
557
        echo '</table>';
558
        break;
559
    // permet de suprimmer un vote et de recalculer la note
560
    case 'del_vote':
561
        $objvotedata = $ratingHandler->get(\Xmf\Request::getInt('rid'));
562
        if ($ratingHandler->delete($objvotedata)) {
563
            $criteria = new \CriteriaCompo();
564
            $criteria->add(new \Criteria('lid', \Xmf\Request::getInt('lid')));
565
            $downloadsvotedata_arr = $ratingHandler->getAll($criteria);
566
            $total_vote            = $ratingHandler->getCount($criteria);
567
            $obj                   = $downloadsHandler->get(\Xmf\Request::getInt('lid'));
568
            if (0 === $total_vote) {
569
                $obj->setVar('rating', number_format(0, 1));
570
                $obj->setVar('votes', 0);
571
                if ($downloadsHandler->insert($obj)) {
572
                    redirect_header('downloads.php?op=view_downloads&downloads_lid=' . \Xmf\Request::getInt('lid'), 1, _AM_TDMDOWNLOADS_REDIRECT_DELOK);
573
                }
574
            } else {
575
                $total_rating = 0;
576
                foreach (array_keys($downloadsvotedata_arr) as $i) {
577
                    $total_rating += $downloadsvotedata_arr[$i]->getVar('rating');
578
                }
579
                $rating = $total_rating / $total_vote;
580
                $obj->setVar('rating', number_format($rating, 1));
581
                $obj->setVar('votes', $total_vote);
582
                if ($downloadsHandler->insert($obj)) {
583
                    redirect_header('downloads.php?op=view_downloads&downloads_lid=' . \Xmf\Request::getInt('lid'), 1, _AM_TDMDOWNLOADS_REDIRECT_DELOK);
584
                }
585
            }
586
            echo $obj->getHtmlErrors();
587
        }
588
        echo $objvotedata->getHtmlErrors();
589
        break;
590
    // Pour sauver un téléchargement
591
    case 'save_downloads':
592
        global $xoopsDB;
593
        require_once XOOPS_ROOT_PATH . '/class/uploader.php';
594
        if (!$GLOBALS['xoopsSecurity']->check()) {
595
            redirect_header('downloads.php', 3, implode(',', $GLOBALS['xoopsSecurity']->getErrors()));
596
        }
597
        if (\Xmf\Request::hasVar('lid')) {
598
            $obj = $downloadsHandler->get(\Xmf\Request::getInt('lid'));
599
        } else {
600
            $obj = $downloadsHandler->create();
601
        }
602
        $erreur         = false;
603
        $message_erreur = '';
604
        $donnee         = [];
605
        $obj->setVar('title', $_POST['title']);
606
        $obj->setVar('cid', $_POST['cid']);
607
        $obj->setVar('homepage', formatURL($_POST['homepage']));
608
        $obj->setVar('version', $_POST['version']);
609
        $obj->setVar('size', $_POST['size']);
610
        $donnee['type_size'] = $_POST['type_size'];
611
        $obj->setVar('paypal', $_POST['paypal']);
612
        if (\Xmf\Request::hasVar('platform', 'POST')) {
613
            $obj->setVar('platform', implode('|', $_POST['platform']));
614
        }
615
        $obj->setVar('description', $_POST['description']);
616
617
        if (\Xmf\Request::hasVar('submitter', 'POST')) {
618
            $obj->setVar('submitter', $_POST['submitter']);
619
            $donnee['submitter'] = $_POST['submitter'];
620
        } else {
621
            $obj->setVar('submitter', !empty($xoopsUser) ? $xoopsUser->getVar('uid') : 0);
622
            $donnee['submitter'] = !empty($xoopsUser) ? $xoopsUser->getVar('uid') : 0;
623
        }
624
        if (\Xmf\Request::hasVar('downloads_modified')) {
625
            $obj->setVar('date', time());
626
            if (\Xmf\Request::hasVar('status', 'POST')) {
627
                $obj->setVar('status', 1);
628
                $donnee['status'] = 1;
629
            } else {
630
                $obj->setVar('status', 0);
631
                $donnee['status'] = 0;
632
            }
633
        } else {
634
            if ('Y' === $_POST['date_update']) {
635
                $obj->setVar('date', strtotime($_POST['date']));
636
                if (\Xmf\Request::hasVar('status', 'POST')) {
637
                    $obj->setVar('status', 2);
638
                    $donnee['status'] = 1;
639
                } else {
640
                    $obj->setVar('status', 0);
641
                    $donnee['status'] = 0;
642
                }
643
            } else {
644
                if (\Xmf\Request::hasVar('status', 'POST')) {
645
                    $obj->setVar('status', 1);
646
                    $donnee['status'] = 1;
647
                } else {
648
                    $obj->setVar('status', 0);
649
                    $donnee['status'] = 0;
650
                }
651
            }
652
            $donnee['date_update'] = $_POST['date_update'];
653
        }
654
        // erreur si la taille du fichier n'est pas un nombre
655
        if (0 === \Xmf\Request::getInt('size')) {
656
            if (0 == \Xmf\Request::getInt('size') || '' === \Xmf\Request::getString('size')) {
657
                $erreur = false;
658
            } else {
659
                $erreur         = true;
660
                $message_erreur .= _AM_TDMDOWNLOADS_ERREUR_SIZE . '<br>';
661
            }
662
        }
663
        // erreur si la description est vide
664
        if (\Xmf\Request::hasVar('description', 'REQUEST')) {
665
            if ('' === $_REQUEST['description']) {
666
                $erreur         = true;
667
                $message_erreur .= _AM_TDMDOWNLOADS_ERREUR_NODESCRIPTION . '<br>';
668
            }
669
        }
670
        // erreur si la catégorie est vide
671
        if (\Xmf\Request::hasVar('cid')) {
672
            if (0 == \Xmf\Request::getInt('cid')) {
673
                $erreur         = true;
674
                $message_erreur .= _AM_TDMDOWNLOADS_ERREUR_NOCAT . '<br>';
675
            }
676
        }
677
        // pour enregistrer temporairement les valeur des champs sup
678
        $criteria = new \CriteriaCompo();
679
        $criteria->setSort('weight ASC, title');
680
        $criteria->setOrder('ASC');
681
        $downloads_field = $fieldHandler->getAll($criteria);
682
        foreach (array_keys($downloads_field) as $i) {
683
            if (0 == $downloads_field[$i]->getVar('status_def')) {
684
                $nom_champ          = 'champ' . $downloads_field[$i]->getVar('fid');
685
                $donnee[$nom_champ] = $_POST[$nom_champ];
686
            }
687
        }
688
        // enregistrement temporaire des tags
689
        if ((1 == $helper->getConfig('usetag')) && is_dir('../../tag')) {
690
            $donnee['TAG'] = $_POST['tag'];
691
        }
692
693
        if (1 == $erreur) {
694
            xoops_cp_header();
695
            echo '<div class="errorMsg" style="text-align: left;">' . $message_erreur . '</div>';
696
        } else {
697
            $obj->setVar('size', $_POST['size'] . ' ' . $_POST['type_size']);
698
            // Pour le fichier
699
            if (isset($_POST['xoops_upload_file'][0])) {
700
                $uploader = new \XoopsMediaUploader($uploaddir_downloads, explode('|', $helper->getConfig('mimetype')), $helper->getConfig('maxuploadsize'), null, null);
701
                if ($uploader->fetchMedia($_POST['xoops_upload_file'][0])) {
702
                    if ($helper->getConfig('newnamedownload')) {
703
                        $uploader->setPrefix($helper->getConfig('prefixdownloads'));
704
                    }
705
                    $uploader->fetchMedia($_POST['xoops_upload_file'][0]);
706
                    if (!$uploader->upload()) {
707
                        $errors = $uploader->getErrors();
708
                        redirect_header('javascript:history.go(-1)', 3, $errors);
709
                    } else {
710
                        $obj->setVar('url', $uploadurl_downloads . $uploader->getSavedFileName());
711
                    }
712
                } else {
713
                    $obj->setVar('url', $_REQUEST['url']);
714
                }
715
            }
716
            // Pour l'image
717
            if (isset($_POST['xoops_upload_file'][1])) {
718
                $uploader_2 = new \XoopsMediaUploader($uploaddir_shots, [
719
                    'image/gif',
720
                    'image/jpeg',
721
                    'image/pjpeg',
722
                    'image/x-png',
723
                    'image/png',
724
                ], $helper->getConfig('maxuploadsize'), null, null);
725
                if ($uploader_2->fetchMedia($_POST['xoops_upload_file'][1])) {
726
                    $uploader_2->setPrefix('downloads_');
727
                    $uploader_2->fetchMedia($_POST['xoops_upload_file'][1]);
728
                    if (!$uploader_2->upload()) {
729
                        $errors = $uploader_2->getErrors();
730
                        redirect_header('javascript:history.go(-1)', 3, $errors);
731
                    } else {
732
                        $obj->setVar('logourl', $uploader_2->getSavedFileName());
733
                    }
734
                } else {
735
                    $obj->setVar('logourl', $_REQUEST['logo_img']);
736
                }
737
            }
738
            // enregistrement
739
            if ($downloadsHandler->insert($obj)) {
740
                if (!\Xmf\Request::hasVar('downloads_modified')) {
741
                    $lidDownloads = $obj->getNewEnreg($db);
742
                } else {
743
                    $lidDownloads = \Xmf\Request::getInt('lid');
744
                }
745
                //tags
746
                if ((1 == $helper->getConfig('usetag')) && is_dir('../../tag')) {
747
                    /** @var \XoopsModules\Tag\TagHandler $tagHandler */
748
                    $tagHandler = \XoopsModules\Tag\Helper::getInstance()->getHandler('Tag');
749
                    $tagHandler->updateByItem($_POST['tag'], $lidDownloads, $moduleDirName, 0);
750
                }
751
                // Récupération des champs supplémentaires:
752
                $criteria = new \CriteriaCompo();
753
                $criteria->setSort('weight ASC, title');
754
                $criteria->setOrder('ASC');
755
                $downloads_field = $fieldHandler->getAll($criteria);
756
                foreach (array_keys($downloads_field) as $i) {
757
                    if (0 == $downloads_field[$i]->getVar('status_def')) {
758
                        $iddata = 'iddata' . $downloads_field[$i]->getVar('fid');
759
                        if (isset($_REQUEST[$iddata])) {
760
                            if ('' === $_REQUEST[$iddata]) {
761
                                $objdata = $fielddataHandler->create();
762
                            } else {
763
                                $objdata = $fielddataHandler->get($_REQUEST[$iddata]);
764
                            }
765
                        } else {
766
                            $objdata = $fielddataHandler->create();
767
                        }
768
                        $nom_champ = 'champ' . $downloads_field[$i]->getVar('fid');
769
                        $objdata->setVar('data', $_POST[$nom_champ]);
770
                        $objdata->setVar('lid', $lidDownloads);
771
                        $objdata->setVar('fid', $downloads_field[$i]->getVar('fid'));
772
                        $fielddataHandler->insert($objdata) || $objdata->getHtmlErrors();
773
                    }
774
                }
775
                //permission pour télécharger
776
                if (2 == $helper->getConfig('permission_download')) {
777
                    /** @var \XoopsGroupPermHandler $grouppermHandler */
778
                    $grouppermHandler = xoops_getHandler('groupperm');
779
                    $criteria         = new \CriteriaCompo();
780
                    $criteria->add(new \Criteria('gperm_itemid', $lidDownloads, '='));
781
                    $criteria->add(new \Criteria('gperm_modid', $xoopsModule->getVar('mid'), '='));
782
                    $criteria->add(new \Criteria('gperm_name', 'tdmdownloads_download_item', '='));
783
                    $grouppermHandler->deleteAll($criteria);
784
                    if (\Xmf\Request::hasVar('item_download', 'POST')) {
785
                        foreach ($_POST['item_download'] as $onegroup_id) {
786
                            $grouppermHandler->addRight('tdmdownloads_download_item', $lidDownloads, $onegroup_id, $xoopsModule->getVar('mid'));
787
                        }
788
                    }
789
                }
790
                // pour les notifications uniquement lors d'un nouveau téléchargement
791
                if (\Xmf\Request::hasVar('downloads_modified')) {
792
                    $tags                  = [];
793
                    $tags['FILE_NAME']     = $_POST['title'];
794
                    $tags['FILE_URL']      = XOOPS_URL . '/modules/' . $moduleDirName . '/singlefile.php?cid=' . $_POST['cid'] . '&amp;lid=' . $lidDownloads;
795
                    $downloadscat_cat      = $categoryHandler->get($_POST['cid']);
796
                    $tags['CATEGORY_NAME'] = $downloadscat_cat->getVar('cat_title');
797
                    $tags['CATEGORY_URL']  = XOOPS_URL . '/modules/' . $moduleDirName . '/viewcat.php?cid=' . $_POST['cid'];
798
                    /** @var \XoopsNotificationHandler $notificationHandler */
799
                    $notificationHandler = xoops_getHandler('notification');
800
                    $notificationHandler->triggerEvent('global', 0, 'new_file', $tags);
0 ignored issues
show
'global' of type string is incompatible with the type integer expected by parameter $category of XoopsNotificationHandler::triggerEvent(). ( Ignorable by Annotation )

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

800
                    $notificationHandler->triggerEvent(/** @scrutinizer ignore-type */ 'global', 0, 'new_file', $tags);
Loading history...
'new_file' of type string is incompatible with the type integer expected by parameter $event of XoopsNotificationHandler::triggerEvent(). ( Ignorable by Annotation )

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

800
                    $notificationHandler->triggerEvent('global', 0, /** @scrutinizer ignore-type */ 'new_file', $tags);
Loading history...
801
                    $notificationHandler->triggerEvent('category', $_POST['cid'], 'new_file', $tags);
802
                }
803
                redirect_header('downloads.php', 2, _AM_TDMDOWNLOADS_REDIRECT_SAVE);
804
            }
805
            echo $obj->getHtmlErrors();
806
        }
807
        $form = $obj->getForm($donnee, true);
808
        $form->display();
809
        break;
810
    // permet de valider un téléchargement proposé
811
    case 'update_status':
812
        $obj = $downloadsHandler->get(\Xmf\Request::getInt('downloads_lid'));
813
        $obj->setVar('status', 1);
814
        if ($downloadsHandler->insert($obj)) {
815
            redirect_header('downloads.php', 1, _AM_TDMDOWNLOADS_REDIRECT_SAVE);
816
        }
817
        echo $obj->getHtmlErrors();
818
        break;
819
    // permet de valider un téléchargement proposé
820
    case 'lock_status':
821
        $obj = $downloadsHandler->get(\Xmf\Request::getInt('downloads_lid'));
822
        $obj->setVar('status', 0);
823
        if ($downloadsHandler->insert($obj)) {
824
            redirect_header('downloads.php', 1, _AM_TDMDOWNLOADS_REDIRECT_DEACTIVATED);
825
        }
826
        echo $obj->getHtmlErrors();
827
        break;
828
}
829
//Affichage de la partie basse de l'administration de Xoops
830
require_once __DIR__ . '/admin_footer.php';
831