4in1_ws_web/lib/pages.php

39 lines
1.1 KiB
PHP

<?php
class pages {
public static function add(array $data): bool {
$db = DB();
$data['ts'] = time();
$data['html'] = markup::markdownToHtml($data['md']);
if (!$db->insert('pages', $data))
return false;
return true;
}
public static function delete(Page $page): void {
DB()->query("DELETE FROM pages WHERE short_name=?", $page->shortName);
previous_texts::delete(PreviousText::TYPE_PAGE, $page->get_id());
}
public static function getById(int $id): ?Page {
$db = DB();
$q = $db->query("SELECT * FROM pages WHERE id=?", $id);
return $db->numRows($q) ? new Page($db->fetch($q)) : null;
}
public 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;
}
/**
* @return Page[]
*/
public static function getAll(): array {
$db = DB();
return array_map('Page::create_instance', $db->fetchAll($db->query("SELECT * FROM pages")));
}
}