summaryrefslogtreecommitdiff
path: root/forum/utils
diff options
context:
space:
mode:
Diffstat (limited to 'forum/utils')
-rw-r--r--forum/utils/forums.php25
-rw-r--r--forum/utils/threads.php28
2 files changed, 41 insertions, 12 deletions
diff --git a/forum/utils/forums.php b/forum/utils/forums.php
index 1827e3c..06196a6 100644
--- a/forum/utils/forums.php
+++ b/forum/utils/forums.php
@@ -1,4 +1,4 @@
-<?php
+<?php /* -*- Mode: php; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
include_once($UTIL_DIR . "/convert.php");
include_once($UTIL_DIR . "/threads.php");
@@ -8,18 +8,31 @@ class Forum {
public $fid;
public $name;
private $newStuff;
+ private $numPosts;
+ private $latestPost;
- public function setNewStuff($newStuff)
+ public function setNewStuff($newStuff, $threads)
{
+ $this->numPosts = sizeof($threads->threads);
+ $this->latestPost = "";
+ $t = $threads->getLatestThread();
+ if($t) {
+ $this->latestPost = $t->name;
+ }
+
$this->newStuff = $newStuff;
}
public function show()
{
+ $newcls = "";
+ if($this->newStuff) $newcls = " forum_new";
+
echo " <div class=\"forum\">\n";
- if($this->newStuff) echo " <div class=\"new\"></div>\n";
- else echo " <div class=\"nonew\"></div>\n";
- echo " <a href=\"?fid=" . $this->fid . "\">" . $this->name . "</a>\n";
+ echo " <span class=\"forum_icon".$newcls."\"></span>\n";
+ echo " <a class=\"forum_title\" href=\"?fid=" . $this->fid . "\">" . $this->name . "</a>\n";
+ echo " <span class=\"forum_latestpost\">".$this->latestPost."</span>\n";
+ echo " <span class=\"forum_numberofthreads\">".sprintf("%d", $this->numPosts)." threads</span>\n";
echo " </div>\n";
}
@@ -92,7 +105,7 @@ class Forums {
$this->add($forum);
$threads = new Threads($FORUMS_DIR . "/" . $f->getAttribute('fid'));
- $forum->setNewStuff($threads->newStuff());
+ $forum->setNewStuff($threads->newStuff(), $threads);
}
}
diff --git a/forum/utils/threads.php b/forum/utils/threads.php
index 0c4ef32..11c54ee 100644
--- a/forum/utils/threads.php
+++ b/forum/utils/threads.php
@@ -1,4 +1,4 @@
-<?php
+<?php /* -*- Mode: php; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
include_once($UTIL_DIR . "/convert.php");
@@ -20,14 +20,16 @@ class Thread {
public function show()
{
global $fid, $current_user;
+
$jumptonew = "";
- echo " <div class=\"thread\">\n";
+ $newcls = "";
if($this->lastseen[$current_user->uid] < $this->lastpost) {
- echo " <div class=\"new\"></div>";
+ $newcls = " thread_new";
$jumptonew = "#firstunread";
- } else {
- echo " <div class=\"nonew\"></div>\n";
- }
+ }
+
+ echo " <div class=\"thread\">\n";
+ echo " <span class=\"thread_icon".$newcls."\"></span>";
echo " <a href=\"?fid=" . $fid . "&amp;tid=" . $this->tid . $jumptonew."\">" . $this->name . "</a>\n";
echo " </div>\n";
}
@@ -117,6 +119,20 @@ class Threads {
return $thread;
}
+ public function getLatestThread()
+ {
+ $tid = -1;
+ $last = -1;
+ foreach($this->threads as $thread) {
+ if($thread->lastpost > $last) {
+ $last = $thread->lastpost;
+ $tid = $thread->tid;
+ }
+ }
+ if($tid != -1) return $this->getThread($tid);
+ return NULL;
+ }
+
public function show()
{
foreach($this->threads as $thread) {