From c9732788143886b611cb2fecfb53daf3d8add48f Mon Sep 17 00:00:00 2001
From: cflip <36554078+cflip@users.noreply.github.com>
Date: Wed, 24 Mar 2021 18:29:41 -0600
Subject: Show latest thread/post on pages
---
category.php | 22 ++++++++++++++++++++--
index.php | 5 ++++-
model/Category.php | 22 ++++++++++++++++++++++
model/Thread.php | 22 ++++++++++++++++++++++
4 files changed, 68 insertions(+), 3 deletions(-)
diff --git a/category.php b/category.php
index a71029e..ad4faa6 100644
--- a/category.php
+++ b/category.php
@@ -28,13 +28,31 @@ if (!isset($_GET['id']) || !filter_var($_GET['id'], FILTER_VALIDATE_INT)) {
Latest Post |
date_lastpost);
+ $db = strtotime($b->date_lastpost);
+
+ if ($da == $db) return 0;
+
+ return ($da > $db) ? -1 : 1;
+ }
+
$threads = $current->get_threads($dbc);
+ usort($threads, "cmp");
foreach ($threads as $thread) {
+ $latest_post = $thread->get_latest_post($dbc);
+
echo '';
echo '' . $thread->subject . ' ';
- echo 'by ' . $thread->author->name . ' on ' . date('M d, Y', strtotime($thread->date_created)) . ' | ';
- echo '' . date('M d, Y', strtotime($thread->date_lastpost)) . ' | ';
+ echo 'by ' . $thread->author->name . ' on ' . date('M d, Y', strtotime($thread->date_created)) . '';
+
+ if (!is_null($latest_post)) {
+ echo 'by ' . $latest_post->author->name . ' on ' . $latest_post->date . ' | ';
+ } else {
+ echo 'No posts yet! | ';
+ }
+
echo '
';
}
?>
diff --git a/index.php b/index.php
index 6c1c0c9..b4b00a1 100644
--- a/index.php
+++ b/index.php
@@ -38,6 +38,8 @@
usort($categories, "cmp");
foreach ($categories as $category) {
+ $latest_thread = $category->get_latest_thread($dbc);
+
echo '';
echo '';
echo '' . $category->name . '';
@@ -45,7 +47,8 @@
echo ' | ';
echo '' . $category->thread_count . ' | ';
echo '' . $category->post_count . ' | ';
- echo 'my supercool thread by cflip, 3 days ago | ';
+ echo '' . $latest_thread->subject . ' ';
+ echo 'by ' . $latest_thread->author->name . ', ' . $latest_thread->date_created . ' | ';
echo '
';
}
?>
diff --git a/model/Category.php b/model/Category.php
index ffd903c..4e57f46 100644
--- a/model/Category.php
+++ b/model/Category.php
@@ -54,6 +54,28 @@ class Category {
mysqli_free_result($result);
return $threads;
}
+
+ function get_latest_thread($dbc) {
+ $sql = "SELECT thread_id FROM threads WHERE thread_category = " . $this->id . " ORDER BY thread_date_lastpost DESC LIMIT 1";
+ $result = mysqli_query($dbc, $sql);
+
+ if (!$result) {
+ echo 'Could not get thread from category: ' . mysqli_error($dbc);
+ }
+
+ $thread = null;
+
+ if (mysqli_num_rows($result) == 0) {
+ } else {
+ while ($row = mysqli_fetch_assoc($result)) {
+ $thread = new Thread();
+ $thread->get_from_database($row['thread_id'], $dbc);
+ }
+ }
+
+ mysqli_free_result($result);
+ return $thread;
+ }
}
function get_all_categories($dbc) {
diff --git a/model/Thread.php b/model/Thread.php
index ade24b5..20c6c0a 100644
--- a/model/Thread.php
+++ b/model/Thread.php
@@ -62,6 +62,28 @@ class Thread {
mysqli_free_result($result);
return $posts;
}
+
+ function get_latest_post($dbc) {
+ $sql = "SELECT post_id FROM posts WHERE post_thread = " . $this->id . " ORDER BY post_date DESC LIMIT 1";
+ $result = mysqli_query($dbc, $sql);
+
+ if (!$result) {
+ echo 'Could not get post from category: ' . mysqli_error($dbc);
+ }
+
+ $post = null;
+
+ if (mysqli_num_rows($result) == 0) {
+ } else {
+ while ($row = mysqli_fetch_assoc($result)) {
+ $post = new Post();
+ $post->get_from_database($row['post_id'], $dbc);
+ }
+ }
+
+ mysqli_free_result($result);
+ return $post;
+ }
}
function get_all_threads($dbc) {
--
cgit v1.2.3