LogHandler::create()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 3
Code Lines 1

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
eloc 1
c 0
b 0
f 0
nc 1
nop 1
dl 0
loc 3
rs 10
1
<?php declare(strict_types=1);
2
3
namespace XoopsModules\Wgevents;
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
 This program is distributed in the hope that it will be useful,
11
 but WITHOUT ANY WARRANTY; without even the implied warranty of
12
 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
13
*/
14
15
/**
16
 * wgEvents module for xoops
17
 *
18
 * @copyright    2021 XOOPS Project (https://xoops.org)
19
 * @license      GPL 2.0 or later
20
 * @package      wgevents
21
 * @since        1.0.0
22
 * @min_xoops    2.5.11 Beta1
23
 * @author       Goffy - Wedega - Email:[email protected] - Website:https://xoops.wedega.com
24
 */
25
26
use XoopsModules\Wgevents;
27
28
29
/**
30
 * Class Object Handler Log
31
 */
32
class LogHandler extends \XoopsPersistableObjectHandler
33
{
34
    /**
35
     * Constructor
36
     *
37
     * @param \XoopsDatabase $db
38
     */
39
    public function __construct(\XoopsDatabase $db)
40
    {
41
        parent::__construct($db, 'wgevents_log', Log::class, 'id', 'text');
42
    }
43
44
    /**
45
     * @param bool $isNew
46
     *
47
     * @return object
48
     */
49
    public function create($isNew = true)
50
    {
51
        return parent::create($isNew);
52
    }
53
54
    /**
55
     * retrieve a field
56
     *
57
     * @param int $id field id
58
     * @param $fields
59
     * @return \XoopsObject|null reference to the {@link Get} object
60
     */
61
    public function get($id = null, $fields = null)
62
    {
63
        return parent::get($id, $fields);
64
    }
65
66
    /**
67
     * get inserted id
68
     *
69
     * @return int reference to the {@link Get} object
70
     */
71
    public function getInsertId()
72
    {
73
        return $this->db->getInsertId();
74
    }
75
76
    /**
77
     * Get Count Log in the database
78
     * @param int    $start
79
     * @param int    $limit
80
     * @param string $sort
81
     * @param string $order
82
     * @return int
83
     */
84
    public function getCountLogs($start = 0, $limit = 0, $sort = 'id', $order = 'DESC')
85
    {
86
        $crCountLogs = new \CriteriaCompo();
87
        $crCountLogs = $this->getLogsCriteria($crCountLogs, $start, $limit, $sort, $order);
88
        return $this->getCount($crCountLogs);
0 ignored issues
show
Bug introduced by
$crCountLogs of type integer is incompatible with the type CriteriaElement|null expected by parameter $criteria of XoopsPersistableObjectHandler::getCount(). ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-type  annotation

88
        return $this->getCount(/** @scrutinizer ignore-type */ $crCountLogs);
Loading history...
89
    }
90
91
    /**
92
     * Get All Log in the database
93
     * @param int    $start
94
     * @param int    $limit
95
     * @param string $sort
96
     * @param string $order
97
     * @return array
98
     */
99
    public function getAllLogs($start = 0, $limit = 0, $sort = 'id', $order = 'DESC')
100
    {
101
        $crAllLogs = new \CriteriaCompo();
102
        $crAllLogs = $this->getLogsCriteria($crAllLogs, $start, $limit, $sort, $order);
103
        return $this->getAll($crAllLogs);
0 ignored issues
show
Bug introduced by
$crAllLogs of type integer is incompatible with the type CriteriaElement|null expected by parameter $criteria of XoopsPersistableObjectHandler::getAll(). ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-type  annotation

103
        return $this->getAll(/** @scrutinizer ignore-type */ $crAllLogs);
Loading history...
104
    }
105
106
    /**
107
     * Get Criteria Log
108
     * @param        $crLog
109
     * @param int $start
110
     * @param int $limit
111
     * @param string $sort
112
     * @param string $order
113
     * @return int
114
     */
115
    private function getLogsCriteria($crLog, int $start, int $limit, string $sort, string $order)
116
    {
117
        $crLog->setStart($start);
118
        $crLog->setLimit($limit);
119
        $crLog->setSort($sort);
120
        $crLog->setOrder($order);
121
        return $crLog;
122
    }
123
124
    /**
125
     * Create new Log
126
     * @param string $text
127
     * @return void
128
     */
129
    public function createLog(string $text)
130
    {
131
        $helper = \XoopsModules\Wgevents\Helper::getInstance();
132
133
        if ($helper->getConfig('use_logs') > 0) {
134
            $logSubmitter = \is_object($GLOBALS['xoopsUser']) ? $GLOBALS['xoopsUser']->uid() : 0;
135
            $logObj = $this->create();
136
            // Set Vars
137
            $logObj->setVar('text', $text);
138
            $logObj->setVar('datecreated', \time());
139
            $logObj->setVar('submitter', $logSubmitter);
140
            // Insert Data
141
            $this->insert($logObj);
142
        }
143
    }
144
}
145