Passed
Push — master ( 719dc8...e884aa )
by Goffy
04:07
created

clean_index_files()   A

Complexity

Conditions 2
Paths 2

Size

Total Lines 18
Code Lines 13

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 1 Features 0
Metric Value
cc 2
eloc 13
c 1
b 1
f 0
nc 2
nop 0
dl 0
loc 18
rs 9.8333
1
<?php
2
3
/*
4
 You may not change or alter any portion of this comment or credits
5
 of supporting developers from this source code or any supporting source code
6
 which is considered copyrighted (c) material of the original comment or credit authors.
7
8
 This program is distributed in the hope that it will be useful,
9
 but WITHOUT ANY WARRANTY; without even the implied warranty of
10
 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
11
 */
12
13
/**
14
 * modulebuilder module.
15
 *
16
 * @copyright       XOOPS Project (https://xoops.org)
17
 * @license         GNU GPL 2 (http://www.gnu.org/licenses/old-licenses/gpl-2.0.html)
18
 *
19
 * @since           2.5.0
20
 *
21
 * @author          Txmod Xoops http://www.txmodxoops.org
22
 *
23
 * @param mixed      $module
24
 * @param null|mixed $prev_version
25
 */
26
27
/**
28
 * @param      $module
29
 * @param null $prev_version
0 ignored issues
show
Documentation Bug introduced by
Are you sure the doc-type for parameter $prev_version is correct as it would always require null to be passed?
Loading history...
30
 *
31
 * @return bool|null
32
 */
33
function xoops_module_update_modulebuilder(&$module, $prev_version = null)
34
{
35
36
    $ret = null;
37
    if ($prev_version < 191) {
38
        update_modulebuilder_v191($module);
39
    }
40
41
	if (!modulebuilder_check_db($module)) {
42
        print_r($module->getErrors());
43
    }
44
45
    if (!clean_index_files()) {
46
        print_r($module->getErrors());
47
    }
48
	
49
	//check upload directory
50
	include_once __DIR__ . '/install.php';
51
    xoops_module_install_modulebuilder($module);
52
	
53
    $errors = $module->getErrors();
54
    if (!empty($errors)) {
55
        print_r($errors);
56
    }
57
58
    return $ret;
59
60
}
61
62
// irmtfan bug fix: solve templates duplicate issue
63
/**
64
 * @param $module
65
 *
66
 * @return bool
67
 */
