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

admin/catsubscr.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    GPL 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
37
switch ($op) {
38
    case 'list':
39
    default:
40
        $adminObject->displayNavigation($currentFile);
41
        $adminObject->addItemButton(_AM_XNEWSLETTER_NEWCATSUBSCR, '?op=new_catsubscr', 'add');
42
        $adminObject->displayButton('left');
43
44
        $limit       = $helper->getConfig('adminperpage');
45
        $catCriteria = new \CriteriaCompo();
46
        $catCriteria->setSort('cat_id ASC, cat_name');
47
        $catCriteria->setOrder('ASC');
48
        $catCount = $helper->getHandler('Cat')->getCount();
49
        $start    = \Xmf\Request::getInt('start', 0);
50
        $catCriteria->setStart($start);
51
        $catCriteria->setLimit($limit);
52
        $catObjs = $helper->getHandler('Cat')->getAll($catCriteria);
53 View Code Duplication
        if ($catCount > $limit) {
54
            require_once XOOPS_ROOT_PATH . '/class/pagenav.php';
55
            $pagenav = new \XoopsPageNav($catCount, $limit, $start, 'start', 'op=list');
56
            $pagenav = $pagenav->renderNav(4);
57
        } else {
58
            $pagenav = '';
59
        }
60
        // View Table
61
        echo "<table class='outer' cellspacing='1'>";
62
        echo '<tr>';
63
        echo '    <th>' . _AM_XNEWSLETTER_CAT_ID . '</th>';
64
        echo '    <th>' . _AM_XNEWSLETTER_CAT_NAME . '</th>';
65
        echo '    <th>' . _AM_XNEWSLETTER_CAT_INFO . '</th>';
66
        echo '    <th>' . _AM_XNEWSLETTER_CATSUBSCR_SUBSCRID . '</th>';
67
        echo '    <th>' . _AM_XNEWSLETTER_FORMACTION . '</th>';
68
        echo '</tr>';
69
        if ($catCount > 0) {
70
            $class = 'odd';
71
            foreach ($catObjs as $cat_id => $catObj) {
72
                echo "<tr class='{$class}'>";
73
                $class = ('even' === $class) ? 'odd' : 'even';
74
                echo "<td>{$cat_id}</td>";
75
                echo "<td><a href='?op=list_cat&cat_id={$cat_id}'>{$catObj->getVar('cat_name')}</a></td>";
76
                echo "<td>{$catObj->getVar('cat_info')}</td>";
77
                $catCount = $helper->getHandler('Catsubscr')->getCount(new \Criteria('catsubscr_catid', $cat_id));
78
                echo "<td>{$catCount}</td>";
79
                echo "<td class='center'><a href='?op=list_cat&cat_id={$cat_id}'><img src='" . XNEWSLETTER_ICONS_URL . "/xn_details.png' alt='" . _AM_XNEWSLETTER_DETAILS . "' title='" . _AM_XNEWSLETTER_DETAILS . "'></a></td>";
80
                echo '</tr>';
81
            }
82
        }
83
        echo '</table>';
84
        echo '<br>';
85
        echo "<div class='center'>{$pagenav}</div>";
86
        echo '<br>';
87
        break;
88
    case 'list_cat':
89
        $cat_id = \Xmf\Request::getInt('cat_id', 0);
90
91
        $adminObject->displayNavigation($currentFile);
92
        $adminObject->addItemButton(_AM_XNEWSLETTER_CATLIST, '?op=list', 'list');
93
        $adminObject->addItemButton(_AM_XNEWSLETTER_NEWCATSUBSCR, '?op=new_catsubscr', 'add');
94
        $adminObject->displayButton('left');
95
96
        $limit             = $helper->getConfig('adminperpage');
97
        $catsubscrCriteria = new \CriteriaCompo();
98
        $catsubscrCriteria->add(new \Criteria('catsubscr_catid', $cat_id));
99
        $catsubscrCriteria->setSort('catsubscr_id ASC, catsubscr_catid');
100
        $catsubscrCriteria->setOrder('ASC');
101
        $catCount = $helper->getHandler('Catsubscr')->getCount($catsubscrCriteria);
102
        $start    = \Xmf\Request::getInt('start', 0);
103
        $catsubscrCriteria->setStart($start);
104
        $catsubscrCriteria->setLimit($limit);
105
        $catsubscrObjs = $helper->getHandler('Catsubscr')->getAll($catsubscrCriteria);
106 View Code Duplication
        if ($catCount > $limit) {
107
            require_once XOOPS_ROOT_PATH . '/class/pagenav.php';
108
            $pagenav = new \XoopsPageNav($catCount, $limit, $start, 'start', 'op=list_cat&cat_id=' . $cat_id);
109
            $pagenav = $pagenav->renderNav(4);
110
        } else {
111
            $pagenav = '';
112
        }
113
114
        // View Table
115
        echo "<table class='outer' cellspacing='1'>";
116
        echo '<tr>';
117
        echo '    <th>' . _AM_XNEWSLETTER_CATSUBSCR_ID . '</th>';
118
        echo '    <th>' . _AM_XNEWSLETTER_CATSUBSCR_CATID . '</th>';
119
        echo '    <th>' . _AM_XNEWSLETTER_CATSUBSCR_SUBSCRID . '</th>';
120
        echo '    <th>' . _AM_XNEWSLETTER_CATSUBSCR_QUITED . '</th>';
121
        echo '    <th>' . _AM_XNEWSLETTER_CATSUBSCR_SUBMITTER . '</th>';
122
        echo '    <th>' . _AM_XNEWSLETTER_CATSUBSCR_CREATED . '</th>';
123
        echo '    <th>' . _AM_XNEWSLETTER_FORMACTION . '</th>';
124
        echo '</tr>';
125
        if ($catCount > 0) {
126
            $class = 'odd';
127
            foreach ($catsubscrObjs as $catsubscr_id => $catsubscrObj) {
128
                echo "<tr class='{$class}'>";
129
                $class = ('even' === $class) ? 'odd' : 'even';
130
                echo "<td>{$catsubscr_id}</td>";
131
132
                $cat      = $helper->getHandler('Cat')->get($cat_id);
133
                $cat_name = $cat->getVar('cat_name');
134
                echo '<td>' . $cat_name . '</td>';
135
                $subscr_id    = $catsubscrObj->getVar('catsubscr_subscrid');
136
                $subscr       = $helper->getHandler('Subscr')->get($subscr_id);
137
                $subscr_email = $subscr ? $subscr->getVar('subscr_email') : '';
138
                echo '<td>' . $subscr_email . '</td>';
139
                if ($catsubscrObj->getVar('catsubscr_quited') > 0) {
140
                    $catsubscr_quited = _YES . ' (' . formatTimestamp($catsubscrObj->getVar('catsubscr_quited'), 'M') . ')';
141
                } else {
142
                    $catsubscr_quited = _NO;
143
                }
144
                echo '<td>' . $catsubscr_quited . '</td>';
145
                echo '<td>' . \XoopsUser::getUnameFromId($catsubscrObj->getVar('catsubscr_submitter'), 'S') . '</td>';
146
                echo '<td>' . formatTimestamp($catsubscrObj->getVar('catsubscr_created'), 'S') . '</td>';
147
148
                echo "<td class='center' nowrap='nowrap'>
149
                    <a href='?op=edit_catsubscr&catsubscr_id={$catsubscr_id}&cat_id={$cat_id}'><img src=" . XNEWSLETTER_ICONS_URL . "/xn_edit.png alt='" . _EDIT . "' title='" . _EDIT . "'></a>
150
                    &nbsp;<a href='?op=delete_catsubscr&catsubscr_id={$catsubscr_id}&cat_id={$cat_id}&cat_name={$cat_name}&subscr_email={$subscr_email}&subscr_id={$subscr_id}'><img src=" . XNEWSLETTER_ICONS_URL . "/xn_delete.png alt='" . _DELETE . "' title='" . _DELETE . "'></a>
151
                    </td>";
152
                echo '</tr>';
153
            }
154
        }
155
        echo '</table>';
156
        echo '<br>';
157
        echo '<div>' . $pagenav . '</div>';
158
        echo '<br>';
159
        break;
160
    case 'new_catsubscr':
161
        $adminObject->displayNavigation($currentFile);
162
        $adminObject->addItemButton(_AM_XNEWSLETTER_CATSUBSCRLIST, '?op=list', 'list');
163
        $adminObject->displayButton('left');
164
165
        $catsubscrObj = $helper->getHandler('Catsubscr')->create();
166
        $form         = $catsubscrObj->getForm();
167
        $form->display();
168
        break;
169
    case 'save_catsubscr':
170
        if (!$GLOBALS['xoopsSecurity']->check()) {
171
            redirect_header($currentFile, 3, implode(',', $GLOBALS['xoopsSecurity']->getErrors()));
172
        }
173 View Code Duplication
        if (\Xmf\Request::hasVar('catsubscr_id', 'REQUEST')) {
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...
174
            $catsubscrObj = $helper->getHandler('Catsubscr')->get($_REQUEST['catsubscr_id']);
175
        } else {
176
            $catsubscrObj = $helper->getHandler('Catsubscr')->create();
177
        }
178
179
        $catsubscrObj->setVar('catsubscr_catid', $_REQUEST['catsubscr_catid']);
180
        $catsubscr_subscrid = $_REQUEST['catsubscr_subscrid'];
181
        $catsubscrObj->setVar('catsubscr_subscrid', $catsubscr_subscrid);
182
        $catsubscr_quit_now = \Xmf\Request::getInt('catsubscr_quit_now', _XNEWSLETTER_CATSUBSCR_QUIT_NO_VAL_NONE);
183
        if (_XNEWSLETTER_CATSUBSCR_QUIT_NO_VAL_NOW == $catsubscr_quit_now) {
184
            $catsubscrObj->setVar('catsubscr_quited', time());
185
        } elseif (_XNEWSLETTER_CATSUBSCR_QUIT_NO_VAL_REMOVE == $catsubscr_quit_now) {
186
            $catsubscrObj->setVar('catsubscr_quited', 0);
187
        }
188
        $catsubscrObj->setVar('catsubscr_submitter', $_REQUEST['catsubscr_submitter']);
189
        $catsubscrObj->setVar('catsubscr_created', $_REQUEST['catsubscr_created']);
190
191
        if ($helper->getHandler('Catsubscr')->insert($catsubscrObj)) {
192
            //add subscriber to mailinglist
193
            $catsubscrObj_cat = $helper->getHandler('Cat')->get($_REQUEST['catsubscr_catid']);
194 View Code Duplication
            if ($catsubscrObj_cat->getVar('cat_mailinglist') > 0) {
195
                require_once XOOPS_ROOT_PATH . '/modules/xnewsletter/include/mailinglist.php';
196
                subscribingMLHandler(1, $catsubscr_subscrid, $catsubscrObj_cat->getVar('cat_mailinglist'));
197
            }
198
            redirect_header('?op=list', 3, _AM_XNEWSLETTER_FORMOK);
199
        }
200
201
        echo $catsubscrObj->getHtmlErrors();
202
        $form = $catsubscrObj->getForm();
203
        $form->display();
204
        break;
205
    case 'edit_catsubscr':
206
        $cat_id = \Xmf\Request::getInt('cat_id', 0);
207
208
        $adminObject->displayNavigation($currentFile);
209
        $adminObject->addItemButton(_AM_XNEWSLETTER_CATSUBSCRLIST, "?op=list_cat&cat_id={$cat_id}", 'list');
210
        $adminObject->addItemButton(_AM_XNEWSLETTER_NEWCATSUBSCR, '?op=new_catsubscr', 'add');
211
        $adminObject->displayButton('left');
212
213
        $catsubscrObj = $helper->getHandler('Catsubscr')->get($_REQUEST['catsubscr_id']);
214
        $form         = $catsubscrObj->getForm();
215
        $form->display();
216
        break;
217
    case 'delete_catsubscr':
218
        $catsubscrObj = $helper->getHandler('Catsubscr')->get($_REQUEST['catsubscr_id']);
219
        if (true === \Xmf\Request::getBool('ok', false, 'POST')) {
220
            if (!$GLOBALS['xoopsSecurity']->check()) {
221
                redirect_header('catsubscr.php', 3, implode(',', $GLOBALS['xoopsSecurity']->getErrors()));
222
            }
223
            if ($helper->getHandler('Catsubscr')->delete($catsubscrObj)) {
224
                // remove subscriber from mailinglist
225
                $subscr_id        = $_REQUEST['subscr_id'];
226
                $catsubscrObj_cat = $helper->getHandler('Cat')->get($_REQUEST['cat_id']);
227 View Code Duplication
                if ($catsubscrObj_cat->getVar('cat_mailinglist') > 0) {
228
                    require_once XOOPS_ROOT_PATH . '/modules/xnewsletter/include/mailinglist.php';
229
                    subscribingMLHandler(0, $subscr_id, $catsubscrObj_cat->getVar('cat_mailinglist'));
230
                }
231
                redirect_header('catsubscr.php', 3, _AM_XNEWSLETTER_FORMDELOK);
232
            } else {
233
                echo $catsubscrObj->getHtmlErrors();
234
            }
235
        } else {
236
            $confirmtext = str_replace('%c', $_REQUEST['cat_name'], _AM_XNEWSLETTER_CATSUBSCR_SUREDELETE);
237
            $confirmtext = str_replace('%s', $_REQUEST['subscr_email'], $confirmtext);
238
            $confirmtext = str_replace('"', ' ', $confirmtext);
239
            xoops_confirm(['ok' => true, 'catsubscr_id' => $_REQUEST['catsubscr_id'], 'op' => 'delete_catsubscr'], $_SERVER['REQUEST_URI'], sprintf($confirmtext));
240
        }
241
        break;
242
}
243
require_once __DIR__ . '/admin_footer.php';
244