summaryrefslogtreecommitdiff
path: root/includes/model/Category.php
diff options
context:
space:
mode:
Diffstat (limited to 'includes/model/Category.php')
-rw-r--r--includes/model/Category.php56
1 files changed, 56 insertions, 0 deletions
diff --git a/includes/model/Category.php b/includes/model/Category.php
new file mode 100644
index 0000000..ed53bdc
--- /dev/null
+++ b/includes/model/Category.php
@@ -0,0 +1,56 @@
+<?php
+
+include_once 'Thread.php';
+
+class Category
+{
+ public $id = 0;
+ public $name = 'Unknown';
+ public $description = 'This category does not exist';
+ public $thread_count = 0;
+ public $post_count = 0;
+
+ function get_from_database($id): bool
+ {
+ $sql = "SELECT cat_name, cat_description, cat_thread_count, cat_post_count FROM categories WHERE cat_id = ?;";
+ $result = Database::get()->query($sql, "i", $id);
+
+ if (empty($result)) {
+ return false;
+ }
+
+ $this->id = $id;
+ $this->name = $result[0]['cat_name'];
+ $this->description = $result[0]['cat_description'];
+ $this->thread_count = $result[0]['cat_thread_count'];
+ $this->post_count = $result[0]['cat_post_count'];
+
+ return true;
+ }
+
+ function get_threads(): array
+ {
+ $sql = "SELECT thread_id FROM threads WHERE thread_category = ? ORDER BY thread_date_lastpost DESC";
+ $result = Database::get()->query($sql, "i", $this->id);
+ $threads = array();
+
+ foreach ($result as $row) {
+ $thread = new Thread();
+ $thread->get_from_database($row['thread_id']);
+ array_push($threads, $thread);
+ }
+
+ return $threads;
+ }
+
+ function get_latest_thread(): Thread
+ {
+ $sql = "SELECT thread_id FROM threads WHERE thread_category = ? ORDER BY thread_date_lastpost DESC LIMIT 1";
+ $result = Database::get()->query($sql, "i", $this->id);
+
+ $thread = new Thread();
+ $thread->get_from_database($result[0]['thread_id']);
+
+ return $thread;
+ }
+}