Completed
Push — master ( 2e7c79...ac9b98 )
by Gino
06:29 queued 03:01
created

TDMCreateFieldsHandler::getIds()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 4
Code Lines 2

Duplication

Lines 0
Ratio 0 %
Metric Value
dl 0
loc 4
rs 10
cc 1
eloc 2
nc 1
nop 1
1
<?php
0 ignored issues
show
Coding Style Compatibility introduced by
For compatibility and reusability of your code, PSR1 recommends that a file should introduce either new symbols (like classes, functions, etc.) or have side-effects (like outputting something, or including other files), but not both at the same time. The first symbol is defined on line 34 and the first side effect is on line 25.

The PSR-1: Basic Coding Standard recommends that a file should either introduce new symbols, that is classes, functions, constants or similar, or have side effects. Side effects are anything that executes logic, like for example printing output, changing ini settings or writing to a file.

The idea behind this recommendation is that merely auto-loading a class should not change the state of an application. It also promotes a cleaner style of programming and makes your code less prone to errors, because the logic is not spread out all over the place.

To learn more about the PSR-1, please see the PHP-FIG site on the PSR-1.

Loading history...
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
/**
14
 * tdmcreatereate module.
15
 *
16
 * @copyright       The XOOPS Project http://sourceforge.net/projects/xoops/
17
 * @license         GNU GPL 2 (http://www.gnu.org/licenses/old-licenses/gpl-2.0.html)
18
 *
19
 * @since           2.5.7
20
 *
21
 * @author          Txmod Xoops <[email protected]> - <http://www.txmodxoops.org/>
22
 *
23
 * @version         $Id: 1.91 fields.php 12258 2014-01-02 09:33:29Z timgno $
24
 */
25
include __DIR__.'/autoload.php';
26
/*
27
*  @Class TDMCreateFields
28
*  @extends XoopsObject
29
*/
30
31
/**
32
 * Class TDMCreateFields.
33
 */
34
class TDMCreateFields extends XoopsObject
0 ignored issues
show
Coding Style Compatibility introduced by
PSR1 recommends that each class must be in a namespace of at least one level to avoid collisions.

You can fix this by adding a namespace to your class:

namespace YourVendor;

class YourClass { }

When choosing a vendor namespace, try to pick something that is not too generic to avoid conflicts with other libraries.

