Passed
Push — master ( b40d59...49842e )
by Michael
03:17
created

BlockActionsHandler::processPostData()   A

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
32
    public function __construct($blocksadmin)
33
    {
34
        $this->blocksadmin = $blocksadmin;
35
    }
36
37
    public function processPostData(): BlockData
38
    {
39
        $blockData                 = new BlockData();
40
        $blockData->ok             = Request::getInt('ok', 0, 'POST');
41
        $blockData->confirm_submit = Request::getCmd('confirm_submit', '', 'POST');
42
        $blockData->submit         = Request::getString('submit', '', 'POST');
43
        $blockData->bside          = Request::getString('bside', '0', 'POST');
44
        $blockData->bweight        = Request::getString('bweight', '0', 'POST');
45
        $blockData->bvisible       = Request::getString('bvisible', '0', 'POST');
46
        $blockData->bmodule        = Request::getArray('bmodule', [], 'POST');
47
        $blockData->btitle         = Request::getString('btitle', '', 'POST');
48
        $blockData->bcachetime     = Request::getString('bcachetime', '0', 'POST');
49
        $blockData->groups         = Request::getArray('groups', [], 'POST');
50
        $blockData->options        = Request::getArray('options', [], 'POST');
51
        $blockData->submitblock    = Request::getString('submitblock', '', 'POST');
52
        $blockData->fct            = Request::getString('fct', '', 'POST');
53
        $blockData->title          = Request::getString('title', '', 'POST');
54
        $blockData->side           = Request::getString('side', '0', 'POST');
55
        $blockData->weight         = Request::getString('weight', '0', 'POST');
56
        $blockData->visible        = Request::getString('visible', '0', 'POST');
57
58
//        $blockData->oldTitle      = [];
59
//        $blockData->oldSide       = [];
60
//        $blockData->oldWeight     = [];
61
//        $blockData->oldVisible    = [];
62
//        $blockData->oldGroups     = [];
63
//        $blockData->oldBcachetime = [];
64
//        $blockData->oldBmodule    = [];
65
66
        return $blockData;
67
    }
68
69
    public function handleActions(BlockData $blockData)
70
    {
71
        $moduleDirNameUpper = \mb_strtoupper(Helper::getInstance()->getDirname());
72
        $bid = Request::getInt('bid', 0);
73
74
        switch ($blockData->op) {
75
            case 'order':
76
                $blockData->bid        = Request::getArray('bid', []);
77
                $blockData->titleArray = Request::getArray('title', [], 'POST');
78
                // Fill in other properties from the request
79
                $this->processOrderBlockAction($blockData);
80
                break;
81
82
            case 'clone':
83
                $this->blocksadmin->cloneBlock($bid);
84
                break;
85
86
            case 'delete':
87
                if (1 === $blockData->ok) {
88
                    $this->blocksadmin->deleteBlock($bid);
89
                } else {
90
                    xoops_confirm(['ok' => 1, 'op' => 'delete', 'bid' => $bid], 'blocksadmin.php', constant('CO_' . $moduleDirNameUpper . '_' . 'DELETE_BLOCK_CONFIRM'), constant('CO_' . $moduleDirNameUpper . '_' . 'CONFIRM'), true);
91
                    xoops_cp_footer();
92
                }
93
                break;
94
95
            case 'edit':
96
                $this->blocksadmin->editBlock($bid);
97
                break;
98
99
            case 'edit_ok':
100
                $this->blocksadmin->updateBlock($bid, $blockData->btitle, $blockData->bside, $blockData->bweight, $blockData->bvisible, $blockData->bcachetime, $blockData->bmodule, $blockData->options, $blockData->groups);
101
                break;
102
103
            case 'clone_ok':
104
                $this->blocksadmin->isBlockCloned($bid, $blockData->bside, $blockData->bweight, $blockData->bvisible, $blockData->bcachetime, $blockData->bmodule, $blockData->options, $blockData->groups, true);
105
                break;
106
107
            case 'list':
108
                //        xoops_cp_header();
109
                $this->blocksadmin->listBlocks();
110
                break;
111
112
            default:
113
                // Add the code to handle the default operation here
114
                break;
115
        }
116
    }
117
118
    public function processOrderBlockAction(BlockData $blockData)
119
    {
120
        $blockData->bid           = Request::getArray('bid', []);
121
        $blockData->oldtitle      = Request::getArray('oldtitle', [], 'POST');
0 ignored issues
show
Bug introduced by
The property oldtitle does not exist on XoopsModules\Adslight\Common\BlockData. Did you mean oldTitle?
Loading history...
122
        $blockData->oldside       = Request::getArray('oldside', [], 'POST');
0 ignored issues
show
Bug introduced by
The property oldside does not exist on XoopsModules\Adslight\Common\BlockData. Did you mean oldSide?
Loading history...
123
        $blockData->oldweight     = Request::getArray('oldweight', [], 'POST');
0 ignored issues
show
Bug introduced by
The property oldweight does not exist on XoopsModules\Adslight\Common\BlockData. Did you mean weight?
Loading history...
124
        $blockData->oldvisible    = Request::getArray('oldvisible', [], 'POST');
0 ignored issues
show
Bug introduced by
The property oldvisible does not exist on XoopsModules\Adslight\Common\BlockData. Did you mean visible?
Loading history...
125
        $blockData->oldgroups     = Request::getArray('oldgroups', [], 'POST');
0 ignored issues
show
Bug introduced by
The property oldgroups does not exist on XoopsModules\Adslight\Common\BlockData. Did you mean groups?
Loading history...
126
        $blockData->oldbcachetime = Request::getArray('oldcachetime', [], 'POST');
0 ignored issues
show
Bug introduced by
The property oldbcachetime does not exist on XoopsModules\Adslight\Common\BlockData. Did you mean bcachetime?
Loading history...
127
        $blockData->oldbmodule    = Request::getArray('oldbmodule', [], 'POST');
0 ignored issues
show
Bug introduced by
The property oldbmodule does not exist on XoopsModules\Adslight\Common\BlockData. Did you mean bmodule?
Loading history...
128
        $blockData->title         = Request::getArray('title', [], 'POST');
129
        $blockData->weight        = Request::getArray('weight', [], 'POST');
130
        $blockData->visible       = Request::getArray('visible', [], 'POST');
131
        $blockData->side          = Request::getArray('side', [], 'POST');
132
        $blockData->bcachetime    = Request::getArray('bcachetime', [], 'POST');
133
        $blockData->groups        = Request::getArray('groups', [], 'POST');
134
        $blockData->bmodule       = Request::getArray('bmodule', [], 'POST');
135
136
137
        $this->blocksadmin->orderBlock(
138
            $blockData->bid,
139
            $blockData->oldtitle,
140
            $blockData->oldside,
141
            $blockData->oldweight,
142
            $blockData->oldvisible,
143
            $blockData->oldgroups,
144
            $blockData->oldbcachetime,
145
            $blockData->oldbmodule,
146
            $blockData->title,
147
            $blockData->weight,
148
            $blockData->visible,
149
            $blockData->side,
150
            $blockData->bcachetime,
151
            $blockData->groups,
152
            $blockData->bmodule
153
        );
154
    }
155
156
157
    //for testing as mocking
158
    public function setRequest($request)
159
    {
160
        $this->request = $request;
0 ignored issues
show
Bug Best Practice introduced by
The property request does not exist. Although not strictly required by PHP, it is generally a best practice to declare properties explicitly.
Loading history...
161
    }
162
163
}
164