Passed
Push — master ( 757841...94ec22 )
by Goffy
06:13 queued 02:50
created

manage.php ➔ addEditForm()   B

Complexity

Conditions 2
Paths 2

Size

Total Lines 45
Code Lines 36

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 2
eloc 36
nc 2
nop 13
dl 0
loc 45
rs 8.8571
c 0
b 0
f 0

How to fix   Many Parameters   

Many Parameters

Methods with many parameters are not only hard to understand, but their parameters also often become inconsistent when you need more, or different data.

There are several approaches to avoid long parameter lists:

1
<?php declare(strict_types=1);
2
3
/**
4
 * ****************************************************************************
5
 * MYIFRAME - MODULE FOR XOOPS
6
 * Copyright (c) Hervé Thouzard of Instant Zero (https://www.instant-zero.com)
7
 * ****************************************************************************
8
 */
9
10
use Xmf\Module\Admin;
11
use Xmf\Request;
12
13
require_once __DIR__ . '/admin_header.php';
14
require_once XOOPS_ROOT_PATH . '/modules/myiframe/include/functions.php';
15
16
// Verify if the table is up to date
17
if (!myiframe_FieldExists('frame_frameid', $GLOBALS['xoopsDB']->prefix('myiframe'))) {
18
    $result = $GLOBALS['xoopsDB']->queryF('ALTER TABLE ' . $GLOBALS['xoopsDB']->prefix('myiframe') . ' CHANGE `frameid` `frame_frameid` INT( 8 ) NOT NULL AUTO_INCREMENT');
19
    $result = $GLOBALS['xoopsDB']->queryF('ALTER TABLE ' . $GLOBALS['xoopsDB']->prefix('myiframe') . " CHANGE `created` `frame_created` INT( 10 ) UNSIGNED NOT NULL DEFAULT '0'");
20
    $result = $GLOBALS['xoopsDB']->queryF('ALTER TABLE ' . $GLOBALS['xoopsDB']->prefix('myiframe') . " CHANGE `uid` `frame_uid` MEDIUMINT( 8 ) UNSIGNED NOT NULL DEFAULT '0'");
21
    $result = $GLOBALS['xoopsDB']->queryF('ALTER TABLE ' . $GLOBALS['xoopsDB']->prefix('myiframe') . ' CHANGE `longdesc` `frame_description` VARCHAR( 255 ) NOT NULL');
22
    $result = $GLOBALS['xoopsDB']->queryF('ALTER TABLE ' . $GLOBALS['xoopsDB']->prefix('myiframe') . ' CHANGE `width` `frame_width` VARCHAR( 15 ) NOT NULL');
23
    $result = $GLOBALS['xoopsDB']->queryF('ALTER TABLE ' . $GLOBALS['xoopsDB']->prefix('myiframe') . ' CHANGE `height` `frame_height` VARCHAR( 15 ) NOT NULL');
24
    $result = $GLOBALS['xoopsDB']->queryF('ALTER TABLE ' . $GLOBALS['xoopsDB']->prefix('myiframe') . " CHANGE `align` `frame_align` SMALLINT( 2 ) NOT NULL DEFAULT '0'");
25
    $result = $GLOBALS['xoopsDB']->queryF('ALTER TABLE ' . $GLOBALS['xoopsDB']->prefix('myiframe') . " CHANGE `frameborder` `frame_frameborder` SMALLINT( 3 ) NOT NULL DEFAULT '0'");
26
    $result = $GLOBALS['xoopsDB']->queryF('ALTER TABLE ' . $GLOBALS['xoopsDB']->prefix('myiframe') . " CHANGE `marginwidth` `frame_marginwidth` SMALLINT( 3 ) NOT NULL DEFAULT '0'");
27
    $result = $GLOBALS['xoopsDB']->queryF('ALTER TABLE ' . $GLOBALS['xoopsDB']->prefix('myiframe') . " CHANGE `marginheight` `frame_marginheight` SMALLINT( 3 ) NOT NULL DEFAULT '0'");
28
    $result = $GLOBALS['xoopsDB']->queryF('ALTER TABLE ' . $GLOBALS['xoopsDB']->prefix('myiframe') . " CHANGE `scrolling` `frame_scrolling` SMALLINT( 1 ) NOT NULL DEFAULT '0'");
29
    $result = $GLOBALS['xoopsDB']->queryF('ALTER TABLE ' . $GLOBALS['xoopsDB']->prefix('myiframe') . " CHANGE `hits` `frame_hits` INT( 8 ) UNSIGNED NOT NULL DEFAULT '0'");
30
    $result = $GLOBALS['xoopsDB']->queryF('ALTER TABLE ' . $GLOBALS['xoopsDB']->prefix('myiframe') . ' CHANGE `url` `frame_url` VARCHAR( 255 ) NOT NULL');
31
    header('Location : ' . XOOPS_URL . '/modules/system/admin.php?fct=modulesadmin&op=update&module=myiframe');
32
}
33
34
$module_id = $xoopsModule->getVar('mid');
35
$op        = 'default';
36
/** @var MyiframeBaseHandler $iframeHandler */
37
$iframeHandler = $helper->getHandler('MyiframeBase');
38
39
/**
40
 * @param $frameid
41
 * @param $Action
42
 * @param $FormTitle
43
 * @param $longdesc
44
 * @param $width
45
 * @param $height
46
 * @param $align
47
 * @param $frameborder
48
 * @param $marginwidth
49
 * @param $marginheight
50
 * @param $scrolling
51
 * @param $url
52
 * @param $LabelSubmitButton
53
 */