Loading history...
35
{
36
    /**
37
     * @var mixed
38
     */
39
    private $tdmcreate;
40
    
41
    /*
42
    *  @public function constructor class
43
    *  @param null
44
    */
45
    /**
46
     *
47
     */
48
    public function __construct()
49
    {
50
        $this->tdmcreate = TDMCreateHelper::getInstance();
51
        $this->initVar('field_id', XOBJ_DTYPE_INT);
52
        $this->initVar('field_mid', XOBJ_DTYPE_INT);
53
        $this->initVar('field_tid', XOBJ_DTYPE_INT);
54
        $this->initVar('field_order', XOBJ_DTYPE_INT);
55
        $this->initVar('field_name', XOBJ_DTYPE_TXTBOX);
56
        $this->initVar('field_type', XOBJ_DTYPE_TXTBOX);
57
        $this->initVar('field_value', XOBJ_DTYPE_TXTBOX);
58
        $this->initVar('field_attribute', XOBJ_DTYPE_TXTBOX);
59
        $this->initVar('field_null', XOBJ_DTYPE_TXTBOX);
60
        $this->initVar('field_default', XOBJ_DTYPE_TXTBOX);
61
        $this->initVar('field_key', XOBJ_DTYPE_TXTBOX);
62
        $this->initVar('field_element', XOBJ_DTYPE_TXTBOX);
63
        $this->initVar('field_parent', XOBJ_DTYPE_INT);
64
        $this->initVar('field_admin', XOBJ_DTYPE_INT);
65
        $this->initVar('field_inlist', XOBJ_DTYPE_INT);
66
        $this->initVar('field_inform', XOBJ_DTYPE_INT);
67
        $this->initVar('field_user', XOBJ_DTYPE_INT);
68
        $this->initVar('field_thead', XOBJ_DTYPE_INT);
69
        $this->initVar('field_tbody', XOBJ_DTYPE_INT);
70
        $this->initVar('field_tfoot', XOBJ_DTYPE_INT);
71
        $this->initVar('field_block', XOBJ_DTYPE_INT);
72
        $this->initVar('field_main', XOBJ_DTYPE_INT);
73
        $this->initVar('field_search', XOBJ_DTYPE_INT);
74
        $this->initVar('field_required', XOBJ_DTYPE_INT);
75
    }
76
77
    /**
78
     * @param string $method
79
     * @param array  $args
80
     *
81
     * @return mixed
82
     */
83
    public function __call($method, $args)
84
    {
85
        $arg = isset($args[0]) ? $args[0] : null;
86
87
        return $this->getVar($method, $arg);
88
    }
89
90
    /*
91
     * @static function &getInstance
92
     *
93
     * @return TDMCreateFields
94
     */
95
    public static function &getInstance()
96
    {
97
        static $instance = false;
98
        if (!$instance) {
99
            $instance = new self();
100
        }
101
102
        return $instance;
103
    }
104
105
    /*
106
     * @private function getHeaderForm
107
     *
108
     * @param bool $action
109
     * @return TDMCreateThemeForm
110
     */
111
    private function getHeaderForm($action = false)
112
    {
113
        if ($action === false) {
114
            $action = $_SERVER['REQUEST_URI'];
115
        }
116
117
        $isNew = $this->isNew();
118
        $title = $isNew ? sprintf(_AM_TDMCREATE_FIELDS_NEW) : sprintf(_AM_TDMCREATE_FIELDS_EDIT);
119
120
        $form = new TDMCreateThemeForm(null, 'form', $action, 'post', true);
121
        $form->setExtra('enctype="multipart/form-data"');
122
123
        // New Object HtmlTable
124
        $form->addElement(new TDMCreateFormLabel('<table cellspacing="1" class="outer width100">'));
125
        $form->addElement(new TDMCreateFormLabel('<thead class="center">'));
126
        $form->addElement(new TDMCreateFormLabel('<tr class="head"><th colspan="9">'.$title.'</th></tr>'));
127
        $form->addElement(new TDMCreateFormLabel('<tr class="head width5">'));
128
        $form->addElement(new TDMCreateFormLabel('<td>'._AM_TDMCREATE_FIELD_ID.'</td>'));
129
        $form->addElement(new TDMCreateFormLabel('<td>'._AM_TDMCREATE_FIELD_NAME.'</td>'));
130
        $form->addElement(new TDMCreateFormLabel('<td>'._AM_TDMCREATE_FIELD_TYPE.'</td>'));
131
        $form->addElement(new TDMCreateFormLabel('<td>'._AM_TDMCREATE_FIELD_VALUE.'</th>'));
132
        $form->addElement(new TDMCreateFormLabel('<td>'._AM_TDMCREATE_FIELD_ATTRIBUTE.'</th>'));
133
        $form->addElement(new TDMCreateFormLabel('<td>'._AM_TDMCREATE_FIELD_NULL.'</th>'));
134
        $form->addElement(new TDMCreateFormLabel('<td>'._AM_TDMCREATE_FIELD_DEFAULT.'</th>'));
135
        $form->addElement(new TDMCreateFormLabel('<td>'._AM_TDMCREATE_FIELD_KEY.'</th>'));
136
        $form->addElement(new TDMCreateFormLabel('<td>'._AM_TDMCREATE_FIELD_PARAMETERS.'</th>'));
137
        $form->addElement(new TDMCreateFormLabel('</tr></thead>'));
138
        $form->addElement(new TDMCreateFormLabel('<tbody>'));
139
140
        //
141
        return $form;
142
    }
143
144
    /*
145
     * @public function getFormNew
146
     *
147
     * @param null $fieldMid
148
     * @param null $fieldTid
149
     * @param null $fieldNumb
150
     * @param null $fieldName
151
     * @param bool $action
152
     * @return mixed
153
     */
154
    public function getFormNew($fieldMid = null, $fieldTid = null, $fieldNumb = null, $fieldName = null, $action = false)
155
    {
156
        // Header function class
157
        $fieldsForm = self::getInstance();
158
        $form = $fieldsForm->getHeaderForm($action);
159
        // Get handler tables
160
        $tableObj = $this->tdmcreate->getHandler('tables'); // Changed by goffy
161
        $tableAutoincrement = $tableObj->get($fieldTid)->getVar('table_autoincrement'); // Added by goffy
162
        // Loop for fields number
163
        $class = 'even';
164
        for ($i = 1; $i <= $fieldNumb; ++$i) {
165
            $class = ($class == 'even') ? 'odd' : 'even';
166
            // Replaced creation of new line by new function - goffy
167
            $this->getFormNewLine($form, $class, $i, $fieldMid, $fieldTid, $fieldName, $tableAutoincrement);
168
        }
169
170
        // Footer form
171
        return $fieldsForm->getFooterForm($form);
172
    }
173
174
    /**
175
     * @private function getFormNewLine
176
     *
177
     * @param $form
178
     * @param $class
179
     * @param $i
180
     * @param $fieldMid
181
     * @param $fieldTid
182
     * @param $fName
183
     * @param $tableAutoincrement
184
     */
185
    private function getFormNewLine($form, $class, $i, $fieldMid, $fieldTid, $fName, $tableAutoincrement)
186
    {
187
        $form->addElement(new XoopsFormHidden('field_id['.$i.']', 0));
188
        $form->addElement(new XoopsFormHidden('field_mid', $fieldMid));
189
        $form->addElement(new XoopsFormHidden('field_tid', $fieldTid));
190
191
        $form->addElement(new TDMCreateFormLabel('<tr class="'.$class.'">'));
192
        // Index ID
193
        $form->addElement(new TDMCreateFormLabel('<td class="center">'.$i.'</td>'));
194
        // Field Name
195
        $thisFieldName = (!empty($fName) ? ((1 == $i) ? $fName.'_id' : $fName.'_') : '');
196
        $fieldName = new XoopsFormText(_AM_TDMCREATE_FIELD_NAME, 'field_name['.$i.']', 15, 255, $thisFieldName);
197
        $form->addElement(new TDMCreateFormLabel('<td class="center">'.$fieldName->render().'</td>'));
198
        // Field Type
199
        $value = (1 == $i) && (1 == $tableAutoincrement) ? '2' : '';
200
        $fieldTypeSelect = new XoopsFormSelect(_AM_TDMCREATE_FIELD_TYPE, 'field_type['.$i.']', $value);
201
        $fieldTypeSelect->addOptionArray($this->tdmcreate->getHandler('fieldtype')->getList());
202
        $form->addElement(new TDMCreateFormLabel('<td class="center">'.$fieldTypeSelect->render().'</td>'));
203
        // Field Value
204
        $value = (1 == $i) && (1 == $tableAutoincrement) ? '8' : '';
205
        $fieldValue = new XoopsFormText(_AM_TDMCREATE_FIELD_VALUE, 'field_value['.$i.']', 5, 20, $value);
206
        $form->addElement(new TDMCreateFormLabel('<td class="center">'.$fieldValue->render().'</td>'));
207
        // Field Attributes
208
        $value = (1 == $i) && (1 == $tableAutoincrement) ? '3' : '';
209
        $fieldAttributesSelect = new XoopsFormSelect(_AM_TDMCREATE_FIELD_TYPE, 'field_attribute['.$i.']', $value);
210
        $fieldAttributesSelect->addOptionArray($this->tdmcreate->getHandler('fieldattributes')->getList());
211
        $form->addElement(new TDMCreateFormLabel('<td class="center">'.$fieldAttributesSelect->render().'</td>'));
212
        // Field Null
213
        $value = (1 == $i) && (1 == $tableAutoincrement) ? '2' : '2';
214
        $fieldNullSelect = new XoopsFormSelect(_AM_TDMCREATE_FIELD_NULL, 'field_null['.$i.']', $value);
215
        $fieldNullSelect->addOptionArray($this->tdmcreate->getHandler('fieldnull')->getList());
216
        $form->addElement(new TDMCreateFormLabel('<td class="center">'.$fieldNullSelect->render().'</td>'));
217
        // Field Default
218
        $fieldDefault = new XoopsFormText(_AM_TDMCREATE_FIELD_DEFAULT, 'field_default['.$i.']', 15, 25);
219
        $form->addElement(new TDMCreateFormLabel('<td class="center">'.$fieldDefault->render().'</td>'));
220
        // Field Key
221
        $value = (1 == $i) && (1 == $tableAutoincrement) ? '2' : '';
222
        $fieldKeySelect = new XoopsFormSelect(_AM_TDMCREATE_FIELD_KEY, 'field_key['.$i.']', $value);
223
        $fieldKeySelect->addOptionArray($this->tdmcreate->getHandler('fieldkey')->getList());
224
        $form->addElement(new TDMCreateFormLabel('<td class="center">'.$fieldKeySelect->render().'</td>'));
225
        // Field Void
226
        if ((1 == $i) && (1 == $tableAutoincrement)) {
227
            $form->addElement(new TDMCreateFormLabel('<td>&nbsp;</td></tr>'));
228
        } else {
229
            // Box header row
230
            $parametersTray = new XoopsFormElementTray('', '<br />');
231
            // Field Elements
232
            $criteriaElement = new CriteriaCompo();
233
            $criteriaElement->add(new Criteria('fieldelement_tid', 0));
234
            $criteriaTable = new CriteriaCompo();
235
            $criteriaTable->add(new Criteria('fieldelement_mid', $fieldMid));
236
            $fieldElementsSelect = new XoopsFormSelect(_AM_TDMCREATE_FIELD_ELEMENT_NAME, 'field_element['.$i.']');
237
            $fieldElementsSelect->addOptionArray($this->tdmcreate->getHandler('fieldelements')->getList($criteriaElement));
238
            $fieldElementsSelect->addOptionArray($this->tdmcreate->getHandler('fieldelements')->getList($criteriaTable));
239
            unset($criteriaElement, $criteriaTable);
240
            $parametersTray->addElement($fieldElementsSelect);
241
242
            $field_parent = 0;
243
            $checkFieldParent = new XoopsFormCheckBox(' ', 'field_parent['.$i.']', $field_parent);
244
            $checkFieldParent->addOption(1, _AM_TDMCREATE_FIELD_PARENT);
245
            $parametersTray->addElement($checkFieldParent);
246
247
            $field_admin = 0;
248
            $checkFieldAdmin = new XoopsFormCheckBox(' ', 'field_admin['.$i.']', $field_admin);
249
            $checkFieldAdmin->addOption(1, _AM_TDMCREATE_FIELD_ADMIN);
250
            $parametersTray->addElement($checkFieldAdmin);
251
252
            $field_inlist = 0;
253
            $checkFieldInList = new XoopsFormCheckBox(' ', 'field_inlist['.$i.']', $field_inlist);
254
            $checkFieldInList->addOption(1, _AM_TDMCREATE_FIELD_INLIST);
255
            $parametersTray->addElement($checkFieldInList);
256
257
            $field_inform = 0;
258
            $checkFieldInForm = new XoopsFormCheckBox(' ', 'field_inform['.$i.']', $field_inform);
259
            $checkFieldInForm->addOption(1, _AM_TDMCREATE_FIELD_INFORM);
260
            $parametersTray->addElement($checkFieldInForm);
261
262
            $field_user = 0;
263
            $checkFieldUser = new XoopsFormCheckBox(' ', 'field_user['.$i.']', $field_user);
264
            $checkFieldUser->addOption(1, _AM_TDMCREATE_FIELD_USER);
265
            $parametersTray->addElement($checkFieldUser);
266
267
            $field_thead = 0;
268
            $checkFieldThead = new XoopsFormCheckBox(' ', 'field_thead['.$i.']', $field_thead);
269
            $checkFieldThead->addOption(1, _AM_TDMCREATE_FIELD_THEAD);
270
            $parametersTray->addElement($checkFieldThead);
271
272
            $field_tbody = 0;
273
            $checkFieldTbody = new XoopsFormCheckBox(' ', 'field_tbody['.$i.']', $field_tbody);
274
            $checkFieldTbody->addOption(1, _AM_TDMCREATE_FIELD_TBODY);
275
            $parametersTray->addElement($checkFieldTbody);
276
277
            $field_tfoot = 0;
278
            $checkFieldTfoot = new XoopsFormCheckBox(' ', 'field_tfoot['.$i.']', $field_tfoot);
279
            $checkFieldTfoot->addOption(1, _AM_TDMCREATE_FIELD_TFOOT);
280
            $parametersTray->addElement($checkFieldTfoot);
281
282
            $field_block = 0;
283
            $checkFieldBlock = new XoopsFormCheckBox('', 'field_block['.$i.']', $field_block);
284
            $checkFieldBlock->addOption(1, _AM_TDMCREATE_FIELD_BLOCK);
285
            $parametersTray->addElement($checkFieldBlock);
286
287
            $field_search = 0;
288
            $check_field_search = new XoopsFormCheckBox(' ', 'field_search['.$i.']', $field_search);
289
            $check_field_search->addOption(1, _AM_TDMCREATE_FIELD_SEARCH);
290
            $parametersTray->addElement($check_field_search);
291
292
            $field_required = 0;
293
            $checkFieldRequired = new XoopsFormCheckBox(' ', 'field_required['.$i.']', $field_required);
294
            $checkFieldRequired->addOption(1, _AM_TDMCREATE_FIELD_REQUIRED);
295
            $parametersTray->addElement($checkFieldRequired);
296
297
            $fieldMain = (1 == $tableAutoincrement) ? 2 : 1;
298
            $checkFieldMain = new TDMCreateFormRadio('', 'field_main', $fieldMain);
299
            $checkFieldMain->addOption($i, _AM_TDMCREATE_FIELD_MAIN);
300
            $parametersTray->addElement($checkFieldMain);
301
            //
302
            $form->addElement(new TDMCreateFormLabel('<td><div class="portlet"><div class="portlet-header">'._AM_TDMCREATE_FIELD_PARAMETERS_LIST.'</div><div class="portlet-content">'.$parametersTray->render().'</div></div></td></tr>'));
303
        }
304
    }
305
306
    /*
307
     * @public function getFormEdit
308
     *
309
     * @param null $fieldMid
310
     * @param null $fieldTid
311
     * @param bool $action
312
     * @return mixed
313
     */
314
    public function getFormEdit($fieldMid = null, $fieldTid = null, $action = false)
315
    {
316
        // Header function class
317
        $fieldsForm = self::getInstance();
318
        $form = $fieldsForm->getHeaderForm($action);
319
        //
320
        $class = 'even';
321
        // Get the number of fields - goffy
322
        $tablesHandler = &$this->tdmcreate->getHandler('tables');
323
        $tables = $tablesHandler->get($fieldTid);
324
        $tableAutoincrement = $tables->getVar('table_autoincrement');
325
        $fieldNumb = $tables->getVar('table_nbfields');
326
        $fName = $tables->getVar('table_fieldname');
327
328
        // Get the list of fields
329
        $criteria = new CriteriaCompo();
330
        $criteria->add(new Criteria('field_mid', $fieldMid));
331
        $criteria->add(new Criteria('field_tid', $fieldTid));
332
        $criteria->setSort('field_id'); //added by goffy
333
        $fields = $this->tdmcreate->getHandler('fields')->getObjects($criteria);
334
        unset($criteria);
335
        $id = 1;
336
        foreach ($fields as $field) {
337
            $class = ($class == 'even') ? 'odd' : 'even';
338
            $fieldId = (int) ($field->getVar('field_id'));
339
            if ($id > $fieldNumb) {   // delete additional fields, if number of fields is reduced - goffy
340
                $fieldsObj = &$this->tdmcreate->getHandler('fields')->get($fieldId);
341
                $this->tdmcreate->getHandler('fields')->delete($fieldsObj, true);
342
            } else {
343
                // show field with settings
344
                $form->addElement(new XoopsFormHidden('field_id['.$id.']', $fieldId));
345
                
346
                $form->addElement(new TDMCreateFormLabel('<tr class="'.$class.'">'));
347
                // Index ID
348
                $form->addElement(new TDMCreateFormLabel('<td class="center">'.$id.'</td>'));
349
                // Field Name
350
                $fieldName = new XoopsFormText(_AM_TDMCREATE_FIELD_NAME, 'field_name['.$id.']', 15, 255, $field->getVar('field_name'));
351
                $form->addElement(new TDMCreateFormLabel('<td class="center">'.$fieldName->render().'</td>'));
352
                // Field Type
353
                $fieldTypeSelect = new XoopsFormSelect(_AM_TDMCREATE_FIELD_TYPE, 'field_type['.$id.']', $field->getVar('field_type'));
354
                $fieldTypeSelect->addOptionArray($this->tdmcreate->getHandler('fieldtype')->getList());
355
                $form->addElement(new TDMCreateFormLabel('<td class="center">'.$fieldTypeSelect->render().'</td>'));
356
                // Field Value
357
                $fieldValue = new XoopsFormText(_AM_TDMCREATE_FIELD_VALUE, 'field_value['.$id.']', 5, 20, $field->getVar('field_value'));
358
                $form->addElement(new TDMCreateFormLabel('<td class="center">'.$fieldValue->render().'</td>'));
359
                // Field Attributes
360
                $fieldAttributesSelect = new XoopsFormSelect(_AM_TDMCREATE_FIELD_TYPE, 'field_attribute['.$id.']', $field->getVar('field_attribute'));
361
                $fieldAttributesSelect->addOptionArray($this->tdmcreate->getHandler('fieldattributes')->getList());
362
                $form->addElement(new TDMCreateFormLabel('<td class="center">'.$fieldAttributesSelect->render().'</td>'));
363
                // Field Null
364
                $fieldNullSelect = new XoopsFormSelect(_AM_TDMCREATE_FIELD_NULL, 'field_null['.$id.']', $field->getVar('field_null'));
365
                $fieldNullSelect->addOptionArray($this->tdmcreate->getHandler('fieldnull')->getList());
366
                $form->addElement(new TDMCreateFormLabel('<td class="center">'.$fieldNullSelect->render().'</td>'));
367
                // Field Default
368
                $fieldDefault = new XoopsFormText(_AM_TDMCREATE_FIELD_DEFAULT, 'field_default['.$id.']', 15, 25, $field->getVar('field_default'));
369
                $form->addElement(new TDMCreateFormLabel('<td class="center">'.$fieldDefault->render().'</td>'));
370
                // Field Key
371
                $fieldKeySelect = new XoopsFormSelect(_AM_TDMCREATE_FIELD_KEY, 'field_key['.$id.']', $field->getVar('field_key'));
372
                $fieldKeySelect->addOptionArray($this->tdmcreate->getHandler('fieldkey')->getList());
373
                $form->addElement(new TDMCreateFormLabel('<td class="center">'.$fieldKeySelect->render().'</td>'));
374
                // Field Void
375
                if ((1 == $id) && (1 == $tableAutoincrement)) {
376
                    $form->addElement(new TDMCreateFormLabel('<td>&nbsp;</td></tr>'));
377
                } else {
378
                    // Box header row
379
                    $parametersTray = new XoopsFormElementTray('', '<br />');
380
                    // Field Elements
381
                    $criteriaElement = new CriteriaCompo();
382
                    $criteriaElement->add(new Criteria('fieldelement_tid', 0));
383
                    $criteriaTable = new CriteriaCompo();
384
                    $criteriaTable->add(new Criteria('fieldelement_mid', $fieldMid));
385
                    $fieldElementsSelect = new XoopsFormSelect(_AM_TDMCREATE_FIELD_ELEMENT_NAME, 'field_element['.$id.']', $field->getVar('field_element'));
386
                    $fieldElementsSelect->addOptionArray($this->tdmcreate->getHandler('fieldelements')->getList($criteriaElement));
387
                    $fieldElementsSelect->addOptionArray($this->tdmcreate->getHandler('fieldelements')->getList($criteriaTable));
388
                    unset($criteriaElement, $criteriaTable);
389
                    $parametersTray->addElement($fieldElementsSelect);
390
                    
391
                    $checkFieldParent = new XoopsFormCheckBox(' ', 'field_parent['.$id.']', $field->getVar('field_parent'));
392
                    $checkFieldParent->addOption(1, _AM_TDMCREATE_FIELD_PARENT);
393
                    $parametersTray->addElement($checkFieldParent);
394
395
                    $checkFieldAdmin = new XoopsFormCheckBox(' ', 'field_admin['.$id.']', $field->getVar('field_admin'));
396
                    $checkFieldAdmin->addOption(1, _AM_TDMCREATE_FIELD_ADMIN);
397
                    $parametersTray->addElement($checkFieldAdmin);
398
399
                    $checkFieldInList = new XoopsFormCheckBox(' ', 'field_inlist['.$id.']', $field->getVar('field_inlist'));
400
                    $checkFieldInList->addOption(1, _AM_TDMCREATE_FIELD_INLIST);
401
                    $parametersTray->addElement($checkFieldInList);
402
403
                    $checkFieldInForm = new XoopsFormCheckBox(' ', 'field_inform['.$id.']', $field->getVar('field_inform'));
404
                    $checkFieldInForm->addOption(1, _AM_TDMCREATE_FIELD_INFORM);
405
                    $parametersTray->addElement($checkFieldInForm);
406
407
                    $checkFieldUser = new XoopsFormCheckBox(' ', 'field_user['.$id.']', $field->getVar('field_user'));
408
                    $checkFieldUser->addOption(1, _AM_TDMCREATE_FIELD_USER);
409
                    $parametersTray->addElement($checkFieldUser);
410
411
                    $checkFieldThead = new XoopsFormCheckBox(' ', 'field_thead['.$id.']', $field->getVar('field_thead'));
412
                    $checkFieldThead->addOption(1, _AM_TDMCREATE_FIELD_THEAD);
413
                    $parametersTray->addElement($checkFieldThead);
414
415
                    $checkFieldTbody = new XoopsFormCheckBox(' ', 'field_tbody['.$id.']', $field->getVar('field_tbody'));
416
                    $checkFieldTbody->addOption(1, _AM_TDMCREATE_FIELD_TBODY);
417
                    $parametersTray->addElement($checkFieldTbody);
418
419
                    $checkFieldTfoot = new XoopsFormCheckBox(' ', 'field_tfoot['.$id.']', $field->getVar('field_tfoot'));
420
                    $checkFieldTfoot->addOption(1, _AM_TDMCREATE_FIELD_TFOOT);
421
                    $parametersTray->addElement($checkFieldTfoot);
422
423
                    $checkFieldBlock = new XoopsFormCheckBox('', 'field_block['.$id.']', $field->getVar('field_block'));
424
                    $checkFieldBlock->addOption(1, _AM_TDMCREATE_FIELD_BLOCK);
425
                    $parametersTray->addElement($checkFieldBlock);
426
427
                    $check_field_search = new XoopsFormCheckBox(' ', 'field_search['.$id.']', $field->getVar('field_search'));
428
                    $check_field_search->addOption(1, _AM_TDMCREATE_FIELD_SEARCH);
429
                    $parametersTray->addElement($check_field_search);
430
431
                    $checkFieldRequired = new XoopsFormCheckBox(' ', 'field_required['.$id.']', $field->getVar('field_required'));
432
                    $checkFieldRequired->addOption(1, _AM_TDMCREATE_FIELD_REQUIRED);
433
                    $parametersTray->addElement($checkFieldRequired);
434
435
                    $fieldMain = (1 == $field->getVar('field_main')) ? $id : 1;
436
                    $checkFieldMain = new TDMCreateFormRadio('', 'field_main', $fieldMain);
437
                    $checkFieldMain->addOption($id, _AM_TDMCREATE_FIELD_MAIN);
438
                    $parametersTray->addElement($checkFieldMain);
439
                    //
440
                    $form->addElement(new TDMCreateFormLabel('<td><div class="portlet"><div class="portlet-header">'._AM_TDMCREATE_FIELD_PARAMETERS_LIST.'</div><div class="portlet-content">'.$parametersTray->render().'</div></div></td></tr>'));
441
                }
442
            }
443
            ++$id;
444
        }
445
        // If you change number fields in tables,
446
        // adding missing fields or delete unnecessary fields
447
        // By goffy
448
        for ($i = $id; $i <= $fieldNumb; ++$i) {
449
            $class = ($class == 'even') ? 'odd' : 'even';
450
            $this->getFormNewLine($form, $class, $i, $fieldMid, $fieldTid, $fName, $tableAutoincrement);
451
        }
452
        unset($id);
453
454
        // Footer form
455
        return $fieldsForm->getFooterForm($form);
456
    }
457
458
    /*
459
    *  @private function getFooterForm
460
    *  @param null
461
    */
462
    /**
463
     * @param $form
464
     *
465
     * @return mixed
466
     */
467
    private function getFooterForm($form)
468
    {
469
        // Send Form Data
470
        $form->addElement(new TDMCreateFormLabel('</tbody>'));
471
        $form->addElement(new TDMCreateFormLabel('<tfoot><tr>'));
472
        $formHidden = new XoopsFormHidden('op', 'save');
473
        $formButton = new XoopsFormButton('', 'submit', _SUBMIT, 'submit');
474
        $form->addElement(new TDMCreateFormLabel('<td colspan="8">'.$formHidden->render().'</td>'));
475
        $form->addElement(new TDMCreateFormLabel('<td>'.$formButton->render().'</td>'));
476
        $form->addElement(new TDMCreateFormLabel('</tr></tfoot></table>'));
477
478
        return $form;
479
    }
480
481
    /**
482
     * Get Values.
483
     */
484
    public function getValuesFields($keys = null, $format = null, $maxDepth = null)
485
    {
486
        $ret = parent::getValues($keys, $format, $maxDepth);
0 ignored issues
show
Comprehensibility Bug introduced by
It seems like you call parent on a different method (getValues() instead of getValuesFields()). Are you sure this is correct? If so, you might want to change this to $this->getValues().

This check looks for a call to a parent method whose name is different than the method from which it is called.

Consider the following code:

class Daddy
{
    protected function getFirstName()
    {
        return "Eidur";
    }

    protected function getSurName()
    {
        return "Gudjohnsen";
    }
}

class Son
{
    public function getFirstName()
    {
        return parent::getSurname();
    }
}

The getFirstName() method in the Son calls the wrong method in the parent class.

Loading history...
487
        $ret['id'] = $this->getVar('field_id');
488
        $ret['mid'] = $this->getVar('field_mid');
489
        $ret['tid'] = $this->getVar('field_tid');
490
        $ret['order'] = $this->getVar('field_order');
491
        $ret['name'] = str_replace('_', ' ', ucfirst($this->getVar('field_name')));
492
        $ret['parent'] = $this->getVar('field_parent');
493
        $ret['inlist'] = $this->getVar('field_inlist');
494
        $ret['inform'] = $this->getVar('field_inform');
495
        $ret['admin'] = $this->getVar('field_admin');
496
        $ret['user'] = $this->getVar('field_user');
497
        $ret['block'] = $this->getVar('field_block');
498
        $ret['main'] = $this->getVar('field_main');
499
        $ret['search'] = $this->getVar('field_search');
500
        $ret['required'] = $this->getVar('field_required');
501
502
        return $ret;
503
    }    
504
}
505
506
/*
507
*  @Class TDMCreateFieldsHandler
508
*  @extends XoopsPersistableObjectHandler
509
*/
510
511
/**
512
 * Class TDMCreateFieldsHandler.
513
 */
