Passed
Push — master ( 0c230a...202965 )
by Michael
02:53
created

ClassFormElements::getXoopsFormUploadImage()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 39

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
nc 1
nop 6
dl 0
loc 39
rs 9.296
c 0
b 0
f 0
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 = mb_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, true) > 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
Bug introduced by
The variable $tableName does not exist. Did you forget to declare it?

This check marks access to variables or properties that have not been declared yet. While PHP has no explicit notion of declaring a variable, accessing it before a value is assigned to it is most likely a bug.

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 = mb_strtoupper($tableName);
226
        $rpFieldName = $tf->getRightString($fieldName);
227
        $stuSoleName = mb_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
$paramLabel is not used, you could remove the assignment.

This check looks for variable assignements that are either overwritten by other assignments or where the variable is not used subsequently.

$myVar = 'Value';
$higher = false;

if (rand(1, 6) > 3) {
    $higher = true;
} else {
    $higher = false;
}

Both the $myVar assignment in line 1 and the $higher assignment in line 2 are dead. The first because $myVar is never used and the second because $higher is always overwritten for every possible time line.

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 = mb_strtoupper($tableName);
361
        $stuSoleName = mb_strtoupper($tableSoleName);
0 ignored issues
show
Unused Code introduced by
$stuSoleName is not used, you could remove the assignment.

This check looks for variable assignements that are either overwritten by other assignments or where the variable is not used subsequently.

$myVar = 'Value';
$higher = false;

if (rand(1, 6) > 3) {
    $higher = true;
} else {
    $higher = false;
}

Both the $myVar assignment in line 1 and the $higher assignment in line 2 are dead. The first because $myVar is never used and the second because $higher is always overwritten for every possible time line.

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.

This check looks from 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 = mb_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.

This check looks from 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.

This check looks from 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
$getConfig is not used, you could remove the assignment.

This check looks for variable assignements that are either overwritten by other assignments or where the variable is not used subsequently.

$myVar = 'Value';
$higher = false;

if (rand(1, 6) > 3) {
    $higher = true;
} else {
    $higher = false;
}

Both the $myVar assignment in line 1 and the $higher assignment in line 2 are dead. The first because $myVar is never used and the second because $higher is always overwritten for every possible time line.

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
$ucfTableName is not used, you could remove the assignment.

This check looks for variable assignements that are either overwritten by other assignments or where the variable is not used subsequently.

$myVar = 'Value';
$higher = false;

if (rand(1, 6) > 3) {
    $higher = true;
} else {
    $higher = false;
}

Both the $myVar assignment in line 1 and the $higher assignment in line 2 are dead. The first because $myVar is never used and the second because $higher is always overwritten for every possible time line.

Loading history...
574
        $t = "\t\t";
575
        if ($fieldElement > 15) {
576
            $fElement = $tc->getHandler('fieldelements')->get($fieldElement);
0 ignored issues
show
Bug introduced by
The method get cannot be called on $tc->getHandler('fieldelements') (of type string).

Methods can only be called on objects. This check looks for methods being called on variables that have been inferred to never be objects.

Loading history...
577
            $rpFieldelementName = mb_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
Bug introduced by
The variable $ret does not seem to be defined for all execution paths leading up to this point.

If you define a variable conditionally, it can happen that it is not defined for all execution paths.

Let’s take a look at an example:

function myFunction($a) {
    switch ($a) {
        case 'foo':
            $x = 1;
            break;

        case 'bar':
            $x = 2;
            break;
    }

    // $x is potentially undefined here.
    echo $x;
}

In the above example, the variable $x is defined if you pass “foo” or “bar” as argument for $a. However, since the switch statement has no default case statement, if you pass any other value, the variable $x would be undefined.

Available Fixes

  1. Check for existence of the variable explicitly:

    function myFunction($a) {
        switch ($a) {
            case 'foo':
                $x = 1;
                break;
    
            case 'bar':
                $x = 2;
                break;
        }
    
        if (isset($x)) { // Make sure it's always set.
            echo $x;
        }
    }
    
  2. Define a default value for the variable:

    function myFunction($a) {
        $x = ''; // Set a default which gets overridden for certain paths.
        switch ($a) {
            case 'foo':
                $x = 1;
                break;
    
            case 'bar':
                $x = 2;
                break;
        }
    
        echo $x;
    }
    
  3. Add a value for the missing path:

    function myFunction($a) {
        switch ($a) {
            case 'foo':
                $x = 1;
                break;
    
            case 'bar':
                $x = 2;
                break;
    
            // We add support for the missing case.
            default:
                $x = '';
                break;
        }
    
        echo $x;
    }
    
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.

This check looks from 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 = mb_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 . mb_strtoupper($tableSoleName) . '_' . mb_strtoupper($rpFieldName);
690
            $required = (1 == $fields[$f]->getVar('field_required')) ? ', true' : '';
691
692
            $fieldElements = $tc->getHandler('fieldelements')->get($fieldElement);
0 ignored issues
show
Bug introduced by
The method get cannot be called on $tc->getHandler('fieldelements') (of type string).

Methods can only be called on objects. This check looks for methods being called on variables that have been inferred to never be objects.

Loading history...
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);
0 ignored issues
show
Bug introduced by
The method get cannot be called on $tc->getHandler('fieldelements') (of type string).

Methods can only be called on objects. This check looks for methods being called on variables that have been inferred to never be objects.

Loading history...
756
                        $fieldElementMid = $fieldElements->getVar('fieldelement_mid');
757
                        $fieldElementTid = $fieldElements->getVar('fieldelement_tid');
758
                        $fieldElementName = $fieldElements->getVar('fieldelement_name');
759
                        $fieldNameDesc = mb_substr($fieldElementName, mb_strrpos($fieldElementName, ':'), mb_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