usergroup['issupermod'] == 0 && ($user_permissions['issupermod'] == 1 || $user_permissions['cancp'] == 1)) { return false; } // Current user is a super mod or is an administrator else if($user_permissions['cancp'] == 1 && ($mybb->usergroup['cancp'] != 1 || (is_super_admin($uid) && !is_super_admin($mybb->user['uid'])))) { return false; } return true; } function fetch_forum_announcements($pid=0, $depth=1) { global $mybb, $db, $lang, $theme, $announcements, $templates, $announcements_forum, $moderated_forums, $unviewableforums; static $forums_by_parent, $forum_cache, $parent_forums; if(!is_array($forum_cache)) { $forum_cache = cache_forums(); } if(!is_array($parent_forums) && $mybb->user['issupermod'] != 1) { // Get a list of parentforums to show for normal moderators $parent_forums = array(); foreach($moderated_forums as $mfid) { $parent_forums = array_merge($parent_forums, explode(',', $forum_cache[$mfid]['parentlist'])); } } if(!is_array($forums_by_parent)) { foreach($forum_cache as $forum) { $forums_by_parent[$forum['pid']][$forum['disporder']][$forum['fid']] = $forum; } } if(!is_array($forums_by_parent[$pid])) { return; } foreach($forums_by_parent[$pid] as $children) { foreach($children as $forum) { if($forum['linkto'] || ($unviewableforums && in_array($forum['fid'], $unviewableforums))) { continue; } if($forum['active'] == 0 || !is_moderator($forum['fid'])) { // Check if this forum is a parent of a moderated forum if(in_array($forum['fid'], $parent_forums)) { // A child is moderated, so print out this forum's title. RECURSE! $trow = alt_trow(); eval("\$announcements_forum .= \"".$templates->get("modcp_announcements_forum_nomod")."\";"); } else { // No subforum is moderated by this mod, so safely continue continue; } } else { // This forum is moderated by the user, so print out the forum's title, and its announcements $trow = alt_trow(); $padding = 40*($depth-1); eval("\$announcements_forum .= \"".$templates->get("modcp_announcements_forum")."\";"); if($announcements[$forum['fid']]) { foreach($announcements[$forum['fid']] as $aid => $announcement) { $trow = alt_trow(); if($announcement['enddate'] < TIME_NOW && $announcement['enddate'] != 0) { $icon = "\"({$lang-expired})\" title=\"{$lang->expired_announcement}\" style=\"vertical-align: middle;\" /> "; } else { $icon = "\"({$lang-active})\" title=\"{$lang->active_announcement}\" style=\"vertical-align: middle;\" /> "; } $subject = htmlspecialchars_uni($announcement['subject']); eval("\$announcements_forum .= \"".$templates->get("modcp_announcements_announcement")."\";"); } } } // Build the list for any sub forums of this forum if($forums_by_parent[$forum['fid']]) { fetch_forum_announcements($forum['fid'], $depth+1); } } } } ?>