From fd0c3a283153d6f2d759e5e14888e40e65dc61b7 Mon Sep 17 00:00:00 2001
From: cflip <36554078+cflip@users.noreply.github.com>
Date: Wed, 23 Jun 2021 15:19:21 -0600
Subject: Add latest threads to index page
---
includes/model/Thread.php | 272 +++++++++++++++++++++++---------------------
includes/templates/head.php | 4 +
2 files changed, 148 insertions(+), 128 deletions(-)
mode change 100644 => 100755 includes/model/Thread.php
create mode 100755 includes/templates/head.php
(limited to 'includes')
diff --git a/includes/model/Thread.php b/includes/model/Thread.php
old mode 100644
new mode 100755
index 95bd3d8..e02b4b2
--- a/includes/model/Thread.php
+++ b/includes/model/Thread.php
@@ -1,128 +1,144 @@
-query($sql, "i", $id);
-
- if (empty($result)) {
- return;
- }
-
- $this->id = $id;
- $this->subject = $result[0]['thread_subject'];
- $this->date_created = $result[0]['thread_date_created'];
- $this->date_lastpost = $result[0]['thread_date_lastpost'];
- $this->category = new Category($result[0]['thread_category']);
-
- $this->author = new User();
- $this->author->get_by_id($result[0]['thread_author']);
-
- $this->has_value = true;
- }
-
- public static function create($subject, $category): int
- {
- if (!Session::get()->is_signed_in()) {
- trigger_error('You must be signed in to create a thread');
- return 0;
- }
-
- $user = Session::get()->get_current_user();
-
- // Insert the new thread into the database
- $sql = "INSERT INTO threads(thread_subject, thread_date_created, thread_date_lastpost, thread_category, thread_author) VALUES (?, CONVERT_TZ(NOW(), 'SYSTEM', '+00:00'), CONVERT_TZ(NOW(), 'SYSTEM', '+00:00'), ?, ?);";
- Database::get()->query($sql, "sii", $subject, $category, $user->id);
-
- // Get the ID of the thread we just created
- $thread_id = Database::get()->get_last_id();
-
- // Increment the category's thread count
- $sql = "UPDATE categories SET `cat_thread_count` = `cat_thread_count` + '1' WHERE cat_id = ?;";
- Database::get()->query($sql, "i", $category);
-
- return $thread_id;
- }
-
- public static function delete($thread)
- {
- // User must be signed in
- if (!Session::get()->is_signed_in()) {
- trigger_error('You must be signed in to delete a thread.');
- return;
- }
-
- // User must be a moderator to delete a thread
- $current_user = Session::get()->get_current_user();
- if ($current_user->level != USER_LEVEL_MODERATOR) {
- trigger_error("You must be a moderator to delete this post.");
- return;
- }
-
- // Delete the thread from the database
- Database::get()->query("DELETE FROM threads WHERE thread_id = ?", "i", $thread->id);
-
- // Decrement the thread count of the category
- Database::get()->query("UPDATE categories SET `cat_thread_count` = `cat_thread_count` - '1' WHERE cat_id = ?", "i", $thread->category->id);
- }
-
- public function has_value()
- {
- return $this->has_value;
- }
-
- public static function get_all(): array
- {
- $sql = "SELECT thread_id FROM threads";
- $result = Database::get()->query($sql);
-
- $threads = array();
-
- foreach ($result as $row) {
- $thread = new Thread($row['thread_id']);
- if ($thread->has_value())
- array_push($threads, $thread);
- }
-
- return $threads;
- }
-
- public function get_posts(): array
- {
- $sql = "SELECT post_id FROM posts WHERE post_thread = ?";
- $result = Database::get()->query($sql, "i", $this->id);
-
- $posts = array();
-
- foreach ($result as $row) {
- $post = new Post($row['post_id']);
- if ($post->has_value())
- array_push($posts, $post);
- }
-
- return $posts;
- }
-
- public function get_latest_post(): Post
- {
- $sql = "SELECT post_id FROM posts WHERE post_thread = ? ORDER BY post_date_created DESC LIMIT 1";
- $result = Database::get()->query($sql, "i", $this->id);
- return new Post($result[0]['post_id']);
- }
-}
+query($sql, "i", $id);
+
+ if (empty($result)) {
+ return;
+ }
+
+ $this->id = $id;
+ $this->subject = $result[0]['thread_subject'];
+ $this->date_created = $result[0]['thread_date_created'];
+ $this->date_lastpost = $result[0]['thread_date_lastpost'];
+ $this->category = new Category($result[0]['thread_category']);
+
+ $this->author = new User();
+ $this->author->get_by_id($result[0]['thread_author']);
+
+ $this->has_value = true;
+ }
+
+ public static function create($subject, $category): int
+ {
+ if (!Session::get()->is_signed_in()) {
+ trigger_error('You must be signed in to create a thread');
+ return 0;
+ }
+
+ $user = Session::get()->get_current_user();
+
+ // Insert the new thread into the database
+ $sql = "INSERT INTO threads(thread_subject, thread_date_created, thread_date_lastpost, thread_category, thread_author) VALUES (?, CONVERT_TZ(NOW(), 'SYSTEM', '+00:00'), CONVERT_TZ(NOW(), 'SYSTEM', '+00:00'), ?, ?);";
+ Database::get()->query($sql, "sii", $subject, $category, $user->id);
+
+ // Get the ID of the thread we just created
+ $thread_id = Database::get()->get_last_id();
+
+ // Increment the category's thread count
+ $sql = "UPDATE categories SET `cat_thread_count` = `cat_thread_count` + '1' WHERE cat_id = ?;";
+ Database::get()->query($sql, "i", $category);
+
+ return $thread_id;
+ }
+
+ public static function delete($thread)
+ {
+ // User must be signed in
+ if (!Session::get()->is_signed_in()) {
+ trigger_error('You must be signed in to delete a thread.');
+ return;
+ }
+
+ // User must be a moderator to delete a thread
+ $current_user = Session::get()->get_current_user();
+ if ($current_user->level != USER_LEVEL_MODERATOR) {
+ trigger_error("You must be a moderator to delete this post.");
+ return;
+ }
+
+ // Delete the thread from the database
+ Database::get()->query("DELETE FROM threads WHERE thread_id = ?", "i", $thread->id);
+
+ // Decrement the thread count of the category
+ Database::get()->query("UPDATE categories SET `cat_thread_count` = `cat_thread_count` - '1' WHERE cat_id = ?", "i", $thread->category->id);
+ }
+
+ public function has_value()
+ {
+ return $this->has_value;
+ }
+
+ public static function get_all(): array
+ {
+ $sql = "SELECT thread_id FROM threads";
+ $result = Database::get()->query($sql);
+
+ $threads = array();
+
+ foreach ($result as $row) {
+ $thread = new Thread($row['thread_id']);
+ if ($thread->has_value())
+ array_push($threads, $thread);
+ }
+
+ return $threads;
+ }
+
+ public static function get_latest(): array
+ {
+ $sql = "SELECT thread_id FROM threads ORDER BY thread_date_lastpost DESC LIMIT 10";
+ $result = Database::get()->query($sql);
+
+ $threads = array();
+
+ foreach ($result as $row) {
+ $thread = new Thread($row['thread_id']);
+ if ($thread->has_value())
+ array_push($threads, $thread);
+ }
+
+ return $threads;
+ }
+
+ public function get_posts(): array
+ {
+ $sql = "SELECT post_id FROM posts WHERE post_thread = ?";
+ $result = Database::get()->query($sql, "i", $this->id);
+
+ $posts = array();
+
+ foreach ($result as $row) {
+ $post = new Post($row['post_id']);
+ if ($post->has_value())
+ array_push($posts, $post);
+ }
+
+ return $posts;
+ }
+
+ public function get_latest_post(): Post
+ {
+ $sql = "SELECT post_id FROM posts WHERE post_thread = ? ORDER BY post_date_created DESC LIMIT 1";
+ $result = Database::get()->query($sql, "i", $this->id);
+ return new Post($result[0]['post_id']);
+ }
+}
diff --git a/includes/templates/head.php b/includes/templates/head.php
new file mode 100755
index 0000000..d7c5758
--- /dev/null
+++ b/includes/templates/head.php
@@ -0,0 +1,4 @@
+
+
+
+
\ No newline at end of file
--
cgit v1.2.3