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

TDMDownloads_mod::getForm()   F

Complexity

Conditions 29
Paths > 20000

Size

Total Lines 207

Duplication

Lines 58
Ratio 28.02 %

Importance

Changes 0
Metric Value
cc 29
nc 260928
nop 4
dl 58
loc 207
rs 0
c 0
b 0
f 0

How to fix   Long Method    Complexity   

Long Method

Small methods make your code easier to understand, in particular if combined with a good name. Besides, if your method is small, finding a good name is usually much easier.

For example, if you find yourself adding comments to a method's body, this is usually a good sign to extract the commented part to a new method, and use the comment as a starting point when coming up with a good name for this new method.

Commonly applied refactorings include:

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
if (!defined("XOOPS_ROOT_PATH")) {
18
    die("XOOPS root path not defined");
19
}
20
21
class TDMDownloads_mod extends XoopsObject
22
{
23
// constructor
24
    public function __construct()
25
    {
26
        $this->initVar("requestid",XOBJ_DTYPE_INT,null,false,11);
27
        $this->initVar("lid",XOBJ_DTYPE_INT,null,false,11);
28
        $this->initVar("cid",XOBJ_DTYPE_INT,null,false,5);
29
        $this->initVar("title",XOBJ_DTYPE_TXTBOX, null, false);
30
        $this->initVar("url",XOBJ_DTYPE_TXTBOX, null, false);
31
        $this->initVar("homepage",XOBJ_DTYPE_TXTBOX, null, false);
32
        $this->initVar("version",XOBJ_DTYPE_TXTBOX, null, false);
33
        $this->initVar("size",XOBJ_DTYPE_TXTBOX, null, false);
34
        $this->initVar("platform",XOBJ_DTYPE_TXTBOX, null, false);
35
        $this->initVar("logourl",XOBJ_DTYPE_TXTBOX, null, false);
36
        $this->initVar("description",XOBJ_DTYPE_TXTAREA, null, false);
37
        // Pour autoriser le html
38
        $this->initVar('dohtml', XOBJ_DTYPE_INT, 1, false);
39
        $this->initVar("modifysubmitter",XOBJ_DTYPE_INT,null,false,11);
40
    }
41
42
    public function TDMDownloads_mod($lid)
0 ignored issues
show
Unused Code introduced by
The parameter $lid is not used and could be removed. ( Ignorable by Annotation )

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

42
    public function TDMDownloads_mod(/** @scrutinizer ignore-unused */ $lid)

This check looks for parameters that have been defined for a function or method, but which are not used in the method body.

Loading history...
43
    {
44
        $this->__construct();
45
    }
46
    public function get_new_enreg()
47
    {
48
        global $xoopsDB;
49
        $new_enreg = $xoopsDB->getInsertId();
50
51
        return $new_enreg;
52
    }
53
    public function getForm($lid, $erreur, $donnee = array(), $action = false)
54
    {
55
        global $xoopsDB, $xoopsModule, $xoopsModuleConfig, $xoopsUser;
56
        if ($action === false) {
57
            $action = $_SERVER['REQUEST_URI'];
58
        }
59
        $groups = is_object($xoopsUser) ? $xoopsUser->getGroups() : XOOPS_GROUP_ANONYMOUS;
60
        $gperm_handler = xoops_gethandler('groupperm');
61
        $perm_upload = ($gperm_handler->checkRight('tdmdownloads_ac', 32, $groups, $xoopsModule->getVar('mid'))) ? true : false ;
62
        //appel des class
63
        $downloads_Handler = xoops_getModuleHandler('tdmdownloads_downloads', 'TDMDownloads');
64
        $downloadscat_Handler = xoops_getModuleHandler('tdmdownloads_cat', 'TDMDownloads');
0 ignored issues
show
Unused Code introduced by
The assignment to $downloadscat_Handler is dead and can be removed.
Loading history...
65
66
        $view_downloads = $downloads_Handler->get($lid);
67
        include_once(XOOPS_ROOT_PATH."/class/xoopsformloader.php");
68
69
        // affectation des variables
70
        if ($erreur == true) {
71
            $d_title = $donnee['title'];
72
            $d_cid = $donnee['cid'];
73
            $d_homepage = $donnee['homepage'];
74
            $d_version = $donnee['version'];
75
            $d_size = $donnee['size'];
0 ignored issues
show
Unused Code introduced by
The assignment to $d_size is dead and can be removed.
Loading history...
76
            $d_platform = $donnee['platform'];
77
            $d_description = $donnee['description'];
78
        } else {
79
            $d_title = $view_downloads->getVar('title');
80
            $d_cid = $view_downloads->getVar('cid');
81
            $d_homepage = $view_downloads->getVar('homepage');
82
            $d_version = $view_downloads->getVar('version');
83
            $d_size = $view_downloads->getVar('size');
84
            $d_platform = $view_downloads->getVar('platform');
85
            $d_description = $view_downloads->getVar('description', 'e');
86
        }
87
88
        //nom du formulaire
89
        $title = sprintf(_AM_TDMDOWNLOADS_FORMEDIT);
90
91
        //cr�ation du formulaire
92
        $form = new XoopsThemeForm($title, 'form', $action, 'post', true);
93
        $form->setExtra('enctype="multipart/form-data"');
94
        //titre
95
        $form->addElement(new XoopsFormText(_AM_TDMDOWNLOADS_FORMTITLE, 'title', 50, 255, $d_title), true);
96
        // fichier
97
        $fichier = new XoopsFormElementTray(_AM_TDMDOWNLOADS_FORMFILE,'<br /><br />');
98
        $url = $view_downloads->getVar('url');
99
        $formurl = new XoopsFormText(_AM_TDMDOWNLOADS_FORMURL, 'url', 75, 255, $url);
100
        $fichier->addElement($formurl,false);
101
        if ($perm_upload == 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...
102
            $fichier->addElement(new XoopsFormFile(_AM_TDMDOWNLOADS_FORMUPLOAD , 'attachedfile', $xoopsModuleConfig['maxuploadsize']), false);
103
        }
104
        $form->addElement($fichier);
105
106
        //cat�gorie
107
        $downloadscat_Handler = xoops_getModuleHandler('tdmdownloads_cat', 'TDMDownloads');
108
        $categories = TDMDownloads_MygetItemIds('tdmdownloads_submit', 'TDMDownloads');
109
        $criteria = new CriteriaCompo();
110
        $criteria->setSort('cat_weight ASC, cat_title');
111
        $criteria->setOrder('ASC');
112
        if ($xoopsUser) {
113
            if ( !$xoopsUser->isAdmin($xoopsModule->mid()) ) {
114
                $criteria->add(new Criteria('cat_cid', '(' . implode(',', $categories) . ')','IN'));
115
            }
116
        } else {
117
            $criteria->add(new Criteria('cat_cid', '(' . implode(',', $categories) . ')','IN'));
118
        }
119
        $downloadscat_arr = $downloadscat_Handler->getall($criteria);
120
        if (count($downloadscat_arr) == 0) {
121
            redirect_header('index.php', 2,  _NOPERM);
122
        }
123
        $mytree = new XoopsObjectTree($downloadscat_arr, 'cat_cid', 'cat_pid');
124
		$form->addElement($mytree->makeSelectElement('cid', 'cat_title', '--', $d_cid, true, 0, '', _AM_TDMDOWNLOADS_FORMINCAT), true);
125
126
        //affichage des champs
127
        $downloadsfield_Handler = xoops_getModuleHandler('tdmdownloads_field', 'TDMDownloads');
128
        $criteria = new CriteriaCompo();
129
        $criteria->setSort('weight ASC, title');
130
        $criteria->setOrder('ASC');
131
        $downloads_field = $downloadsfield_Handler->getall($criteria);
132
        foreach (array_keys($downloads_field) as $i) {
133
            if ($downloads_field[$i]->getVar('status_def') == 1) {
134
                if ($downloads_field[$i]->getVar('fid') == 1) {
135
                    //page d'accueil
136
                    if ($downloads_field[$i]->getVar('status') == 1) {
137
                        $form->addElement(new XoopsFormText(_AM_TDMDOWNLOADS_FORMHOMEPAGE, 'homepage', 50, 255, $d_homepage));
138
                    } else {
139
                        $form->addElement(new XoopsFormHidden('homepage', ''));
140
                    }
141
                }
142
                if ($downloads_field[$i]->getVar('fid') == 2) {
143
                    //version
144
                    if ($downloads_field[$i]->getVar('status') == 1) {
145
                        $form->addElement(new XoopsFormText(_AM_TDMDOWNLOADS_FORMVERSION, 'version', 10, 255, $d_version));
146
                    } else {
147
                        $form->addElement(new XoopsFormHidden('version', ''));
148
                    }
149
                }
150
                if ($downloads_field[$i]->getVar('fid') == 3) {
151
                    //taille du fichier
152
                    /*if ($downloads_field[$i]->getVar('status') == 1) {
153
                        $form->addElement(new XoopsFormText(_AM_TDMDOWNLOADS_FORMSIZE, 'size', 10, 255, $d_size));
154
                    } else {
155
                        $form->addElement(new XoopsFormHidden('size', ''));
156
                    }*/
157
158
                    if ($downloads_field[$i]->getVar('status') == 1) {
159
                        $size_value_arr = explode(' ', $view_downloads->getVar('size'));
160
                        $size_value = $size_value_arr[0];
161
                        if ($erreur == false) {
162
                            $type_value = $size_value_arr[1];
163
                        } else {
164
                            $type_value = $donnee['type_size'];
165
                        }
166
                        $aff_size = new XoopsFormElementTray(_AM_TDMDOWNLOADS_FORMSIZE,'');
167
                        $aff_size->addElement(new XoopsFormText('', 'size', 10, 255, $size_value));
168
                        $type = new XoopsFormSelect('', 'type_size', $type_value);
169
                        //$type_arr = array('[o]' => _AM_TDMDOWNLOADS_BYTES, '[Ko]' => _AM_TDMDOWNLOADS_KBYTES, '[Mo]' => _AM_TDMDOWNLOADS_MBYTES, '[Go]' => _AM_TDMDOWNLOADS_GBYTES, '[To]' => _AM_TDMDOWNLOADS_TBYTES);
170
                        $type_arr = array(_AM_TDMDOWNLOADS_BYTES => '['._AM_TDMDOWNLOADS_BYTES.']', _AM_TDMDOWNLOADS_KBYTES => '['._AM_TDMDOWNLOADS_KBYTES.']', _AM_TDMDOWNLOADS_MBYTES => '['._AM_TDMDOWNLOADS_MBYTES.']', _AM_TDMDOWNLOADS_GBYTES => '['._AM_TDMDOWNLOADS_GBYTES.']', _AM_TDMDOWNLOADS_TBYTES => '['._AM_TDMDOWNLOADS_TBYTES.']');
171
                        $type->addOptionArray($type_arr);
172
                        $aff_size->addElement($type);
173
                        $form->addElement($aff_size);
174
175
                    } else {
176
                        $form->addElement(new XoopsFormHidden('size', ''));
177
                        $form->addElement(new XoopsFormHidden('type_size', ''));
178
                    }
179
                }
180
                if ($downloads_field[$i]->getVar('fid') == 4) {
181
                    //plateforme
182
                    if ($downloads_field[$i]->getVar('status') == 1) {
183
                        $platformselect = new XoopsFormSelect(_AM_TDMDOWNLOADS_FORMPLATFORM, 'platform', explode('|',$d_platform), 5, true);
184
                        $platform_array = explode('|',$xoopsModuleConfig['platform']);
185
                        foreach ($platform_array as $platform) {
186
                            $platformselect->addOption("$platform", $platform);
187
                        }
188
                        $form->addElement($platformselect, false);
189
                        //$form->addElement(new XoopsFormText(_AM_TDMDOWNLOADS_FORMPLATFORM, 'platform', 50, 255, $d_platform));
190
                    } else {
191
                        $form->addElement(new XoopsFormHidden('platform', ''));
192
                    }
193
                }
194
            } else {
195
                $contenu = '';
196
                $nom_champ = 'champ' . $downloads_field[$i]->getVar('fid');
197
                $downloadsfielddata_Handler = xoops_getModuleHandler('tdmdownloads_fielddata', 'TDMDownloads');
198
                $criteria = new CriteriaCompo();
199
                $criteria->add(new Criteria('lid', $view_downloads->getVar('lid')));
200
                $criteria->add(new Criteria('fid', $downloads_field[$i]->getVar('fid')));
201
                $downloadsfielddata = $downloadsfielddata_Handler->getall($criteria);
202
                foreach (array_keys($downloadsfielddata) as $j) {
203
                    if ($erreur == true) {
204
                        $contenu = $donnee[$nom_champ];
205
                    } else {
206
                        $contenu = $downloadsfielddata[$j]->getVar('data');
207
                    }
208
                }
209
                if ($downloads_field[$i]->getVar('status') == 1) {
210
                    $form->addElement(new XoopsFormText($downloads_field[$i]->getVar('title'), $nom_champ, 50, 255, $contenu));
211
                } else {
212
                    $form->addElement(new XoopsFormHidden($nom_champ, ''));
213
                }
214
            }
215
        }
216
        //description
217
        $editor_configs=array();
218
        $editor_configs["name"] ="description";
219
        $editor_configs["value"] = $d_description;
220
        $editor_configs["rows"] = 20;
221
        $editor_configs["cols"] = 60;
222
        $editor_configs["width"] = "100%";
223
        $editor_configs["height"] = "400px";
224
        $editor_configs["editor"] = $xoopsModuleConfig['editor'];
225
        $form->addElement( new XoopsFormEditor(_AM_TDMDOWNLOADS_FORMTEXTDOWNLOADS, "description", $editor_configs), true);
226
        //image
227
        if ($xoopsModuleConfig['useshots']) {
228
            $uploaddir = XOOPS_ROOT_PATH . '/uploads/TDMDownloads/images/shots/' . $view_downloads->getVar('logourl');
229
            $downloadscat_img = $view_downloads->getVar('logourl') ? $view_downloads->getVar('logourl') : 'blank.gif';
230
            $uploadirectory='/uploads/TDMDownloads/images/shots';
231
            if (!is_file($uploaddir)) {
232
                $downloadscat_img = 'blank.gif';
233
            }
234
            $imgtray = new XoopsFormElementTray(_AM_TDMDOWNLOADS_FORMIMG,'<br />');
235
            $imgpath=sprintf(_AM_TDMDOWNLOADS_FORMPATH, $uploadirectory );
236
            $imageselect= new XoopsFormSelect($imgpath, 'logo_img',$downloadscat_img);
237
            $topics_array = XoopsLists :: getImgListAsArray( XOOPS_ROOT_PATH . $uploadirectory );
238
            foreach ($topics_array as $image) {
239
                $imageselect->addOption("$image", $image);
240
            }
241
            $imageselect->setExtra( "onchange='showImgSelected(\"image3\", \"logo_img\", \"" . $uploadirectory . "\", \"\", \"" . XOOPS_URL . "\")'" );
242
            $imgtray->addElement($imageselect,false);
243
            $imgtray -> addElement( new XoopsFormLabel( '', "<br /><img src='" . XOOPS_URL . "/" . $uploadirectory . "/" . $downloadscat_img . "' name='image3' id='image3' alt='' />" ) );
244
            $fileseltray= new XoopsFormElementTray('','<br />');
245
            if ($perm_upload == 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...
246
                $fileseltray->addElement(new XoopsFormFile(_AM_TDMDOWNLOADS_FORMUPLOAD , 'attachedimage', $xoopsModuleConfig['maxuploadsize']), false);
247
            }
248
            $imgtray->addElement($fileseltray);
249
            $form->addElement($imgtray);
250
        }
251
        $form->addElement(new XoopsFormCaptcha(), true);
252
        $form->addElement(new XoopsFormHidden('lid', $lid));
253
        //pour enregistrer le formulaire
254
        $form->addElement(new XoopsFormHidden('op', 'save'));
255
        //bouton d'envoi du formulaire
256
        $form->addElement(new XoopsFormButton('', 'submit', _SUBMIT, 'submit'));
257
258
        return $form;
259
    }
260
}
261
262
class TDMDownloadstdmdownloads_modHandler extends XoopsPersistableObjectHandler
263
{
264
    public function __construct(&$db)
265
    {
266
        parent::__construct($db, "tdmdownloads_mod", 'tdmdownloads_mod', 'requestid', 'lid');
267
    }
268
}
269