Experimental paged topiclists. Expect breakage.
[specialops2.git] / lib / class.boardlist_so1.php
blob59ae88525784d802296196654450d61ece386d6a
1 <?php
2 // $Id$
4 $classes['boardlist']['so1'] = array('name' => 'SO1', 'ID' => 1);
6 class boardlist_so1
8 function __construct()
10 global $DB, $user;
12 $boards = $DB->query('SELECT `group_name`, `boardid`, `board_name` AS `name`,
13 (`view_level`<='.$user->level.') AS `v`, `caption`
14 FROM `boards`
15 LEFT JOIN `board-groups` USING(`groupid`)
16 ORDER BY `groupid` ASC, `boardid` ASC', MYSQLI_USE_RESULT);
18 // Really bad multidimensional array hack
19 while ( $tmp = $boards->fetch_assoc() )
20 $groups[array_shift($tmp)][array_shift($tmp)] = $tmp;
22 echo '<table id="boardlist">',"\n",
23 "<col/><col/><col/><col/>\n",
24 "<thead>\n",
25 "<tr>\n",
26 ' <th scope="col">Board</th>',"\n",
27 ' <th scope="col">Posts</th>',"\n",
28 ' <th scope="col">Topics</th>',"\n",
29 ' <th scope="col">Last Post</th>',"\n",
30 "</tr>\n",
31 "</thead>\n";
33 foreach ( $groups as $groupname => $boards ) {
34 echo '<tbody class="boardgroup">',"\n",
35 '<tr><th scope="rowgroup" colspan="4">',$groupname,"</th></tr>\n";
37 foreach ( $boards as $boardid => $board ) {
38 $DB->query('SET @boardid = '.$boardid);
40 list($postcount, $lastpost) = $DB->query('SELECT COUNT(*), MAX(`messageid`) FROM `messages`
41 WHERE `topicid` IN (SELECT `topicid` FROM `topics` WHERE `boardid` = @boardid)')->fetch_row();
42 $topiccount = $DB->query('SELECT COUNT(*) AS `c` FROM `topics`
43 WHERE `boardid` = @boardid')->fetch_object()->c;
45 if ( $lastpost )
46 $postinfo = $DB->query('SELECT `messages`.`userid`, `alias`, `mtime`, `topics`.`topicid`, `topic_title`
47 FROM `messages`
48 LEFT JOIN `topics` USING(`topicid`)
49 LEFT JOIN `users` ON `messages`.`userid` = `users`.`userid`
50 WHERE `messageid` = '.$lastpost)->fetch_assoc();
51 else
52 $postinfo = null;
54 echo '<tr class="content">',"\n",
55 ' <td>',( $board['v'] ?
56 '<a href="topiclist?'.$boardid.'">'.$board['name'].'</a>' : $board['name'] ),"<br/>\n",
57 ' <small style="margin-left:1em">',$board['caption'],"</small></td>\n",
58 ' <td>',$postcount,"</td>\n",
59 ' <td>',$topiccount,"</td>\n";
61 if ( $postinfo && $board['v'] )
62 printf(" <td><small>\n".
63 " <strong>From:</strong> %s\n".
64 " <strong>at</strong> %s<br/>\n".
65 ' <strong>in topic:</strong> <a class="topic"'.
66 ' href="messagelist?%d">%s</a></small></td>'."\n".
67 "</tr>\n",
68 $user->namelink($postinfo['userid'],
69 $postinfo['alias']),
70 $user->fdate($postinfo['mtime']),
71 $postinfo['topicid'],
72 $postinfo['topic_title']
74 else
75 echo "\t<td>N/A</td>\n</tr>\n";
77 echo "</tbody>\n";
79 echo "</table>\n";