Fields::__call()   A
last analyzed

Complexity

Conditions 2
Paths 2

Size

Total Lines 5
Code Lines 2

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 2
eloc 2
nc 2
nop 2
dl 0
loc 5
rs 10
c 0
b 0
f 0
1
<?php
2
3
namespace XoopsModules\Modulebuilder;
4
5
use XoopsModules\Modulebuilder;
6
7
/*
8
 You may not change or alter any portion of this comment or credits
9
 of supporting developers from this source code or any supporting source code
10
 which is considered copyrighted (c) material of the original comment or credit authors.
11
12
 This program is distributed in the hope that it will be useful,
13
 but WITHOUT ANY WARRANTY; without even the implied warranty of
14
 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
15
 */
16
17
/**
18
 * modulebuilderreate module.
19
 *
20
 * @copyright       XOOPS Project (https://xoops.org)
21
 * @license         GNU GPL 2 (https://www.gnu.org/licenses/old-licenses/gpl-2.0.html)
22
 *
23
 * @since           2.5.7
24
 *
25
 * @author          Txmod Xoops <[email protected]> - <https://xoops.org/>
26
 *
27
 */
28
29
/**
30
 * Class Fields.
31
 */
32
class Fields extends \XoopsObject
33
{
34
    /**
35
     * @public function constructor class
36
     *
37
     * @param null
38
     */
39
    public function __construct()
40
    {
41
        $this->initVar('field_id', XOBJ_DTYPE_INT);
42
        $this->initVar('field_mid', XOBJ_DTYPE_INT);
43
        $this->initVar('field_tid', XOBJ_DTYPE_INT);
44
        $this->initVar('field_order', XOBJ_DTYPE_INT);
45
        $this->initVar('field_name', XOBJ_DTYPE_TXTBOX);
46
        $this->initVar('field_type', XOBJ_DTYPE_TXTBOX);
47
        $this->initVar('field_value', XOBJ_DTYPE_TXTBOX);
48
        $this->initVar('field_attribute', XOBJ_DTYPE_TXTBOX);
49
        $this->initVar('field_null', XOBJ_DTYPE_TXTBOX);
50
        $this->initVar('field_default', XOBJ_DTYPE_TXTBOX);
51
        $this->initVar('field_key', XOBJ_DTYPE_TXTBOX);
52
        $this->initVar('field_element', XOBJ_DTYPE_TXTBOX);
53
        $this->initVar('field_parent', XOBJ_DTYPE_INT);
54
        $this->initVar('field_admin', XOBJ_DTYPE_INT);
55
        $this->initVar('field_inlist', XOBJ_DTYPE_INT);
56
        $this->initVar('field_inform', XOBJ_DTYPE_INT);
57
        $this->initVar('field_user', XOBJ_DTYPE_INT);
58
        $this->initVar('field_ihead', XOBJ_DTYPE_INT);
59
        $this->initVar('field_ibody', XOBJ_DTYPE_INT);
60
        $this->initVar('field_ifoot', XOBJ_DTYPE_INT);
61
        $this->initVar('field_thead', XOBJ_DTYPE_INT);
62
        $this->initVar('field_tbody', XOBJ_DTYPE_INT);
63
        $this->initVar('field_tfoot', XOBJ_DTYPE_INT);
64
        $this->initVar('field_block', XOBJ_DTYPE_INT);
65
        $this->initVar('field_main', XOBJ_DTYPE_INT);
66
        $this->initVar('field_search', XOBJ_DTYPE_INT);
67
        $this->initVar('field_required', XOBJ_DTYPE_INT);
68
    }
69
70
    /**
71
     * @param string $method
72
     * @param array  $args
73
     *
74
     * @return mixed
75
     */
76
    public function __call($method, $args)
77
    {
78
        $arg = isset($args[0]) ? $args[0] : null;
79
80
        return $this->getVar($method, $arg);
81
    }
82
83
    /**
84
     * @static function getInstance
85
     *
86
     * @return Fields
87
     */
88
    public static function getInstance()
89
    {
90
        static $instance = false;
91
        if (!$instance) {
92
            $instance = new self();
93
        }
94
95
        return $instance;
96
    }
97
98
    /**
99
     * @private function getHeaderForm
100
     *
101
     * @param bool $action
102
     * @param      $prefix
103
     * @return Modulebuilder\Form\ThemeForm
104
     */
105
    private function getHeaderForm($prefix, $action = false)
106
    {
107
        if (false === $action) {
108
            $action = \Xmf\Request::getString('REQUEST_URI', '', 'SERVER');
109
        }
110
111
        $isNew = $this->isNew();
112
        $title = $isNew ? \sprintf(\_AM_MODULEBUILDER_FIELDS_NEW) : \sprintf(\_AM_MODULEBUILDER_FIELDS_EDIT);
113
114
        $form = new Modulebuilder\Form\ThemeForm(null, 'form', $action, 'post', true);
0 ignored issues
show
Bug introduced by
It seems like $action can also be of type true; however, parameter $action of XoopsModules\Modulebuild...hemeForm::__construct() 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

114
        $form = new Modulebuilder\Form\ThemeForm(null, 'form', /** @scrutinizer ignore-type */ $action, 'post', true);
Loading history...
115
        $form->setExtra('enctype="multipart/form-data"');
116
117
        // New Object HtmlTable
118
        $form->addElement(new Modulebuilder\Html\FormLabel(\str_replace('%s', $prefix, \_AM_MODULEBUILDER_FIELD_RECOMMENDED)));
119
        $form->addElement(new Modulebuilder\Html\FormLabel('<table style="border-spacing:5px;" class="outer width100">'));
120
        $form->addElement(new Modulebuilder\Html\FormLabel('<thead class="center">'));
121
        $form->addElement(new Modulebuilder\Html\FormLabel('<tr class="head"><th colspan="10">' . $title . '</th></tr>'));
122
        $form->addElement(new Modulebuilder\Html\FormLabel('<tr class="head width5">'));
123
        $form->addElement(new Modulebuilder\Html\FormLabel('<td>' . \_AM_MODULEBUILDER_FIELD_ID . '</td>'));
124
        $form->addElement(new Modulebuilder\Html\FormLabel('<td>' . \_AM_MODULEBUILDER_FIELD_NAME . '</td>'));
125
        $form->addElement(new Modulebuilder\Html\FormLabel('<td>' . \_AM_MODULEBUILDER_FIELD_ELEMENT . '</td>'));
126
        $form->addElement(new Modulebuilder\Html\FormLabel('<td>' . \_AM_MODULEBUILDER_FIELD_TYPE . '</td>'));
127
        $form->addElement(new Modulebuilder\Html\FormLabel('<td>' . \_AM_MODULEBUILDER_FIELD_VALUE . '</th>'));
128
        $form->addElement(new Modulebuilder\Html\FormLabel('<td>' . \_AM_MODULEBUILDER_FIELD_ATTRIBUTE . '</th>'));
129
        $form->addElement(new Modulebuilder\Html\FormLabel('<td>' . \_AM_MODULEBUILDER_FIELD_NULL . '</th>'));
130
        $form->addElement(new Modulebuilder\Html\FormLabel('<td>' . \_AM_MODULEBUILDER_FIELD_DEFAULT . '</th>'));
131
        $form->addElement(new Modulebuilder\Html\FormLabel('<td>' . \_AM_MODULEBUILDER_FIELD_KEY . '</th>'));
132
        $form->addElement(new Modulebuilder\Html\FormLabel('<td>' . \_AM_MODULEBUILDER_FIELD_PARAMETERS . '</th>'));
133
        $form->addElement(new Modulebuilder\Html\FormLabel('</tr></thead>'));
134
        $form->addElement(new Modulebuilder\Html\FormLabel('<tbody>'));
135
136
        return $form;
137
    }
138
139
    /**
140
     * @public function getFormNew
141
     *
142
     * @param null $fieldMid
0 ignored issues
show
Documentation Bug introduced by
Are you sure the doc-type for parameter $fieldMid is correct as it would always require null to be passed?
Loading history...
143
     * @param null $fieldTid
0 ignored issues
show
Documentation Bug introduced by
Are you sure the doc-type for parameter $fieldTid is correct as it would always require null to be passed?
Loading history...
144
     * @param null $fieldNumb
0 ignored issues
show
Documentation Bug introduced by
Are you sure the doc-type for parameter $fieldNumb is correct as it would always require null to be passed?
Loading history...
145
     * @param null $fieldName
0 ignored issues
show
Documentation Bug introduced by
Are you sure the doc-type for parameter $fieldName is correct as it would always require null to be passed?
Loading history...
146
     * @param bool $action
147
     * @return mixed
148
     */
149
    public function getFormNew($fieldMid = null, $fieldTid = null, $fieldNumb = null, $fieldName = null, $action = false)
150
    {
151
        $helper = Modulebuilder\Helper::getInstance();
152
        // Get handler tables
153
        $tableObj = $helper->getHandler('Tables');
154
        // Header function class
155
        $fieldsForm         = self::getInstance();
156
        $prefix             = $tableObj->get($fieldTid)->getVar('table_fieldname');
157
        $form               = $fieldsForm->getHeaderForm($prefix, $action);
158
        $tableAutoincrement = $tableObj->get($fieldTid)->getVar('table_autoincrement');
159
        // Loop for fields number
160
        $class = 'even';
161
        for ($i = 1; $i <= $fieldNumb; ++$i) {
162
            $class = ('even' === $class) ? 'odd' : 'even';
163
            // Replaced creation of new line by new function - goffy
164
            $this->getFormNewLine($form, $class, $i, $fieldMid, $fieldTid, $fieldName, $tableAutoincrement);
165
        }
166
167
        // Footer form
168
        return $fieldsForm->getFooterForm($form);
169
    }
170
171
    /**
172
     * @private function getFormNewLine
173
     *
174
     * @param $form
175
     * @param $class
176
     * @param $i
177
     * @param $fieldMid
178
     * @param $fieldTid
179
     * @param $fName
180
     * @param $tableAutoincrement
181
     */
182
    private function getFormNewLine($form, $class, $i, $fieldMid, $fieldTid, $fName, $tableAutoincrement)
183
    {
184
        $helper        = Modulebuilder\Helper::getInstance();
185
        $fieldElements = $helper->getHandler('Fieldelements')->getAll();
186
        foreach ($fieldElements as $fe) {
187
            $form->addElement(new \XoopsFormHidden('fe_defaulttype[' . $fe->getVar('fieldelement_id') . ']', $fe->getVar('fieldelement_deftype')));
188
            $form->addElement(new \XoopsFormHidden('fe_defaultvalue[' . $fe->getVar('fieldelement_id') . ']', "'" . $fe->getVar('fieldelement_defvalue') . "'"));
189
        }
190
        $form->addElement(new \XoopsFormHidden('field_id[' . $i . ']', 0));
191
        $form->addElement(new \XoopsFormHidden('field_mid', $fieldMid));
192
        $form->addElement(new \XoopsFormHidden('field_tid', $fieldTid));
193
194
        $form->addElement(new Modulebuilder\Html\FormLabel('<tr class="' . $class . '">'));
195
        // Index ID
196
        $form->addElement(new Modulebuilder\Html\FormLabel('<td class="center">' . $i . '</td>'));
197
        // Field Name
198
        $thisFieldName = (!empty($fName) ? ((1 == $i) ? $fName . '_id' : $fName . '_') : '');
199
        $fieldName     = new \XoopsFormText(\_AM_MODULEBUILDER_FIELD_NAME, 'field_name[' . $i . ']', 15, 255, $thisFieldName);
200
        $form->addElement(new Modulebuilder\Html\FormLabel('<td class="center">' . $fieldName->render() . '</td>'));
201
        // Field Element
202
        if ((1 == $i) && (1 == $tableAutoincrement)) {
203
            $form->addElement(new Modulebuilder\Html\FormLabel('<td>&nbsp;</td>'));
204
        } else {
205
            // Field Elements
206
            $crElement = new \CriteriaCompo();
207
            $crElement->add(new \Criteria('fieldelement_tid', 0));
208
            $crTable = new \CriteriaCompo();
209
            $crTable->add(new \Criteria('fieldelement_mid', $fieldMid));
210
            $fieldElementsSelect = new \XoopsFormSelect(\_AM_MODULEBUILDER_FIELD_ELEMENT_NAME, 'field_element[' . $i . ']');
211
            $fieldElementsSelect->addOptionArray($helper->getHandler('Fieldelements')->getFieldelementsList($crElement));
212
            $fieldElementsSelect->addOptionArray($helper->getHandler('Fieldelements')->getList($crTable));
213
            $fieldElementsSelect->setExtra(" onchange='presetField(" . $i . ")' ");
214
            unset($crElement, $crTable);
215
            $form->addElement(new Modulebuilder\Html\FormLabel('<td class="center">' . $fieldElementsSelect->render() . '</td>'));
216
            unset($fieldElementsSelect);
217
        }
218
        // Field Type
219
        $value           = (1 == $i) && (1 == $tableAutoincrement) ? '2' : '';
220
        $fieldTypeSelect = new \XoopsFormSelect(\_AM_MODULEBUILDER_FIELD_TYPE, 'field_type[' . $i . ']', $value);
221
        $fieldTypeSelect->addOptionArray($helper->getHandler('Fieldtype')->getList());
222
        $form->addElement(new Modulebuilder\Html\FormLabel('<td class="center">' . $fieldTypeSelect->render() . '</td>'));
223
        // Field Value
224
        $value      = (1 == $i) && (1 == $tableAutoincrement) ? '8' : '';
225
        $fieldValue = new \XoopsFormText(\_AM_MODULEBUILDER_FIELD_VALUE, 'field_value[' . $i . ']', 10, 200, $value);
226
        $form->addElement(new Modulebuilder\Html\FormLabel('<td class="center">' . $fieldValue->render() . '</td>'));
227
        // Field Attributes
228
        $value                 = (1 == $i) && (1 == $tableAutoincrement) ? '3' : '';
229
        $fieldAttributesSelect = new \XoopsFormSelect(\_AM_MODULEBUILDER_FIELD_TYPE, 'field_attribute[' . $i . ']', $value);
230
        $fieldAttributesSelect->addOptionArray($helper->getHandler('Fieldattributes')->getList());
231
        $form->addElement(new Modulebuilder\Html\FormLabel('<td class="center">' . $fieldAttributesSelect->render() . '</td>'));
232
        // Field Null
233
        $value           = (1 == $i) && (1 == $tableAutoincrement) ? '2' : '2';
234
        $fieldNullSelect = new \XoopsFormSelect(\_AM_MODULEBUILDER_FIELD_NULL, 'field_null[' . $i . ']', $value);
235
        $fieldNullSelect->addOptionArray($helper->getHandler('Fieldnull')->getList());
236
        $form->addElement(new Modulebuilder\Html\FormLabel('<td class="center">' . $fieldNullSelect->render() . '</td>'));
237
        // Field Default
238
        $fieldDefault = new \XoopsFormText(\_AM_MODULEBUILDER_FIELD_DEFAULT, 'field_default[' . $i . ']', 15, 25);
239
        $form->addElement(new Modulebuilder\Html\FormLabel('<td class="center">' . $fieldDefault->render() . '</td>'));
240
        // Field Key
241
        $value          = (1 == $i) && (1 == $tableAutoincrement) ? '2' : '';
242
        $fieldKeySelect = new \XoopsFormSelect(\_AM_MODULEBUILDER_FIELD_KEY, 'field_key[' . $i . ']', $value);
243
        $fieldKeySelect->addOptionArray($helper->getHandler('Fieldkey')->getList());
244
        $form->addElement(new Modulebuilder\Html\FormLabel('<td class="center">' . $fieldKeySelect->render() . '</td>'));
245
        // Field Void
246
        if ((1 == $i) && (1 == $tableAutoincrement)) {
247
            $form->addElement(new Modulebuilder\Html\FormLabel('<td>&nbsp;</td></tr>'));
248
        } else {
249
            // Box header row
250
            $parametersTray = new \XoopsFormElementTray('', '<br>');
251
252
            $field_parent     = 0;
253
            $checkFieldParent = new \XoopsFormCheckBox(' ', 'field_parent[' . $i . ']', $field_parent);
254
            $checkFieldParent->addOption(1, \_AM_MODULEBUILDER_FIELD_PARENT);
255
            $parametersTray->addElement($checkFieldParent);
256
257
            $field_admin     = 0;
258
            $checkFieldAdmin = new \XoopsFormCheckBox(' ', 'field_admin[' . $i . ']', $field_admin);
259
            $checkFieldAdmin->addOption(1, \_AM_MODULEBUILDER_FIELD_ADMIN);
260
            $parametersTray->addElement($checkFieldAdmin);
261
262
            $field_inlist     = 0;
263
            $checkFieldInList = new \XoopsFormCheckBox(' ', 'field_inlist[' . $i . ']', $field_inlist);
264
            $checkFieldInList->addOption(1, \_AM_MODULEBUILDER_FIELD_INLIST);
265
            $parametersTray->addElement($checkFieldInList);
266
267
            $field_inform     = 0;
268
            $checkFieldInForm = new \XoopsFormCheckBox(' ', 'field_inform[' . $i . ']', $field_inform);
269
            $checkFieldInForm->addOption(1, \_AM_MODULEBUILDER_FIELD_INFORM);
270
            $parametersTray->addElement($checkFieldInForm);
271
272
            $field_user     = 0;
273
            $checkFieldUser = new \XoopsFormCheckBox(' ', 'field_user[' . $i . ']', $field_user);
274
            $checkFieldUser->addOption(1, \_AM_MODULEBUILDER_FIELD_USER);
275
            $parametersTray->addElement($checkFieldUser);
276
277
            $field_ihead     = 0;
278
            $checkFieldIhead = new \XoopsFormCheckBox(' ', 'field_ihead[' . $i . ']', $field_ihead);
279
            $checkFieldIhead->addOption(1, \_AM_MODULEBUILDER_FIELD_IHEAD);
280
            $parametersTray->addElement($checkFieldIhead);
281
282
            $field_ibody     = 0;
283
            $checkFieldIbody = new \XoopsFormCheckBox(' ', 'field_ibody[' . $i . ']', $field_ibody);
284
            $checkFieldIbody->addOption(1, \_AM_MODULEBUILDER_FIELD_IBODY);
285
            $parametersTray->addElement($checkFieldIbody);
286
287
            $field_ifoot     = 0;
288
            $checkFieldIfoot = new \XoopsFormCheckBox(' ', 'field_ifoot[' . $i . ']', $field_ifoot);
289
            $checkFieldIfoot->addOption(1, \_AM_MODULEBUILDER_FIELD_IFOOT);
290
            $parametersTray->addElement($checkFieldIfoot);
291
292
            $field_thead     = 0;
293
            $checkFieldThead = new \XoopsFormCheckBox(' ', 'field_thead[' . $i . ']', $field_thead);
294
            $checkFieldThead->addOption(1, \_AM_MODULEBUILDER_FIELD_THEAD);
295
            $parametersTray->addElement($checkFieldThead);
296
297
            $field_tbody     = 0;
298
            $checkFieldTbody = new \XoopsFormCheckBox(' ', 'field_tbody[' . $i . ']', $field_tbody);
299
            $checkFieldTbody->addOption(1, \_AM_MODULEBUILDER_FIELD_TBODY);
300
            $parametersTray->addElement($checkFieldTbody);
301
302
            $field_tfoot     = 0;
303
            $checkFieldTfoot = new \XoopsFormCheckBox(' ', 'field_tfoot[' . $i . ']', $field_tfoot);
304
            $checkFieldTfoot->addOption(1, \_AM_MODULEBUILDER_FIELD_TFOOT);
305
            $parametersTray->addElement($checkFieldTfoot);
306
307
            $field_block     = 0;
308
            $checkFieldBlock = new \XoopsFormCheckBox('', 'field_block[' . $i . ']', $field_block);
309
            $checkFieldBlock->addOption(1, \_AM_MODULEBUILDER_FIELD_BLOCK);
310
            $parametersTray->addElement($checkFieldBlock);
311
312
            $field_search       = 0;
313
            $check_field_search = new \XoopsFormCheckBox(' ', 'field_search[' . $i . ']', $field_search);
314
            $check_field_search->addOption(1, \_AM_MODULEBUILDER_FIELD_SEARCH);
315
            $parametersTray->addElement($check_field_search);
316
317
            $field_required     = 0;
318
            $checkFieldRequired = new \XoopsFormCheckBox(' ', 'field_required[' . $i . ']', $field_required);
319
            $checkFieldRequired->addOption(1, \_AM_MODULEBUILDER_FIELD_REQUIRED);
320
            $parametersTray->addElement($checkFieldRequired);
321
322
            $fieldMain      = (1 == $tableAutoincrement) ? 2 : 1;
323
            $checkFieldMain = new Modulebuilder\Form\FormRadio('', 'field_main', $fieldMain);
324
            $checkFieldMain->addOption($i, \_AM_MODULEBUILDER_FIELD_MAIN);
325
            $parametersTray->addElement($checkFieldMain);
326
327
            $form->addElement(new Modulebuilder\Html\FormLabel('<td><div class="portlet"><div class="portlet-header">' . \_AM_MODULEBUILDER_FIELD_PARAMETERS_LIST . '</div><div class="portlet-content">' . $parametersTray->render() . '</div></div></td></tr>'));
328
        }
329
    }
330
331
    /**
332
     * @public function getFormEdit
333
     *
334
     * @param null $fieldMid
0 ignored issues
show
Documentation Bug introduced by
Are you sure the doc-type for parameter $fieldMid is correct as it would always require null to be passed?
Loading history...
335
     * @param null $fieldTid
0 ignored issues
show
Documentation Bug introduced by
Are you sure the doc-type for parameter $fieldTid is correct as it would always require null to be passed?
Loading history...
336
     * @param bool $action
337
     * @return mixed
338
     */
339
    public function getFormEdit($fieldMid = null, $fieldTid = null, $action = false)
340
    {
341
        $helper        = Modulebuilder\Helper::getInstance();
342
        $tablesHandler = $helper->getHandler('Tables');
343
        $tables        = $tablesHandler->get($fieldTid);
344
        $prefix        = $tables->getVar('table_fieldname');
345
        // Header function class
346
        $fieldsForm = self::getInstance();
347
        $form       = $fieldsForm->getHeaderForm($prefix, $action);
348
349
        $class              = 'even';
350
        $tableAutoincrement = $tables->getVar('table_autoincrement');
351
        $fieldNumb          = $tables->getVar('table_nbfields');
352
        $fName              = $tables->getVar('table_fieldname');
353
354
        // Get the list of fields
355
        $cr = new \CriteriaCompo();
356
        $cr->add(new \Criteria('field_mid', $fieldMid));
357
        $cr->add(new \Criteria('field_tid', $fieldTid));
358
        $cr->setSort('field_order');
359
        $fields = $helper->getHandler('Fields')->getObjects($cr);
360
        unset($cr);
361
        $fieldElements = $helper->getHandler('Fieldelements')->getAll();
362
        foreach ($fieldElements as $fe) {
363
            $form->addElement(new \XoopsFormHidden('fe_defaulttype[' . $fe->getVar('fieldelement_id') . ']', $fe->getVar('fieldelement_deftype')));
364
            $form->addElement(new \XoopsFormHidden('fe_defaultvalue[' . $fe->getVar('fieldelement_id') . ']', $fe->getVar('fieldelement_defvalue')));
365
        }
366
        $id = 1;
367
        foreach ($fields as $field) {
368
            $class   = ('even' === $class) ? 'odd' : 'even';
369
            $fieldId = (int)$field->getVar('field_id');
370
            if ($id > $fieldNumb) {   // delete additional fields, if number of fields is reduced - goffy
371
                $fieldsObj = $helper->getHandler('Fields')->get($fieldId);
372
                $helper->getHandler('Fields')->delete($fieldsObj, true);
373
            } else {
374
                // show field with settings
375
                $form->addElement(new \XoopsFormHidden('field_id[' . $id . ']', $fieldId));
376
377
                $form->addElement(new Modulebuilder\Html\FormLabel('<tr class="' . $class . '">'));
378
                // Index ID
379
                $form->addElement(new Modulebuilder\Html\FormLabel('<td class="center">' . $id . '</td>'));
380
                // Field Name
381
                $fieldName = new \XoopsFormText(\_AM_MODULEBUILDER_FIELD_NAME, 'field_name[' . $id . ']', 15, 255, $field->getVar('field_name'));
382
                $form->addElement(new Modulebuilder\Html\FormLabel('<td class="center">' . $fieldName->render() . '</td>'));
383
                // Field Element
384
                if ((1 == $id) && (1 == $tableAutoincrement)) {
385
                    $form->addElement(new Modulebuilder\Html\FormLabel('<td>&nbsp;</td>'));
386
                } else {
387
                    // Field Elements
388
                    $crElement = new \CriteriaCompo();
389
                    $crElement->add(new \Criteria('fieldelement_tid', 0));
390
                    $crTable = new \CriteriaCompo();
391
                    $crTable->add(new \Criteria('fieldelement_mid', $fieldMid));
392
                    $fieldElementsSelect = new \XoopsFormSelect(\_AM_MODULEBUILDER_FIELD_ELEMENT_NAME, 'field_element[' . $id . ']', $field->getVar('field_element'));
393
                    $fieldElementsSelect->addOptionArray($helper->getHandler('Fieldelements')->getFieldelementsList($crElement));
394
                    $fieldElementsSelect->addOptionArray($helper->getHandler('Fieldelements')->getList($crTable));
395
                    $fieldElementsSelect->setExtra(" onchange='presetField(" . $id . ")' ");
396
                    unset($crElement, $crTable);
397
                    $form->addElement(new Modulebuilder\Html\FormLabel('<td class="center">' . $fieldElementsSelect->render() . '</td>'));
398
                    unset($fieldElementsSelect);
399
                }
400
                // Field Type
401
                $fieldTypeSelect = new \XoopsFormSelect(\_AM_MODULEBUILDER_FIELD_TYPE, 'field_type[' . $id . ']', $field->getVar('field_type'));
402
                $fieldTypeSelect->addOptionArray($helper->getHandler('Fieldtype')->getList());
403
                $form->addElement(new Modulebuilder\Html\FormLabel('<td class="center">' . $fieldTypeSelect->render() . '</td>'));
404
                // Field Value
405
                $fieldValue = new \XoopsFormText(\_AM_MODULEBUILDER_FIELD_VALUE, 'field_value[' . $id . ']', 10, 200, $field->getVar('field_value'));
406
                $form->addElement(new Modulebuilder\Html\FormLabel('<td class="center">' . $fieldValue->render() . '</td>'));
407
                // Field Attributes
408
                $fieldAttributesSelect = new \XoopsFormSelect(\_AM_MODULEBUILDER_FIELD_TYPE, 'field_attribute[' . $id . ']', $field->getVar('field_attribute'));
409
                $fieldAttributesSelect->addOptionArray($helper->getHandler('Fieldattributes')->getList());
410
                $form->addElement(new Modulebuilder\Html\FormLabel('<td class="center">' . $fieldAttributesSelect->render() . '</td>'));
411
                // Field Null
412
                $fieldNullSelect = new \XoopsFormSelect(\_AM_MODULEBUILDER_FIELD_NULL, 'field_null[' . $id . ']', $field->getVar('field_null'));
413
                $fieldNullSelect->addOptionArray($helper->getHandler('Fieldnull')->getList());
414
                $form->addElement(new Modulebuilder\Html\FormLabel('<td class="center">' . $fieldNullSelect->render() . '</td>'));
415
                // Field Default
416
                $fieldDefault = new \XoopsFormText(\_AM_MODULEBUILDER_FIELD_DEFAULT, 'field_default[' . $id . ']', 15, 25, $field->getVar('field_default'));
417
                $form->addElement(new Modulebuilder\Html\FormLabel('<td class="center">' . $fieldDefault->render() . '</td>'));
418
                // Field Key
419
                $fieldKeySelect = new \XoopsFormSelect(\_AM_MODULEBUILDER_FIELD_KEY, 'field_key[' . $id . ']', $field->getVar('field_key'));
420
                $fieldKeySelect->addOptionArray($helper->getHandler('Fieldkey')->getList());
421
                $form->addElement(new Modulebuilder\Html\FormLabel('<td class="center">' . $fieldKeySelect->render() . '</td>'));
422
                // Field Void
423
                if ((1 == $id) && (1 == $tableAutoincrement)) {
424
                    $form->addElement(new Modulebuilder\Html\FormLabel('<td>&nbsp;</td></tr>'));
425
                } else {
426
                    // Box header row
427
                    $parametersTray = new \XoopsFormElementTray('', '<br>');
428
429
                    $checkFieldParent = new \XoopsFormCheckBox(' ', 'field_parent[' . $id . ']', $field->getVar('field_parent'));
430
                    $checkFieldParent->addOption(1, \_AM_MODULEBUILDER_FIELD_PARENT);
431
                    $parametersTray->addElement($checkFieldParent);
432
433
                    $checkFieldAdmin = new \XoopsFormCheckBox(' ', 'field_admin[' . $id . ']', $field->getVar('field_admin'));
434
                    $checkFieldAdmin->addOption(1, \_AM_MODULEBUILDER_FIELD_ADMIN);
435
                    $parametersTray->addElement($checkFieldAdmin);
436
437
                    $checkFieldInList = new \XoopsFormCheckBox(' ', 'field_inlist[' . $id . ']', $field->getVar('field_inlist'));
438
                    $checkFieldInList->addOption(1, \_AM_MODULEBUILDER_FIELD_INLIST);
439
                    $parametersTray->addElement($checkFieldInList);
440
441
                    $checkFieldInForm = new \XoopsFormCheckBox(' ', 'field_inform[' . $id . ']', $field->getVar('field_inform'));
442
                    $checkFieldInForm->addOption(1, \_AM_MODULEBUILDER_FIELD_INFORM);
443
                    $parametersTray->addElement($checkFieldInForm);
444
445
                    $checkFieldUser = new \XoopsFormCheckBox(' ', 'field_user[' . $id . ']', $field->getVar('field_user'));
446
                    $checkFieldUser->addOption(1, \_AM_MODULEBUILDER_FIELD_USER);
447
                    $parametersTray->addElement($checkFieldUser);
448
449
                    $checkFieldIhead = new \XoopsFormCheckBox(' ', 'field_ihead[' . $id . ']', $field->getVar('field_ihead'));
450
                    $checkFieldIhead->addOption(1, \_AM_MODULEBUILDER_FIELD_IHEAD);
451
                    $parametersTray->addElement($checkFieldIhead);
452
453
                    $checkFieldIbody = new \XoopsFormCheckBox(' ', 'field_ibody[' . $id . ']', $field->getVar('field_ibody'));
454
                    $checkFieldIbody->addOption(1, \_AM_MODULEBUILDER_FIELD_IBODY);
455
                    $parametersTray->addElement($checkFieldIbody);
456
457
                    $checkFieldIfoot = new \XoopsFormCheckBox(' ', 'field_ifoot[' . $id . ']', $field->getVar('field_ifoot'));
458
                    $checkFieldIfoot->addOption(1, \_AM_MODULEBUILDER_FIELD_IFOOT);
459
                    $parametersTray->addElement($checkFieldIfoot);
460
461
                    $checkFieldThead = new \XoopsFormCheckBox(' ', 'field_thead[' . $id . ']', $field->getVar('field_thead'));
462
                    $checkFieldThead->addOption(1, \_AM_MODULEBUILDER_FIELD_THEAD);
463
                    $parametersTray->addElement($checkFieldThead);
464
465
                    $checkFieldTbody = new \XoopsFormCheckBox(' ', 'field_tbody[' . $id . ']', $field->getVar('field_tbody'));
466
                    $checkFieldTbody->addOption(1, \_AM_MODULEBUILDER_FIELD_TBODY);
467
                    $parametersTray->addElement($checkFieldTbody);
468
469
                    $checkFieldTfoot = new \XoopsFormCheckBox(' ', 'field_tfoot[' . $id . ']', $field->getVar('field_tfoot'));
470
                    $checkFieldTfoot->addOption(1, \_AM_MODULEBUILDER_FIELD_TFOOT);
471
                    $parametersTray->addElement($checkFieldTfoot);
472
473
                    $checkFieldBlock = new \XoopsFormCheckBox('', 'field_block[' . $id . ']', $field->getVar('field_block'));
474
                    $checkFieldBlock->addOption(1, \_AM_MODULEBUILDER_FIELD_BLOCK);
475
                    $parametersTray->addElement($checkFieldBlock);
476
477
                    $check_field_search = new \XoopsFormCheckBox(' ', 'field_search[' . $id . ']', $field->getVar('field_search'));
478
                    $check_field_search->addOption(1, \_AM_MODULEBUILDER_FIELD_SEARCH);
479
                    $parametersTray->addElement($check_field_search);
480
481
                    $checkFieldRequired = new \XoopsFormCheckBox(' ', 'field_required[' . $id . ']', $field->getVar('field_required'));
482
                    $checkFieldRequired->addOption(1, \_AM_MODULEBUILDER_FIELD_REQUIRED);
483
                    $parametersTray->addElement($checkFieldRequired);
484
485
                    $fieldMain      = (1 == $field->getVar('field_main')) ? $id : 1;
486
                    $checkFieldMain = new Modulebuilder\Form\FormRadio('', 'field_main', $fieldMain);
487
                    $checkFieldMain->addOption($id, \_AM_MODULEBUILDER_FIELD_MAIN);
488
                    $parametersTray->addElement($checkFieldMain);
489
490
                    $form->addElement(new Modulebuilder\Html\FormLabel('<td><div class="portlet"><div class="portlet-header">' . \_AM_MODULEBUILDER_FIELD_PARAMETERS_LIST . '</div><div class="portlet-content">' . $parametersTray->render() . '</div></div></td></tr>'));
491
                }
492
            }
493
            ++$id;
494
        }
495
        // If you change number fields in tables,
496
        // adding missing fields or delete unnecessary fields
497
        // By goffy
498
        for ($i = $id; $i <= $fieldNumb; ++$i) {
499
            $class = ('even' === $class) ? 'odd' : 'even';
500
            $this->getFormNewLine($form, $class, $i, $fieldMid, $fieldTid, $fName, $tableAutoincrement);
501
        }
502
        unset($id);
503
504
        // Footer form
505
        return $fieldsForm->getFooterForm($form);
506
    }
507
508
    /**
509
     * @private function getFooterForm
510
     *
511
     * @param $form
512
     *
513
     * @return mixed
514
     */
515
    private function getFooterForm($form)
516
    {
517
        // Send Form Data
518
        $form->addElement(new Modulebuilder\Html\FormLabel('</tbody>'));
519
        $form->addElement(new Modulebuilder\Html\FormLabel('<tfoot><tr>'));
520
        $formHidden = new \XoopsFormHidden('op', 'save');
521
        $formButton = new \XoopsFormButton('', 'submit', \_SUBMIT, 'submit');
522
        $form->addElement(new Modulebuilder\Html\FormLabel('<td colspan="8">' . $formHidden->render() . '</td>'));
523
        $form->addElement(new Modulebuilder\Html\FormLabel('<td>' . $formButton->render() . '</td>'));
524
        $form->addElement(new Modulebuilder\Html\FormLabel('</tr></tfoot></table>'));
525
526
        return $form;
527
    }
528
529
    /**
530
     * Get Values.
531
     * @param null $keys
0 ignored issues
show
Documentation Bug introduced by
Are you sure the doc-type for parameter $keys is correct as it would always require null to be passed?
Loading history...
532
     * @param null $format
0 ignored issues
show
Documentation Bug introduced by
Are you sure the doc-type for parameter $format is correct as it would always require null to be passed?
Loading history...
533
     * @param null $maxDepth
0 ignored issues
show
Documentation Bug introduced by
Are you sure the doc-type for parameter $maxDepth is correct as it would always require null to be passed?
Loading history...
534
     * @return array
535
     */
536
    public function getValuesFields($keys = null, $format = null, $maxDepth = null)
537
    {
538
        $ret             = $this->getValues($keys, $format, $maxDepth);
539
        $ret['id']       = $this->getVar('field_id');
540
        $ret['mid']      = $this->getVar('field_mid');
541
        $ret['tid']      = $this->getVar('field_tid');
542
        $ret['order']    = $this->getVar('field_order');
543
        $ret['name']     = \str_replace('_', ' ', \ucfirst($this->getVar('field_name')));
544
        $ret['parent']   = $this->getVar('field_parent');
545
        $ret['inlist']   = $this->getVar('field_inlist');
546
        $ret['inform']   = $this->getVar('field_inform');
547
        $ret['admin']    = $this->getVar('field_admin');
548
        $ret['user']     = $this->getVar('field_user');
549
        $ret['block']    = $this->getVar('field_block');
550
        $ret['main']     = $this->getVar('field_main');
551
        $ret['search']   = $this->getVar('field_search');
552
        $ret['required'] = $this->getVar('field_required');
553
554
        return $ret;
555
    }
556
}
557