sqlite = $helper->getDB(); $this->pid = $pid; } /** * If data was explicitly set, then save it to the database if that hasn't happened yet. */ public function __destruct() { if ($this->saveNeeded) { $this->savePageData(); } } /** * Get latest page metadata from database */ public function getPageData() { $sql = "SELECT pid, title, lasteditor, lastrev, lastsummary FROM titles WHERE pid = ?"; $data = $this->sqlite->queryRecord($sql, [$this->pid]); return $data; } /** * Save title, last editor and revision timestamp to database */ public function savePageData() { $sql = "REPLACE INTO titles (pid, title, lasteditor, lastrev, lastsummary) VALUES (?,?,?,?,?)"; $this->sqlite->query($sql, [$this->pid, $this->title, $this->lasteditor, $this->lastrev, $this->lastsummary]); $this->saveNeeded = false; } /** * Sets a new title * * @param string|null $title set null to derive from PID */ public function setTitle($title) { if ($title === null) { $title = noNS($this->pid); } $this->title = $title; $this->saveNeeded = true; } /** * Sets the last editor * * @param string|null $lastEditor */ public function setLastEditor($lastEditor) { if ($lastEditor === null) { $lastEditor = ''; } $this->lasteditor = $lastEditor; $this->saveNeeded = true; } /** * Sets the revision timestamp * * @param int|null $lastrev */ public function setLastRevision($lastrev) { if ($lastrev === null) { $lastrev = 0; } $this->lastrev = $lastrev; $this->saveNeeded = true; } /** * Sets the last summary * * @param int|null $lastsummary */ public function setLastSummary($lastsummary) { if ($lastsummary === null) { $lastsummary = ''; } $this->lastsummary = $lastsummary; $this->saveNeeded = true; } /** * @return string the page's ID */ public function getPid() { return $this->pid; } }