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

brokenfile.php (1 issue)

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
include_once 'header.php';
18
// template d'affichage
19
$xoopsOption['template_main'] = 'tdmdownloads_brokenfile.tpl';
20
include_once XOOPS_ROOT_PATH.'/header.php';
21
$xoTheme->addStylesheet( XOOPS_URL . '/modules/' . $xoopsModule->getVar('dirname', 'n') . '/css/styles.css', null );
22
//On recupere la valeur de l'argument op dans l'URL$
23
$op = TDMDownloads_CleanVars($_REQUEST, 'op', 'liste', 'string');
24
$lid = TDMDownloads_CleanVars($_REQUEST, 'lid', 0, 'int');
25
26
//redirection si pas de permission de vote
27
if ($perm_vote == false) {
28
    redirect_header('index.php', 2, _NOPERM);
29
    exit();
30
}
31
32
$view_downloads = $downloads_Handler->get($lid);
33
// redirection si le t�l�chargement n'existe pas ou n'est pas activ�
34
if (count($view_downloads) == 0 || $view_downloads->getVar('status') == 0) {
35
    redirect_header('index.php', 3, _MD_TDMDOWNLOADS_SINGLEFILE_NONEXISTENT);
36
    exit();
37
}
38
39
//redirection si pas de permission (cat)
40
$categories = TDMDownloads_MygetItemIds('tdmdownloads_view', 'TDMDownloads');
41
if (!in_array($view_downloads->getVar('cid'), $categories)) {
42
    redirect_header(XOOPS_URL, 2, _NOPERM);
43
    exit();
44
}
45
46
//Les valeurs de op qui vont permettre d'aller dans les differentes parties de la page
47
switch ($op) {
48
    // Vue liste
49
    case "liste":
50
        //tableau des cat�gories
51
        $criteria = new CriteriaCompo();
52
        $criteria->setSort('cat_weight ASC, cat_title');
53
        $criteria->setOrder('ASC');
54
        $criteria->add(new Criteria('cat_cid', '(' . implode(',', $categories) . ')','IN'));
55
        $downloadscat_arr = $downloadscat_Handler->getall($criteria);
56
        $mytree = new XoopsObjectTree($downloadscat_arr, 'cat_cid', 'cat_pid');
57
        //navigation
58
        $navigation = TDMDownloads_PathTreeUrl($mytree, $view_downloads->getVar('cid'), $downloadscat_arr, 'cat_title', $prefix = ' <img src="images/deco/arrow.gif" alt="arrow" /> ', true, 'ASC', true);
59
        $navigation .= ' <img src="images/deco/arrow.gif" alt="arrow" /> <a title="' . $view_downloads->getVar('title') . '" href="singlefile.php?lid=' . $view_downloads->getVar('lid') . '">' . $view_downloads->getVar('title') . '</a>';
60
        $navigation .= ' <img src="images/deco/arrow.gif" alt="arrow" /> ' . _MD_TDMDOWNLOADS_SINGLEFILE_REPORTBROKEN;
61
        $xoopsTpl->assign('navigation', $navigation);
62
        // r�f�rencement
63
        // titre de la page
64
        $pagetitle = _MD_TDMDOWNLOADS_SINGLEFILE_REPORTBROKEN . ' - ' . $view_downloads->getVar('title') . ' - ';
65
        $pagetitle .= TDMDownloads_PathTreeUrl($mytree, $view_downloads->getVar('cid'), $downloadscat_arr, 'cat_title', $prefix = ' - ', false, 'DESC', true);
66
        $xoopsTpl->assign('xoops_pagetitle', $pagetitle);
67
        //description
68
        $xoTheme->addMeta( 'meta', 'description', strip_tags(_MD_TDMDOWNLOADS_SINGLEFILE_REPORTBROKEN . ' (' . $view_downloads->getVar('title') . ')'));
69
        //Affichage du formulaire de fichier bris�*/
70
        $obj = $downloadsbroken_Handler->create();
71
        $form = $obj->getForm($lid);
72
        $xoopsTpl->assign('themeForm', $form->render());
73
    break;
74
    // save
75
    case "save":
76
        $obj = $downloadsbroken_Handler->create();
77
        if (empty($xoopsUser)) {
78
            $ratinguser = 0;
79
        } else {
80
            $ratinguser = $xoopsUser->getVar('uid');
81
        }
82
        if ($ratinguser != 0) {
83
            // si c'est un membre on v�rifie qu'il n'envoie pas 2 fois un rapport
84
            $criteria = new CriteriaCompo();
85
            $criteria->add(new Criteria('lid', $lid));
86
            $downloadsbroken_arr = $downloadsbroken_Handler->getall($criteria);
87
            foreach (array_keys($downloadsbroken_arr) as $i) {
88
                if ($downloadsbroken_arr[$i]->getVar('sender') == $ratinguser) {
89
                    redirect_header('singlefile.php?lid=' . $lid, 2, _MD_TDMDOWNLOADS_BROKENFILE_ALREADYREPORTED);
90
                    exit();
91
                }
92
            }
93
        } else {
94
            // si c'est un utilisateur anonyme on v�rifie qu'il n'envoie pas 2 fois un rapport
95
            $criteria = new CriteriaCompo();
96
            $criteria->add(new Criteria('lid', $lid));
97
            $criteria->add(new Criteria('sender', 0));
98
            $criteria->add(new Criteria('ip', getenv("REMOTE_ADDR")));
99
            if ($downloadsbroken_Handler->getCount($criteria) >= 1) {
100
                redirect_header('singlefile.php?lid=' . $lid, 2, _MD_TDMDOWNLOADS_BROKENFILE_ALREADYREPORTED);
101
                exit();
102
            }
103
        }
104
        $erreur = false;
105
        $message_erreur = '';
106
        // Test avant la validation
107
        xoops_load("captcha");
108
        $xoopsCaptcha = XoopsCaptcha::getInstance();
109
        if ( !$xoopsCaptcha->verify() ) {
110
            $message_erreur.=$xoopsCaptcha->getMessage().'<br>';
111
            $erreur=true;
112
        }
113
        $obj->setVar('lid', $lid);
114
        $obj->setVar('sender', $ratinguser);
115
        $obj->setVar('ip', getenv("REMOTE_ADDR"));
116
        if ($erreur==true) {
0 ignored issues
show
Coding Style Best Practice introduced by
It seems like you are loosely comparing two booleans. Considering using the strict comparison === instead.

When comparing two booleans, it is generally considered safer to use the strict comparison operator.

Loading history...
117
            $xoopsTpl->assign('message_erreur', $message_erreur);
118
        } else {
119
            if ($downloadsbroken_Handler->insert($obj)) {
120
                $tags = array();
121
                $tags['BROKENREPORTS_URL'] = XOOPS_URL . '/modules/' . $xoopsModule->getVar('dirname') . '/admin/broken.php';
122
                $notification_handler = xoops_gethandler('notification');
123
                $notification_handler->triggerEvent('global', 0, 'file_broken', $tags);
124
                redirect_header('singlefile.php?lid=' . $lid, 2, _MD_TDMDOWNLOADS_BROKENFILE_THANKSFORINFO);
125
            }
126
            echo $obj->getHtmlErrors();
127
        }
128
        //Affichage du formulaire de notation des t�l�chargements
129
        $form = $obj->getForm($lid);
130
        $xoopsTpl->assign('themeForm', $form->render());
131
132
    break;
133
}
134
include XOOPS_ROOT_PATH.'/footer.php';
135