/** * Constructs a Forum Jump Menu based on moderator permissions * * @param integer The "root" forum to work from * @param integer The ID of the forum that is currently selected * @param integer Characters to prepend to the item in the menu * @param string The moderator permission to check when building the Forum Jump Menu * * @return string The built forum Jump menu * */ function construct_mod_forum_jump($parentid = -1, $selectedid, $prependchars, $modpermission = '') { global $vbulletin; if (empty($vbulletin->iforumcache)) { cache_ordered_forums(); } if (empty($vbulletin->iforumcache["{$parentid}"]) or !is_array($vbulletin->iforumcache["{$parentid}"])) { return; } foreach ($vbulletin->iforumcache["{$parentid}"] as $forumid) { $forumperms = $vbulletin->userinfo['forumpermissions']["{$forumid}"]; if (!($forumperms & $vbulletin->bf_ugp_forumpermissions['canview']) or $vbulletin->forumcache["{$forumid}"]['link']) { continue; } $children = construct_mod_forum_jump($forumid, $selectedid, $prependchars . FORUM_PREPEND, $modpermission); if (!can_moderate($forumid, $modpermission) and !$children) { continue; } // set $forum from the $vbulletin->forumcache $forum = $vbulletin->forumcache["{$forumid}"]; $optionvalue = $forumid; $optiontitle = $prependchars . " {$forum['title_clean']} "; $optionclass = 'fjdpth' . iif($forum['depth'] > 4, 4, $forum['depth']); $optionselected = ''; if ($selectedid == $optionvalue) { $optionselected = 'selected="selected"'; $optionclass = 'fjsel'; } eval('$forumjumpbits .= "' . fetch_template('option') . '";'); $forumjumpbits .= $children; } // end foreach ($vbulletin->iforumcache[$parentid] AS $forumid) return $forumjumpbits; }
$forums = fetch_child_forums($forumid, 'ARRAY'); $forums[] = $forumid; $forums = array_flip($forums); } else { $forums = $vbulletin->forumcache; } foreach ($forums as $mforumid => $null) { $forumperms = $vbulletin->userinfo['forumpermissions']["{$mforumid}"]; if (can_moderate($mforumid, $permission) and $forumperms & $vbulletin->bf_ugp_forumpermissions['canview']) { $modforums[] = $mforumid; } } if (empty($modforums)) { print_no_permission(); } $forumjumpbits = construct_mod_forum_jump(-1, $forumid, '', $permission); $show['inlinemod'] = true; $url = SCRIPTPATH; if ($show['popups']) { eval('$threadadmin_imod_menu = "' . fetch_template('threadadmin_imod_menu_post') . '";'); } else { $threadadmin_imod_menu = ''; } if (!$daysprune) { $daysprune = $vbulletin->userinfo['daysprune'] ? $vbulletin->userinfo['daysprune'] : 30; } $datecut = $daysprune != -1 ? "AND {$table}.dateline >= " . (TIMENOW - $daysprune * 86400) : ''; // complete form fields on page $daysprunesel = iif($daysprune == -1, 'all', $daysprune); $daysprunesel = array($daysprunesel => 'selected="selected"'); // look at sorting options:
/** * Constructs a Forum Jump Menu based on moderator permissions * * @param integer The "root" forum to work from * @param integer The ID of the forum that is currently selected * @param integer Characters to prepend to the item in the menu * @param string The moderator permission to check when building the Forum Jump Menu * * @return string The built forum Jump menu * */ function construct_mod_forum_jump($parentid = -1, $selectedid, $modpermission = '') { global $vbulletin; if (empty($vbulletin->iforumcache)) { cache_ordered_forums(); } if (empty($vbulletin->iforumcache["$parentid"]) OR !is_array($vbulletin->iforumcache["$parentid"])) { return; } foreach($vbulletin->iforumcache["$parentid"] AS $forumid) { $forumperms = $vbulletin->userinfo['forumpermissions']["$forumid"]; if (!($forumperms & $vbulletin->bf_ugp_forumpermissions['canview']) OR $vbulletin->forumcache["$forumid"]['link']) { continue; } $children = construct_mod_forum_jump($forumid, $selectedid, $modpermission); if (!can_moderate($forumid, $modpermission) AND !$children) { continue; } // set $forum from the $vbulletin->forumcache $forum = $vbulletin->forumcache["$forumid"]; $optionvalue = $forumid; $optiontitle = $forum[title_clean]; $optionclass = 'd' . iif($forum['depth'] > 4, 4, $forum['depth']); $optionselected = ''; if ($selectedid == $optionvalue) { $optionselected = 'selected="selected"'; $optionclass .= ' fjsel'; } $forumjumpbits .= render_option_template($optiontitle, $optionvalue, $optionselected, $optionclass); $forumjumpbits .= $children; } // end foreach ($vbulletin->iforumcache[$parentid] AS $forumid) return $forumjumpbits; }