Experimental paged topiclists. Expect breakage.
[specialops2.git] / lib / class.boardlist_default.php
blob14cfd132f9d45ac43881221c7b5103d00e63f109
1 <?php
2 // $Id$
4 $classes['boardlist']['default'] = array('name' => 'SO2', 'ID' => 0);
6 class boardlist_default
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 // See class.boardlist_so1
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($posts, $lastpost) = $DB->query('SELECT COUNT(*), IF('.$board['v'].', MAX(`mtime`), 0)
41 FROM `messages`
42 WHERE `topicid` IN (
43 SELECT `topicid` FROM `topics`
44 WHERE `boardid` = @boardid
45 )')->fetch_row();
46 list($topics) = $DB->query('SELECT COUNT(*) AS `c` FROM `topics` WHERE `boardid` = @boardid')->fetch_row();
48 echo '<tr class="content">',"\n",
49 ' <td>',( $board['v'] ?
50 '<a href="topiclist?'.$boardid.'">'.$board['name'].'</a>' : $board['name'] ),"<br/>\n",
51 ' <small style="margin-left:1em">',$board['caption'],"</small></td>\n",
52 ' <td>',$posts,"</td>\n",
53 ' <td>',$topics,"</td>\n",
54 ' <td>',$user->fdate($lastpost),"</td>\n",
55 "</tr>\n";
57 echo "</tbody>\n";
59 echo "</table>\n";