xref: /plugin/structpublish/meta/Revision.php (revision c2f8a3c436c4e9b483f84c9901319c1d150026a8)
1*c2f8a3c4SAnna Dabrowska<?php
2*c2f8a3c4SAnna Dabrowska
3*c2f8a3c4SAnna Dabrowskanamespace dokuwiki\plugin\structpublish\meta;
4*c2f8a3c4SAnna Dabrowska
5*c2f8a3c4SAnna Dabrowskaclass Revision
6*c2f8a3c4SAnna Dabrowska{
7*c2f8a3c4SAnna Dabrowska    const STATUS_DRAFT = 'draft';
8*c2f8a3c4SAnna Dabrowska    const STATUS_APPROVED = 'approved';
9*c2f8a3c4SAnna Dabrowska    const STATUS_PUBLISHED = 'published';
10*c2f8a3c4SAnna Dabrowska
11*c2f8a3c4SAnna Dabrowska    protected $sqlite;
12*c2f8a3c4SAnna Dabrowska    protected $id;
13*c2f8a3c4SAnna Dabrowska    protected $rev;
14*c2f8a3c4SAnna Dabrowska    protected $status;
15*c2f8a3c4SAnna Dabrowska    protected $version;
16*c2f8a3c4SAnna Dabrowska    protected $user;
17*c2f8a3c4SAnna Dabrowska
18*c2f8a3c4SAnna Dabrowska    /**
19*c2f8a3c4SAnna Dabrowska     * @param $sqlite
20*c2f8a3c4SAnna Dabrowska     * @param $id
21*c2f8a3c4SAnna Dabrowska     * @param null $rev
22*c2f8a3c4SAnna Dabrowska     */
23*c2f8a3c4SAnna Dabrowska    public function __construct($sqlite, $id, $rev = null)
24*c2f8a3c4SAnna Dabrowska    {
25*c2f8a3c4SAnna Dabrowska        $this->sqlite = $sqlite;
26*c2f8a3c4SAnna Dabrowska        $this->id = $id;
27*c2f8a3c4SAnna Dabrowska        $this->rev = $rev;
28*c2f8a3c4SAnna Dabrowska
29*c2f8a3c4SAnna Dabrowska        // FIXME check revision too
30*c2f8a3c4SAnna Dabrowska        $sql = 'SELECT * FROM structpublish_revisions WHERE id = ? ORDER BY rev LIMIT 1';
31*c2f8a3c4SAnna Dabrowska        $res = $sqlite->query($sql, $id);
32*c2f8a3c4SAnna Dabrowska        $vals = $sqlite->res2row($res);
33*c2f8a3c4SAnna Dabrowska        $this->rev = $vals['rev'] ?? null;
34*c2f8a3c4SAnna Dabrowska        $this->status = $vals['status'] ?? null;
35*c2f8a3c4SAnna Dabrowska        $this->version = $vals['version'] ?? 0;
36*c2f8a3c4SAnna Dabrowska        $this->user = $vals['user'] ?? null;
37*c2f8a3c4SAnna Dabrowska    }
38*c2f8a3c4SAnna Dabrowska
39*c2f8a3c4SAnna Dabrowska    public function save()
40*c2f8a3c4SAnna Dabrowska    {
41*c2f8a3c4SAnna Dabrowska        $sql = 'INSERT INTO structpublish_revisions (id, rev, status, version, user) VALUES (?,?,?,?,?)';
42*c2f8a3c4SAnna Dabrowska        $res = $this->sqlite->query(
43*c2f8a3c4SAnna Dabrowska            $sql,
44*c2f8a3c4SAnna Dabrowska            $this->id,
45*c2f8a3c4SAnna Dabrowska            $this->rev,
46*c2f8a3c4SAnna Dabrowska            $this->status,
47*c2f8a3c4SAnna Dabrowska            $this->version,
48*c2f8a3c4SAnna Dabrowska            $this->user
49*c2f8a3c4SAnna Dabrowska        );
50*c2f8a3c4SAnna Dabrowska    }
51*c2f8a3c4SAnna Dabrowska
52*c2f8a3c4SAnna Dabrowska    /**
53*c2f8a3c4SAnna Dabrowska     * @return mixed
54*c2f8a3c4SAnna Dabrowska     */
55*c2f8a3c4SAnna Dabrowska    public function getId()
56*c2f8a3c4SAnna Dabrowska    {
57*c2f8a3c4SAnna Dabrowska        return $this->id;
58*c2f8a3c4SAnna Dabrowska    }
59*c2f8a3c4SAnna Dabrowska
60*c2f8a3c4SAnna Dabrowska    /**
61*c2f8a3c4SAnna Dabrowska     * @return mixed
62*c2f8a3c4SAnna Dabrowska     */
63*c2f8a3c4SAnna Dabrowska    public function getVersion()
64*c2f8a3c4SAnna Dabrowska    {
65*c2f8a3c4SAnna Dabrowska        return $this->version;
66*c2f8a3c4SAnna Dabrowska    }
67*c2f8a3c4SAnna Dabrowska
68*c2f8a3c4SAnna Dabrowska    /**
69*c2f8a3c4SAnna Dabrowska     * @param mixed $version
70*c2f8a3c4SAnna Dabrowska     */
71*c2f8a3c4SAnna Dabrowska    public function setVersion($version): void
72*c2f8a3c4SAnna Dabrowska    {
73*c2f8a3c4SAnna Dabrowska        $this->version = $version;
74*c2f8a3c4SAnna Dabrowska    }
75*c2f8a3c4SAnna Dabrowska
76*c2f8a3c4SAnna Dabrowska    /**
77*c2f8a3c4SAnna Dabrowska     * @return mixed|null
78*c2f8a3c4SAnna Dabrowska     */
79*c2f8a3c4SAnna Dabrowska    public function getRev()
80*c2f8a3c4SAnna Dabrowska    {
81*c2f8a3c4SAnna Dabrowska        return $this->rev;
82*c2f8a3c4SAnna Dabrowska    }
83*c2f8a3c4SAnna Dabrowska
84*c2f8a3c4SAnna Dabrowska    /**
85*c2f8a3c4SAnna Dabrowska     * @param mixed|null $rev
86*c2f8a3c4SAnna Dabrowska     */
87*c2f8a3c4SAnna Dabrowska    public function setRev($rev): void
88*c2f8a3c4SAnna Dabrowska    {
89*c2f8a3c4SAnna Dabrowska        $this->rev = $rev;
90*c2f8a3c4SAnna Dabrowska    }
91*c2f8a3c4SAnna Dabrowska
92*c2f8a3c4SAnna Dabrowska    /**
93*c2f8a3c4SAnna Dabrowska     * @return mixed
94*c2f8a3c4SAnna Dabrowska     */
95*c2f8a3c4SAnna Dabrowska    public function getStatus()
96*c2f8a3c4SAnna Dabrowska    {
97*c2f8a3c4SAnna Dabrowska        return $this->status ?? self::STATUS_DRAFT;
98*c2f8a3c4SAnna Dabrowska    }
99*c2f8a3c4SAnna Dabrowska
100*c2f8a3c4SAnna Dabrowska    /**
101*c2f8a3c4SAnna Dabrowska     * @param mixed $status
102*c2f8a3c4SAnna Dabrowska     */
103*c2f8a3c4SAnna Dabrowska    public function setStatus($status): void
104*c2f8a3c4SAnna Dabrowska    {
105*c2f8a3c4SAnna Dabrowska        $this->status = $status;
106*c2f8a3c4SAnna Dabrowska    }
107*c2f8a3c4SAnna Dabrowska
108*c2f8a3c4SAnna Dabrowska    /**
109*c2f8a3c4SAnna Dabrowska     * @return mixed
110*c2f8a3c4SAnna Dabrowska     */
111*c2f8a3c4SAnna Dabrowska    public function getUser()
112*c2f8a3c4SAnna Dabrowska    {
113*c2f8a3c4SAnna Dabrowska        return $this->user;
114*c2f8a3c4SAnna Dabrowska    }
115*c2f8a3c4SAnna Dabrowska
116*c2f8a3c4SAnna Dabrowska    /**
117*c2f8a3c4SAnna Dabrowska     * @param mixed $user
118*c2f8a3c4SAnna Dabrowska     */
119*c2f8a3c4SAnna Dabrowska    public function setUser($user): void
120*c2f8a3c4SAnna Dabrowska    {
121*c2f8a3c4SAnna Dabrowska        $this->user = $user;
122*c2f8a3c4SAnna Dabrowska    }
123*c2f8a3c4SAnna Dabrowska}
124