";
- $sql = "SELECT text FROM projects
- WHERE title = ?";
- $result = $this->query($sql, "s", $_GET['project']);
- if ($result = $result[0]['text']) {
- $text = str_replace("class=\"exhibit\"", "class=\"exhibit\" style=\"display:block;\"", $result);
- echo $text;
- echo "
";
- } else {
- throw new notFound();
- }
- }
-}
-
-class page extends cms {
- private $page = 1;
- private $offset = 0;
- private $notes_per_page = 4;
- private $number_of_pages = 1;
-
- public function __construct() {
- parent::__construct();
- $this->page_offset();
- }
-
- private function page_offset() {
- $sql = "SELECT COUNT(*) FROM notes";
- $result = $this->db->query($sql);
- $result = $result->fetch_array();
- $this->number_of_pages = ceil($result[0] / $this->notes_per_page);
- if (isset($_GET['page']) && is_numeric($_GET['page'])) {
- $this->page = (int) $_GET['page'];
- } else {
- throw new notFound();
- }
- if ($this->page > $this->number_of_pages) {
- throw new notFound();
- }
- if ($this->page < 1) {
- throw new notFound();
- }
- $this->offset = ($this->page - 1) * $this->notes_per_page;
- }
-
- public function display() {
- $this->display_head();
- echo "";
- $sql = "SELECT date_posted, title, url, text
- FROM notes ORDER BY date_posted DESC
- LIMIT ?, ?";
- $result = $this->query($sql, "ii",
- $this->offset,
- $this->notes_per_page);
- 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();
- $this->display_close();
- }
-
- private function write_navigation() {
- echo "";
- echo "
$year_posted/$month_posted/$day_posted/$title
";
- echo $entry['text'];
- $this->write_navigation();
- $this->display_close();
- }
-
- private function write_navigation() {
- echo "
";
- echo "
";
- echo "
";
- echo "notes/";
- echo "
";
- echo "
";
- }
-}
-
-
-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");
- ob_end_clean();
- include("404.php");
- exit();
- }
-}
-
-## now actually do something:
-switch (cms::determine_type()) {
- case "index":
- $index = new index();
- $index->display();
- break;
- case "project":
- $project = new project();
- $project->display();
- break;
- case "note":
- $note = new note;
- $note->display();
- break;
- case "page":
- $page = new page;
- $page->display();
- break;
- case "archive":
- $archive = new archive;
- $archive->display();
- break;
-}
-
+require_once("controller.php");
+cms::init();
?>