From 0720091ca73b9714aab2b38c3682c15a0cbd4533 Mon Sep 17 00:00:00 2001 From: Jesse Morgan Date: Thu, 2 Jun 2011 17:20:54 -0700 Subject: Added pages --- htdocs/src/Page.inc.php | 132 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 132 insertions(+) create mode 100644 htdocs/src/Page.inc.php (limited to 'htdocs/src/Page.inc.php') diff --git a/htdocs/src/Page.inc.php b/htdocs/src/Page.inc.php new file mode 100644 index 0000000..edb0583 --- /dev/null +++ b/htdocs/src/Page.inc.php @@ -0,0 +1,132 @@ + + * + */ + +require_once "base.inc.php"; + +class Page { + private $info; + private $indatabase; + + public function __construct($info=null) { + $this->info = is_null($info) ? array() : $info; + + if ($info !== null and isset($info['id'])) { + $this->indatabase = true; + + } else { + $this->indatabase = false; + } + } + + public static function getById($id) { + $where = "id='$id'"; + + return Page::getPage($where); + } + + public static function getByUrl($url) { + $where = "url='$url'"; + + return Page::getPage($where); + } + + private static function getPage($where) { + $query = "SELECT * FROM page WHERE $where"; + + $db = getDatabase(); + + $row = $db->fetchAssocRow($query); + + if ($row) { + $page = new Page(); + $page->info = $row; + $page->indatabase = true; + + return $page; + + } else { + return false; + } + } + + public function save() { + $db = getDatabase(); + + // Cleanup Info + foreach ($this->info as $key=>$value) + $info[$key] = addslashes($value); + + // Save or create? + if ($this->indatabase) { + try { + $db->update('page', $info, "WHERE `id`='" + . $this->getId() ."'"); + return true; + + } catch (Cif_Database_Exception $e) { + return false; + } + + } else { + // Creating... + try { + $ret = $db->insert('page', $info); + + if ($ret) { + $this->info['id'] = $ret; + $this->indatabase = true; + } + + return true; + + } catch (Cif_Database_Exception $e) { + return false; + } + } + } + + public function delete() { + $db = getDatabase(); + + $db->delete('page', 'id=' . $this->getId()); + + $this->indatabase = false; + } + + public function getId() { + return $this->info['id']; + } + + public function getTitle() { + return $this->info['title']; + } + + public function setTitle($value) { + $this->info['title'] = $value; + } + + public function getURL() { + return $this->info['url']; + } + + public function setURL($value) { + $this->info['url'] = $value; + } + + public function getContent() { + return $this->info['content']; + } + + public function setContent($value) { + $this->info['content'] = $value; + } +} + +?> -- cgit v1.2.3