From c0dc531ebefd8912819f3b6c8bda1fed3c7e750c Mon Sep 17 00:00:00 2001 From: Evgeny Zinoviev Date: Wed, 31 Jan 2024 06:11:00 +0300 Subject: make it simple, but not simpler --- lib/pages.php | 58 ++++++++++++++++++++++++++++++++++++++++++++++++++-------- 1 file changed, 50 insertions(+), 8 deletions(-) (limited to 'lib/pages.php') diff --git a/lib/pages.php b/lib/pages.php index 281ee52..8524cf3 100644 --- a/lib/pages.php +++ b/lib/pages.php @@ -1,9 +1,51 @@ md) + $fields['html'] = markup::markdownToHtml($fields['md']); + parent::edit($fields); + } + + function isUpdated(): bool { + return $this->updateTs && $this->updateTs != $this->ts; + } + + function getHtml(bool $is_retina, string $user_theme): string { + $html = $this->html; + $html = markup::htmlImagesFix($html, $is_retina, $user_theme); + return $html; + } + + function getUrl(): string { + return "/{$this->shortName}/"; + } + + function updateHtml(): void { + $html = markup::markdownToHtml($this->md); + $this->html = $html; + DB()->query("UPDATE pages SET html=? WHERE short_name=?", $html, $this->shortName); + } + +} + class pages { - public static function add(array $data): ?int { - $db = getDb(); + static function add(array $data): ?int { + $db = DB(); $data['ts'] = time(); $data['html'] = markup::markdownToHtml($data['md']); if (!$db->insert('pages', $data)) @@ -11,12 +53,12 @@ class pages { return $db->insertId(); } - public static function delete(Page $page): void { - getDb()->query("DELETE FROM pages WHERE short_name=?", $page->shortName); + static function delete(Page $page): void { + DB()->query("DELETE FROM pages WHERE short_name=?", $page->shortName); } - public static function getPageByName(string $short_name): ?Page { - $db = getDb(); + static function getByName(string $short_name): ?Page { + $db = DB(); $q = $db->query("SELECT * FROM pages WHERE short_name=?", $short_name); return $db->numRows($q) ? new Page($db->fetch($q)) : null; } @@ -24,8 +66,8 @@ class pages { /** * @return Page[] */ - public static function getAll(): array { - $db = getDb(); + static function getAll(): array { + $db = DB(); return array_map('Page::create_instance', $db->fetchAll($db->query("SELECT * FROM pages"))); } -- cgit v1.2.3