2 require_once 'iface.Boardlist.php';
5 * SO2 Compact Boardlist Module
7 * @author Ant P <p@cpi.merseine.nu>
8 * @licence file://../COPYING
11 class Boardlist_Lite
implements Boardlist
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?>
26 <tr
><th
>Board
</th
><th
>Posts
</th
><th
>Topics
</th
><th
>Last Post
</th
></tr
>
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">',
42 SO2
::$User->has_access('viewboard', $board)
43 ?
'<a href="topiclist?'.$boardid.'">'.$board['name'].'</a>'
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>';
55 echo '<td colspan="3">N/A</td>';