68
function update_modulebuilder_v191(&$module)
69
{
70
    global $xoopsDB;
71
    $result = $xoopsDB->query(
72
        'SELECT t1.tpl_id FROM ' . $xoopsDB->prefix('tplfile') . ' t1, ' . $xoopsDB->prefix('tplfile') . ' t2 WHERE t1.tpl_refid = t2.tpl_refid AND t1.tpl_module = t2.tpl_module AND t1.tpl_tplset=t2.tpl_tplset AND t1.tpl_file = t2.tpl_file AND t1.tpl_type = t2.tpl_type AND t1.tpl_id > t2.tpl_id'
73
    );
74
    $tplids = [];
75
    while (list($tplid) = $xoopsDB->fetchRow($result)) {
76
        $tplids[] = $tplid;
77
    }
78
    if (\count($tplids) > 0) {
79
        $tplfileHandler  = \xoops_getHandler('tplfile');
80
        $duplicate_files = $tplfileHandler->getObjects(
0 ignored issues
show
Bug introduced by
The method getObjects() does not exist on XoopsObjectHandler. It seems like you code against a sub-type of said class. However, the method does not exist in XoopsRankHandler or XoUserHandler. Are you sure you never get one of those? ( Ignorable by Annotation )

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

80
        /** @scrutinizer ignore-call */ 
81
        $duplicate_files = $tplfileHandler->getObjects(
Loading history...
81
            new \Criteria('tpl_id', '(' . \implode(',', $tplids) . ')', 'IN')
82
        );
83
84
        if (\count($duplicate_files) > 0) {
85
            foreach (\array_keys($duplicate_files) as $i) {
86
                $tplfileHandler->delete($duplicate_files[$i]);
87
            }
88
        }
89
    }
90
    $sql = 'SHOW INDEX FROM ' . $xoopsDB->prefix('tplfile') . " WHERE KEY_NAME = 'tpl_refid_module_set_file_type'";
91
    if (!$result = $xoopsDB->queryF($sql)) {
92
        xoops_error($xoopsDB->error() . '<br />' . $sql);
93
94
        return false;
95
    }
96
    $ret = [];
97
    while (false !== ($myrow = $xoopsDB->fetchArray($result))) {
98
        $ret[] = $myrow;
99
    }
100
    if (!empty($ret)) {
101
        $module->setErrors(
102
            "'tpl_refid_module_set_file_type' unique index is exist. Note: check 'tplfile' table to be sure this index is UNIQUE because XOOPS CORE need it."
103
        );
104
105
        return true;
106
    }
107
    $sql = 'ALTER TABLE ' . $xoopsDB->prefix('tplfile') . ' ADD UNIQUE tpl_refid_module_set_file_type ( tpl_refid, tpl_module, tpl_tplset, tpl_file, tpl_type )';
108
    if (!$result = $xoopsDB->queryF($sql)) {
0 ignored issues
show
Unused Code introduced by
The assignment to $result is dead and can be removed.
Loading history...
109
        xoops_error($xoopsDB->error() . '<br />' . $sql);
110
        $module->setErrors(
111
            "'tpl_refid_module_set_file_type' unique index is not added to 'tplfile' table. Warning: do not use XOOPS until you add this unique index."
112
        );
113
114
        return false;
115
    }
116
117
    return true;
118
}
119
// irmtfan bug fix: solve templates duplicate issue
120
121
/**
122
 * function to add code for db checking
123
 * @param $module
124
 *
125
 * @return bool
126
 */
127
function modulebuilder_check_db($module)
128
{
129
    $ret = true;
130
	//insert here code for database check
131
    global $xoopsDB;
132
133
    // new form field SelectStatus
134
    $fname  = 'SelectStatus';
135
    $fid    = 16;
136
    $fvalue = 'XoopsFormSelectStatus';
137
    $result = $xoopsDB->query(
138
        'SELECT * FROM ' . $xoopsDB->prefix('modulebuilder_fieldelements') . " as fe WHERE fe.fieldelement_name = '{$fname}'"
139
    );
140
    $num_rows = $GLOBALS['xoopsDB']->getRowsNum($result);
141
    if ($num_rows == 0) {
142
        $result = $xoopsDB->query(
143
            'SELECT * FROM ' . $xoopsDB->prefix('modulebuilder_fieldelements') . " as fe WHERE fe.fieldelement_id ={$fid}"
144
        );
145
        $num_rows = $GLOBALS['xoopsDB']->getRowsNum($result);
146
        if ($num_rows > 0) {
147
            list($fe_id, $fe_mid, $fe_tid, $fe_name, $fe_value) = $xoopsDB->fetchRow($result);
148
            //add existing element at end of table
149
            $sql = 'INSERT INTO `' . $xoopsDB->prefix('modulebuilder_fieldelements') . "` (`fieldelement_id`, `fieldelement_mid`, `fieldelement_tid`, `fieldelement_name`, `fieldelement_value`) VALUES (NULL, '{$fe_mid}', '{$fe_tid}', '{$fe_name}', '{$fe_value}')";
150
            $result = $xoopsDB->query($sql);
0 ignored issues
show
Unused Code introduced by
The assignment to $result is dead and can be removed.
Loading history...
151
            // update table fields to new id of previous 16
152
            $newId = $xoopsDB->getInsertId();
153
            $sql = 'UPDATE `' . $xoopsDB->prefix('modulebuilder_fields') . "` SET `field_element` = '{$newId}' WHERE `" . $xoopsDB->prefix('modulebuilder_fields') . "`.`field_element` = '{$fid}';";
154
            $result = $xoopsDB->query($sql);
155
            // update 16 to new element
156
            $sql = 'UPDATE `' . $xoopsDB->prefix('modulebuilder_fieldelements') . "` SET `fieldelement_mid` = '0', `fieldelement_tid` = '0', `fieldelement_name` = '{$fname}', `fieldelement_value` = '{$fvalue}' WHERE `fieldelement_id` = {$fid};";
157
            $result = $xoopsDB->query($sql);
158
        } else {
159
            //add missing element
160
            $sql = 'INSERT INTO `' . $xoopsDB->prefix('modulebuilder_fieldelements') . "` (`fieldelement_id`, `fieldelement_mid`, `fieldelement_tid`, `fieldelement_name`, `fieldelement_value`) VALUES (NULL, '0', '0', '{$fname}', '{$fvalue}')";
161
            $result = $xoopsDB->query($sql);
162
        }
163
    }
164
165
    // new form field Password
166
    $fname  = 'Password';
167
    $fid    = 17;
168
    $fvalue = 'XoopsFormPassword';
169
    $result = $xoopsDB->query(
170
        'SELECT * FROM ' . $xoopsDB->prefix('modulebuilder_fieldelements') . " as fe WHERE fe.fieldelement_name = '{$fname}'"
171
    );
172
    $num_rows = $GLOBALS['xoopsDB']->getRowsNum($result);
173
    if ($num_rows == 0) {
174
        $result = $xoopsDB->query(
175
            'SELECT * FROM ' . $xoopsDB->prefix('modulebuilder_fieldelements') . " as fe WHERE fe.fieldelement_id ={$fid}"
176
        );
177
        $num_rows = $GLOBALS['xoopsDB']->getRowsNum($result);
178
        if ($num_rows > 0) {
179
            list($fe_id, $fe_mid, $fe_tid, $fe_name, $fe_value) = $xoopsDB->fetchRow($result);
180
            //add existing element at end of table
181
            $sql = 'INSERT INTO `' . $xoopsDB->prefix('modulebuilder_fieldelements') . "` (`fieldelement_id`, `fieldelement_mid`, `fieldelement_tid`, `fieldelement_name`, `fieldelement_value`) VALUES (NULL, '{$fe_mid}', '{$fe_tid}', '{$fe_name}', '{$fe_value}')";
182
            $result = $xoopsDB->query($sql);
183
            // update table fields to new id of previous 17
184
            $newId = $xoopsDB->getInsertId();
185
            $sql = 'UPDATE `' . $xoopsDB->prefix('modulebuilder_fields') . "` SET `field_element` = '{$newId}' WHERE `" . $xoopsDB->prefix('modulebuilder_fields') . "`.`field_element` = '{$fid}';";
186
            $result = $xoopsDB->query($sql);
187
            // update 17 to new element
188
            $sql = 'UPDATE `' . $xoopsDB->prefix('modulebuilder_fieldelements') . "` SET `fieldelement_mid` = '0', `fieldelement_tid` = '0', `fieldelement_name` = '{$fname}', `fieldelement_value` = '{$fvalue}' WHERE `fieldelement_id` = {$fid};";
189
            $result = $xoopsDB->query($sql);
190
        } else {
191
            //add missing element
192
            $sql = 'INSERT INTO `' . $xoopsDB->prefix('modulebuilder_fieldelements') . "` (`fieldelement_id`, `fieldelement_mid`, `fieldelement_tid`, `fieldelement_name`, `fieldelement_value`) VALUES (NULL, '0', '0', '{$fname}', '{$fvalue}')";
193
            $result = $xoopsDB->query($sql);
194
        }
195
    }
196
197
    // new form field SelectCountry
198
    $fname  = 'SelectCountry';
199
    $fid    = 18;
200
    $fvalue = 'XoopsFormSelectCountry';
201
    $result = $xoopsDB->query(
202
        'SELECT * FROM ' . $xoopsDB->prefix('modulebuilder_fieldelements') . " as fe WHERE fe.fieldelement_name = '{$fname}'"
203
    );
204
    $num_rows = $GLOBALS['xoopsDB']->getRowsNum($result);
205
    if ($num_rows == 0) {
206
        $result = $xoopsDB->query(
207
            'SELECT * FROM ' . $xoopsDB->prefix('modulebuilder_fieldelements') . " as fe WHERE fe.fieldelement_id ={$fid}"
208
        );
209
        $num_rows = $GLOBALS['xoopsDB']->getRowsNum($result);
210
        if ($num_rows > 0) {
211
            list($fe_id, $fe_mid, $fe_tid, $fe_name, $fe_value) = $xoopsDB->fetchRow($result);
212
            //add existing element at end of table
213
            $sql = 'INSERT INTO `' . $xoopsDB->prefix('modulebuilder_fieldelements') . "` (`fieldelement_id`, `fieldelement_mid`, `fieldelement_tid`, `fieldelement_name`, `fieldelement_value`) VALUES (NULL, '{$fe_mid}', '{$fe_tid}', '{$fe_name}', '{$fe_value}')";
214
            $result = $xoopsDB->query($sql);
215
            // update table fields to new id of previous 18
216
            $newId = $xoopsDB->getInsertId();
217
            $sql = 'UPDATE `' . $xoopsDB->prefix('modulebuilder_fields') . "` SET `field_element` = '{$newId}' WHERE `" . $xoopsDB->prefix('modulebuilder_fields') . "`.`field_element` = '{$fid}';";
218
            $result = $xoopsDB->query($sql);
219
            // update 18 to new element
220
            $sql = 'UPDATE `' . $xoopsDB->prefix('modulebuilder_fieldelements') . "` SET `fieldelement_mid` = '0', `fieldelement_tid` = '0', `fieldelement_name` = '{$fname}', `fieldelement_value` = '{$fvalue}' WHERE `fieldelement_id` = {$fid};";
221
            $result = $xoopsDB->query($sql);
222
        } else {
223
            //add missing element
224
            $sql = 'INSERT INTO `' . $xoopsDB->prefix('modulebuilder_fieldelements') . "` (`fieldelement_id`, `fieldelement_mid`, `fieldelement_tid`, `fieldelement_name`, `fieldelement_value`) VALUES (NULL, '0', '0', '{$fname}', '{$fvalue}')";
225
            $result = $xoopsDB->query($sql);
226
        }
227
    }
228
229
    // new form field SelectLanguage
230
    $fname  = 'SelectLang';
231
    $fid    = 19;
232
    $fvalue = 'XoopsFormSelectLang';
233
    $result = $xoopsDB->query(
234
        'SELECT * FROM ' . $xoopsDB->prefix('modulebuilder_fieldelements') . " as fe WHERE fe.fieldelement_name = '{$fname}'"
235
    );
236
    $num_rows = $GLOBALS['xoopsDB']->getRowsNum($result);
237
    if ($num_rows == 0) {
238
        $result = $xoopsDB->query(
239
            'SELECT * FROM ' . $xoopsDB->prefix('modulebuilder_fieldelements') . " as fe WHERE fe.fieldelement_id ={$fid}"
240
        );
241
        $num_rows = $GLOBALS['xoopsDB']->getRowsNum($result);
242
        if ($num_rows > 0) {
243
            list($fe_id, $fe_mid, $fe_tid, $fe_name, $fe_value) = $xoopsDB->fetchRow($result);
244
            //add existing element at end of table
245
            $sql = 'INSERT INTO `' . $xoopsDB->prefix('modulebuilder_fieldelements') . "` (`fieldelement_id`, `fieldelement_mid`, `fieldelement_tid`, `fieldelement_name`, `fieldelement_value`) VALUES (NULL, '{$fe_mid}', '{$fe_tid}', '{$fe_name}', '{$fe_value}')";
246
            $result = $xoopsDB->query($sql);
247
            // update table fields to new id of previous 19
248
            $newId = $xoopsDB->getInsertId();
249
            $sql = 'UPDATE `' . $xoopsDB->prefix('modulebuilder_fields') . "` SET `field_element` = '{$newId}' WHERE `" . $xoopsDB->prefix('modulebuilder_fields') . "`.`field_element` = '{$fid}';";
250
            $result = $xoopsDB->query($sql);
251
            // update 19 to new element
252
            $sql = 'UPDATE `' . $xoopsDB->prefix('modulebuilder_fieldelements') . "` SET `fieldelement_mid` = '0', `fieldelement_tid` = '0', `fieldelement_name` = '{$fname}', `fieldelement_value` = '{$fvalue}' WHERE `fieldelement_id` = {$fid};";
253
            $result = $xoopsDB->query($sql);
254
        } else {
255
            //add missing element
256
            $sql = 'INSERT INTO `' . $xoopsDB->prefix('modulebuilder_fieldelements') . "` (`fieldelement_id`, `fieldelement_mid`, `fieldelement_tid`, `fieldelement_name`, `fieldelement_value`) VALUES (NULL, '0', '0', '{$fname}', '{$fvalue}')";
257
            $result = $xoopsDB->query($sql);
258
        }
259
    }
260
261
    // new form field Radio
262
    $fname  = 'Radio';
263
    $fid    = 20;
264
    $fvalue = 'XoopsFormRadio';
265
    $result = $xoopsDB->query(
266
        'SELECT * FROM ' . $xoopsDB->prefix('modulebuilder_fieldelements') . " as fe WHERE fe.fieldelement_name = '{$fname}'"
267
    );
268
    $num_rows = $GLOBALS['xoopsDB']->getRowsNum($result);
269
    if ($num_rows == 0) {
270
        $result = $xoopsDB->query(
271
            'SELECT * FROM ' . $xoopsDB->prefix('modulebuilder_fieldelements') . " as fe WHERE fe.fieldelement_id ={$fid}"
272
        );
273
        $num_rows = $GLOBALS['xoopsDB']->getRowsNum($result);
274
        if ($num_rows > 0) {
275
            list($fe_id, $fe_mid, $fe_tid, $fe_name, $fe_value) = $xoopsDB->fetchRow($result);
276
            //add existing element at end of table
277
            $sql = 'INSERT INTO `' . $xoopsDB->prefix('modulebuilder_fieldelements') . "` (`fieldelement_id`, `fieldelement_mid`, `fieldelement_tid`, `fieldelement_name`, `fieldelement_value`) VALUES (NULL, '{$fe_mid}', '{$fe_tid}', '{$fe_name}', '{$fe_value}')";
278
            $result = $xoopsDB->query($sql);
279
            // update table fields to new id of previous 20
280
            $newId = $xoopsDB->getInsertId();
281
            $sql = 'UPDATE `' . $xoopsDB->prefix('modulebuilder_fields') . "` SET `field_element` = '{$newId}' WHERE `" . $xoopsDB->prefix('modulebuilder_fields') . "`.`field_element` = '{$fid}';";
282
            $result = $xoopsDB->query($sql);
283
            // update 20 to new element
284
            $sql = 'UPDATE `' . $xoopsDB->prefix('modulebuilder_fieldelements') . "` SET `fieldelement_mid` = '0', `fieldelement_tid` = '0', `fieldelement_name` = '{$fname}', `fieldelement_value` = '{$fvalue}' WHERE `fieldelement_id` = {$fid};";
285
            $result = $xoopsDB->query($sql);
286
        } else {
287
            //add missing element
288
            $sql = 'INSERT INTO `' . $xoopsDB->prefix('modulebuilder_fieldelements') . "` (`fieldelement_id`, `fieldelement_mid`, `fieldelement_tid`, `fieldelement_name`, `fieldelement_value`) VALUES (NULL, '0', '0', '{$fname}', '{$fvalue}')";
289
            $result = $xoopsDB->query($sql);
290
        }
291
    }
292
293
    // new form field DateTime
294
    $fname  = 'DateTime';
295
    $fid    = 21;
296
    $fvalue = 'XoopsFormDateTime';
297
    $result = $xoopsDB->query(
298
        'SELECT * FROM ' . $xoopsDB->prefix('modulebuilder_fieldelements') . " as fe WHERE fe.fieldelement_name = '{$fname}'"
299
    );
300
    $num_rows = $GLOBALS['xoopsDB']->getRowsNum($result);
301
    if ($num_rows == 0) {
302
        $result = $xoopsDB->query(
303
            'SELECT * FROM ' . $xoopsDB->prefix('modulebuilder_fieldelements') . " as fe WHERE fe.fieldelement_id ={$fid}"
304
        );
305
        $num_rows = $GLOBALS['xoopsDB']->getRowsNum($result);
306
        if ($num_rows > 0) {
307
            list($fe_id, $fe_mid, $fe_tid, $fe_name, $fe_value) = $xoopsDB->fetchRow($result);
308
            //add existing element at end of table
309
            $sql = 'INSERT INTO `' . $xoopsDB->prefix('modulebuilder_fieldelements') . "` (`fieldelement_id`, `fieldelement_mid`, `fieldelement_tid`, `fieldelement_name`, `fieldelement_value`) VALUES (NULL, '{$fe_mid}', '{$fe_tid}', '{$fe_name}', '{$fe_value}')";
310
            $result = $xoopsDB->query($sql);
311
            // update table fields to new id of previous 21
312
            $newId = $xoopsDB->getInsertId();
313
            $sql = 'UPDATE `' . $xoopsDB->prefix('modulebuilder_fields') . "` SET `field_element` = '{$newId}' WHERE `" . $xoopsDB->prefix('modulebuilder_fields') . "`.`field_element` = '{$fid}';";
314
            $result = $xoopsDB->query($sql);
315
            // update 21 to new element
316
            $sql = 'UPDATE `' . $xoopsDB->prefix('modulebuilder_fieldelements') . "` SET `fieldelement_mid` = '0', `fieldelement_tid` = '0', `fieldelement_name` = '{$fname}', `fieldelement_value` = '{$fvalue}' WHERE `fieldelement_id` = {$fid};";
317
            $result = $xoopsDB->query($sql);
318
        } else {
319
            //add missing element
320
            $sql = 'INSERT INTO `' . $xoopsDB->prefix('modulebuilder_fieldelements') . "` (`fieldelement_id`, `fieldelement_mid`, `fieldelement_tid`, `fieldelement_name`, `fieldelement_value`) VALUES (NULL, '0', '0', '{$fname}', '{$fvalue}')";
321
            $result = $xoopsDB->query($sql);
322
        }
323
    }
324
325
    // new form field DateTime
326
    $fname  = 'SelectCombo';
327
    $fid    = 22;
328
    $fvalue = 'XoopsFormSelectCombo';
329
    $result = $xoopsDB->query(
330
        'SELECT * FROM ' . $xoopsDB->prefix('modulebuilder_fieldelements') . " as fe WHERE fe.fieldelement_name = '{$fname}'"
331
    );
332
    $num_rows = $GLOBALS['xoopsDB']->getRowsNum($result);
333
    if ($num_rows == 0) {
334
        $result = $xoopsDB->query(
335
            'SELECT * FROM ' . $xoopsDB->prefix('modulebuilder_fieldelements') . " as fe WHERE fe.fieldelement_id ={$fid}"
336
        );
337
        $num_rows = $GLOBALS['xoopsDB']->getRowsNum($result);
338
        if ($num_rows > 0) {
339
            list($fe_id, $fe_mid, $fe_tid, $fe_name, $fe_value) = $xoopsDB->fetchRow($result);
340
            //add existing element at end of table
341
            $sql = 'INSERT INTO `' . $xoopsDB->prefix('modulebuilder_fieldelements') . "` (`fieldelement_id`, `fieldelement_mid`, `fieldelement_tid`, `fieldelement_name`, `fieldelement_value`) VALUES (NULL, '{$fe_mid}', '{$fe_tid}', '{$fe_name}', '{$fe_value}')";
342
            $result = $xoopsDB->query($sql);
343
            // update table fields to new id of previous 22
344
            $newId = $xoopsDB->getInsertId();
345
            $sql = 'UPDATE `' . $xoopsDB->prefix('modulebuilder_fields') . "` SET `field_element` = '{$newId}' WHERE `" . $xoopsDB->prefix('modulebuilder_fields') . "`.`field_element` = '{$fid}';";
346
            $result = $xoopsDB->query($sql);
347
            // update 22 to new element
348
            $sql = 'UPDATE `' . $xoopsDB->prefix('modulebuilder_fieldelements') . "` SET `fieldelement_mid` = '0', `fieldelement_tid` = '0', `fieldelement_name` = '{$fname}', `fieldelement_value` = '{$fvalue}' WHERE `fieldelement_id` = {$fid};";
349
            $result = $xoopsDB->query($sql);
350
        } else {
351
            //add missing element
352
            $sql = 'INSERT INTO `' . $xoopsDB->prefix('modulebuilder_fieldelements') . "` (`fieldelement_id`, `fieldelement_mid`, `fieldelement_tid`, `fieldelement_name`, `fieldelement_value`) VALUES (NULL, '0', '0', '{$fname}', '{$fvalue}')";
353
            $result = $xoopsDB->query($sql);
354
        }
355
    }
356
357
    // update table 'modulebuilder_fieldelements'
358
    $table   = $GLOBALS['xoopsDB']->prefix('modulebuilder_fieldelements');
359
    $field   = 'fieldelement_sort';
360
    $check   = $GLOBALS['xoopsDB']->queryF('SHOW COLUMNS FROM `' . $table . "` LIKE '" . $field . "'");
361
    $numRows = $GLOBALS['xoopsDB']->getRowsNum($check);
362
    if (!$numRows) {
363
        $sql = "ALTER TABLE `$table` ADD `$field` INT(8) NOT NULL DEFAULT '0' AFTER `fieldelement_value`;";
364
        if (!$result = $GLOBALS['xoopsDB']->queryF($sql)) {
365
            xoops_error($GLOBALS['xoopsDB']->error() . '<br>' . $sql);
366
            $module->setErrors("Error when adding '$field' to table '$table'.");
367
            $ret = false;
368
        }
369
    }
370
371
    // update table 'modulebuilder_fieldelements'
372
    $table   = $GLOBALS['xoopsDB']->prefix('modulebuilder_fieldelements');
373
    $field   = 'fieldelement_deftype';
374
    $check   = $GLOBALS['xoopsDB']->queryF('SHOW COLUMNS FROM `' . $table . "` LIKE '" . $field . "'");
375
    $numRows = $GLOBALS['xoopsDB']->getRowsNum($check);
376
    if (!$numRows) {
377
        $sql = "ALTER TABLE `$table` ADD `$field` INT(10) NOT NULL DEFAULT '0' AFTER `fieldelement_sort`;";
378
        if (!$result = $GLOBALS['xoopsDB']->queryF($sql)) {
379
            xoops_error($GLOBALS['xoopsDB']->error() . '<br>' . $sql);
380
            $module->setErrors("Error when adding '$field' to table '$table'.");
381
            $ret = false;
382
        }
383
    }
384
385
    // update table 'modulebuilder_fieldelements'
386
    $table   = $GLOBALS['xoopsDB']->prefix('modulebuilder_fieldelements');
387
    $field   = 'fieldelement_defvalue';
388
    $check   = $GLOBALS['xoopsDB']->queryF('SHOW COLUMNS FROM `' . $table . "` LIKE '" . $field . "'");
389
    $numRows = $GLOBALS['xoopsDB']->getRowsNum($check);
390
    if (!$numRows) {
391
        $sql = "ALTER TABLE `$table` ADD `$field` int(10) NULL DEFAULT '0' AFTER `fieldelement_deftype`;";
392
        if (!$result = $GLOBALS['xoopsDB']->queryF($sql)) {
393
            xoops_error($GLOBALS['xoopsDB']->error() . '<br>' . $sql);
394
            $module->setErrors("Error when adding '$field' to table '$table'.");
395
            $ret = false;
396
        }
397
    }
398
399
    // set default values for form elements
400
    $result = $xoopsDB->query('UPDATE ' . $xoopsDB->prefix('modulebuilder_fieldelements') . " SET `fieldelement_deftype` = 14, `fieldelement_defvalue` = '255' WHERE `xc_modulebuilder_fieldelements`.`fieldelement_id` in(2, 10, 11, 12, 13, 14, 17)");
401
    $result = $xoopsDB->query('UPDATE ' . $xoopsDB->prefix('modulebuilder_fieldelements') . " SET `fieldelement_deftype` = 15, `fieldelement_defvalue` = '0' WHERE `xc_modulebuilder_fieldelements`.`fieldelement_id` in (3, 4)");
402
    $result = $xoopsDB->query('UPDATE ' . $xoopsDB->prefix('modulebuilder_fieldelements') . " SET `fieldelement_deftype` = 2, `fieldelement_defvalue` = '10' WHERE `xc_modulebuilder_fieldelements`.`fieldelement_id` in(5, 7, 8, 15, 20, 21, 22)");
403
    $result = $xoopsDB->query('UPDATE ' . $xoopsDB->prefix('modulebuilder_fieldelements') . " SET `fieldelement_deftype` = 2, `fieldelement_defvalue` = '1' WHERE `xc_modulebuilder_fieldelements`.`fieldelement_id` in(6, 16)");
404
    $result = $xoopsDB->query('UPDATE ' . $xoopsDB->prefix('modulebuilder_fieldelements') . " SET `fieldelement_deftype` = 14, `fieldelement_defvalue` = '7' WHERE `xc_modulebuilder_fieldelements`.`fieldelement_id` in(9)");
405
    $result = $xoopsDB->query('UPDATE ' . $xoopsDB->prefix('modulebuilder_fieldelements') . " SET `fieldelement_deftype` = 14, `fieldelement_defvalue` = '3' WHERE `xc_modulebuilder_fieldelements`.`fieldelement_id` in(18)");
406
    $result = $xoopsDB->query('UPDATE ' . $xoopsDB->prefix('modulebuilder_fieldelements') . " SET `fieldelement_deftype` = 14, `fieldelement_defvalue` = '100' WHERE `xc_modulebuilder_fieldelements`.`fieldelement_id` in(19)");
407
    $result = $xoopsDB->query('UPDATE ' . $xoopsDB->prefix('modulebuilder_fieldelements') . " SET `fieldelement_deftype` = 2, `fieldelement_defvalue` = '10' WHERE `xc_modulebuilder_fieldelements`.`fieldelement_mid` > 0");
408
409
    // update table 'modulebuilder_fields'
410
    $table   = $GLOBALS['xoopsDB']->prefix('modulebuilder_fields');
411
    $field   = 'field_ifoot';
412
    $check   = $GLOBALS['xoopsDB']->queryF('SHOW COLUMNS FROM `' . $table . "` LIKE '" . $field . "'");
413
    $numRows = $GLOBALS['xoopsDB']->getRowsNum($check);
414
    if (!$numRows) {
415
        $sql = "ALTER TABLE `$table` ADD `$field` INT(8) NOT NULL DEFAULT '0' AFTER `field_user`;";
416
        if (!$result = $GLOBALS['xoopsDB']->queryF($sql)) {
417
            xoops_error($GLOBALS['xoopsDB']->error() . '<br>' . $sql);
418
            $module->setErrors("Error when adding '$field' to table '$table'.");
419
            $ret = false;
420
        }
421
    }
422
    // update table 'modulebuilder_fields'
423
    $table   = $GLOBALS['xoopsDB']->prefix('modulebuilder_fields');
424
    $field   = 'field_ibody';
425
    $check   = $GLOBALS['xoopsDB']->queryF('SHOW COLUMNS FROM `' . $table . "` LIKE '" . $field . "'");
426
    $numRows = $GLOBALS['xoopsDB']->getRowsNum($check);
427
    if (!$numRows) {
428
        $sql = "ALTER TABLE `$table` ADD `$field` INT(8) NOT NULL DEFAULT '0' AFTER `field_user`;";
429
        if (!$result = $GLOBALS['xoopsDB']->queryF($sql)) {
430
            xoops_error($GLOBALS['xoopsDB']->error() . '<br>' . $sql);
431
            $module->setErrors("Error when adding '$field' to table '$table'.");
432
            $ret = false;
433
        }
434
    }
435
    // update table 'modulebuilder_fields'
436
    $table   = $GLOBALS['xoopsDB']->prefix('modulebuilder_fields');
437
    $field   = 'field_ihead';
438
    $check   = $GLOBALS['xoopsDB']->queryF('SHOW COLUMNS FROM `' . $table . "` LIKE '" . $field . "'");
439
    $numRows = $GLOBALS['xoopsDB']->getRowsNum($check);
440
    if (!$numRows) {
441
        $sql = "ALTER TABLE `$table` ADD `$field` INT(8) NOT NULL DEFAULT '0' AFTER `field_user`;";
442
        if (!$result = $GLOBALS['xoopsDB']->queryF($sql)) {
443
            xoops_error($GLOBALS['xoopsDB']->error() . '<br>' . $sql);
444
            $module->setErrors("Error when adding '$field' to table '$table'.");
445
            $ret = false;
446
        }
447
    }
448
449
    // update table 'modulebuilder_morefiles'
450
    $table   = $GLOBALS['xoopsDB']->prefix('modulebuilder_morefiles');
451
    $field   = 'file_type';
452
    $check   = $GLOBALS['xoopsDB']->queryF('SHOW COLUMNS FROM `' . $table . "` LIKE '" . $field . "'");
453
    $numRows = $GLOBALS['xoopsDB']->getRowsNum($check);
454
    if (!$numRows) {
455
        $sql = "ALTER TABLE `$table` ADD `$field` INT(8) NOT NULL DEFAULT '0' AFTER `file_mid`;";
456
        if (!$result = $GLOBALS['xoopsDB']->queryF($sql)) {
457
            xoops_error($GLOBALS['xoopsDB']->error() . '<br>' . $sql);
458
            $module->setErrors("Error when adding '$field' to table '$table'.");
459
            $ret = false;
460
        }
461
    }
462
463
    // update table 'modulebuilder_morefiles'
464
    $table   = $GLOBALS['xoopsDB']->prefix('modulebuilder_morefiles');
465
    $field   = 'file_upload';
466
    $check   = $GLOBALS['xoopsDB']->queryF('SHOW COLUMNS FROM `' . $table . "` LIKE '" . $field . "'");
467
    $numRows = $GLOBALS['xoopsDB']->getRowsNum($check);
468
    if (!$numRows) {
469
        $sql = "ALTER TABLE `$table` ADD `$field` varchar(255) NOT NULL DEFAULT '' AFTER `file_extension`;";
470
        if (!$result = $GLOBALS['xoopsDB']->queryF($sql)) {
471
            xoops_error($GLOBALS['xoopsDB']->error() . '<br>' . $sql);
472
            $module->setErrors("Error when adding '$field' to table '$table'.");
473
            $ret = false;
474
        }
475
    }
476
477
    // new form field text UUID
478
    $fname     = 'TextUuid';
479
    $fid       = 23;
480
    $fvalue    = 'XoopsFormTextUuid';
481
    $fsort     = 22;
482
    $fdeftype  = 14;
483
    $fdefvalue = 45;
484
    $result = $xoopsDB->query(
485
        'SELECT * FROM ' . $xoopsDB->prefix('modulebuilder_fieldelements') . " as fe WHERE fe.fieldelement_name = '{$fname}'"
486
    );
487
    $num_rows = $GLOBALS['xoopsDB']->getRowsNum($result);
488
    if ($num_rows == 0) {
489
        $result = $xoopsDB->query(
490
            'SELECT * FROM ' . $xoopsDB->prefix('modulebuilder_fieldelements') . " as fe WHERE fe.fieldelement_id ={$fid}"
491
        );
492
        $num_rows = $GLOBALS['xoopsDB']->getRowsNum($result);
493
        if ($num_rows > 0) {
494
            list($fe_id, $fe_mid, $fe_tid, $fe_name, $fe_value, $fe_sort, $fe_deftype, $fe_defvalue) = $xoopsDB->fetchRow($result);
495
            //add existing element at end of table
496
            $sql = 'INSERT INTO `' . $xoopsDB->prefix('modulebuilder_fieldelements') . "` (`fieldelement_id`, `fieldelement_mid`, `fieldelement_tid`, `fieldelement_name`, `fieldelement_value`, `fieldelement_sort`, `fieldelement_deftype`, `fieldelement_defvalue`) VALUES (NULL, '{$fe_mid}', '{$fe_tid}', '{$fe_name}', '{$fe_value}', '{$fe_sort}', '{$fe_deftype}', '{$fe_defvalue}')";
497
            $result = $xoopsDB->query($sql);
498
            // update table fields to new id of previous 23
499
            $newId = $xoopsDB->getInsertId();
500
            $sql = 'UPDATE `' . $xoopsDB->prefix('modulebuilder_fields') . "` SET `field_element` = '{$newId}' WHERE `" . $xoopsDB->prefix('modulebuilder_fields') . "`.`field_element` = '{$fid}';";
501
            $result = $xoopsDB->query($sql);
502
            // update 23 to new element
503
            $sql = 'UPDATE `' . $xoopsDB->prefix('modulebuilder_fieldelements') . "` SET `fieldelement_mid` = '0', `fieldelement_tid` = '0', `fieldelement_name` = '{$fname}', `fieldelement_value` = '{$fvalue}', `fieldelement_sort` = '{$fsort}', `fieldelement_deftype` = '{$fdeftype}', `fieldelement_defvalue` = '{$fdefvalue}' WHERE `fieldelement_id` = {$fid};";
504
            $result = $xoopsDB->query($sql);
505
        } else {
506
            //add missing element
507
            $sql = 'INSERT INTO `' . $xoopsDB->prefix('modulebuilder_fieldelements') . "` (`fieldelement_id`, `fieldelement_mid`, `fieldelement_tid`, `fieldelement_name`, `fieldelement_value`, `fieldelement_sort`, `fieldelement_deftype`, `fieldelement_defvalue`) VALUES (NULL, '0', '0', '{$fname}', '{$fvalue}', '{$fsort}', '{$fdeftype}', '{$fdefvalue}')";
508
            $result = $xoopsDB->query($sql);
509
        }
510
    }
511
512
    // new form field text IP
513
    $fname     = 'TextIp';
514
    $fid       = 24;
515
    $fvalue    = 'XoopsFormTextIp';
516
    $fsort     = 23;
517
    $fdeftype  = 14;
518
    $fdefvalue = 16;
519
    $result = $xoopsDB->query(
520
        'SELECT * FROM ' . $xoopsDB->prefix('modulebuilder_fieldelements') . " as fe WHERE fe.fieldelement_name = '{$fname}'"
521
    );
522
    $num_rows = $GLOBALS['xoopsDB']->getRowsNum($result);
523
    if ($num_rows == 0) {
524
        $result = $xoopsDB->query(
525
            'SELECT * FROM ' . $xoopsDB->prefix('modulebuilder_fieldelements') . " as fe WHERE fe.fieldelement_id ={$fid}"
526
        );
527
        $num_rows = $GLOBALS['xoopsDB']->getRowsNum($result);
528
        if ($num_rows > 0) {
529
            list($fe_id, $fe_mid, $fe_tid, $fe_name, $fe_value, $fe_sort, $fe_deftype, $fe_defvalue) = $xoopsDB->fetchRow($result);
530
            //add existing element at end of table
531
            $sql = 'INSERT INTO `' . $xoopsDB->prefix('modulebuilder_fieldelements') . "` (`fieldelement_id`, `fieldelement_mid`, `fieldelement_tid`, `fieldelement_name`, `fieldelement_value`, `fieldelement_sort`, `fieldelement_deftype`, `fieldelement_defvalue`) VALUES (NULL, '{$fe_mid}', '{$fe_tid}', '{$fe_name}', '{$fe_value}', '{$fe_sort}', '{$fe_deftype}', '{$fe_defvalue}')";
532
            $result = $xoopsDB->query($sql);
533
            // update table fields to new id of previous 23
534
            $newId = $xoopsDB->getInsertId();
535
            $sql = 'UPDATE `' . $xoopsDB->prefix('modulebuilder_fields') . "` SET `field_element` = '{$newId}' WHERE `" . $xoopsDB->prefix('modulebuilder_fields') . "`.`field_element` = '{$fid}';";
536
            $result = $xoopsDB->query($sql);
537
            // update 23 to new element
538
            $sql = 'UPDATE `' . $xoopsDB->prefix('modulebuilder_fieldelements') . "` SET `fieldelement_mid` = '0', `fieldelement_tid` = '0', `fieldelement_name` = '{$fname}', `fieldelement_value` = '{$fvalue}', `fieldelement_sort` = '{$fsort}', `fieldelement_deftype` = '{$fdeftype}', `fieldelement_defvalue` = '{$fdefvalue}' WHERE `fieldelement_id` = {$fid};";
539
            $result = $xoopsDB->query($sql);
540
        } else {
541
            //add missing element
542
            $sql = 'INSERT INTO `' . $xoopsDB->prefix('modulebuilder_fieldelements') . "` (`fieldelement_id`, `fieldelement_mid`, `fieldelement_tid`, `fieldelement_name`, `fieldelement_value`, `fieldelement_sort`, `fieldelement_deftype`, `fieldelement_defvalue`) VALUES (NULL, '0', '0', '{$fname}', '{$fvalue}', '{$fsort}', '{$fdeftype}', '{$fdefvalue}')";
543
            $result = $xoopsDB->query($sql);
544
        }
545
    }
546
547
    // update table 'modulebuilder_fieldelements'
548
    $table   = $GLOBALS['xoopsDB']->prefix('modulebuilder_fieldelements');
549
    $field   = 'fieldelement_defvalue';
550
    $sql = "ALTER TABLE `$table` CHANGE `$field` `$field` varchar(5) NULL DEFAULT NULL;";
551
    if (!$result = $GLOBALS['xoopsDB']->queryF($sql)) {
552
        xoops_error($GLOBALS['xoopsDB']->error() . '<br>' . $sql);
553
        $module->setErrors("Error when changing '$field' in table '$table'.");
554
        $ret = false;
555
    }
556
557
    // new form field text comments
558
    $fname     = 'TextComments';
559
    $fid       = 25;
560
    $fvalue    = 'XoopsFormTextComments';
561
    $fsort     = 24;
562
    $fdeftype  = 2;
563
    $fdefvalue = 10;
564
    $result = $xoopsDB->query(
565
        'SELECT * FROM ' . $xoopsDB->prefix('modulebuilder_fieldelements') . " as fe WHERE fe.fieldelement_name = '{$fname}'"
566
    );
567
    $num_rows = $GLOBALS['xoopsDB']->getRowsNum($result);
568
    if ($num_rows == 0) {
569
        $result = $xoopsDB->query(
570
            'SELECT * FROM ' . $xoopsDB->prefix('modulebuilder_fieldelements') . " as fe WHERE fe.fieldelement_id ={$fid}"
571
        );
572
        $num_rows = $GLOBALS['xoopsDB']->getRowsNum($result);
573
        if ($num_rows > 0) {
574
            list($fe_id, $fe_mid, $fe_tid, $fe_name, $fe_value, $fe_sort, $fe_deftype, $fe_defvalue) = $xoopsDB->fetchRow($result);
575
            //add existing element at end of table
576
            $sql = 'INSERT INTO `' . $xoopsDB->prefix('modulebuilder_fieldelements') . "` (`fieldelement_id`, `fieldelement_mid`, `fieldelement_tid`, `fieldelement_name`, `fieldelement_value`, `fieldelement_sort`, `fieldelement_deftype`, `fieldelement_defvalue`) VALUES (NULL, '{$fe_mid}', '{$fe_tid}', '{$fe_name}', '{$fe_value}', '{$fe_sort}', '{$fe_deftype}', '{$fe_defvalue}')";
577
            $result = $xoopsDB->query($sql);
578
            // update table fields to new id of previous 25
579
            $newId = $xoopsDB->getInsertId();
580
            $sql = 'UPDATE `' . $xoopsDB->prefix('modulebuilder_fields') . "` SET `field_element` = '{$newId}' WHERE `" . $xoopsDB->prefix('modulebuilder_fields') . "`.`field_element` = '{$fid}';";
581
            $result = $xoopsDB->query($sql);
582
            // update 25 to new element
583
            $sql = 'UPDATE `' . $xoopsDB->prefix('modulebuilder_fieldelements') . "` SET `fieldelement_mid` = '0', `fieldelement_tid` = '0', `fieldelement_name` = '{$fname}', `fieldelement_value` = '{$fvalue}', `fieldelement_sort` = '{$fsort}', `fieldelement_deftype` = '{$fdeftype}', `fieldelement_defvalue` = '{$fdefvalue}' WHERE `fieldelement_id` = {$fid};";
584
            $result = $xoopsDB->query($sql);
585
        } else {
586
            //add missing element
587
            $sql = 'INSERT INTO `' . $xoopsDB->prefix('modulebuilder_fieldelements') . "` (`fieldelement_id`, `fieldelement_mid`, `fieldelement_tid`, `fieldelement_name`, `fieldelement_value`, `fieldelement_sort`, `fieldelement_deftype`, `fieldelement_defvalue`) VALUES (NULL, '0', '0', '{$fname}', '{$fvalue}', '{$fsort}', '{$fdeftype}', '{$fdefvalue}')";
588
            $result = $xoopsDB->query($sql);
589
        }
590
    }
591
    // new form field text ratings
592
    $fname     = 'TextRatings';
593
    $fid       = 26;
594
    $fvalue    = 'XoopsFormTextRatings';
595
    $fsort     = 25;
596
    $fdeftype  = 7;
597
    $fdefvalue = '10, 2';
598
    $result = $xoopsDB->query(
599
        'SELECT * FROM ' . $xoopsDB->prefix('modulebuilder_fieldelements') . " as fe WHERE fe.fieldelement_name = '{$fname}'"
600
    );
601
    $num_rows = $GLOBALS['xoopsDB']->getRowsNum($result);
602
    if ($num_rows == 0) {
603
        $result = $xoopsDB->query(
604
            'SELECT * FROM ' . $xoopsDB->prefix('modulebuilder_fieldelements') . " as fe WHERE fe.fieldelement_id ={$fid}"
605
        );
606
        $num_rows = $GLOBALS['xoopsDB']->getRowsNum($result);
607
        if ($num_rows > 0) {
608
            list($fe_id, $fe_mid, $fe_tid, $fe_name, $fe_value, $fe_sort, $fe_deftype, $fe_defvalue) = $xoopsDB->fetchRow($result);
609
            //add existing element at end of table
610
            $sql = 'INSERT INTO `' . $xoopsDB->prefix('modulebuilder_fieldelements') . "` (`fieldelement_id`, `fieldelement_mid`, `fieldelement_tid`, `fieldelement_name`, `fieldelement_value`, `fieldelement_sort`, `fieldelement_deftype`, `fieldelement_defvalue`) VALUES (NULL, '{$fe_mid}', '{$fe_tid}', '{$fe_name}', '{$fe_value}', '{$fe_sort}', '{$fe_deftype}', '{$fe_defvalue}')";
611
            $result = $xoopsDB->query($sql);
612
            // update table fields to new id of previous 26
613
            $newId = $xoopsDB->getInsertId();
614
            $sql = 'UPDATE `' . $xoopsDB->prefix('modulebuilder_fields') . "` SET `field_element` = '{$newId}' WHERE `" . $xoopsDB->prefix('modulebuilder_fields') . "`.`field_element` = '{$fid}';";
615
            $result = $xoopsDB->query($sql);
616
            // update 26 to new element
617
            $sql = 'UPDATE `' . $xoopsDB->prefix('modulebuilder_fieldelements') . "` SET `fieldelement_mid` = '0', `fieldelement_tid` = '0', `fieldelement_name` = '{$fname}', `fieldelement_value` = '{$fvalue}', `fieldelement_sort` = '{$fsort}', `fieldelement_deftype` = '{$fdeftype}', `fieldelement_defvalue` = '{$fdefvalue}' WHERE `fieldelement_id` = {$fid};";
618
            $result = $xoopsDB->query($sql);
619
        } else {
620
            //add missing element
621
            $sql = 'INSERT INTO `' . $xoopsDB->prefix('modulebuilder_fieldelements') . "` (`fieldelement_id`, `fieldelement_mid`, `fieldelement_tid`, `fieldelement_name`, `fieldelement_value`, `fieldelement_sort`, `fieldelement_deftype`, `fieldelement_defvalue`) VALUES (NULL, '0', '0', '{$fname}', '{$fvalue}', '{$fsort}', '{$fdeftype}', '{$fdefvalue}')";
622
            $result = $xoopsDB->query($sql);
623
        }
624
    }
625
    // new form field text votes
626
    $fname     = 'TextVotes';
627
    $fid       = 27;
628
    $fvalue    = 'XoopsFormTextVotes';
629
    $fsort     = 26;
630
    $fdeftype  = 2;
631
    $fdefvalue = 10;
632
    $result = $xoopsDB->query(
633
        'SELECT * FROM ' . $xoopsDB->prefix('modulebuilder_fieldelements') . " as fe WHERE fe.fieldelement_name = '{$fname}'"
634
    );
635
    $num_rows = $GLOBALS['xoopsDB']->getRowsNum($result);
636
    if ($num_rows == 0) {
637
        $result = $xoopsDB->query(
638
            'SELECT * FROM ' . $xoopsDB->prefix('modulebuilder_fieldelements') . " as fe WHERE fe.fieldelement_id ={$fid}"
639
        );
640
        $num_rows = $GLOBALS['xoopsDB']->getRowsNum($result);
641
        if ($num_rows > 0) {
642
            list($fe_id, $fe_mid, $fe_tid, $fe_name, $fe_value, $fe_sort, $fe_deftype, $fe_defvalue) = $xoopsDB->fetchRow($result);
643
            //add existing element at end of table
644
            $sql = 'INSERT INTO `' . $xoopsDB->prefix('modulebuilder_fieldelements') . "` (`fieldelement_id`, `fieldelement_mid`, `fieldelement_tid`, `fieldelement_name`, `fieldelement_value`, `fieldelement_sort`, `fieldelement_deftype`, `fieldelement_defvalue`) VALUES (NULL, '{$fe_mid}', '{$fe_tid}', '{$fe_name}', '{$fe_value}', '{$fe_sort}', '{$fe_deftype}', '{$fe_defvalue}')";
645
            $result = $xoopsDB->query($sql);
646
            // update table fields to new id of previous 27
647
            $newId = $xoopsDB->getInsertId();
648
            $sql = 'UPDATE `' . $xoopsDB->prefix('modulebuilder_fields') . "` SET `field_element` = '{$newId}' WHERE `" . $xoopsDB->prefix('modulebuilder_fields') . "`.`field_element` = '{$fid}';";
649
            $result = $xoopsDB->query($sql);
650
            // update 27 to new element
651
            $sql = 'UPDATE `' . $xoopsDB->prefix('modulebuilder_fieldelements') . "` SET `fieldelement_mid` = '0', `fieldelement_tid` = '0', `fieldelement_name` = '{$fname}', `fieldelement_value` = '{$fvalue}', `fieldelement_sort` = '{$fsort}', `fieldelement_deftype` = '{$fdeftype}', `fieldelement_defvalue` = '{$fdefvalue}' WHERE `fieldelement_id` = {$fid};";
652
            $result = $xoopsDB->query($sql);
653
        } else {
654
            //add missing element
655
            $sql = 'INSERT INTO `' . $xoopsDB->prefix('modulebuilder_fieldelements') . "` (`fieldelement_id`, `fieldelement_mid`, `fieldelement_tid`, `fieldelement_name`, `fieldelement_value`, `fieldelement_sort`, `fieldelement_deftype`, `fieldelement_defvalue`) VALUES (NULL, '0', '0', '{$fname}', '{$fvalue}', '{$fsort}', '{$fdeftype}', '{$fdefvalue}')";
656
            $result = $xoopsDB->query($sql);
657
        }
658
    }
659
    // new form field text votes
660
    $fname     = 'TextReads';
661
    $fid       = 28;
662
    $fvalue    = 'XoopsFormTextReads';
663
    $fsort     = 27;
664
    $fdeftype  = 2;
665
    $fdefvalue = 10;
666
    $result = $xoopsDB->query(
667
        'SELECT * FROM ' . $xoopsDB->prefix('modulebuilder_fieldelements') . " as fe WHERE fe.fieldelement_name = '{$fname}'"
668
    );
669
    $num_rows = $GLOBALS['xoopsDB']->getRowsNum($result);
670
    if ($num_rows == 0) {
671
        $result = $xoopsDB->query(
672
            'SELECT * FROM ' . $xoopsDB->prefix('modulebuilder_fieldelements') . " as fe WHERE fe.fieldelement_id ={$fid}"
673
        );
674
        $num_rows = $GLOBALS['xoopsDB']->getRowsNum($result);
675
        if ($num_rows > 0) {
676
            list($fe_id, $fe_mid, $fe_tid, $fe_name, $fe_value, $fe_sort, $fe_deftype, $fe_defvalue) = $xoopsDB->fetchRow($result);
677
            //add existing element at end of table
678
            $sql = 'INSERT INTO `' . $xoopsDB->prefix('modulebuilder_fieldelements') . "` (`fieldelement_id`, `fieldelement_mid`, `fieldelement_tid`, `fieldelement_name`, `fieldelement_value`, `fieldelement_sort`, `fieldelement_deftype`, `fieldelement_defvalue`) VALUES (NULL, '{$fe_mid}', '{$fe_tid}', '{$fe_name}', '{$fe_value}', '{$fe_sort}', '{$fe_deftype}', '{$fe_defvalue}')";
679
            $result = $xoopsDB->query($sql);
680
            // update table fields to new id of previous 28
681
            $newId = $xoopsDB->getInsertId();
682
            $sql = 'UPDATE `' . $xoopsDB->prefix('modulebuilder_fields') . "` SET `field_element` = '{$newId}' WHERE `" . $xoopsDB->prefix('modulebuilder_fields') . "`.`field_element` = '{$fid}';";
683
            $result = $xoopsDB->query($sql);
684
            // update 28 to new element
685
            $sql = 'UPDATE `' . $xoopsDB->prefix('modulebuilder_fieldelements') . "` SET `fieldelement_mid` = '0', `fieldelement_tid` = '0', `fieldelement_name` = '{$fname}', `fieldelement_value` = '{$fvalue}', `fieldelement_sort` = '{$fsort}', `fieldelement_deftype` = '{$fdeftype}', `fieldelement_defvalue` = '{$fdefvalue}' WHERE `fieldelement_id` = {$fid};";
686
            $result = $xoopsDB->query($sql);
687
        } else {
688
            //add missing element
689
            $sql = 'INSERT INTO `' . $xoopsDB->prefix('modulebuilder_fieldelements') . "` (`fieldelement_id`, `fieldelement_mid`, `fieldelement_tid`, `fieldelement_name`, `fieldelement_value`, `fieldelement_sort`, `fieldelement_deftype`, `fieldelement_defvalue`) VALUES (NULL, '0', '0', '{$fname}', '{$fvalue}', '{$fsort}', '{$fdeftype}', '{$fdefvalue}')";
690
            $result = $xoopsDB->query($sql);
691
        }
692
    }
693
694
    // update table 'modulebuilder_tables'
695
    $table   = $GLOBALS['xoopsDB']->prefix('modulebuilder_tables');
696
    $field   = 'table_reads';
697
    $check   = $GLOBALS['xoopsDB']->queryF('SHOW COLUMNS FROM `' . $table . "` LIKE '" . $field . "'");
698
    $numRows = $GLOBALS['xoopsDB']->getRowsNum($check);
699
    if (!$numRows) {
700
        $sql = "ALTER TABLE `$table` ADD `$field` TINYINT(1) NOT NULL DEFAULT '0' AFTER `table_rss`;";
701
        if (!$result = $GLOBALS['xoopsDB']->queryF($sql)) {
702
            xoops_error($GLOBALS['xoopsDB']->error() . '<br>' . $sql);
703
            $module->setErrors("Error when adding '$field' to table '$table'.");
704
            $ret = false;
705
        }
706
    }
707
708
    return $ret;
709
}
710
711
/**
712
 * function remove unnecessary index.php from files folder
713
 * which could be added by index_scan module
714
 *
715
 * @return bool
716
 */
717
function clean_index_files()
718
{
719
    $files = [];
720
    $files[] = XOOPS_ROOT_PATH . '/modules/modulebuilder/files/commonfiles/admin/index.php';
721
    $files[] = XOOPS_ROOT_PATH . '/modules/modulebuilder/files/commonfiles/assets/index.php';
722
    $files[] = XOOPS_ROOT_PATH . '/modules/modulebuilder/files/commonfiles/class/index.php';
723
    $files[] = XOOPS_ROOT_PATH . '/modules/modulebuilder/files/commonfiles/include/index.php';
724
    $files[] = XOOPS_ROOT_PATH . '/modules/modulebuilder/files/commonfiles/language/index.php';
725
    $files[] = XOOPS_ROOT_PATH . '/modules/modulebuilder/files/commonfiles/preloads/index.php';
726
    $files[] = XOOPS_ROOT_PATH . '/modules/modulebuilder/files/ratingfiles/assets/index.php';
727
    $files[] = XOOPS_ROOT_PATH . '/modules/modulebuilder/files/ratingfiles/class/index.php';
728
    $files[] = XOOPS_ROOT_PATH . '/modules/modulebuilder/files/ratingfiles/templates/index.php';
729
730
    foreach($files as $file) {
731
        unlink($file);
732
    }
733
734
    return true;
735
}
736