Passed
Push — master ( 69c050...5d34fd )
by Goffy
03:36
created

FieldelementsHandler::getFieldelementsCriteria()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 8
Code Lines 5

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
eloc 5
nc 1
nop 5
dl 0
loc 8
rs 10
c 0
b 0
f 0
1
<?php
2
3
namespace XoopsModules\Modulebuilder;
4
5
use XoopsModules\Modulebuilder;
6
7
/*
8
 You may not change or alter any portion of this comment or credits
9
 of supporting developers from this source code or any supporting source code
10
 which is considered copyrighted (c) material of the original comment or credit authors.
11
12
 This program is distributed in the hope that it will be useful,
13
 but WITHOUT ANY WARRANTY; without even the implied warranty of
14
 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
15
 */
16
/**
17
 * modulebuilder module.
18
 *
19
 * @copyright       XOOPS Project (https://xoops.org)
20
 * @license         GNU GPL 2 (http://www.gnu.org/licenses/old-licenses/gpl-2.0.html)
21
 *
22
 * @since           2.5.5
23
 *
24
 * @author          Txmod Xoops <[email protected]>
25
 *
26
 */
27
28
/**
29
 * Class FieldelementsHandler.
30
 */
31
class FieldelementsHandler extends \XoopsPersistableObjectHandler
32
{
33
    /**
34
     * @public function constructor class
35
     * @param null|\XoopsDatabase|\XoopsMySQLDatabase $db
36
     */
37
    public function __construct(\XoopsDatabase $db)
38
    {
39
        parent::__construct($db, 'modulebuilder_fieldelements', Fieldelements::class, 'fieldelement_id', 'fieldelement_name');
40
    }
41
42
    /**
43
     * Get Count Fields.
44
     * @param int    $start
45
     * @param int    $limit
46
     * @param string $sort
47
     * @param string $order
48
     * @return int
49
     */
50
    public function getCountFieldelements($start = 0, $limit = 0, $sort = 'fieldelement_id ASC, fieldelement_name', $order = 'ASC')
51
    {
52
        $crCountFieldElems = new \CriteriaCompo();
53
        $crCountFieldElems = $this->getFieldelementsCriteria($crCountFieldElems, $start, $limit, $sort, $order);
54
55
        return parent::getCount($crCountFieldElems);
56
    }
57
58
    /**
59
     * Get Objects Fields.
60
     * @param int    $start
61
     * @param int    $limit
62
     * @param string $sort
63
     * @param string $order
64
     * @return array
65
     */
66
    public function getObjectsFieldelements($start = 0, $limit = 0, $sort = 'fieldelement_id ASC, fieldelement_name', $order = 'ASC')
67
    {
68
        $crObjectsFieldElems = new \CriteriaCompo();
69
        $crObjectsFieldElems = $this->getFieldelementsCriteria($crObjectsFieldElems, $start, $limit, $sort, $order);
70
71
        return $this->getObjects($crObjectsFieldElems);
72
    }
73
74
    /**
75
     * Get All Fields.
76
     * @param int    $start
77
     * @param int    $limit
78
     * @param string $sort
79
     * @param string $order
80
     * @return array
81
     */
82
    public function getAllFieldelements($start = 0, $limit = 0, $sort = 'fieldelement_id ASC, fieldelement_name', $order = 'ASC')
83
    {
84
        $crAllFieldElems = new \CriteriaCompo();
85
        $crAllFieldElems = $this->getFieldelementsCriteria($crAllFieldElems, $start, $limit, $sort, $order);
86
87
        return $this->getAll($crAllFieldElems);
88
    }
89
90
    /**
91
     * Get All Fields By Module & Table Id.
92
     * @param        $tabId
93
     * @param int    $start
94
     * @param int    $limit
95
     * @param string $sort
96
     * @param string $order
97
     * @return array
98
     */
99
    public function getAllFieldelementsByTableId($tabId, $start = 0, $limit = 0, $sort = 'fieldelement_id ASC, fieldelement_name', $order = 'ASC')
100
    {
101
        $crAllFieldElemsByModule = new \CriteriaCompo();
102
        $crAllFieldElemsByModule->add(new \Criteria('fieldelement_tid', $tabId));
103
        $crAllFieldElemsByModule = $this->getFieldelementsCriteria($crAllFieldElemsByModule, $start, $limit, $sort, $order);
104
105
        return $this->getAll($crAllFieldElemsByModule);
106
    }
107
108
    /**
109
     * Get Fieldelements Criteria.
110
     * @param $crFieldElemsCriteria
111
     * @param $start
112
     * @param $limit
113
     * @param $sort
114
     * @param $order
115
     * @return mixed
116
     */
117
    private function getFieldelementsCriteria($crFieldElemsCriteria, $start, $limit, $sort, $order)
118
    {
119
        $crFieldElemsCriteria->setStart($start);
120
        $crFieldElemsCriteria->setLimit($limit);
121
        $crFieldElemsCriteria->setSort($sort);
122
        $crFieldElemsCriteria->setOrder($order);
123
124
        return $crFieldElemsCriteria;
125
    }
126
127
    /**
128
     * Get Fieldelements Criteria.
129
     * @param $crFieldElemsCriteria
130
     * @param $start
131
     * @param $limit
132
     * @param $sort
133
     * @param $order
134
     * @return mixed
135
     */
136
    public function getFieldelementsList($crFieldElemsCriteria, $start = 0, $limit = 0, $sort = 'fieldelement_sort', $order = 'ASC')
137
    {
138
        $crFieldElems = $this->getFieldelementsCriteria($crFieldElemsCriteria, $start, $limit, $sort, $order);
139
        $fieldeleArr  = $this->getAll($crFieldElems);
140
        $fieldele     = [];
141
        foreach (\array_keys($fieldeleArr) as $i) {
142
            $stuFeName = \mb_strtoupper($fieldeleArr[$i]->getVar('fieldelement_name'));
143
            if (1 == $i) {
144
                $fieldele[$i] = '...';
145
            } else {
146
                $fieldele[$i] = constant ('_AM_MODULEBUILDER_FIELD_ELE_' . $stuFeName);
147
            }
148
        }
149
        return $fieldele;
150
    }
151
}
152