Passed
Branch master (38ab27)
by Michael
03:06
created

ClassFormElements   D

Complexity

Total Complexity 57

Size/Duplication

Total Lines 756
Duplicated Lines 0 %

Importance

Changes 3
Bugs 0 Features 0
Metric Value
dl 0
loc 756
rs 4.1379
c 3
b 0
f 0
wmc 57

21 Methods

Rating   Name   Duplication   Size   Complexity  
A getXoopsFormUploadFile() 0 15 1
A getXoopsFormText() 0 19 2
A getXoopsFormSelectUser() 0 14 1
B getXoopsFormCheckBox() 0 30 2
A getXoopsFormColorPicker() 0 14 1
A getXoopsFormTextArea() 0 11 1
A getXoopsFormHidden() 0 11 1
A getXoopsFormDhtmlTextArea() 0 23 2
A initForm() 0 4 1
A getXoopsFormUrlFile() 0 19 1
F renderElements() 0 124 32
A getXoopsFormTextDateSelect() 0 14 1
A getInstance() 0 8 2
B getXoopsFormTopic() 0 24 1
A getXoopsFormTag() 0 17 1
B getXoopsFormImageList() 0 39 1
A getXoopsFormRadioYN() 0 14 1
A getXoopsFormTable() 0 21 2
B getXoopsFormUploadImage() 0 38 1
B getXoopsFormSelectFile() 0 39 1
A getXoopsFormSelectBox() 0 18 1

How to fix   Complexity   

Complex Class

Complex classes like ClassFormElements often do a lot of different things. To break such a class down, we need to identify a cohesive component within that class. A common approach to find such a component is to look for fields/methods that share the same prefixes, or suffixes.

Once you have determined the fields that belong together, you can apply the Extract Class refactoring. If the component makes sense as a sub-class, Extract Subclass is also a candidate, and is often faster.

While breaking up the class, it is a good idea to analyze how other classes use ClassFormElements, and based on these observations, apply Extract Interface, too.

1
<?php
2
3
/*
4
 You may not change or alter any portion of this comment or credits
5
 of supporting developers from this source code or any supporting source code
6
 which is considered copyrighted (c) material of the original comment or credit authors.
7
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
/**
13
 * tc module.
14
 *
15
 * @copyright       XOOPS Project (https://xoops.org)
16
 * @license         GNU GPL 2 (http://www.gnu.org/licenses/old-licenses/gpl-2.0.html)
17
 *
18
 * @since           2.5.0
19
 *
20
 * @author          Txmod Xoops http://www.txmodxoops.org
21
 *
22
 * @version         $Id: ClassFormElements.php 12258 2014-01-02 09:33:29Z timgno $
23
 */
24
25
/**
26
 * Class ClassFormElements.
27
 */
