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

submit.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_submit.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', 'list', 'string');
24
25
// redirection si pas de droit pour poster
26
if ($perm_submit == false) {
27
    redirect_header('index.php', 2, _NOPERM);
28
    exit();
29
}
30
//Les valeurs de op qui vont permettre d'aller dans les differentes parties de la page
31
switch ($op) {
32
    // Vue liste
33
    case "list":
34
        //navigation
35
        $navigation = _MD_TDMDOWNLOADS_SUBMIT_PROPOSER;
36
        $xoopsTpl->assign('navigation', $navigation);
37
        // r�f�rencement
38
        // titre de la page
39
        $titre = _MD_TDMDOWNLOADS_SUBMIT_PROPOSER . '&nbsp;-&nbsp;';
40
        $titre .= $xoopsModule->name();
41
        $xoopsTpl->assign('xoops_pagetitle', $titre);
42
        //description
43
        $xoTheme->addMeta( 'meta', 'description', strip_tags(_MD_TDMDOWNLOADS_SUBMIT_PROPOSER));
44
45
        //Affichage du formulaire de notation des t�l�chargements
46
        $obj = $downloads_Handler->create();
47
        $form = $obj->getForm($donnee = array(), false);
48
        $xoopsTpl->assign('themeForm', $form->render());
49
    break;
50
    // save
51
    case "save_downloads":
52
        include_once XOOPS_ROOT_PATH.'/class/uploader.php';
53
        $obj = $downloads_Handler->create();
54
        $erreur = false;
55
        $message_erreur = '';
56
        $donnee = array();
57
        $obj->setVar('title', $_POST['title']);
58
        $donnee['title'] = $_POST['title'];
59
        $obj->setVar('cid', $_POST['cid']);
60
        $donnee['cid'] = $_POST['cid'];
61
        $obj->setVar('homepage', formatURL($_POST['homepage']));
62
        $obj->setVar('version', $_POST['version']);
63
        $obj->setVar('size', $_POST['size']);
64
        $donnee['type_size'] = $_POST['type_size'];
65
        $obj->setVar('paypal', $_POST['paypal']);
66
        if (isset($_POST['platform'])) {
67
            $obj->setVar('platform', implode('|',$_POST['platform']));
68
        }
69
        $obj->setVar('description', $_POST['description']);
70
        if (isset($_POST['submitter'])) {
71
            $obj->setVar('submitter', $_POST['submitter']);
72
            $donnee['submitter'] = $_POST['submitter'];
73
        } else {
74
            $obj->setVar('submitter', !empty($xoopsUser) ? $xoopsUser->getVar('uid') : 0);
75
            $donnee['submitter'] = !empty($xoopsUser) ? $xoopsUser->getVar('uid') : 0;
76
        }
77
        $obj->setVar('date', time());
78
        if ($perm_autoapprove == true) {
79
            $obj->setVar('status', 1);
80
        } else {
81
            $obj->setVar('status', 0);
82
        }
83
        if ($xoopsUser) {
84
            if ( $xoopsUser->isAdmin($xoopsModule->mid()) ) {
85
                if (isset($_POST['status'])) {
86
                    $obj->setVar('status', $_POST['status']);
87
                    $donnee['status'] = $_POST['status'];
88
                } else {
89
                    $obj->setVar('status', 0);
90
                    $donnee['status'] = 0;
91
                }
92
            }
93
        }
94
        $donnee['date_update'] = 0;
95
        // erreur si la taille du fichier n'est pas un nombre
96
        if (intval($_REQUEST['size']) == 0) {
97
            if ($_REQUEST['size'] == '0' || $_REQUEST['size'] == '') {
98
                $erreur = false;
99
            } else {
100
                $erreur = true;
101
                $message_erreur .= _MD_TDMDOWNLOADS_ERREUR_SIZE . '<br>';
102
            }
103
        }
104
        // erreur si la cat�gorie est vide
105
        if (isset($_REQUEST['cid'])) {
106
            if ($_REQUEST['cid'] == 0) {
107
                $erreur=true;
108
                $message_erreur .= _MD_TDMDOWNLOADS_ERREUR_NOCAT . '<br>';
109
            }
110
        }
111
        // erreur si le captcha est faux
112
		xoops_load('xoopscaptcha');
113
        $xoopsCaptcha = XoopsCaptcha::getInstance();
114
        if ( !$xoopsCaptcha->verify() ) {
115
            $message_erreur .=$xoopsCaptcha->getMessage().'<br>';
116
            $erreur=true;
117
        }
118
        // pour enregistrer temporairement les valeur des champs sup
119
        $criteria = new CriteriaCompo();
120
        $criteria->setSort('weight ASC, title');
121
        $criteria->setOrder('ASC');
122
        $downloads_field = $downloadsfield_Handler->getall($criteria);
123
        foreach (array_keys($downloads_field) as $i) {
124
            if ($downloads_field[$i]->getVar('status_def') == 0) {
125
                $nom_champ = 'champ' . $downloads_field[$i]->getVar('fid');
126
                $donnee[$nom_champ] = $_POST[$nom_champ];
127
            }
128
        }
129
        // enregistrement temporaire des tags
130
        if (($xoopsModuleConfig['usetag'] == 1) and (is_dir('../tag'))) {
131
            $donnee['TAG'] = $_POST['tag'];
132
        }
133
        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...
134
            $xoopsTpl->assign('message_erreur', $message_erreur);
135
        } else {
136
            $obj->setVar('size', $_POST['size'] . ' ' . $_POST['type_size']);
137
            // Pour le fichier
138
            if (isset($_POST['xoops_upload_file'][0])) {
139
                $uploader = new XoopsMediaUploader($uploaddir_downloads, explode('|',$xoopsModuleConfig['mimetype']), $xoopsModuleConfig['maxuploadsize'], null, null);
140
                if ($uploader->fetchMedia($_POST['xoops_upload_file'][0])) {
141
                    if ($xoopsModuleConfig['newnamedownload']) {
142
                        $uploader->setPrefix($xoopsModuleConfig['prefixdownloads']) ;
143
                    }
144
                    $uploader->fetchMedia($_POST['xoops_upload_file'][0]);
145
                    if (!$uploader->upload()) {
146
                        $errors = $uploader->getErrors();
147
                        redirect_header("javascript:history.go(-1)",3, $errors);
148
                    } else {
149
                        $obj->setVar('url', $uploadurl_downloads . $uploader->getSavedFileName());
150
                    }
151
                } else {
152
                    $obj->setVar('url', $_REQUEST['url']);
153
                }
154
            }
155
            // Pour l'image
156
            if (isset($_POST['xoops_upload_file'][1])) {
157
                $uploader_2 = new XoopsMediaUploader($uploaddir_shots, array('image/gif', 'image/jpeg', 'image/pjpeg', 'image/x-png', 'image/png'), $xoopsModuleConfig['maxuploadsize'], null, null);
158
                if ($uploader_2->fetchMedia($_POST['xoops_upload_file'][1])) {
159
                    $uploader_2->setPrefix('downloads_') ;
160
                    $uploader_2->fetchMedia($_POST['xoops_upload_file'][1]);
161
                    if (!$uploader_2->upload()) {
162
                        $errors = $uploader_2->getErrors();
163
                        redirect_header("javascript:history.go(-1)",3, $errors);
164
                    } else {
165
                        $obj->setVar('logourl', $uploader_2->getSavedFileName());
166
                    }
167
                } else {
168
                    $obj->setVar('logourl', $_REQUEST['logo_img']);
169
                }
170
            }
171
172
            if ($downloads_Handler->insert($obj)) {
173
                $lid_dowwnloads = $obj->get_new_enreg();
174
                //tags
175
                if (($xoopsModuleConfig['usetag'] == 1) and (is_dir('../tag'))) {
176
                    $tag_handler = xoops_getmodulehandler('tag', 'tag');
177
                    $tag_handler->updateByItem($_POST['tag'], $lid_dowwnloads, $xoopsModule->getVar('dirname'), 0);
178
                }
179
                // R�cup�ration des champs suppl�mentaires:
180
                $criteria = new CriteriaCompo();
181
                $criteria->setSort('weight ASC, title');
182
                $criteria->setOrder('ASC');
183
                $downloads_field = $downloadsfield_Handler->getall($criteria);
184
                foreach (array_keys($downloads_field) as $i) {
185
                    if ($downloads_field[$i]->getVar('status_def') == 0) {
186
                        $objdata = $downloadsfielddata_Handler->create();
187
                        $nom_champ = 'champ' . $downloads_field[$i]->getVar('fid');
188
                        $objdata->setVar('data', $_POST[$nom_champ]);
189
                        $objdata->setVar('lid', $lid_dowwnloads);
190
                        $objdata->setVar('fid', $downloads_field[$i]->getVar('fid'));
191
                        $downloadsfielddata_Handler->insert($objdata) or $objdata->getHtmlErrors();
192
                    }
193
                }
194
                if ($xoopsUser) {
195
                    if ( $xoopsUser->isAdmin($xoopsModule->mid()) ) {
196
                        //permission pour t�l�charger
197
                        if ($xoopsModuleConfig['permission_download'] == 1) {
198
                            $gperm_handler = xoops_gethandler('groupperm');
199
                            $criteria = new CriteriaCompo();
200
                            $criteria->add(new Criteria('gperm_itemid', $lid_dowwnloads, '='));
201
                            $criteria->add(new Criteria('gperm_modid', $xoopsModule->getVar('mid'),'='));
202
                            $criteria->add(new Criteria('gperm_name', 'tdmdownloads_download_item', '='));
203
                            $gperm_handler->deleteAll($criteria);
204
                            if (isset($_POST['item_download'])) {
205
                                foreach ($_POST['item_download'] as $onegroup_id) {
206
                                    $gperm_handler->addRight('tdmdownloads_download_item', $lid_dowwnloads, $onegroup_id, $xoopsModule->getVar('mid'));
207
                                }
208
                            }
209
                        }
210
                    }
211
                }
212
                $notification_handler = xoops_gethandler('notification');
213
                $tags = array();
214
                $tags['FILE_NAME'] = $donnee['title'];
215
                $tags['FILE_URL'] = XOOPS_URL . '/modules/' . $xoopsModule->getVar('dirname') . '/singlefile.php?cid=' . $donnee['cid'] . '&lid=' . $lid_dowwnloads;
216
                $downloadscat_cat = $downloadscat_Handler->get($donnee['cid']);
217
                $tags['CATEGORY_NAME'] = $downloadscat_cat->getVar('cat_title');
218
                $tags['CATEGORY_URL'] = XOOPS_URL . '/modules/' . $xoopsModule->getVar('dirname') . '/viewcat.php?cid=' . $donnee['cid'];
219
220
                if ($perm_autoapprove == true) {
221
                    $notification_handler->triggerEvent('global', 0, 'new_file', $tags);
222
                    $notification_handler->triggerEvent('category', $donnee['cid'], 'new_file', $tags);
223
                    redirect_header('index.php',2,_MD_TDMDOWNLOADS_SUBMIT_RECEIVED . '<br />' . _MD_TDMDOWNLOADS_SUBMIT_ISAPPROVED . '');
224
                    exit;
225
                } else {
226
                    $tags['WAITINGFILES_URL'] = XOOPS_URL . '/modules/' . $xoopsModule->getVar('dirname') . '/admin/index.php?op=listNewDownloads';
227
                    $notification_handler->triggerEvent('global', 0, 'file_submit', $tags);
228
                    $notification_handler->triggerEvent('category', $donnee['cid'], 'file_submit', $tags);
229
                    redirect_header('index.php',2,_MD_TDMDOWNLOADS_SUBMIT_RECEIVED);
230
                    exit;
231
                }
232
            }
233
            echo $obj->getHtmlErrors();
234
        }
235
        $form = $obj->getForm($donnee, true);
236
        $xoopsTpl->assign('themeForm', $form->render());
237
238
    break;
239
}
240
include XOOPS_ROOT_PATH.'/footer.php';
241