514
class TDMCreateFieldsHandler extends XoopsPersistableObjectHandler
0 ignored issues
show
Coding Style Compatibility introduced by
PSR1 recommends that each class should be in its own file to aid autoloaders.

Having each class in a dedicated file usually plays nice with PSR autoloaders and is therefore a well established practice. If you use other autoloaders, you might not want to follow this rule.

Loading history...
Coding Style Compatibility introduced by
PSR1 recommends that each class must be in a namespace of at least one level to avoid collisions.

You can fix this by adding a namespace to your class:

namespace YourVendor;

class YourClass { }

When choosing a vendor namespace, try to pick something that is not too generic to avoid conflicts with other libraries.

Loading history...
515
{
516
    /*
517
    *  @public function constructor class
518
    *  @param mixed $db
519
    */
520
    /**
521
     * @param null|object $db
522
     */
523
    public function __construct(&$db)
524
    {
525
        parent::__construct($db, 'tdmcreate_fields', 'tdmcreatefields', 'field_id', 'field_name');
526
    }
527
528
    /**
529
     * @param bool $isNew
530
     *
531
     * @return object
532
     */
533
    public function &create($isNew = true)
534
    {
535
        return parent::create($isNew);
536
    }
537
538
    /**
539
     * retrieve a field.
540
     *
541
     * @param int  $i      field id
542
     * @param null $fields
543
     *
544
     * @return mixed reference to the <a href='psi_element://TDMCreateFields'>TDMCreateFields</a> object
545
     *               object
546
     */
547
    public function &get($i = null, $fields = null)
548
    {
549
        return parent::get($i, $fields);
550
    }
551
552
    /**
553
     * get inserted id.
554
     *
555
     * @param null
556
     *
557
     * @return int reference to the {@link TDMCreateFields} object
558
     */
559
    public function getInsertId()
560
    {
561
        return $this->db->getInsertId();
562
    }
563
564
    /**
565
     * get IDs of objects matching a condition.
566
     *
567
     * @param object $criteria {@link CriteriaElement} to match
568
     *
569
     * @return array of object IDs
570
     */
571
    public function &getIds($criteria)
572
    {
573
        return parent::getIds($criteria);
574
    }
575
576
    /**
577
     * insert a new field in the database.
578
     *
579
     * @param object $field reference to the {@link TDMCreateFields} object
580
     * @param bool   $force
581
     *
582
     * @return bool FALSE if failed, TRUE if already present and unchanged or successful
583
     */
584
    public function insert(&$field, $force = false)
585
    {
586
        if (!parent::insert($field, $force)) {
587
            return false;
588
        }
589
590
        return true;
591
    }
592
593
    /**
594
     * Get Count Fields.
595
     */
596
    public function getCountFields($start = 0, $limit = 0, $sort = 'field_id ASC, field_name', $order = 'ASC')
597
    {
598
        $criteriaCountFields = new CriteriaCompo();
599
        $criteriaCountFields = $this->getFieldsCriteria($criteriaCountFields, $start, $limit, $sort, $order);
600
601
        return $this->getCount($criteriaCountFields);
602
    }
603
604
    /**
605
     * Get All Fields.
606
     */
607
    public function getAllFields($start = 0, $limit = 0, $sort = 'field_id ASC, field_name', $order = 'ASC')
608
    {
609
        $criteriaAllFields = new CriteriaCompo();
610
        $criteriaAllFields = $this->getFieldsCriteria($criteriaAllFields, $start, $limit, $sort, $order);
611
612
        return $this->getAll($criteriaAllFields);
613
    }
614
615
    /**
616
     * Get All Fields By Module & Table Id.
617
     */
618
    public function getAllFieldsByModuleAndTableId($modId, $tabId, $start = 0, $limit = 0, $sort = 'field_order ASC, field_id, field_name', $order = 'ASC')
619
    {
620
        $criteriaAllFieldsByModule = new CriteriaCompo();
621
        $criteriaAllFieldsByModule->add(new Criteria('field_mid', $modId));
622
        $criteriaAllFieldsByModule->add(new Criteria('field_tid', $tabId));
623
        $criteriaAllFieldsByModule = $this->getFieldsCriteria($criteriaAllFieldsByModule, $start, $limit, $sort, $order);
624
625
        return $this->getAll($criteriaAllFieldsByModule);
626
    }
627
628
    /**
629
     * Get Fields Criteria.
630
     */
631
    private function getFieldsCriteria($criteriaFields, $start, $limit, $sort, $order)
632
    {
633
        $criteriaFields->setStart($start);
634
        $criteriaFields->setLimit($limit);
635
        $criteriaFields->setSort($sort);
636
        $criteriaFields->setOrder($order);
637
638
        return $criteriaFields;
639
    }
640
}
641