diff options
Diffstat (limited to 'htdocs/src/Post.inc.php')
-rw-r--r-- | htdocs/src/Post.inc.php | 70 |
1 files changed, 68 insertions, 2 deletions
diff --git a/htdocs/src/Post.inc.php b/htdocs/src/Post.inc.php index 22d2fce..cfd7d07 100644 --- a/htdocs/src/Post.inc.php +++ b/htdocs/src/Post.inc.php @@ -12,10 +12,18 @@ require_once "base.inc.php"; class Post { private $info; + private $indatabase = false; public function __construct($info=null) { - $this->info = $info; + $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) { @@ -51,21 +59,54 @@ class Post { public function save() { $db = getDatabase(); - // TODO: Implement Save + // Cleanup Info + foreach ($this->info as $key=>$value) $info[$key] = addslashes($value); + + // Save or create? + if ($this->indatabase) { + return $db->update('post', $info, "WHERE `id`='". $this->getId() ."'"); + + } else { + // Creating... set special fields. + $info['stage'] = 'verification'; + $info['secretid'] = uniqid(); + + $ret = $db->insert('post', $info); + + if ($ret) { + $this->info['id'] = $ret; + $this->info['stage'] = 'verification'; + $this->info['secretid'] = $info['secretid']; + } + + return $ret; + } } public function getId() { return $this->info['id']; } + public function getSecretId() { + return $this->info['secretid']; + } + public function getName() { return htmlspecialchars($this->info['name']); } + public function setName($value) { + $this->info['name'] = $value; + } + public function getDescription() { return htmlspecialchars($this->info['description']); } + public function setDescription($value) { + $this->info['description'] = $value; + } + public function getStage() { return $this->info['stage']; } @@ -82,6 +123,18 @@ class Post { return $this->info['created']; } + public function getEmail() { + return $this->info['email']; + } + + public function setEmail($value) { + $this->info['email'] = $value; + } + + public function setCategory($value) { + $this->info['category_id'] = $value; + } + public function getAge() { $diff = time() - $this->info['createdts']; @@ -105,6 +158,19 @@ class Post { public function getLocation() { return $this->info['location']; } + + public function sendValidation() { + $email = new Email($this->getEmail()); + + $email->setSubject($GLOBAL['CONFIG']['sitetitle'] . " Email Validation"); + + $url = $GLOBALS['CONFIG']['urlroot'] . '/validate.php?id=' . $this->getSecretId(); + + $email->appendMessage("Please click on the link below to verify your email address.\n\n"); + $email->appendMessage($url); + + $email->send(); + } } ?> |