Special Ops 2.50
[specialops2.git] / lib / Boardlist_Lite.php
blobe056a2914c5c3cf8e72badc5504f3fd6a6640172
1 <?php
2 require_once 'iface.Boardlist.php';
4 /**
5 * SO2 Compact Boardlist Module
7 * @author Ant P <p@cpi.merseine.nu>
8 * @licence file://../COPYING
9 * @version 2.15
11 class Boardlist_Lite implements Boardlist
13 function display()
15 $q = SO2::$DB->query('SELECT group_name, boardid, board_name AS name, view_lvl, points '.
16 'FROM boards LEFT JOIN board_groups USING(groupid) '.
17 'WHERE hidden = 0 ORDER BY groupid ASC, boardid ASC')->fetchAll(PDO::FETCH_ASSOC);
19 // Really bad multidimensional array hack
20 foreach ( $q as $board ) {
21 $groups[array_shift($board)][array_shift($board)] = $board;
23 // How I mine for fish?>
24 <table>
25 <thead>
26 <tr><th>Board</th><th>Posts</th><th>Topics</th><th>Last Post</th></tr>
27 </thead>
28 <?php
29 foreach ( $groups as $groupname => $boards ) {
30 echo '<tbody class="boardgroup">',"\n",
31 '<tr><th scope="rowgroup" colspan="4">',$groupname,"</th></tr>\n";
33 foreach ( $boards as $boardid => $board ) {
34 SO2::$DB->exec('SET @boardid = '.$boardid);
36 $counts = SO2::$DB->query('SELECT boards.posts, boards.topics, MAX(mtime) AS post FROM boards, topics, messages '.
37 'WHERE boards.boardid = topics.boardid AND lastpost=messageid AND boards.boardid = @boardid '.
38 'GROUP BY boards.boardid')->fetch(PDO::FETCH_ASSOC);
40 echo '<tr class="content">',
41 '<td>',(
42 SO2::$User->has_access('viewboard', $board)
43 ? '<a href="topiclist?'.$boardid.'">'.$board['name'].'</a>'
44 : $board['name']
45 ),'</td>';
47 if ( $counts['posts'] ) {
48 echo '<td>',$counts['posts'],'</td><td>',$counts['topics'],'</td>';
49 if ( SO2::$User->has_access('viewboard', $board) ) {
50 echo '<td>',SO2::$Page->fdate($counts['post']),'</td>';
51 } else {
52 echo '<td>N/A</td>';
54 } else {
55 echo '<td colspan="3">N/A</td>';
57 echo "</tr>\n";
59 echo "</tbody>\n";
61 echo "</table>\n";