54
function addEditForm($frameid, $Action, $FormTitle, $longdesc, $width, $height, $align, $frameborder, $marginwidth, $marginheight, $scrolling, $url, $LabelSubmitButton): void
55
{
56
    require_once XOOPS_ROOT_PATH . '/class/xoopsformloader.php';
57
    global $xoopsModule;
58
59
    $sform = new \XoopsThemeForm($FormTitle, 'indexform', XOOPS_URL . '/modules/' . $xoopsModule->getVar('dirname') . '/admin/manage.php');
60
    $sform->addElement(new \XoopsFormText(_AM_MYIFRAME_DESC, 'longdesc', 50, 255, $longdesc), false);
61
    $sform->addElement(new \XoopsFormText(_AM_MYIFRAME_WIDTH, 'width', 10, 15, $width), false);
62
    $sform->addElement(new \XoopsFormText(_AM_MYIFRAME_HEIGHT, 'height', 10, 15, $height), false);
63
64
    $selalign = new \XoopsFormSelect(_AM_MYIFRAME_ALIGN, 'align', $align);
65
    $selalign->addOption(1, _AM_MYIFRAME_ALIGN_TOP);
66
    $selalign->addOption(2, _AM_MYIFRAME_ALIGN_MIDDLE);
67
    $selalign->addOption(3, _AM_MYIFRAME_ALIGN_BOTTOM);
68
    $selalign->addOption(4, _AM_MYIFRAME_ALIGN_LEFT);
69
    $selalign->addOption(5, _AM_MYIFRAME_ALIGN_RIGHT);
70
    $selalign->setValue($align);
71
    $sform->addElement($selalign);
72
73
    $sform->addElement(new \XoopsFormText(_AM_MYIFRAME_FRAMEBORDER, 'frameborder', 3, 3, $frameborder), false);
74
    $sform->addElement(new \XoopsFormText(_AM_MYIFRAME_MARGINWIDTH, 'marginwidth', 3, 3, $marginwidth), false);
75
    $sform->addElement(new \XoopsFormText(_AM_MYIFRAME_MARGINHEIGHT, 'marginheight', 3, 3, $marginheight), false);
76
77
    $selscroll = new \XoopsFormSelect(_AM_MYIFRAME_SCROLLING, 'scrolling', $scrolling);
78
    $selscroll->addOption(1, _YES);
79
    $selscroll->addOption(2, _NO);
80
    $selscroll->addOption(3, _AM_MYIFRAME_AUTO);
81
    $selscroll->setValue($scrolling);
82
    $sform->addElement($selscroll);
83
84
    $sform->addElement(new \XoopsFormText(_AM_MYIFRAME_URL, 'url', 50, 255, $url), true);
85
    $sform->addElement(new \XoopsFormHidden('op', $Action), false);
86
    if (!empty($frameid)) {
87
        $sform->addElement(new \XoopsFormHidden('frameid', $frameid), false);
88
    }
89
90
    $buttonTray = new \XoopsFormElementTray('', '');
91
    $submit_btn = new \XoopsFormButton('', 'submit', $LabelSubmitButton, 'submit');
92
    $buttonTray->addElement($submit_btn);
93
    $cancel_btn = new \XoopsFormButton('', 'reset', _AM_MYIFRAME_RESETBUTTON, 'reset');
94
    $buttonTray->addElement($cancel_btn);
95
    $sform->addElement($buttonTray);
96
    $sform->display();
97
    require_once __DIR__ . '/admin_footer.php';
98
}
99
100
// ******************************************************************************************************************************************
101
// **** Main ********************************************************************************************************************************
102
// ******************************************************************************************************************************************
103
104
$op = Request::getCmd('op', '');
105
106
switch ($op) {
107
    case 'verifybeforeedit':
108
        if (Request::hasVar('submit', 'POST') && '' !== $_POST['submit']) {
109
            if ('' === $_POST['longdesc']) {
110
                xoops_cp_header();
111
                $adminObject = Admin::getInstance();
112
                $adminObject->displayNavigation(basename(__FILE__));
113
                echo "<table width='100%' border='0' cellspacing='1' class='outer'>\n";
114
                echo '<tr><td class="odd">';
115
                echo "<a href='manage.php'><h4>" . _AM_MYIFRAME_CONFIG . '</h4></a>';
116
                echo _AM_MYIFRAME_ERROR_ADD_INDEX . ' 1';
117
                echo '</td></tr></table>';
118
                require_once __DIR__ . '/admin_footer.php';
119
                xoops_cp_footer();
120
                exit();
121
            }
122
123
            $frameid = $_POST['frameid'];
124
            $frame   = $iframeHandler->get($frameid);
125
            $frame->unsetNew();
126
            $frame->setVar('frame_description', $_POST['longdesc']);
127
            $frame->setVar('frame_width', $_POST['width']);
128
            $frame->setVar('frame_height', $_POST['height']);
129
            $frame->setVar('frame_align', $_POST['align']);
130
            $frame->setVar('frame_frameborder', $_POST['frameborder']);
131
            $frame->setVar('frame_marginwidth', $_POST['marginwidth']);
132
            $frame->setVar('frame_marginheight', $_POST['marginheight']);
133
            $frame->setVar('frame_scrolling', $_POST['scrolling']);
134
            $frame->setVar('frame_url', $_POST['url']);
135
            $frame->setVar('frame_uid', $xoopsUser->getVar('uid'));
136
            $res = $iframeHandler->insert($frame);
137
            if (!$res) {
138
                redirect_header('manage.php', 1, _AM_MYIFRAME_ERROR_MODIFY_DB);
139
            }
140
            redirect_header('manage.php', 1, _AM_MYIFRAME_DBUPDATED);
141
        }
142
        break;
143
    case 'edit':
144
        xoops_cp_header();
145
        $adminObject = Admin::getInstance();
146
        $adminObject->displayNavigation(basename(__FILE__));
147
        if (Request::hasVar('frameid', 'GET')) {
148
            $frameid = Request::getInt('frameid', 0, 'GET');
149
            $frame   = $iframeHandler->get($frameid);
150
            addEditForm(
151
                $frameid,
152
                'verifybeforeedit',
153
                _AM_MYIFRAME_CONFIG,
154
                $frame->getVar('frame_description', 'e'),
155
                $frame->getVar('frame_width', 'e'),
156
                $frame->getVar('frame_height', 'e'),
157
                $frame->getVar('frame_align', 'e'),
158
                $frame->getVar('frame_frameborder', 'e'),
159
                $frame->getVar('frame_marginwidth', 'e'),
160
                $frame->getVar('frame_marginheight', 'e'),
161
                $frame->getVar('frame_scrolling', 'e'),
162
                $frame->getVar('frame_url', 'e'),
163
                _AM_MYIFRAME_UPDATE
164
            );
165
        } else {
166
            xoops_cp_header();
167
            $adminObject = Admin::getInstance();
168
            $adminObject->displayNavigation(basename(__FILE__));
169
            echo "<table width='100%' border='0' cellspacing='1' class='outer'>\n";
170
            echo '<tr><td class="odd">';
171
            echo "<a href='manage.php'><h4>" . _AM_MYIFRAME_CONFIG . '</h4></a>';
172
            echo _AM_MYIFRAME_ERROR_ADD_INDEX . ' 2';
173
            echo "</td></tr></table>\n";
174
            require_once __DIR__ . '/admin_footer.php';
175
            xoops_cp_footer();
176
            exit();
177
        }
178
        break;
179
    case 'delete':
180
        if (!isset($_POST['ok'])) {
181
            xoops_cp_header();
182
            $adminObject = Admin::getInstance();
183
            $adminObject->displayNavigation(basename(__FILE__));
184
            echo '<h4>' . _AM_MYIFRAME_CONFIG . '</h4>';
185
            xoops_confirm(
186
                [
187
                    'op'      => 'delete',
188
                    'frameid' => Request::getInt('frameid', 0, 'GET'),
189
                    'ok'      => 1,
190
                ],
191
                'manage.php',
192
                _AM_MYIFRAME_RUSUREDEL
193
            );
194
            require_once __DIR__ . '/admin_footer.php';
195
        } else {
196
            if (empty($_POST['frameid'])) {
197
                redirect_header('manage.php', 2, _AM_MYIFRAME_ERROR_ADD_INDEX . ' 3');
198
            }
199
            $frameid = Request::getInt('frameid', 0, 'POST');
200
            $critere = new \Criteria('frame_frameid', $frameid, '=');
201
            $iframeHandler->deleteAll($critere);
202
            redirect_header('manage.php', 1, _AM_MYIFRAME_DBUPDATED);
203
        }
204
        break;
205
    case 'verifytoadd':
206
        if (Request::hasVar('submit', 'POST') && '' !== $_POST['submit']) {
207
            if ('' === $_POST['url']) {
208
                xoops_cp_header();
209
                $adminObject = Admin::getInstance();
210
                $adminObject->displayNavigation(basename(__FILE__));
211
                echo "<table width='100%' border='0' cellspacing='1' class='outer'>\n";
212
                echo '<tr><td class="odd">';
213
                echo "<a href='manage.php'><h4>" . _AM_MYIFRAME_CONFIG . '</h4></a>';
214
                echo _AM_MYIFRAME_ERROR_ADD_INDEX . ' 4';
215
                echo "</td></tr></table>\n";
216
                require_once __DIR__ . '/admin_footer.php';
217
                xoops_cp_footer();
218
                $adminObject = Admin::getInstance();
219
                $adminObject->displayNavigation(basename(__FILE__));
220
                exit();
221
            }
222
            $frame = $iframeHandler->create(true);
223
            $frame->setVar('frame_description', $_POST['longdesc']);
224
            $frame->setVar('frame_width', $_POST['width']);
225
            $frame->setVar('frame_height', $_POST['height']);
226
            $frame->setVar('frame_align', $_POST['align']);
227
            $frame->setVar('frame_frameborder', $_POST['frameborder']);
228
            $frame->setVar('frame_marginwidth', $_POST['marginwidth']);
229
            $frame->setVar('frame_marginheight', $_POST['marginheight']);
230
            $frame->setVar('frame_scrolling', $_POST['scrolling']);
231
            $frame->setVar('frame_url', $_POST['url']);
232
            $frame->setVar('frame_created', time());
233
            $frame->setVar('frame_uid', $xoopsUser->getVar('uid'));
234
            $res = $iframeHandler->insert($frame);
235
            if (!$res) {
236
                redirect_header('manage.php', 1, _AM_MYIFRAME_ERROR_ADD_INDEX . ' 5');
237
            }
238
            redirect_header('manage.php', 1, _AM_MYIFRAME_ADDED_OK);
239
        }
240
        break;
241
    case 'addframe':
242
        xoops_cp_header();
243
        $adminObject = Admin::getInstance();
244
        $adminObject->displayNavigation(basename(__FILE__));
245
        addEditForm(0, 'verifytoadd', _AM_MYIFRAME_CONFIG, '', '100%', '', '', '0', '0', '0', 1, '', _AM_MYIFRAME_ADDBUTTON);
246
        break;
247
    case 'default':
248
    default:
249
        xoops_cp_header();
250
        $adminObject = Admin::getInstance();
251
        $adminObject->displayNavigation(basename(__FILE__));
252
        echo '<h4>' . _AM_MYIFRAME_CONFIG . "</h4><br>\n";
253
        echo "<table width='100%' border='0' cellspacing='1' class='outer'>\n";
254
        echo "<tr><th align='center'>" . _AM_MYIFRAME_ID . "</th><th align='center'>" . _AM_MYIFRAME_DESC . "</th><th align='center'>" . _AM_MYIFRAME_CREATED . "</th><th align='center'>" . _AM_MYIFRAME_HITS . "</th><th align='center'>" . _AM_MYIFRAME_ACTION . "</th></tr>\n";
255
        $critere = new \Criteria('1', '1', '=');
256
        $critere->setSort('frame_description');
257
        $frarray = $iframeHandler->getObjects($critere);
258
        $class   = 'even';
259
        $baseurl = XOOPS_URL . '/modules/' . $xoopsModule->getVar('dirname') . '/admin/manage.php';
260
        if (count($frarray) > 0) {
261
            /** @var Myiframe $frame */
262
            foreach ($frarray as $frame) {
263
                $action_edit   = "<a href='" . $baseurl . '?op=edit&frameid=' . $frame->getVar('frame_frameid') . "'><img src='../assets/images/edit.png' alt='" . _AM_MYIFRAME_EDIT . "'></a>";
264
                $action_delete = "<a href='" . $baseurl . '?op=delete&frameid=' . $frame->getVar('frame_frameid') . "'><img src='../assets/images/delete.png' alt='" . _AM_MYIFRAME_DELETE . "'></a>";
265
                if ('' === xoops_trim($frame->getVar('frame_description'))) {
266
                    $liendesc = $frame->getVar('frame_url');
267
                } else {
268
                    $liendesc = "<a href='" . XOOPS_URL . '/modules/myiframe/index.php?iframeid=' . $frame->getVar('frame_frameid') . "'>" . $frame->getVar('frame_description') . '</a>';
269
                }
270
                echo "<tr class='"
271
                     . $class
272
                     . "'><td align='center'>"
273
                     . $frame->getVar('frame_frameid')
274
                     . "</td><td align='center'>"
275
                     . $liendesc
276
                     . "</td><td align='center'>"
277
                     . formatTimestamp($frame->getVar('frame_created'))
278
                     . "</td><td align='center'>"
279
                     . $frame->getVar('frame_hits')
280
                     . "</td><td align='center'>"
281
                     . $action_edit
282
                     . '&nbsp;-&nbsp;'
283
                     . $action_delete
284
                     . "</td></tr>\n";
285
                $class = ('even' === $class) ? 'odd' : 'even';
286
            }
287
        }
288
        echo "<tr class='" . $class . "'><td colspan='5' align='center'><form name='faddframe' method='post' action='manage.php'><input type='hidden' name='op' value='addframe'><input type='submit' name='submit' value='" . _AM_MYIFRAME_ADD . "'></td></tr>";
289
        echo '</table>';
290
        require_once __DIR__ . '/admin_footer.php';
291
        break;
292
}
293
294
xoops_cp_footer();
295