Completed
Pull Request — master (#144)
by Michael
04:31
created

ClassFormElements   C

Complexity

Total Complexity 57

Size/Duplication

Total Lines 756
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
eloc 428
dl 0
loc 756
rs 5.04
c 0
b 0
f 0
wmc 57

21 Methods

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

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

407
    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...
408
    {
409
        $tf = Tdmcreate\Files\CreateFile::getInstance();
410
        $pc = Tdmcreate\Files\CreatePhpCode::getInstance();
411
        $xc = Tdmcreate\Files\CreateXoopsCode::getInstance();
412
        $cc = Tdmcreate\Files\Classes\ClassXoopsCode::getInstance();
413
        $ucfFieldName = $tf->getCamelCase($fieldName, true);
414
        $stuTableName = mb_strtoupper($tableName);
415
        $t = "\t\t";
416
        $ret = $pc->getPhpCodeCommentLine('Form', 'File ' . $ucfFieldName, $t);
417
        $getConfig = $xc->getXcGetConfig($moduleDirname, 'maxsize');
418
        $xoopsFormFile = $cc->getClassXoopsFormFile('', $language . '_' . $stuTableName, $fieldName, $getConfig, true, '');
419
        $ret .= $cc->getClassAddElement('form', $xoopsFormFile, $t);
420
421
        return $ret;
422
    }
423
424
    /**
425
     *  @private function getXoopsFormColorPicker
426
     *
427
     * @param $language
428
     * @param $moduleDirname
429
     * @param $fieldName
430
     * @param $required
431
     *
432
     * @return string
433
     */
434
    private function getXoopsFormColorPicker($language, $moduleDirname, $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

434
    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...
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

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

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

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

761
                        $fieldNameDesc = mb_substr(/** @scrutinizer ignore-type */ $fieldElementName, mb_strrpos($fieldElementName, ':'), mb_strlen($fieldElementName));
Loading history...
Bug introduced by
It seems like $fieldElementName can also be of type array and array; however, parameter $str of mb_strlen() does only seem to accept string, maybe add an additional type check? ( Ignorable by Annotation )

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

761
                        $fieldNameDesc = mb_substr($fieldElementName, mb_strrpos($fieldElementName, ':'), mb_strlen(/** @scrutinizer ignore-type */ $fieldElementName));
Loading history...
Bug introduced by
It seems like $fieldElementName can also be of type array and array; however, parameter $haystack of mb_strrpos() does only seem to accept string, maybe add an additional type check? ( Ignorable by Annotation )

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

761
                        $fieldNameDesc = mb_substr($fieldElementName, mb_strrpos(/** @scrutinizer ignore-type */ $fieldElementName, ':'), mb_strlen($fieldElementName));
Loading history...
762
                        $topicTableName = str_replace(': ', '', $fieldNameDesc);
763
                        $fieldsTopics = $ttf->getTableFields($fieldElementMid, $fieldElementTid);
764
                        foreach (array_keys($fieldsTopics) as $g) {
765
                            $fieldNameTopic = $fieldsTopics[$g]->getVar('field_name');
766
                            if ((0 == $g) && (1 == $table->getVar('table_autoincrement'))) {
767
                                $fieldIdTopic = $fieldNameTopic;
768
                            }
769
                            if (1 == $fieldsTopics[$g]->getVar('field_parent')) {
770
                                $fieldPidTopic = $fieldNameTopic;
771
                            }
772
                            if (1 == $fieldsTopics[$g]->getVar('field_main')) {
773
                                $fieldMainTopic = $fieldNameTopic;
774
                            }
775
                        }
776
                        $ret .= $this->getXoopsFormTopic($language, $moduleDirname, $topicTableName, $fieldIdTopic, $fieldPidTopic, $fieldMainTopic, $required);
777
                    } else {
778
                        $ret .= $this->getXoopsFormTable($language, $moduleDirname, $tableName, $fieldName, $fieldElement, $required);
779
                    }
780
                }
781
            }
782
        }
783
        unset($fieldElementId);
784
785
        return $ret;
786
    }
787
}
788