D7net
Home
Console
Upload
information
Create File
Create Folder
About
Tools
:
/
proc
/
thread-self
/
root
/
proc
/
self
/
root
/
var
/
softaculous
/
fud
/
default
/
Filename :
draw_forum_list.inc
back
Copy
<?php /** * copyright : (C) 2001-2018 Advanced Internet Designs Inc. * email : forum@prohost.org * $Id$ * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the * Free Software Foundation; version 2 of the License. **/ $collapse = $usr->cat_collapse_status ? unserialize($usr->cat_collapse_status) : array(); $cat_id = !empty($_GET['cat']) ? (int) $_GET['cat'] : 0; $frm_id = !empty($_GET['frm_id']) ? (int) $_GET['frm_id'] : 0; if ($cat_id && !empty($collapse[$cat_id])) { $collapse[$cat_id] = 0; } require $FORUM_SETTINGS_PATH .'idx.inc'; if (!isset($cidxc[$cat_id])) { $cat_id = 0; } $cbuf = $forum_list_table_data = $cat_path = ''; if ($cat_id) { $cid = $cat_id; while (($cid = $cidxc[$cid][4]) > 0) { $cat_path = ' » <a href="[[relativeurl]]/index.php?t=i&cat='.$cid.'&'._rsid.'">'.$cidxc[$cid][1].'</a>'. $cat_path; } $cat_path = '<br /> <a href="[[relativeurl]]/index.php?t=i&'._rsid.'">Home</a> '.$cat_path.' » <b>'.$cidxc[$cat_id][1].'</b>'; } /* List of fetched fields & their ids 0 msg.subject, 1 msg.id AS msg_id, 2 msg.post_stamp, 3 users.id AS user_id, 4 users.alias 5 forum.cat_id, 6 forum.forum_icon 7 forum.id 8 forum.last_post_id 9 forum.moderators 10 forum.name 11 forum.descr 12 forum.url_redirect 13 forum.post_count 14 forum.thread_count 15 forum_read.last_view 16 is_moderator 17 read perm 18 is the category using compact view */ $c = uq('SELECT m.subject, m.id, m.post_stamp, u.id, u.alias, f.cat_id, f.forum_icon, f.id, f.last_post_id, f.moderators, f.name, f.descr, f.url_redirect, f.post_count, f.thread_count, '. (_uid ? 'fr.last_view, mo.id, COALESCE(g2.group_cache_opt, g1.group_cache_opt) AS group_cache_opt' : '0,0,g1.group_cache_opt') .', c.cat_opt FROM fud30_fc_view v INNER JOIN fud30_cat c ON c.id=v.c INNER JOIN fud30_forum f ON f.id=v.f INNER JOIN fud30_group_cache g1 ON g1.user_id='. (_uid ? 2147483647 : 0) .' AND g1.resource_id=f.id LEFT JOIN fud30_msg m ON f.last_post_id=m.id LEFT JOIN fud30_users u ON u.id=m.poster_id '. (_uid ? ' LEFT JOIN fud30_forum_read fr ON fr.forum_id=f.id AND fr.user_id='. _uid .' LEFT JOIN fud30_mod mo ON mo.user_id='. _uid .' AND mo.forum_id=f.id LEFT JOIN fud30_group_cache g2 ON g2.user_id='. _uid .' AND g2.resource_id=f.id' : ''). ' WHERE f.parent = '. $frm_id . ((!$is_a || $cat_id) ? ' AND ' : '') . ($is_a ? '' : (_uid ? ' (mo.id IS NOT NULL OR ('. q_bitand('COALESCE(g2.group_cache_opt, g1.group_cache_opt)', 1) .' > 0))' : ' ('. q_bitand('g1.group_cache_opt', 1) .' > 0)')) . ($cat_id ? ($is_a ? '' : ' AND ') .' v.c IN('. implode(',', ($cf = $cidxc[$cat_id][5])) .') ' : '') .' ORDER BY v.id'); $post_count = $thread_count = $last_msg_id = $cat = 0; while ($r = db_rowarr($c)) { /* Increase thread & post count. */ $post_count += $r[13]; $thread_count += $r[14]; $cid = (int) $r[5]; if ($cat != $cid && !$frm_id) { if ($cbuf) { /* If previous category was using compact view, print forum row. */ if (empty($collapse[$i[4]])) { /* Only show if parent is not collapsed as well. */ $forum_list_table_data .= '<tr class="row child-c'.$cat.'"> <td class="RowStyleA wo hide2"> </td> <td class="RowStyleB ac wo hide2"> </td> <td class="RowStyleA wa" colspan="4">Available Forums:'.$cbuf.'</td> </tr>'; } $cbuf = ''; } foreach ($cidxc as $k => $i) { /* 2nd check ensures that we don't end up displaying categories without any children. */ if (($cat_id && !isset($cf[$k])) || ($cid != $k && $i[4] >= $cidxc[$cid][4])) { continue; } /* If parent category is collapsed, hide child category. */ if ($i[4] && !empty($collapse[$i[4]])) { $collapse[$k] = 1; } if ($k == $cid) { break; // Got it! } } $cat = $cid; if ($i[3] & 1 && $k != $cat_id && !($i[3] & 4)) { if (!isset($collapse[$k])) { $collapse[$k] = !($i[3] & 2); } $forum_list_table_data .= '<tr id="c'.$r[5].'" style="display: table-row;"> <td class="CatDesc '.(empty($collapse[$cid]) ? 'expanded' : 'collapsed' ) .'" colspan="5" style="padding-left: '.($i[0] ? $i[0] * 20 : '0').'px;"> <a href="[[relativeurl]]/index.php?t=index&cat='.$k.'&'._rsid.'" class="CatLink">'.$i[1].'</a> '.$i[2].' </td> <td class="CatDesc hide1"> '.(key($cidxc) ? '<a href="javascript://" onclick=\'nextCat("c'.$k.'")\'><img src="[[relativeurl]]/theme/default/images/down.png" alt="" width="16" height="11" border="0" style="vertical-align: top; float: right;" /></a>' : '' ) .' '.($cat ? '<a href="javascript://" onclick=\'prevCat("c'.$k.'")\'><img src="[[relativeurl]]/theme/default/images/up.png" border="0" alt="" width="16" height="11" style="vertical-align: top; float: right;" /></a>' : '' ) .' </td> </tr>'; } else { if ($i[3] & 4) { ++$i[0]; } $forum_list_table_data .= '<tr id="c'.$r[5].'" style="display: table-row;"> <td class="CatDesc CatLockPad" colspan="5" style="padding-left: '.($i[0] ? $i[0] * 20 : '0').'px;"> <span class="CatLockedName"><a href="[[relativeurl]]/index.php?t=index&cat='.$k.'&'._rsid.'" class="CatLink">'.$i[1].'</a></span> '.$i[2].' </td> <td class="CatDesc hide1"> '.(key($cidxc) ? '<a href="javascript://" onclick=\'nextCat("c'.$k.'")\'><img src="[[relativeurl]]/theme/default/images/down.png" alt="" width="16" height="11" border="0" style="vertical-align: top; float: right;" /></a>' : '' ) .' '.($cat ? '<a href="javascript://" onclick=\'prevCat("c'.$k.'")\'><img src="[[relativeurl]]/theme/default/images/up.png" border="0" alt="" width="16" height="11" style="vertical-align: top; float: right;" /></a>' : '' ) .' </td> </tr>'; } } /* Compact category view (ignore when expanded). */ if ($r[18] & 4 && $cat_id != $cid) { $cbuf .= ' '.(_uid && $r[15] < $r[2] && $usr->last_read < $r[2] ? '**' : '' ) .' <a href="'.(empty($r[12]) ? '[[relativeurl]]/index.php?t='.t_thread_view.'&frm_id='.$r[7].'&'._rsid.'' : ''.$r[12].'' ) .'">'.$r[10].'</a>'; continue; } /* Visible forum with no 'read' permission. */ if (!($r[17] & 2) && !$is_a && !$r[16]) { $forum_list_table_data .= '<tr style="display: '.(empty($collapse[$cid]) ? 'table-row' : 'none' ) .'" class="child-c'.$r[5].'"> <td class="RowStyleA" colspan="6">'.$r[10].($r[11] ? '<br />'.$r[11] : '').'</td> </tr>'; continue; } /* Code to determine the last post id for 'latest' forum message. */ if ($r[8] > $last_msg_id) { $last_msg_id = $r[8]; } if (!_uid) { /* Anon user. */ $forum_read_indicator = '<img title="Only registered forum members can track read & unread messages" src="[[relativeurl]]/theme/default/images/existing_content.png" alt="Only registered forum members can track read & unread messages" width="30" height="30" />'; } else if ($r[15] < $r[2] && $usr->last_read < $r[2]) { $forum_read_indicator = '<img title="New messages" src="[[relativeurl]]/theme/default/images/new_content.png" alt="New messages" width="30" height="30" />'; } else { $forum_read_indicator = '<img title="No new messages" src="[[relativeurl]]/theme/default/images/existing_content.png" alt="No new messages" width="30" height="30" />'; } if ($r[9] && ($mods = unserialize($r[9]))) { $moderators = ''; // List of forum moderators. $modcount = 0; // Use singular or plural message form. foreach($mods as $k => $v) { $moderators .= '<a href="[[relativeurl]]/index.php?t=usrinfo&id='.$k.'&'._rsid.'">'.$v.'</a> '; $modcount++; } $moderators = '<div class="TopBy"><b>'.convertPlural($modcount, array('Moderator','Moderators')).':</b> '.$moderators.'</div>'; } else { $moderators = ' '; } $forum_list_table_data .= '<tr style="display: '.(empty($collapse[$cid]) ? 'table-row' : 'none' ) .'" class="row child-c'.$r[5].'"> <td class="RowStyleA wo hide2">'.($r[6] ? '<img src="[[relativeurl]]/images/forum_icons/'.$r[6].'" alt="Forum Icon" />' : ' ' ) .'</td> <td class="RowStyleB ac wo hide2">'.(empty($r[12]) ? ''.$forum_read_indicator.'' : '<img title="Redirection" src="[[relativeurl]]/theme/default/images/moved.png" alt="" />' ) .'</td> <td class="RowStyleA wa"><a href="'.(empty($r[12]) ? '[[relativeurl]]/index.php?t='.t_thread_view.'&frm_id='.$r[7].'&'._rsid.'' : ''.$r[12].'' ) .'" class="big">'.$r[10].'</a>'.($r[11] ? '<br />'.$r[11] : '').$moderators.'</td> <td class="RowStyleB ac hide1">'.(empty($r[12]) ? ''.$r[13].'' : '--' ) .'</td> <td class="RowStyleB ac hide1">'.(empty($r[12]) ? ''.$r[14].'' : '--' ) .'</td> <td class="RowStyleA ac nw hide2">'.(empty($r[12]) ? ''.($r[8] ? '<span class="DateText">'.print_date('%a, %d %B %Y', $r[2]).'</span><br />By: '.($r[3] ? '<a href="[[relativeurl]]/index.php?t=usrinfo&id='.$r[3].'&'._rsid.'">'.$r[4].'</a>' : ''.$GLOBALS['ANON_NICK'].'' ) .' <a href="[[relativeurl]]/index.php?t='.d_thread_view.'&goto='.$r[8].'&'._rsid.'#msg_'.$r[8].'"><img title="'.$r[0].'" src="[[relativeurl]]/theme/default/images/goto.gif" alt="'.$r[0].'" width="9" height="9" /></a>' : 'n/a' ) .'' : '--' ) .'</td> </tr>'; } unset($c); if ($cbuf) { /* If previous category was using compact view, print forum row. */ $forum_list_table_data .= '<tr class="row child-c'.$cat.'"> <td class="RowStyleA wo hide2"> </td> <td class="RowStyleB ac wo hide2"> </td> <td class="RowStyleA wa" colspan="4">Available Forums:'.$cbuf.'</td> </tr>'; } ?>