BlockActionsHandler::processPostData()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 30
Code Lines 19

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
eloc 19
c 1
b 0
f 0
dl 0
loc 30
rs 9.6333
cc 1
nc 1
nop 0
1
<?php declare(strict_types=1);
2
3
namespace XoopsModules\Adslight\Common;
4
5
/**
6
 * You may not change or alter any portion of this comment or credits
7
 * of supporting developers from this source code or any supporting source code
8
 * which is considered copyrighted (c) material of the original comment or credit authors.
9
 *
10
 *
11
 * @category        Module
12
 * @author          XOOPS Development Team
13
 * @copyright       XOOPS Project
14
 * @link            https://xoops.org
15
 * @license         GNU GPL 2.0 or later (https://www.gnu.org/licenses/gpl-2.0.html)
16
 */
17
18
use Xmf\Module\Admin;
19
use Xmf\Request;
20
use XoopsModules\Adslight\{
21
    Helper
22
};
23
24
//require __DIR__ . '/admin_header.php';
25
26
// BlockActionsHandler.php
27
28
class BlockActionsHandler
29
{
30
    private $blocksadmin;
31
    private $helper;
32
    private $request;
33
34
    public function __construct($blocksadmin)
35
    {
36
        $this->blocksadmin = $blocksadmin;
37
        $this->helper = Helper::getInstance();
38
    }
39
40
    public function processPostData(): BlockData
41
    {
42
        $blockData                 = new BlockData();
43
        $blockData->ok             = Request::getInt('ok', 0, 'POST');
44
        $blockData->confirm_submit = Request::getCmd('confirm_submit', '', 'POST');
45
        $blockData->submit         = Request::getString('submit', '', 'POST');
46
        $blockData->bside          = Request::getString('bside', '0', 'POST');
47
        $blockData->bweight        = Request::getString('bweight', '0', 'POST');
48
        $blockData->bvisible       = Request::getString('bvisible', '0', 'POST');
49
        $blockData->bmodule        = Request::getArray('bmodule', [], 'POST');
50
        $blockData->btitle         = Request::getString('btitle', '', 'POST');
51
        $blockData->bcachetime     = Request::getString('bcachetime', '0', 'POST');
52
        $blockData->groups         = Request::getArray('groups', [], 'POST');
53
        $blockData->options        = Request::getArray('options', [], 'POST');
54
        $blockData->submitblock    = Request::getString('submitblock', '', 'POST');
55
        $blockData->fct            = Request::getString('fct', '', 'POST');
56
        $blockData->title          = Request::getString('title', '', 'POST');
57
        $blockData->side           = Request::getString('side', '0', 'POST');
58
        $blockData->weight         = Request::getString('weight', '0', 'POST');
59
        $blockData->visible        = Request::getString('visible', '0', 'POST');
60
61
//        $blockData->oldTitle      = [];
62
//        $blockData->oldSide       = [];
63
//        $blockData->oldWeight     = [];
64
//        $blockData->oldVisible    = [];
65
//        $blockData->oldGroups     = [];
66
//        $blockData->oldBcachetime = [];
67
//        $blockData->oldBmodule    = [];
68
69
        return $blockData;
70
    }
71
72
    public function handleActions(BlockData $blockData)
73
    {
74
        $moduleDirNameUpper = \mb_strtoupper(Helper::getInstance()->getDirname());
75
        $bid = Request::getInt('bid', 0);
76
77
        switch ($blockData->op) {
78
            case 'order':
79
                $blockData->bid        = Request::getArray('bid', []);
80
                $blockData->titleArray = Request::getArray('title', [], 'POST');
81
                // Fill in other properties from the request
82
                $this->processOrderBlockAction($blockData);
83
                break;
84
85
            case 'clone':
86
                $this->blocksadmin->cloneBlock($bid);
87
                break;
88
89
            case 'delete':
90
                if (1 === $blockData->ok) {
91
                    $this->blocksadmin->deleteBlock($bid);
92
                } else {
93
                    xoops_confirm(['ok' => 1, 'op' => 'delete', 'bid' => $bid], 'blocksadmin.php', constant('CO_' . $moduleDirNameUpper . '_' . 'DELETE_BLOCK_CONFIRM'), constant('CO_' . $moduleDirNameUpper . '_' . 'CONFIRM'), true);
94
                    xoops_cp_footer();
95
                }
96
                break;
97
98
            case 'edit':
99
                if ($bid > 0) {
100
                    $this->blocksadmin->editBlock($bid);
101
                } else {
102
                    $this->helper->redirect('admin/blocksadmin.php', 3, _AM_BLOCK_EDIT_ID_ERROR);
103
                }
104
                break;
105
106
            case 'edit_ok':
107
                $this->blocksadmin->updateBlock($bid, $blockData->btitle, $blockData->bside, $blockData->bweight, $blockData->bvisible, $blockData->bcachetime, $blockData->bmodule, $blockData->options, $blockData->groups);
108
                break;
109
110
            case 'clone_ok':
111
                $this->blocksadmin->isBlockCloned($bid, $blockData->bside, $blockData->bweight, $blockData->bvisible, $blockData->bcachetime, $blockData->bmodule, $blockData->options, $blockData->groups, true);
112
                break;
113
114
            case 'list':
115
                //        xoops_cp_header();
116
                $this->blocksadmin->listBlocks();
117
                break;
118
119
            default:
120
                // Add the code to handle the default operation here
121
                break;
122
        }
123
    }
124
125
    public function processOrderBlockAction(BlockData $blockData)
126
    {
127
        $blockData->bid           = Request::getArray('bid', []);
128
        $blockData->oldtitle      = Request::getArray('oldtitle', [], 'POST');
129
        $blockData->oldside       = Request::getArray('oldside', [], 'POST');
130
        $blockData->oldweight     = Request::getArray('oldweight', [], 'POST');
131
        $blockData->oldvisible    = Request::getArray('oldvisible', [], 'POST');
132
        $blockData->oldgroups     = Request::getArray('oldgroups', [], 'POST');
133
        $blockData->oldbcachetime = Request::getArray('oldcachetime', [], 'POST');
134
        $blockData->oldbmodule    = Request::getArray('oldbmodule', [], 'POST');
135
        $blockData->title         = Request::getArray('title', [], 'POST');
136
        $blockData->weight        = Request::getArray('weight', [], 'POST');
137
        $blockData->visible       = Request::getArray('visible', [], 'POST');
138
        $blockData->side          = Request::getArray('side', [], 'POST');
139
        $blockData->bcachetime    = Request::getArray('bcachetime', [], 'POST');
140
        $blockData->groups        = Request::getArray('groups', [], 'POST');
141
        $blockData->bmodule       = Request::getArray('bmodule', [], 'POST');
142
143
144
        $this->blocksadmin->orderBlock(
145
            $blockData->bid,
146
            $blockData->oldtitle,
147
            $blockData->oldside,
148
            $blockData->oldweight,
149
            $blockData->oldvisible,
150
            $blockData->oldgroups,
151
            $blockData->oldbcachetime,
152
            $blockData->oldbmodule,
153
            $blockData->title,
154
            $blockData->weight,
155
            $blockData->visible,
156
            $blockData->side,
157
            $blockData->bcachetime,
158
            $blockData->groups,
159
            $blockData->bmodule
160
        );
161
    }
162
163
164
    //for testing mocking
165
    public function setRequest($request)
166
    {
167
        $this->request = $request;
168
    }
169
170
}
171