X-Git-Url: https://disinclined.org/git/?a=blobdiff_plain;f=index.php;h=700f69a182a9cb0d81bd7b72821a8dbc57195337;hb=f870b65ad60d8ea7456384d38f8db6fd01275990;hp=0f23b809a0fe5c7f9e3e57d77e2732d19e869946;hpb=f7025d5e13262ba32a86b04ced7a3ed47cf70f18;p=dylansserver.git diff --git a/index.php b/index.php index 0f23b80..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'] == '/') { @@ -93,12 +95,20 @@ abstract class cms { END_OF_HEAD; } - public function display_close(){ - echo <<

dylan

@psu.edu +END_OF_CONTACT; + } + + public function display_close($show_contact = true) { + if ($show_contact) { + $this->display_contact(); + } + echo <<

@@ -151,9 +161,13 @@ class index extends cms {
  • - OTHER_PROJECTS; - $this->display_close(); + // Because of the CSS necessary for the animations, + // the contact link needs to be in #portfolio to clear + // the floats. + $this->display_contact(); + echo ""; + $this->display_close($show_contact = false); } protected function display_exhibits() { @@ -317,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 "
    "; + foreach ($result as $row => $entry) { + $title = $entry['title']; + $url = '/note/' . $entry['url']; + $date_posted = explode("-", $entry['date_posted']); + $year_posted = $date_posted[0]; + $month_posted = $date_posted[1]; + $datetime_posted = explode(' ', $date_posted[2]); + $day_posted = $datetime_posted[0]; + echo "
    "; + echo "

    $year_posted/$month_posted/$day_posted/$title

    "; + echo $entry['text']; + echo "
    "; + } + echo "
    "; + $this->write_navigation(); + } else { + echo "
    "; + echo "

    sorry, nothing here

    "; + echo "
    Empty set (0.00 sec)
    "; + } + $this->display_close(); + } + + private function write_navigation() { + echo "
    "; + echo "
    "; + echo "

    "; + // fill me in! + echo "

    "; + echo "
    "; + } +} + + class notFound extends Exception { public function __construct() { header("HTTP/1.0 404 Not Found"); @@ -344,6 +444,10 @@ switch (cms::determine_type()) { $page = new page; $page->display(); break; + case "archive": + $archive = new archive; + $archive->display(); + break; } ?>