summaryrefslogtreecommitdiff
path: root/htdocs/src/Post.inc.php
diff options
context:
space:
mode:
Diffstat (limited to 'htdocs/src/Post.inc.php')
-rw-r--r--htdocs/src/Post.inc.php70
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();
+ }
}
?>