28
class ClassFormElements extends TDMCreateAbstract
29
{
30
    /**
31
     *  @static function getInstance
32
     *  @param null
33
     *
34
     * @return ClassFormElements
35
     */
36
    public static function getInstance()
37
    {
38
        static $instance = false;
39
        if (!$instance) {
40
            $instance = new self();
41
        }
42
43
        return $instance;
44
    }
45
46
    /**
47
    *  @public function initForm
48
     *
49
     * @param $module
50
     * @param $table
51
     */
52
    public function initForm($module, $table)
53
    {
54
        $this->setModule($module);
55
        $this->setTable($table);
56
    }
57
58
    /**
59
     * @private function getXoopsFormText
60
     *
61
     * @param        $language
62
     * @param        $fieldName
63
     * @param        $fieldDefault
64
     * @param string $required
65
     * @return string
66
     */
67
    private function getXoopsFormText($language, $fieldName, $fieldDefault, $required = 'false')
68
    {
69
        $tf = TDMCreateFile::getInstance();
70
        $pc = TDMCreatePhpCode::getInstance();
71
        $cc = ClassXoopsCode::getInstance();
72
        $ucfFieldName = $tf->getCamelCase($fieldName, true);
73
        $ccFieldName = $tf->getCamelCase($fieldName, false, true);
74
        if ('' != $fieldDefault) {
75
            $ret = $pc->getPhpCodeCommentLine('Form Text', $ucfFieldName, "\t\t");
76
            $ret .= $pc->getPhpCodeTernaryOperator($ccFieldName, '$this->isNew()', "'{$fieldDefault}'", "\$this->getVar('{$fieldName}')", "\t\t");
77
            $formText = $cc->getClassXoopsFormText('', $language, $fieldName, 20, 150, "{$ccFieldName}", true);
78
            $ret .= $cc->getClassAddElement('form', $formText.$required);
79
        } else {
80
            $ret = $pc->getPhpCodeCommentLine('Form Text', $ucfFieldName, "\t\t");
81
            $formText = $cc->getClassXoopsFormText('', $language, $fieldName, 50, 255, "this->getVar('{$fieldName}')", true);
82
            $ret .= $cc->getClassAddElement('form', $formText.$required);
83
        }
84
85
        return $ret;
86
    }
87
88
    /**
89
    *  @private function getXoopsFormText
90
     *
91
     * @param $language
92
     * @param $fieldName
93
     * @param $required
94
     *
95
     * @return string
96
     */
97
    private function getXoopsFormTextArea($language, $fieldName, $required = 'false')
98
    {
99
        $tf = TDMCreateFile::getInstance();
100
        $pc = TDMCreatePhpCode::getInstance();
101
        $cc = ClassXoopsCode::getInstance();
102
        $ucfFieldName = $tf->getCamelCase($fieldName, true);
103
        $ret = $pc->getPhpCodeCommentLine('Form Text Area', $ucfFieldName, "\t\t");
104
        $formTextArea = $cc->getClassXoopsFormTextArea('', $language, $fieldName, 4, 47, true);
105
        $ret .= $cc->getClassAddElement('form', $formTextArea.$required);
106
107
        return $ret;
108
    }
109
110
    /**
111
    *  @private function getXoopsFormDhtmlTextArea
112
     *
113
     * @param $language
114
     * @param $moduleDirname
115
     * @param $fieldName
116
     * @param $required
117
     *
118
     * @return string
119
     */
120
    private function getXoopsFormDhtmlTextArea($language, $moduleDirname, $fieldName, $required = 'false')
121
    {
122
        $tf = TDMCreateFile::getInstance();
123
        $pc = TDMCreatePhpCode::getInstance();
124
        $xc = TDMCreateXoopsCode::getInstance();
125
        $cc = ClassXoopsCode::getInstance();
126
        $rpFieldName = $tf->getRightString($fieldName);
127
        $ucfFieldName = $tf->getCamelCase($fieldName, true);
128
129
        $ret = $pc->getPhpCodeCommentLine('Form editor', $ucfFieldName, "\t\t");
130
        $ret .= $pc->getPhpCodeArray('editorConfigs', null, false, "\t\t");
131
        $getConfig = $xc->getXcGetConfig($moduleDirname, 'editor_'.$rpFieldName);
132
        $configs = [
133
            'name'  => "'{$fieldName}'", 'value' => "\$this->getVar('{$fieldName}', 'e')", 'rows' => 5, 'cols' => 40,
134
            'width' => "'100%'", 'height' => "'400px'", 'editor' => $getConfig,
135
        ];
136
        foreach ($configs as $c => $d) {
137
            $ret .= $xc->getXcEqualsOperator("\$editorConfigs['{$c}']", $d, null, false, "\t\t");
138
        }
139
        $formEditor = $cc->getClassXoopsFormEditor('', $language, $fieldName, 'editorConfigs', true);
140
        $ret .= $cc->getClassAddElement('form', $formEditor.$required);
141
142
        return $ret;
143
    }
144
145
    /**
146
     * @private function getXoopsFormCheckBox
147
     *
148
     * @param        $language
149
     * @param        $tableSoleName
150
     * @param        $fieldName
151
     * @param        $fieldElementId
152
     * @param string $required
153
     * @return string
154
     */
155
    private function getXoopsFormCheckBox($language, $tableSoleName, $fieldName, $fieldElementId, $required = 'false')
156
    {
157
        $tf = TDMCreateFile::getInstance();
158
        $pc = TDMCreatePhpCode::getInstance();
159
        $xc = TDMCreateXoopsCode::getInstance();
160
        $cc = ClassXoopsCode::getInstance();
161
        $stuTableSoleName = strtoupper($tableSoleName);
162
        $ucfFieldName = $tf->getCamelCase($fieldName, true);
163
        $ccFieldName = $tf->getCamelCase($fieldName, false, true);
164
        $t = "\t\t";
165
        if (in_array(5, $fieldElementId) > 1) {
166
            $ret = $pc->getPhpCodeCommentLine('Form Check Box', 'List Options '.$ucfFieldName, $t);
167
            $ret .= $xc->getXcEqualsOperator('$checkOption', '$this->getOptions()');
168
            $foreach = $cc->getClassXoopsFormCheckBox('check'.$ucfFieldName, '<hr />', $tableSoleName.'_option', '$checkOption', false, $t);
169
            $foreach .= $cc->getClassSetDescription('check'.$ucfFieldName, "{$language}{$stuTableSoleName}_OPTIONS_DESC", $t);
170
            $foreach .= $cc->getClassAddOption('check'.$ucfFieldName, "\$option, {$language}{$stuTableSoleName}_ . strtoupper(\$option)", $t."\t");
171
            $ret .= $pc->getPhpCodeForeach("{$tableName}All", false, false, 'option', $foreach, $t);
0 ignored issues
show
Comprehensibility Best Practice introduced by
The variable $tableName seems to be never defined.
Loading history...
172
            $intElem = "\$check{$ucfFieldName}{$required}";
173
            $ret .= $cc->getClassAddElement('form', $intElem, $t);
174
        } else {
175
            $ret = $pc->getPhpCodeCommentLine('Form Check Box', $ucfFieldName, $t);
176
            $ret .= $pc->getPhpCodeTernaryOperator($ccFieldName, '$this->isNew()', 0, "\$this->getVar('{$fieldName}')", $t);
177
            $ret .= $cc->getClassXoopsFormCheckBox('check'.$ucfFieldName, "{$language}", $fieldName, "\${$ccFieldName}", false, $t);
178
            $option = "1, {$language}";
179
            $ret .= $cc->getClassAddOption('check'.$ucfFieldName, $option, $t);
180
            $intElem = "\$check{$ucfFieldName}{$required}";
181
            $ret .= $cc->getClassAddElement('form', $intElem, $t);
182
        }
183
184
        return $ret;
185
    }
186
187
    /**
188
    *  @private function getXoopsFormHidden
189
     *
190
     * @param $fieldName
191
     *
192
     * @return string
193
     */
194
    private function getXoopsFormHidden($fieldName)
195
    {
196
        $tf = TDMCreateFile::getInstance();
197
        $pc = TDMCreatePhpCode::getInstance();
198
        $cc = ClassXoopsCode::getInstance();
199
        $ucfFieldName = $tf->getCamelCase($fieldName, true);
200
        $ret = $pc->getPhpCodeCommentLine('Form Hidden', $ucfFieldName, "\t\t");
201
        $formHidden = $cc->getClassXoopsFormHidden('', $fieldName, $fieldName, true, true);
202
        $ret .= $cc->getClassAddElement('form', $formHidden);
203
204
        return $ret;
205
    }
206
207
    /**
208
    *  @private function getXoopsFormImageList
209
     *
210
     * @param $language
211
     * @param $moduleDirname
212
     * @param $tableName
213
     * @param $tableSoleName
214
     * @param $fieldName
215
     * @param $required
216
     *
217
     * @return string
218
     */
219
    private function getXoopsFormImageList($language, $moduleDirname, $tableName, $tableSoleName, $fieldName, $required = 'false')
220
    {
221
        $tf = TDMCreateFile::getInstance();
222
        $pc = TDMCreatePhpCode::getInstance();
223
        $xc = TDMCreateXoopsCode::getInstance();
224
        $cc = ClassXoopsCode::getInstance();
225
        $stuTableName = strtoupper($tableName);
226
        $rpFieldName = $tf->getRightString($fieldName);
227
        $stuSoleName = strtoupper($tableSoleName.'_'.$rpFieldName);
228
        $ucfFieldName = $tf->getCamelCase($fieldName, true);
229
        $ccFieldName = $tf->getCamelCase($fieldName, false, true);
230
        $t = "\t\t";
231
        $ret = $pc->getPhpCodeCommentLine('Form Frameworks', 'Image Files ' . $ucfFieldName, $t);
232
        $ret .= $xc->getXcEqualsOperator('$get'.$ucfFieldName, "\$this->getVar('{$fieldName}')", null, false, $t);
233
        $ret .= $pc->getPhpCodeTernaryOperator($ccFieldName, '$get'.$ucfFieldName, '$get'.$ucfFieldName, "'blank.gif'", $t);
234
        $ret .= $xc->getXcEqualsOperator('$imageDirectory', "'/Frameworks/moduleclasses/icons/32'", null, false, $t);
235
        $ret .= $cc->getClassXoopsFormElementTray('imageTray', $language.$stuSoleName, '<br>', $t);
236
        $sprintf = $pc->getPhpCodeSprintf($language.'FORM_IMAGE_PATH', '".{$imageDirectory}/"');
237
        $ret .= $cc->getClassXoopsFormSelect('imageSelect', $sprintf, $fieldName, $ccFieldName, 5, 'false', false, $t);
238
        $ret .= $xc->getXcXoopsImgListArray('imageArray', 'XOOPS_ROOT_PATH . $imageDirectory', $t);
239
        $contForeach = $cc->getClassAddOption('imageSelect', '"{$image1}", $image1', "\t");
240
        $ret .= $pc->getPhpCodeForeach('imageArray', false, false, 'image1', $contForeach, $t);
241
        $setExtraParam = "\"onchange='showImgSelected(\\\"image1\\\", \\\"{$fieldName}\\\", \\\"\".\$imageDirectory.\"\\\", \\\"\\\", \\\"\".XOOPS_URL.\"\\\")'\"";
242
        $ret .= $cc->getClassSetExtra('imageSelect', $setExtraParam, $t);
243
        $ret .= $cc->getClassAddElement('imageTray', '$imageSelect, false', $t);
244
        $paramLabel = "\"<br><img src='\".XOOPS_URL.\"/\".\$imageDirectory.\"/\".\\\${$ccFieldName}.\\\"' name='image1' id='image1' alt='' style='max-width:100px' />\\\"";
0 ignored issues
show
Unused Code introduced by
The assignment to $paramLabel is dead and can be removed.
Loading history...
245
        $xoopsFormLabel = $cc->getClassXoopsFormLabel('', "''", "''", true, '');
246
        $ret .= $cc->getClassAddElement('imageTray', $xoopsFormLabel, $t);
247
        $ret .= $pc->getPhpCodeCommentLine('Form', 'File', $t);
248
        $ret .= $cc->getClassXoopsFormElementTray('fileSelectTray', "''", '<br>', $t);
249
        $getConfig = $xc->getXcGetConfig($moduleDirname, 'maxsize');
250
        $xoopsFormFile = $cc->getClassXoopsFormFile('', $language.'FORM_IMAGE_LIST_'.$stuTableName, 'attachedfile', $getConfig, true, '');
251
        $ret .= $cc->getClassAddElement('fileSelectTray', $xoopsFormFile, $t);
252
        $xoopsFormLabel1 = $cc->getClassXoopsFormLabel('', "''", null, true, $t);
253
        $ret .= $cc->getClassAddElement('fileSelectTray', $xoopsFormLabel1, $t);
254
        $ret .= $cc->getClassAddElement('imageTray', '$fileSelectTray', $t);
255
        $ret .= $cc->getClassAddElement('form', "\$imageTray{$required}", $t);
256
257
        return $ret;
258
    }
259
260
    /**
261
    *  @private function getXoopsFormSelectFile
262
     *
263
     * @param $language
264
     * @param $moduleDirname
265
     * @param $fieldName
266
     * @param $required
267
     *
268
     * @return string
269
     */
270
    private function getXoopsFormSelectFile($language, $moduleDirname, $fieldName, $required = 'false')
271
    {
272
        $tf = TDMCreateFile::getInstance();
273
        $pc = TDMCreatePhpCode::getInstance();
274
        $xc = TDMCreateXoopsCode::getInstance();
275
        $cc = ClassXoopsCode::getInstance();
276
        $ccFieldName = $tf->getCamelCase($fieldName, false, true);
277
        $ucfFieldName = $tf->getCamelCase($fieldName, true);
278
        $t = "\t\t\t";
279
        $ret = $pc->getPhpCodeCommentLine('Form Frameworks', 'Image Files ' . $ucfFieldName, "\t\t");
280
        $contentIf = $xc->getXcEqualsOperator('$get'.$ucfFieldName, "\$this->getVar('{$fieldName}')", null, false, $t);
281
        $contentIf .= $pc->getPhpCodeTernaryOperator($ccFieldName, '$get'.$ucfFieldName, '$get'.$ucfFieldName, "'blank.gif'", $t);
282
        $contentIf .= $xc->getXcEqualsOperator('$uploadDirectory', "'/uploads/{$moduleDirname}/images/shots'", null, false, $t);
283
        $contentIf .= $cc->getClassXoopsFormElementTray('imageTray', $language.'FORM_IMAGE', '<br>', $t);
284
        $sprintf = $pc->getPhpCodeSprintf($language.'FORM_PATH', '".{$uploadDirectory}/"');
285
        $contentIf .= $cc->getClassXoopsFormSelect('imageSelect', $sprintf, 'selected_image', "\${$moduleDirname}ShotImage", 5, 'false', false, $t);
286
        $contentIf .= $xc->getXcXoopsImgListArray('imageArray', 'XOOPS_ROOT_PATH . $uploadDirectory', $t);
287
        $contForeach = $cc->getClassAddOption('imageSelect', '"{$image1}", $image1', "\t");
288
        $contentIf .= $pc->getPhpCodeForeach('imageArray', false, false, 'image1', $contForeach, $t);
289
        $setExtraParam = "\"onchange='showImgSelected(\\\"image3\\\", \\\"selected_image\\\", \\\"\".\$uploadDirectory.\"\\\", \\\"\\\", \\\"\".XOOPS_URL.\"\\\")'\"";
290
        $contentIf .= $cc->getClassSetExtra('imageSelect', $setExtraParam, $t);
291
        $contentIf .= $cc->getClassAddElement('imageTray', '$imageSelect, false', $t);
292
        $paramLabel = "\"<br><img src='\".XOOPS_URL.\"/\".\$uploadDirectory.\"/\" . \${$moduleDirname}ShotImage . \"' name='image3' id='image3' alt='' style='max-width:100px' />\\\"";
293
        $xoopsFormLabel = $cc->getClassXoopsFormLabel('', "''", $paramLabel, true, '');
294
        $contentIf .= $cc->getClassAddElement('imageTray', $xoopsFormLabel, $t);
295
        $contentIf .= $pc->getPhpCodeCommentLine('Form', 'File', "\t\t");
296
        $contentIf .= $cc->getClassXoopsFormElementTray('fileSelectTray', "''", '<br>', $t);
297
        $getConfigFile = $xc->getXcGetConfig($moduleDirname, 'maxuploadsize');
298
        $xoopsFormFile = $cc->getClassXoopsFormFile('', $language.'_FORM_UPLOAD', 'attachedimage', $getConfigFile, true, '');
299
        $contentIf1 = $cc->getClassAddElement('fileSelectTray', $xoopsFormFile.$required, $t."\t");
300
301
        $contentIf .= $cc->getClassAddElement('imageTray', '$fileSelectTray', $t);
302
        $contentIf .= $cc->getClassAddElement('form', "\$imageTray{$required}", $t);
303
304
        $contentIf = $pc->getPhpCodeConditions('$permissionUpload', ' == ', 'true', $contentIf1, false, $t);
305
        $getConfig = $xc->getXcGetConfig($moduleDirname, 'useshots');
306
        $ret .= $pc->getPhpCodeConditions($getConfig, null, null, $contentIf, false, "\t\t");
307
308
        return $ret;
309
    }
310
311
    /**
312
    *  @private function getXoopsFormUrlFile
313
     *
314
     * @param   $language
315
     * @param   $moduleDirname
316
     * @param   $fieldName
317
     * @param   $fieldDefault
318
     * @param $required
319
     *
320
     * @return string
321
     */
322
    private function getXoopsFormUrlFile($language, $moduleDirname, $fieldName, $fieldDefault, $required = 'false')
323
    {
324
        $tf = TDMCreateFile::getInstance();
325
		$pc = TDMCreatePhpCode::getInstance();
326
        $xc = TDMCreateXoopsCode::getInstance();
327
        $cc = ClassXoopsCode::getInstance();
328
		$ucfFieldName = $tf->getCamelCase($fieldName, true);
329
        $t = "\t\t";
330
        $ret = $pc->getPhpCodeCommentLine('Form Url', 'Text File ' . $ucfFieldName, $t);
331
        $ret .= $cc->getClassXoopsFormElementTray('formUrlFile', '_OPTIONS', '<br><br>', $t);
332
        $ret .= $pc->getPhpCodeTernaryOperator('formUrl', '$this->isNew()', "'{$fieldDefault}'", "\$this->getVar('{$fieldName}')", $t);
333
        $ret .= $cc->getClassXoopsFormText('formText', $language, $fieldName, 75, 255, 'formUrl', false, $t);
334
        $ret .= $cc->getClassAddElement('formUrlFile', '$formText'.$required, $t);
335
        $getConfig = $xc->getXcGetConfig($moduleDirname, 'maxsize');
336
        $xoopsFormFile = $cc->getClassXoopsFormFile('', $language.'UPLOAD', 'attachedfile', $getConfig, true, '');
337
        $ret .= $cc->getClassAddElement('formUrlFile', $xoopsFormFile.$required, $t);
338
        $ret .= $cc->getClassAddElement('form', '$formUrlFile', $t);
339
340
        return $ret;
341
    }
342
343
    /**
344
     * @private function getXoopsFormUploadImage
345
     *
346
     * @param        $language
347
     * @param        $moduleDirname
348
     * @param        $tableName
349
     * @param        $tableSoleName
350
     * @param        $fieldName
351
     * @param string $required
352
     * @return string
353
     */
354
    private function getXoopsFormUploadImage($language, $moduleDirname, $tableName, $tableSoleName, $fieldName, $required = 'false')
355
    {
356
        $tf = TDMCreateFile::getInstance();
357
        $pc = TDMCreatePhpCode::getInstance();
358
        $xc = TDMCreateXoopsCode::getInstance();
359
        $cc = ClassXoopsCode::getInstance();
360
        $stuTableName = strtoupper($tableName);
361
        $stuSoleName = strtoupper($tableSoleName);
0 ignored issues
show
Unused Code introduced by
The assignment to $stuSoleName is dead and can be removed.
Loading history...
362
        $ucfFieldName = $tf->getCamelCase($fieldName, true);
363
        $ccFieldName = $tf->getCamelCase($fieldName, false, true);
364
        $t = "\t\t";
365
        $ret = $pc->getPhpCodeCommentLine('Form Upload', 'Image ' . $ucfFieldName, $t);
366
        $ret .= $xc->getXcEqualsOperator('$get'.$ucfFieldName, "\$this->getVar('{$fieldName}')", null, false, $t);
367
        $ret .= $pc->getPhpCodeTernaryOperator($ccFieldName, '$get'.$ucfFieldName, '$get'.$ucfFieldName, "'blank.gif'", $t);
368
        $ret .= $xc->getXcEqualsOperator('$imageDirectory', "'/uploads/{$moduleDirname}/images/{$tableName}'", null, false, $t);
369
        $ret .= $cc->getClassXoopsFormElementTray('imageTray', '_OPTIONS', '<br>', $t);
370
        $sprintf = $pc->getPhpCodeSprintf($language.'FORM_IMAGE_PATH', '".{$imageDirectory}/"');
371
        $ret .= $cc->getClassXoopsFormSelect('imageSelect', $sprintf, $fieldName, $ccFieldName, 5, 'false', false, $t);
372
        $ret .= $xc->getXcXoopsImgListArray('imageArray', 'XOOPS_ROOT_PATH . $imageDirectory', $t);
373
        $contForeach = $cc->getClassAddOption('imageSelect', '"{$image1}", $image1', "\t");
374
        $ret .= $pc->getPhpCodeForeach('imageArray', false, false, 'image1', $contForeach, $t);
375
        $setExtraParam = "\"onchange='showImgSelected(\\\"image1\\\", \\\"{$fieldName}\\\", \\\"\".\$imageDirectory.\"\\\", \\\"\\\", \\\"\".XOOPS_URL.\"\\\")'\"";
376
        $ret .= $cc->getClassSetExtra('imageSelect', $setExtraParam, $t);
377
        $ret .= $cc->getClassAddElement('imageTray', '$imageSelect, false', $t);
378
        $paramLabel = "\"<br><img src='\".XOOPS_URL.\"/\".\$imageDirectory.\"/\".\${$ccFieldName}.\"' name='image1' id='image1' alt='' style='max-width:100px' />\"";
379
        $xoopsFormLabel = $cc->getClassXoopsFormLabel('', "''", $paramLabel, true, '');
380
        $ret .= $cc->getClassAddElement('imageTray', $xoopsFormLabel, $t);
381
        $ret .= $pc->getPhpCodeCommentLine('Form', 'File ' . $ucfFieldName, $t);
382
        $ret .= $cc->getClassXoopsFormElementTray('fileSelectTray', "''", '<br>', $t);
383
        $getConfig = $xc->getXcGetConfig($moduleDirname, 'maxsize');
384
        $xoopsFormFile = $cc->getClassXoopsFormFile('', $language.'FORM_UPLOAD_IMAGE_'.$stuTableName, 'attachedfile', $getConfig, true, '');
385
        $ret .= $cc->getClassAddElement('fileSelectTray', $xoopsFormFile, $t);
386
        $xoopsFormLabel1 = $cc->getClassXoopsFormLabel('', "''", null, true);
387
        $ret .= $cc->getClassAddElement('fileSelectTray', $xoopsFormLabel1, $t);
388
        $ret .= $cc->getClassAddElement('imageTray', '$fileSelectTray', $t);
389
        $ret .= $cc->getClassAddElement('form', "\$imageTray{$required}", $t);
390
391
        return $ret;
392
    }
393
394
    /**
395
    *  @private function getXoopsFormUploadFile
396
     *
397
     * @param $language
398
     * @param $moduleDirname
399
     * @param $tableName
400
     * @param $fieldName
401
     * @param $required
402
     *
403
     * @return string
404
     */
405
    private function getXoopsFormUploadFile($language, $moduleDirname, $tableName, $fieldName, $required = 'false')
0 ignored issues
show
Unused Code introduced by
The parameter $required 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

405
    private function getXoopsFormUploadFile($language, $moduleDirname, $tableName, $fieldName, /** @scrutinizer ignore-unused */ $required = 'false')

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...
406
    {
407
        $tf = TDMCreateFile::getInstance();
408
		$pc = TDMCreatePhpCode::getInstance();
409
        $xc = TDMCreateXoopsCode::getInstance();
410
        $cc = ClassXoopsCode::getInstance();
411
		$ucfFieldName = $tf->getCamelCase($fieldName, true);
412
        $stuTableName = strtoupper($tableName);
413
        $t = "\t\t";
414
        $ret = $pc->getPhpCodeCommentLine('Form', 'File ' . $ucfFieldName, $t);
415
        $getConfig = $xc->getXcGetConfig($moduleDirname, 'maxsize');
416
        $xoopsFormFile = $cc->getClassXoopsFormFile('', $language.'_'.$stuTableName, $fieldName, $getConfig, true, '');
417
        $ret .= $cc->getClassAddElement('form', $xoopsFormFile, $t);
418
419
        return $ret;
420
    }
421
422
    /**
423
    *  @private function getXoopsFormColorPicker
424
     *
425
     * @param $language
426
     * @param $moduleDirname
427
     * @param $fieldName
428
     * @param $required
429
     *
430
     * @return string
431
     */
432
    private function getXoopsFormColorPicker($language, $moduleDirname, $fieldName, $required = 'false')
0 ignored issues
show
Unused Code introduced by
The parameter $moduleDirname 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

432
    private function getXoopsFormColorPicker($language, /** @scrutinizer ignore-unused */ $moduleDirname, $fieldName, $required = 'false')

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...
Unused Code introduced by
The parameter $required 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

432
    private function getXoopsFormColorPicker($language, $moduleDirname, $fieldName, /** @scrutinizer ignore-unused */ $required = 'false')

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...
433
    {
434
        $tf = TDMCreateFile::getInstance();
435
		$pc = TDMCreatePhpCode::getInstance();
436
        $xc = TDMCreateXoopsCode::getInstance();
437
        $cc = ClassXoopsCode::getInstance();
438
		$ucfFieldName = $tf->getCamelCase($fieldName, true);
439
        $t = "\t\t";
440
        $ret = $pc->getPhpCodeCommentLine('Form Color', 'Picker ' . $ucfFieldName, $t);
441
        $getVar = $xc->getXcGetVar('', 'this', $fieldName, true);
442
        $xoopsFormFile = $cc->getClassXoopsFormColorPicker('', $language, $fieldName, $getVar, true, '');
443
        $ret .= $cc->getClassAddElement('form', $xoopsFormFile, $t);
444
445
        return $ret;
446
    }
447
448
    /**
449
    *  @private function getXoopsFormSelectBox
450
     *
451
     * @param $language
452
     * @param $moduleDirname
453
     * @param $tableName
454
     * @param $fieldName
455
     * @param $required
456
     *
457
     * @return string
458
     */
459
    private function getXoopsFormSelectBox($language, $moduleDirname, $tableName, $fieldName, $required = 'false')
460
    {
461
        $tf = TDMCreateFile::getInstance();
462
        $pc = TDMCreatePhpCode::getInstance();
463
        $xc = TDMCreateXoopsCode::getInstance();
464
        $cc = ClassXoopsCode::getInstance();
465
        $ucfTableName = ucfirst($tableName);
466
        $ccFieldName = $tf->getCamelCase($fieldName, false, true);
467
        $t = "\t\t";
468
        $ret = $pc->getPhpCodeCommentLine($ucfTableName, 'handler', $t);
469
        $ret .= $xc->getXoopsHandlerLine($moduleDirname, $tableName, $t);
470
        $ret .= $pc->getPhpCodeCommentLine('Form', 'Select ' . $ucfTableName, $t);
471
        $ret .= $cc->getClassXoopsFormSelect($ccFieldName.'Select', $language, $fieldName, "this->getVar('{$fieldName}')", null, '', false, $t);
472
        $ret .= $cc->getClassAddOption($ccFieldName.'Select', "'Empty'", $t);
473
        $ret .= $cc->getClassAddOptionArray($ccFieldName.'Select', "\${$tableName}Handler->getList()", $t);
474
        $ret .= $cc->getClassAddElement('form', "\${$ccFieldName}Select{$required}", $t);
475
476
        return $ret;
477
    }
478
479
    /**
480
     * @private function getXoopsFormSelectUser
481
     *
482
     * @param        $language
483
     * @param        $moduleDirname
484
     * @param        $fieldName
485
     * @param string $required
486
     * @return string
487
     */
488
    private function getXoopsFormSelectUser($language, $moduleDirname, $fieldName, $required = 'false')
489
    {
490
        $tf = TDMCreateFile::getInstance();
491
		$pc = TDMCreatePhpCode::getInstance();
492
        $xc = TDMCreateXoopsCode::getInstance();
493
        $cc = ClassXoopsCode::getInstance();
494
		$ucfFieldName = $tf->getCamelCase($fieldName, true);
495
        $t = "\t\t";
496
        $ret = $pc->getPhpCodeCommentLine('Form Select', 'User ' . $ucfFieldName, $t);
497
        $getConfig = $xc->getXcGetConfig($moduleDirname, 'maxsize');
0 ignored issues
show
Unused Code introduced by
The assignment to $getConfig is dead and can be removed.
Loading history...
498
        $xoopsSelectUser = $cc->getClassXoopsFormSelectUser('', $language, $fieldName, 'false', $fieldName, true, $t);
499
        $ret .= $cc->getClassAddElement('form', $xoopsSelectUser.$required, $t);
500
501
        return $ret;
502
    }
503
504
    /**
505
    *  @private function getXoopsFormRadioYN
506
     *
507
     * @param $language
508
     * @param $fieldName
509
     * @param $required
510
     *
511
     * @return string
512
     */
513
    private function getXoopsFormRadioYN($language, $fieldName, $required = 'false')
514
    {
515
        $tf = TDMCreateFile::getInstance();
516
        $pc = TDMCreatePhpCode::getInstance();
517
        $cc = ClassXoopsCode::getInstance();
518
        $ccFieldName = $tf->getCamelCase($fieldName, false, true);
519
		$ucfFieldName = $tf->getCamelCase($fieldName, true);
520
        $t = "\t\t";
521
        $ret = $pc->getPhpCodeCommentLine('Form Radio', 'Yes/No ' . $ucfFieldName, $t);
522
        $ret .= $pc->getPhpCodeTernaryOperator($ccFieldName, '$this->isNew()', 0, "\$this->getVar('{$fieldName}')", $t);
523
        $xoopsRadioYN = $cc->getClassXoopsFormRadioYN('', $language, $fieldName, $ccFieldName, true, $t);
524
        $ret .= $cc->getClassAddElement('form', $xoopsRadioYN.$required, $t);
525
526
        return $ret;
527
    }
528
529
    /**
530
    *  @private function getXoopsFormTextDateSelect
531
     *
532
     * @param $language
533
     * @param $fieldName
534
     * @param $required
535
     *
536
     * @return string
537
     */
538
    private function getXoopsFormTextDateSelect($language, $fieldName, $required = 'false')
539
    {
540
        $tf = TDMCreateFile::getInstance();
541
        $pc = TDMCreatePhpCode::getInstance();
542
        $cc = ClassXoopsCode::getInstance();
543
        $t = "\t\t";
544
        $ccFieldName = $tf->getCamelCase($fieldName, false, true);
545
		$ucfFieldName = $tf->getCamelCase($fieldName, true);
546
        $ret = $pc->getPhpCodeCommentLine('Form Text', 'Date Select ' . $ucfFieldName, $t);
547
        $ret .= $pc->getPhpCodeTernaryOperator($ccFieldName, '$this->isNew()', 0, "\$this->getVar('{$fieldName}')", $t);
548
        $xoopsTextDateSelect = $cc->getClassXoopsFormTextDateSelect('', $language, $fieldName, $fieldName, $ccFieldName, true, $t);
549
        $ret .= $cc->getClassAddElement('form', $xoopsTextDateSelect.$required, $t);
550
551
        return $ret;
552
    }
553
554
    /**
555
    *  @private function getXoopsFormTable
556
     *
557
     * @param $language
558
     * @param $moduleDirname
559
     * @param $tableName
560
     * @param $fieldName
561
     * @param $fieldElement
562
     * @param $required
563
     *
564
     * @return string
565
     */
566
    private function getXoopsFormTable($language, $moduleDirname, $tableName, $fieldName, $fieldElement, $required = 'false')
567
    {
568
        $tc = TDMCreateHelper::getInstance();
569
        $tf = TDMCreateFile::getInstance();
570
        $pc = TDMCreatePhpCode::getInstance();
571
        $xc = TDMCreateXoopsCode::getInstance();
572
        $cc = ClassXoopsCode::getInstance();
573
        $ucfTableName = ucfirst($tableName);
0 ignored issues
show
Unused Code introduced by
The assignment to $ucfTableName is dead and can be removed.
Loading history...
574
        $t = "\t\t";
575
        if ($fieldElement > 15) {
576
            $fElement = $tc->getHandler('fieldelements')->get($fieldElement);
577
            $rpFieldelementName = strtolower(str_replace('Table : ', '', $fElement->getVar('fieldelement_name')));
578
			$ret = $pc->getPhpCodeCommentLine('Form Table', $rpFieldelementName, $t);
579
            $ccFieldName = $tf->getCamelCase($fieldName, false, true);
580
            $ret .= $xc->getXoopsHandlerLine($moduleDirname, $rpFieldelementName, $t);
581
            $ret .= $cc->getClassXoopsFormSelect($ccFieldName.'Select', $language, $fieldName, "this->getVar('{$fieldName}')", null, '', false, $t);
582
            $ret .= $cc->getClassAddOptionArray($ccFieldName.'Select', "\${$rpFieldelementName}Handler->getList()", $t);
583
            $ret .= $cc->getClassAddElement('form', "\${$ccFieldName}Select{$required}", $t);
584
        }
585
586
        return $ret;
0 ignored issues
show
Comprehensibility Best Practice introduced by
The variable $ret does not seem to be defined for all execution paths leading up to this point.
Loading history...
587
    }
588
589
    /**
590
     * @private  function getXoopsFormTopic
591
     *
592
     * @param        $language
593
     * @param        $moduleDirname
594
     * @param        $topicTableName
595
     * @param        $fieldId
596
     * @param        $fieldPid
597
     * @param        $fieldMain
598
     * @param string $required
599
     * @return string
600
     */
601
    private function getXoopsFormTopic($language, $moduleDirname, $topicTableName, $fieldId, $fieldPid, $fieldMain, $required = 'false')
0 ignored issues
show
Unused Code introduced by
The parameter $required 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

601
    private function getXoopsFormTopic($language, $moduleDirname, $topicTableName, $fieldId, $fieldPid, $fieldMain, /** @scrutinizer ignore-unused */ $required = 'false')

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...
602
    {
603
        $tf = TDMCreateFile::getInstance();
604
        $pc = TDMCreatePhpCode::getInstance();
605
        $xc = TDMCreateXoopsCode::getInstance();
606
        $cc = ClassXoopsCode::getInstance();
607
        $ucfTopicTableName = ucfirst($topicTableName);
608
        $stlTopicTableName = strtolower($topicTableName);
609
        $ccFieldPid = $tf->getCamelCase($fieldPid, false, true);
610
        $t = "\t\t";
611
        $ret = $pc->getPhpCodeCommentLine('Form Table', $ucfTopicTableName, $t);
612
        $ret .= $xc->getXoopsHandlerLine($moduleDirname, $stlTopicTableName, $t);
613
        $ret .= $cc->getClassCriteriaCompo('criteria', $t);
614
        $ret .= $xc->getXcClearHandlerCount($stlTopicTableName.'Count', $stlTopicTableName, '$criteria', $t);
615
        $contIf = $pc->getPhpCodeIncludeDir('XOOPS_ROOT_PATH', 'class/tree', true, false, 'include', $t."\t");
616
        $contIf .= $xc->getXcClearHandlerAll($stlTopicTableName.'All', $stlTopicTableName, '$criteria', $t."\t");
617
        $contIf .= $cc->getClassXoopsObjectTree($stlTopicTableName.'Tree', $stlTopicTableName.'All', $fieldId, $fieldPid, $t."\t");
618
        $contIf .= $cc->getClassXoopsMakeSelBox($ccFieldPid, $stlTopicTableName.'Tree', $fieldPid, $fieldMain, '--', $fieldPid, $t."\t");
619
        $formLabel = $cc->getClassXoopsFormLabel('', $language, "\${$ccFieldPid}", true, '');
620
        $contIf .= $cc->getClassAddElement('form', $formLabel, $t."\t");
621
        $ret .= $pc->getPhpCodeConditions("\${$stlTopicTableName}Count", null, null, $contIf, false, $t);
622
        $ret .= $pc->getPhpCodeUnset('criteria', $t);
623
624
        return $ret;
625
    }
626
627
    /**
628
    *  @private function getXoopsFormTag
629
     *
630
     * @param $moduleDirname
631
     * @param $fieldId
632
     * @param $required
633
     *
634
     * @return string
635
     */
636
    private function getXoopsFormTag($moduleDirname, $fieldId, $required = 'false')
637
    {
638
        $pc = TDMCreatePhpCode::getInstance();
639
        $xc = TDMCreateXoopsCode::getInstance();
640
        $cc = ClassXoopsCode::getInstance();
641
        $t = "\t\t";
642
        $ret = $pc->getPhpCodeCommentLine('Use tag', 'module', $t);
643
        $isDir = $pc->getPhpCodeIsDir("XOOPS_ROOT_PATH . '/modules/tag'");
644
        $ret .= $pc->getPhpCodeTernaryOperator('dirTag', $isDir, 'true', 'false', $t);
645
        $paramIf = '('.$xc->getXcGetConfig($moduleDirname, 'usetag').' == 1)';
646
        $condIf = $pc->getPhpCodeTernaryOperator('tagId', '$this->isNew()', '0', "\$this->getVar('{$fieldId}')", $t."\t");
647
        $condIf .= $pc->getPhpCodeIncludeDir('XOOPS_ROOT_PATH', 'modules/tag/include/formtag', true, false, $type = 'include', $t."\t");
648
        $paramElem = $cc->getClassXoopsFormTag('', 'tag', 60, 255, 'tagId', 0, true, '');
649
        $condIf .= $cc->getClassAddElement('form', $paramElem.$required, $t."\t");
650
        $ret .= $pc->getPhpCodeConditions($paramIf, ' && ', '$dirTag', $condIf, false, $t);
651
652
        return $ret;
653
    }
654
655
    /**
656
    *  @public function renderElements
657
     *  @param null
658
     * @return string
659
     */
660
    public function renderElements()
661
    {
662
        $tc = TDMCreateHelper::getInstance();
663
        $tf = TDMCreateFile::getInstance();
664
        $ttf = TDMCreateTableFields::getInstance();
665
        $module = $this->getModule();
666
        $table = $this->getTable();
667
        $moduleDirname = $module->getVar('mod_dirname');
668
        $tableName = $table->getVar('table_name');
669
        $tableSoleName = $table->getVar('table_solename');
670
        $languageFunct = $tf->getLanguage($moduleDirname, 'AM');
671
        //$language_table = $languageFunct . strtoupper($tableName);
672
        $ret = '';
673
        $fields = $ttf->getTableFields($table->getVar('table_mid'), $table->getVar('table_id'), 'field_order ASC, field_id');
674
        $fieldId = '';
675
        $fieldIdTopic = '';
676
        $fieldPidTopic = '';
677
        $fieldMainTopic = '';
678
        $fieldElementId = [];
679
        foreach (array_keys($fields) as $f) {
680
            $fieldName = $fields[$f]->getVar('field_name');
681
            $fieldDefault = $fields[$f]->getVar('field_default');
682
            $fieldElement = $fields[$f]->getVar('field_element');
683
            $fieldParent = $fields[$f]->getVar('field_parent');
684
            $fieldInForm = $fields[$f]->getVar('field_inform');
685
            if ((0 == $f) && (1 == $table->getVar('table_autoincrement'))) {
686
                $fieldId = $fieldName;
687
            }
688
            $rpFieldName = $tf->getRightString($fieldName);
689
            $language = $languageFunct.strtoupper($tableSoleName).'_'.strtoupper($rpFieldName);
690
            $required = (1 == $fields[$f]->getVar('field_required')) ? ', true' : '';
691
692
            $fieldElements = $tc->getHandler('fieldelements')->get($fieldElement);
693
            $fieldElementId[] = $fieldElements->getVar('fieldelement_id');
694
695
            if (1 == $fieldInForm) {
696
                // Switch elements
697
                switch ($fieldElement) {
698
                    case 1:
699
                        break;
700
                    case 2:
701
                        $ret .= $this->getXoopsFormText($language, $fieldName, $fieldDefault, $required);
702
                        break;
703
                    case 3:
704
                        $ret .= $this->getXoopsFormTextArea($language, $fieldName, $required);
705
                        break;
706
                    case 4:
707
                        $ret .= $this->getXoopsFormDhtmlTextArea($language, $moduleDirname, $fieldName, $required);
708
                        break;
709
                    case 5:
710
                        $ret .= $this->getXoopsFormCheckBox($language, $tableSoleName, $fieldName, $fieldElementId, $required);
711
                        break;
712
                    case 6:
713
                        $ret .= $this->getXoopsFormRadioYN($language, $fieldName, $required);
714
                        break;
715
                    case 7:
716
                        $ret .= $this->getXoopsFormSelectBox($language, $moduleDirname, $tableName, $fieldName, $required);
717
                        break;
718
                    case 8:
719
                        $ret .= $this->getXoopsFormSelectUser($language, $moduleDirname, $fieldName, $required);
720
                        break;
721
                    case 9:
722
                        $ret .= $this->getXoopsFormColorPicker($language, $moduleDirname, $fieldName, $required);
723
                        break;
724
                    case 10:
725
                        $ret .= $this->getXoopsFormImageList($languageFunct, $moduleDirname, $tableName, $tableSoleName, $fieldName, $required);
726
                        break;
727
                    case 11:
728
                        $ret .= $this->getXoopsFormSelectFile($language, $moduleDirname, $fieldName, $required);
729
                        break;
730
                    case 12:
731
                        $ret .= $this->getXoopsFormUrlFile($language, $moduleDirname, $fieldName, $fieldDefault, $required);
732
                        break;
733
                    case 13:
734
                        $ret .= $this->getXoopsFormUploadImage($languageFunct, $moduleDirname, $tableName, $tableSoleName, $fieldName, $required);
735
                        break;
736
                    case 14:
737
                        $ret .= $this->getXoopsFormUploadFile($language, $moduleDirname, $tableName, $fieldName, $required);
738
                        break;
739
                    case 15:
740
                        $ret .= $this->getXoopsFormTextDateSelect($language, $fieldName, $required);
741
                        break;
742
                    default:
743
                        // If we use tag module
744
                        if (1 == $table->getVar('table_tag')) {
745
                            $ret .= $this->getXoopsFormTag($moduleDirname, $fieldId, $required);
746
                        }
747
                        // If we want to hide XoopsFormHidden() or field id
748
                        if ((0 == $f) && (1 == $table->getVar('table_autoincrement'))) {
749
                            $ret .= $this->getXoopsFormHidden($fieldName);
750
                        }
751
                        break;
752
                }
753
                if ($fieldElement > 15) {
754
                    if ((1 == $fieldParent) || 1 == $table->getVar('table_category')) {
755
                        $fieldElements = $tc->getHandler('fieldelements')->get($fieldElement);
756
                        $fieldElementMid = $fieldElements->getVar('fieldelement_mid');
757
                        $fieldElementTid = $fieldElements->getVar('fieldelement_tid');
758
                        $fieldElementName = $fieldElements->getVar('fieldelement_name');
759
                        $fieldNameDesc = substr($fieldElementName, strrpos($fieldElementName, ':'), strlen($fieldElementName));
760
                        $topicTableName = str_replace(': ', '', $fieldNameDesc);
761
                        $fieldsTopics = $ttf->getTableFields($fieldElementMid, $fieldElementTid);
762
                        foreach (array_keys($fieldsTopics) as $g) {
763
                            $fieldNameTopic = $fieldsTopics[$g]->getVar('field_name');
764
                            if ((0 == $g) && (1 == $table->getVar('table_autoincrement'))) {
765
                                $fieldIdTopic = $fieldNameTopic;
766
                            }
767
                            if (1 == $fieldsTopics[$g]->getVar('field_parent')) {
768
                                $fieldPidTopic = $fieldNameTopic;
769
                            }
770
                            if (1 == $fieldsTopics[$g]->getVar('field_main')) {
771
                                $fieldMainTopic = $fieldNameTopic;
772
                            }
773
                        }
774
                        $ret .= $this->getXoopsFormTopic($language, $moduleDirname, $topicTableName, $fieldIdTopic, $fieldPidTopic, $fieldMainTopic, $required);
775
                    } else {
776
                        $ret .= $this->getXoopsFormTable($language, $moduleDirname, $tableName, $fieldName, $fieldElement, $required);
777
                    }
778
                }
779
            }
780
        }
781
        unset($fieldElementId);
782
783
        return $ret;
784
    }
785
}
786