X-Git-Url: https://disinclined.org/git/?a=blobdiff_plain;f=index.php;fp=index.php;h=700f69a182a9cb0d81bd7b72821a8dbc57195337;hb=f870b65ad60d8ea7456384d38f8db6fd01275990;hp=29e4076463cc821d8fdda546f037b2436c5c6adb;hpb=6f04d2b1c7461b1c50dd3c9f895baabafc4d6db4;p=dylansserver.git diff --git a/index.php b/index.php index 29e4076..700f69a 100644 --- a/index.php +++ b/index.php @@ -22,6 +22,8 @@ abstract class cms { public static function determine_type() { if (isset($_GET['page']) && is_numeric($_GET['page'])) { return 'page'; + } else if (isset($_GET['year'])) { + return 'archive'; } else if (isset($_GET['note'])) { return 'note'; } else if ($_SERVER['REQUEST_URI'] == '/') { @@ -329,6 +331,92 @@ class note extends cms { } } + +class archive extends cms { + + public function __construct() { + parent::__construct(); + } + + private function check_exists() { + $sql = "SELECT COUNT(*) FROM notes + WHERE url = ?"; + $results = $this->query($sql, "s", $_GET['note']); + if ($results[0]["COUNT(*)"] != 1) { + $this->not_found(); + } + } + + public function display() { + // this really needs its own pagination... + // there should be a class for that. + $this->display_head(); + switch (true) { + case (isset($_GET['year']) && !isset($_GET['month']) + && !isset($_GET['day'])): + $sql = "SELECT title, url, date_posted, text + FROM notes WHERE YEAR(date_posted) = ? + ORDER BY date_posted DESC"; + $result = $this->query($sql, "d", + $_GET['year']); + break; + case (isset($_GET['year']) && isset($_GET['month']) + && !isset($_GET['day'])): + $sql = "SELECT title, url, date_posted, text + FROM notes WHERE YEAR(date_posted) = ? + AND MONTH(date_posted) = ? + ORDER BY date_posted DESC"; + $result = $this->query($sql, "dd", + $_GET['year'], $_GET['month']); + break; + case (isset($_GET['year']) && isset($_GET['month']) + && isset($_GET['day'])): + $sql = "SELECT title, url, date_posted, text + FROM notes WHERE YEAR(date_posted) = ? + AND MONTH(date_posted) = ? + AND DAY(date_posted) = ? + ORDER BY date_posted DESC"; + $result = $this->query($sql, "ddd", + $_GET['year'], $_GET['month'], + $_GET['day']); + break; + } + if (count($result) >= 1) { + echo "
Empty set (0.00 sec)"; + } + $this->display_close(); + } + + private function write_navigation() { + echo "