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