Completed
Pull Request — master (#27)
by Michael
01:42
created

admin/bmh.php (1 issue)

Upgrade to new PHP Analysis Engine

These results are based on our legacy PHP analysis, consider migrating to our new PHP analysis engine instead. Learn more

1
<?php
2
/**
3
 * ****************************************************************************
4
 *  - A Project by Developers TEAM For Xoops - ( https://xoops.org )
5
 * ****************************************************************************
6
 *  XNEWSLETTER - MODULE FOR XOOPS
7
 *  Copyright (c) 2007 - 2012
8
 *  Goffy ( wedega.com )
9
 *
10
 *  You may not change or alter any portion of this comment or credits
11
 *  of supporting developers from this source code or any supporting
12
 *  source code which is considered copyrighted (c) material of the
13
 *  original comment or credit authors.
14
 *
15
 *  This program is distributed in the hope that it will be useful,
16
 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
17
 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
18
 *  GNU General Public License for more details.
19
 *  ---------------------------------------------------------------------------
20
 * @copyright  Goffy ( wedega.com )
21
 * @license    GNU General Public License 2.0
22
 * @package    xnewsletter
23
 * @author     Goffy ( [email protected] )
24
 *
25
 * ****************************************************************************
26
 */
27
28
use Xmf\Request;
29
30
$currentFile = basename(__FILE__);
31
require_once __DIR__ . '/admin_header.php';
32
xoops_cp_header();
33
34
// We recovered the value of the argument op in the URL$
35
$op          = \Xmf\Request::getString('op', 'list');
36
$bmh_id      = \Xmf\Request::getInt('bmh_id', 0);
37
$bmh_measure = \Xmf\Request::getInt('bmh_measure', 0);
38
$filter      = \Xmf\Request::getInt('bmh_measure_filter', _XNEWSLETTER_BMH_MEASURE_VAL_ALL);
39
40
switch ($op) {
41
    case 'bmh_delsubscr':
42
        if (true === \Xmf\Request::getBool('ok', false, 'POST')) {
43
            $count_err = 0;
44
45
            $bmhObj    = $helper->getHandler('Bmh')->get($bmh_id);
46
            $bmh_email = $bmhObj->getVar('bmh_email');
47
48
            $sql = "SELECT subscr_id FROM {$xoopsDB->prefix('xnewsletter_subscr')}";
49
            $sql .= " WHERE (subscr_email='{$bmh_email}')";
50
            $sql .= ' LIMIT 1;';
51 View Code Duplication
            if ($user = $xoopsDB->query($sql)) {
52
                $row_user  = $xoopsDB->fetchRow($user);
53
                $subscr_id = (int)$row_user[0];
54
            }
55
            if (0 == $subscr_id) {
56
                //set bmh_measure for all entries in bmh with this email
57
                $sql_upd_measure = "UPDATE {$xoopsDB->prefix('xnewsletter_bmh')} SET `bmh_measure` = '" . _XNEWSLETTER_BMH_MEASURE_VAL_NOTHING . "'";
58
                $sql_upd_measure .= " WHERE ((`{$xoopsDB->prefix('xnewsletter_bmh')}`.`bmh_email` ='{$bmh_email}') AND (`{$xoopsDB->prefix('xnewsletter_bmh')}`.`bmh_measure` ='0'))";
59
                $xoopsDB->query($sql_upd_measure);
60
                redirect_header('?op=list', 3, _AM_XNEWSLETTER_BMH_ERROR_NO_SUBSCRID);
61
            }
62
            $subscrObj = $helper->getHandler('Subscr')->get($subscr_id);
63
64
            // delete subscriber
65
            if (!$helper->getHandler('Subscr')->delete($subscrObj, true)) {
66
                $actionprot_err = $subscrObj->getHtmlErrors() . '<br><br><br>';
67
                ++$count_err;
68
            }
69
70
            //delete subscription
71
            $catsubscrCriteria = new \CriteriaCompo();
72
            $catsubscrCriteria->add(new \Criteria('catsubscr_subscrid', $subscr_id));
73
            $catsubscrsCount = $helper->getHandler('Catsubscr')->getCount($catsubscrCriteria);
74
            if ($catsubscrsCount > 0) {
75
                $catsubscrObjs = $helper->getHandler('Catsubscr')->getAll($catsubscrCriteria);
76
                foreach ($catsubscrObjs as $catsubscr_id => $catsubscrObj) {
77
                    $catsubscrObj    = $helper->getHandler('Catsubscr')->get($catsubscrObj->getVar('catsubscr_id'));
78
                    $catObj          = $helper->getHandler('Cat')->get($catsubscrObj->getVar('catsubscr_catid'));
79
                    $cat_mailinglist = $catObj->getVar('cat_mailinglist');
80
81 View Code Duplication
                    if ($helper->getHandler('Catsubscr')->delete($catsubscrObj, true)) {
0 ignored issues
show
This code seems to be duplicated across your project.

Duplicated code is one of the most pungent code smells. If you need to duplicate the same code in three or more different places, we strongly encourage you to look into extracting the code into a single class or operation.

You can also find more detailed suggestions in the “Code” section of your repository.

Loading history...
82
                        //handle mailinglists
83
                        if ($cat_mailinglist > 0) {
84
                            require_once XOOPS_ROOT_PATH . '/modules/xnewsletter/include/mailinglist.php';
85
                            subscribingMLHandler(0, $subscr_id, $cat_mailinglist);
86
                        }
87
                    } else {
88
                        $actionprot_err .= $catsubscrObj->getHtmlErrors();
89
                        ++$count_err;
90
                    }
91
                }
92
            }
93
94
            if (0 == $count_err) {
95
                redirect_header("?op=handle_bmh&bmh_id={$bmh_id}&bmh_measure=" . _XNEWSLETTER_BMH_MEASURE_VAL_DELETE . "&filter={$filter}", 3, _AM_XNEWSLETTER_FORMDELOK);
96
            } else {
97
                echo $actionprot_err;
98
            }
99
        } else {
100
            xoops_confirm(['ok' => true, 'bmh_id' => $bmh_id, 'op' => 'bmh_delsubscr', 'filter' => $filter], $currentFile, sprintf(_AM_XNEWSLETTER_BMH_MEASURE_DELETE_SURE));
101
        }
102
        break;
103
    case 'handle_bmh':
104
        if (0 == $bmh_id) {
105
            redirect_header($currentFile, 3, _AM_XNEWSLETTER_ERROR_NO_VALID_ID);
106
        }
107
        if (0 == $bmh_measure) {
108
            redirect_header($currentFile, 3, _AM_XNEWSLETTER_ERROR_NO_VALID_ID);
109
        }
110
111
        $bmhObj = $helper->getHandler('Bmh')->get($bmh_id);
112
113
        if (_XNEWSLETTER_BMH_MEASURE_VAL_DELETE == $bmhObj->getVar('bmh_measure')) {
114
            redirect_header("?op=list&filter={$filter}'", 3, _AM_XNEWSLETTER_BMH_MEASURE_ALREADY_DELETED);
115
        }
116
117
        $bmh_email = $bmhObj->getVar('bmh_email');
118
119
        if (_XNEWSLETTER_BMH_MEASURE_VAL_QUIT == $bmh_measure) {
120
            $sql = "UPDATE `{$xoopsDB->prefix('xnewsletter_subscr')}` INNER JOIN `{$xoopsDB->prefix('xnewsletter_catsubscr')}` ON `subscr_id` = `catsubscr_subscrid`";
121
            $sql .= ' SET `catsubscr_quited` = ' . time();
122
            $sql .= " WHERE (((`subscr_email`)='{$bmh_email}'))";
123
            if (!$result = $xoopsDB->queryF($sql)) {
124
                die('MySQL-Error: ' . $GLOBALS['xoopsDB']->error());
125
            }
126
        }
127
        //set bmh_measure for all entries in bmh with this email
128
        $sql_upd = "UPDATE {$xoopsDB->prefix('xnewsletter_bmh')}";
129
        $sql_upd .= " SET `bmh_measure` = '{$bmh_measure}', `bmh_submitter` = '{$xoopsUser->uid()}', `bmh_created` = '" . time() . "'";
130
        $sql_upd .= " WHERE ((`{$xoopsDB->prefix('xnewsletter_bmh')}`.`bmh_email` ='{$bmh_email}') AND (`{$xoopsDB->prefix('xnewsletter_bmh')}`.`bmh_measure` ='0'))";
131
        if (!$result = $xoopsDB->queryF($sql_upd)) {
132
            die('MySQL-Error: ' . $GLOBALS['xoopsDB']->error());
133
        }
134
135
        redirect_header("?op=list&filter={$filter}", 3, _AM_XNEWSLETTER_FORMOK);
136
137
        echo $bmhObj->getHtmlErrors();
138
        break;
139
    case 'run_bmh':
140
        require_once __DIR__ . '/bmh_callback_database.php';
141
//        require_once XOOPS_ROOT_PATH . '/modules/xnewsletter/include/phpmailer_bmh/class.phpmailer-bmh.php';
142
143
        $accountCriteria = new \CriteriaCompo();
144
        $accountCriteria->add(new \Criteria('accounts_use_bmh', '1'));
145
        $accountsCount = $helper->getHandler('Accounts')->getCount($accountCriteria);
146
147
        if ($accountsCount > 0) {
148
            $accountObjs = $helper->getHandler('Accounts')->getAll($accountCriteria);
149
            $result_bmh  = _AM_XNEWSLETTER_BMH_SUCCESSFUL . '<br>';
150
151
            foreach ($accountObjs as $account_id => $accountObj) {
152
                $bmh          = new BounceMailHandler();
153
                $bmh->verbose = VERBOSE_SIMPLE; //VERBOSE_REPORT; //VERBOSE_DEBUG; //VERBOSE_QUIET; // default is VERBOSE_SIMPLE
154
                //$bmh->use_fetchstructure = true; // true is default, no need to speficy
155
                //$bmh->testmode           = true; // false is default, no need to specify
156
                //$bmh->debug_body_rule    = false; // false is default, no need to specify
157
                //$bmh->debug_dsn_rule     = false; // false is default, no need to specify
158
                //$bmh->purge_unprocessed  = false; // false is default, no need to specify
159
                $bmh->disable_delete = true; // detected mails will be not deleted, default is false
160
161
                // for local mailbox (to process .EML files)
162
                //$bmh->openLocalDirectory('/home/email/temp/mailbox');
163
                //$bmh->processMailbox();
164
165
                // for remote mailbox
166
                $bmh->mailhost         = $accountObj->getVar('accounts_server_in'); // your mail server
167
                $bmh->mailbox_username = $accountObj->getVar('accounts_username'); // your mailbox username
168
                $bmh->mailbox_password = $accountObj->getVar('accounts_password'); // your mailbox password
169
                $bmh->port             = $accountObj->getVar('accounts_port_in'); // the port to access your mailbox, default is 143
170
                if (_XNEWSLETTER_ACCOUNTS_TYPE_VAL_POP3 == $accountObj->getVar('accounts_type')) {
171
                    $bmh->service = 'pop3'; // the service to use (imap or pop3), default is 'imap'
172
                } else {
173
                    $bmh->service = 'imap'; // the service to use (imap or pop3), default is 'imap'
174
                }
175
                $bmh->service_option = $accountObj->getVar('accounts_securetype_in'); // the service options (none, tls, notls, ssl, etc.), default is 'notls'
176
                $bmh->boxname        = $accountObj->getVar('accounts_inbox'); // the mailbox to access, default is 'INBOX'
177
                $verif_movehard      = '1' == $accountObj->getVar('accounts_movehard') ? true : false;
178
                $bmh->moveHard       = $verif_movehard; // default is false
179
                $bmh->hardMailbox    = $accountObj->getVar('accounts_hardbox'); // default is 'INBOX.hard' - NOTE: must start with 'INBOX.'
180
                $verif_movesoft      = '1' == $accountObj->getVar('accounts_movesoft') ? true : false;
181
                $bmh->moveSoft       = $verif_movesoft; // default is false
182
                $bmh->softMailbox    = $accountObj->getVar('accounts_softbox'); // default is 'INBOX.soft' - NOTE: must start with 'INBOX.'
183
                //$bmh->deleteMsgDate      = '2009-01-05'; // format must be as 'yyyy-mm-dd'
184
185
                // rest used regardless what type of connection it is
186
                $bmh->openMailbox();
187
                $bmh->processMailbox();
188
189
                $result_bmh .= str_replace('%b', $accountObj->getVar('accounts_yourmail'), _AM_XNEWSLETTER_BMH_RSLT);
190
                $result_bmh = str_replace('%r', $bmh->result_total, $result_bmh);
191
                $result_bmh = str_replace('%a', $bmh->result_processed, $result_bmh);
192
                $result_bmh = str_replace('%n', $bmh->result_unprocessed, $result_bmh);
193
                $result_bmh = str_replace('%m', $bmh->result_moved, $result_bmh);
194
                $result_bmh = str_replace('%d', $bmh->result_deleted, $result_bmh);
195
            }
196
            redirect_header($currentFile, 3, $result_bmh);
197
        } else {
198
            redirect_header($currentFile, 3, _AM_XNEWSLETTER_BMH_ERROR_NO_ACTIVE);
199
        }
200
        break;
201
    case 'list':
202
    default:
203
        $adminObject->displayNavigation(basename(__FILE__));
204
        $adminObject->addItemButton(_AM_XNEWSLETTER_RUNBMH, '?op=run_bmh', 'add');
205
        $adminObject->displayButton('left');
206
207
        $arr_measure_type = [
208
            _XNEWSLETTER_BMH_MEASURE_VAL_ALL     => _AM_XNEWSLETTER_BMH_MEASURE_ALL,
209
            _XNEWSLETTER_BMH_MEASURE_VAL_PENDING => _AM_XNEWSLETTER_BMH_MEASURE_PENDING,
210
            _XNEWSLETTER_BMH_MEASURE_VAL_NOTHING => _AM_XNEWSLETTER_BMH_MEASURE_NOTHING,
211
            _XNEWSLETTER_BMH_MEASURE_VAL_QUIT    => _AM_XNEWSLETTER_BMH_MEASURE_QUITED,
212
            _XNEWSLETTER_BMH_MEASURE_VAL_DELETE  => _AM_XNEWSLETTER_BMH_MEASURE_DELETED,
213
        ];
214
215
        $limit       = $helper->getConfig('adminperpage');
216
        $bhmCriteria = new \CriteriaCompo();
217
        if ($filter > -1) {
218
            $bhmCriteria->add(new \Criteria('bmh_measure', $filter));
219
        }
220
        $bhmCriteria->setSort('bmh_id');
221
        $bhmCriteria->setOrder('DESC');
222
        $bhmCount = $helper->getHandler('Bmh')->getCount($bhmCriteria);
223
        $start    = \Xmf\Request::getInt('start', 0);
224
        $bhmCriteria->setStart($start);
225
        $bhmCriteria->setLimit($limit);
226
        $bhmObjs = $helper->getHandler('Bmh')->getAll($bhmCriteria);
227 View Code Duplication
        if ($bhmCount > $limit) {
228
            require_once XOOPS_ROOT_PATH . '/class/pagenav.php';
229
            $pagenav = new \XoopsPageNav($bhmCount, $limit, $start, 'start', 'op=list');
230
            $pagenav = $pagenav->renderNav(4);
231
        } else {
232
            $pagenav = '';
233
        }
234
235
        //form to filter result
236
        echo "<table class='outer width100' cellspacing='1'><tr class='odd'><td>";
237
        echo "<form id='form_filter' enctype='multipart/form-data' method='post' action='{$currentFile}' name='form_filter'>";
238
239
        $checked = (-1 == $filter) ? 'checked' : '';
240
        echo "<input id='bmh_measure_all' type='radio' {$checked} value='-1' title='" . _AM_XNEWSLETTER_BMH_MEASURE . "' name='bmh_measure_filter' onclick='submit()'>
241
            <label for='bmh_measure_all' name='bmh_measure_all'>" . _AM_XNEWSLETTER_BMH_MEASURE_ALL . '</label>';
242
243
        $checked = (_XNEWSLETTER_BMH_MEASURE_VAL_PENDING == $filter) ? 'checked' : '';
244
        echo "<input id='bmh_measure0' type='radio' {$checked} value='" . _XNEWSLETTER_BMH_MEASURE_VAL_PENDING . "' title='" . _AM_XNEWSLETTER_BMH_MEASURE . "' name='bmh_measure_filter' onclick='submit()'>
245
            <label for='bmh_measure0' name='bmh_measure0'>" . _AM_XNEWSLETTER_BMH_MEASURE_PENDING . '</label>';
246
247
        $checked = (_XNEWSLETTER_BMH_MEASURE_VAL_NOTHING == $filter) ? 'checked' : '';
248
        echo "<input id='bmh_measure1' type='radio' {$checked} value='" . _XNEWSLETTER_BMH_MEASURE_VAL_NOTHING . "' title='" . _AM_XNEWSLETTER_BMH_MEASURE . "' name='bmh_measure_filter' onclick='submit()'>
249
            <label for='bmh_measure1' name='bmh_measure1'>" . _AM_XNEWSLETTER_BMH_MEASURE_NOTHING . '</label>';
250
251
        $checked = (_XNEWSLETTER_BMH_MEASURE_VAL_QUIT == $filter) ? 'checked' : '';
252
        echo "<input id='bmh_measure2' type='radio' {$checked} value='" . _XNEWSLETTER_BMH_MEASURE_VAL_QUIT . "' title='" . _AM_XNEWSLETTER_BMH_MEASURE . "' name='bmh_measure_filter' onclick='submit()'>
253
            <label for='bmh_measure2' name='bmh_measure2'>" . _AM_XNEWSLETTER_BMH_MEASURE_QUITED . '</label>';
254
255
        $checked = (_XNEWSLETTER_BMH_MEASURE_VAL_DELETE == $filter) ? 'checked' : '';
256
        echo "<input id='bmh_measure3' type='radio' {$checked} value='" . _XNEWSLETTER_BMH_MEASURE_VAL_DELETE . "' title='" . _AM_XNEWSLETTER_BMH_MEASURE . "' name='bmh_measure_filter' onclick='submit()'>
257
            <label for='bmh_measure3' name='bmh_measure3'>" . _AM_XNEWSLETTER_BMH_MEASURE_DELETED . '</label>';
258
        echo '</form>';
259
        echo '</td></tr></table>';
260
261
        // View Table
262
        echo "<table class='outer width100' cellspacing='1'>
263
            <tr>
264
                <th>" . _AM_XNEWSLETTER_BMH_ID . '</th>
265
                <th>' . _AM_XNEWSLETTER_BMH_RULE_NO . '</th>
266
                <th>' . _AM_XNEWSLETTER_BMH_RULE_CAT . '</th>
267
                <th>' . _AM_XNEWSLETTER_BMH_BOUNCETYPE . '</th>
268
                <th>' . _AM_XNEWSLETTER_BMH_REMOVE . '</th>
269
                <th>' . _AM_XNEWSLETTER_BMH_EMAIL . '</th>
270
                <th>' . _AM_XNEWSLETTER_BMH_MEASURE . '</th>
271
                <th>' . _AM_XNEWSLETTER_BMH_CREATED . '</th>
272
                <th>' . _AM_XNEWSLETTER_FORMACTION . '</th>
273
            </tr>';
274
275
        if ($bhmCount > 0) {
276
            $class = 'odd';
277
            foreach ($bhmObjs as $bhm_id => $bhmObj) {
278
                echo "<tr class='{$class}'>";
279
                $class = ('even' === $class) ? 'odd' : 'even';
280
                echo '<td>' . $bhm_id . '</td>';
281
                echo '<td>' . $bhmObj->getVar('bmh_rule_no') . '</td>';
282
                echo '<td>' . $bhmObj->getVar('bmh_rule_cat') . '</td>';
283
                echo '<td>' . $bhmObj->getVar('bmh_bouncetype') . '</td>';
284
285
                $verif_bmh_remove = ('0' == $bhmObj->getVar('bmh_remove')) ? ' ' : $bhmObj->getVar('bmh_remove');
286
                echo '<td>' . $verif_bmh_remove . '</td>';
287
                echo '<td>' . $bhmObj->getVar('bmh_email') . '</td>';
288
289
                echo "<td class='center'>" . $arr_measure_type[$bhmObj->getVar('bmh_measure')] . '</td>';
290
                echo "<td class='center'>" . formatTimestamp($bhmObj->getVar('bmh_created'), 'S') . '</td>';
291
292
                echo "<td class='center width20'>";
293
                echo "    <a href='?op=handle_bmh&bmh_id="
294
                     . $bhm_id
295
                     . '&bmh_measure='
296
                     . _XNEWSLETTER_BMH_MEASURE_VAL_NOTHING
297
                     . '&filter='
298
                     . $filter
299
                     . "'><img src="
300
                     . XNEWSLETTER_ICONS_URL
301
                     . "/xn_nothing.png alt='"
302
                     . _AM_XNEWSLETTER_BMH_MEASURE_NOTHING
303
                     . "' title='"
304
                     . _AM_XNEWSLETTER_BMH_MEASURE_NOTHING
305
                     . "'></a>";
306
                echo "    <a href='?op=handle_bmh&bmh_id="
307
                     . $bhm_id
308
                     . '&bmh_measure='
309
                     . _XNEWSLETTER_BMH_MEASURE_VAL_QUIT
310
                     . '&filter='
311
                     . $filter
312
                     . "'><img src="
313
                     . XNEWSLETTER_ICONS_URL
314
                     . "/xn_catsubscr_temp.png alt='"
315
                     . _AM_XNEWSLETTER_BMH_MEASURE_QUIT
316
                     . "' title='"
317
                     . _AM_XNEWSLETTER_BMH_MEASURE_QUIT
318
                     . "'></a>";
319
                echo "    <a href='?op=bmh_delsubscr&bmh_id=" . $bhm_id . '&filter=' . $filter . "'><img src=" . XNEWSLETTER_ICONS_URL . "/xn_quit.png alt='" . _AM_XNEWSLETTER_BMH_MEASURE_DELETE . "' title='" . _AM_XNEWSLETTER_BMH_MEASURE_DELETE . "'></a>";
320
                echo "    <a href='?op=edit_bmh&bmh_id=" . $bhm_id . "'><img src=" . XNEWSLETTER_ICONS_URL . "/xn_edit.png alt='" . _AM_XNEWSLETTER_BMH_EDIT . "' title='" . _AM_XNEWSLETTER_BMH_EDIT . "' width='16px'></a>";
321
                echo "    <a href='?op=delete_bmh&bmh_id=" . $bhm_id . "'><img src=" . XNEWSLETTER_ICONS_URL . "/xn_delete.png alt='" . _AM_XNEWSLETTER_BMH_DELETE . "' title='" . _AM_XNEWSLETTER_BMH_DELETE . "' width='16px'></a>";
322
                echo '</td>';
323
                echo '</tr>';
324
            }
325
        } else {
326
            echo '<tr>';
327
            echo "    <td class='even' colspan='10'>" . sprintf(_AM_XNEWSLETTER_BMH_MEASURE_SHOW_NONE, $arr_measure_type[$filter]) . '</td>';
328
            echo '</tr>';
329
        }
330
        echo '</table>';
331
        echo '<br>';
332
        echo "<div class='center'>" . $pagenav . '</div>';
333
        echo '<br>';
334
        break;
335
    case 'save_bmh':
336
        if (!$GLOBALS['xoopsSecurity']->check()) {
337
            redirect_header($currentFile, 3, implode(',', $GLOBALS['xoopsSecurity']->getErrors()));
338
        }
339
340
        $bmhObj = $helper->getHandler('Bmh')->get($bmh_id);
341
        $bmhObj->setVar('bmh_rule_no', \Xmf\Request::getString('bmh_rule_no', ''));
342
        $bmhObj->setVar('bmh_rule_cat', \Xmf\Request::getString('bmh_rule_cat', ''));
343
        $bmhObj->setVar('bmh_bouncetype', \Xmf\Request::getString('bmh_bouncetype', ''));
344
        $bmhObj->setVar('bmh_remove', \Xmf\Request::getString('bmh_remove', ''));
345
        $bmh_email = \Xmf\Request::getString('bmh_email', '');
346
        $bmh_email = filter_var($bmh_email, FILTER_SANITIZE_EMAIL);
347
        $bmh_email = xnewsletter_checkEmail($bmh_email);
348
        $bmhObj->setVar('bmh_email', $bmh_email);
349
        $bmhObj->setVar('bmh_subject', \Xmf\Request::getString('bmh_subject', ''));
350
        $bmhObj->setVar('bmh_measure', \Xmf\Request::getInt('bmh_measure', 0));
351
        $bmhObj->setVar('bmh_submitter', \Xmf\Request::getInt('bmh_submitter', 0));
352
        $bmhObj->setVar('bmh_created', \Xmf\Request::getInt('bmh_created', 0));
353
354
        if ($helper->getHandler('Bmh')->insert($bmhObj)) {
355
            redirect_header('?op=list', 3, _AM_XNEWSLETTER_FORMOK);
356
        }
357
        echo $bmhObj->getHtmlErrors();
358
        $form = $bmhObj->getForm();
359
        $form->display();
360
        break;
361
    case 'edit_bmh':
362
        $adminObject->displayNavigation(basename(__FILE__));
363
        $adminObject->addItemButton(_AM_XNEWSLETTER_BMHLIST, '?op=list', 'list');
364
        $adminObject->displayButton('left');
365
366
        $bmhObj = $helper->getHandler('Bmh')->get($bmh_id);
367
        $form   = $bmhObj->getForm();
368
        $form->display();
369
        break;
370 View Code Duplication
    case 'delete_bmh':
371
        $bmhObj = $helper->getHandler('Bmh')->get($bmh_id);
372
        if (true === \Xmf\Request::getBool('ok', false, 'POST')) {
373
            if (!$GLOBALS['xoopsSecurity']->check()) {
374
                redirect_header($currentFile, 3, implode(',', $GLOBALS['xoopsSecurity']->getErrors()));
375
            }
376
            if ($helper->getHandler('Bmh')->delete($bmhObj)) {
377
                redirect_header($currentFile, 3, _AM_XNEWSLETTER_FORMDELOK);
378
            } else {
379
                echo $bmhObj->getHtmlErrors();
380
            }
381
        } else {
382
            xoops_confirm(['ok' => true, 'bmh_id' => $bmh_id, 'op' => 'delete_bmh'], $_SERVER['REQUEST_URI'], sprintf(_AM_XNEWSLETTER_FORMSUREDEL, $bmhObj->getVar('bmh_rule_no')));
383
        }
384
        break;
385
}
386
require_once __DIR__ . '/admin_footer.php';
387
388
/**
389
 * @return float
390
 */
391
function microtime_float()
392
{
393
    list($usec, $sec) = explode(' ', microtime());
394
395
    return ((float)$usec + (float)$sec);
396
}
397