/** * Add a filter for forums to search. * * @param array $forumids * @param boolean $include_children -- If the children should be included. */ protected function add_forumid_filter($criteria, $forumids, $include_children) { if (in_array(' ', $forumids) or in_array('', $forumids)) { return; } global $vbulletin, $vbphrase; $all_forumids = fetch_search_forumids($forumids, $include_children); if ($all_forumids) { $names = array(); $criteria->add_filter('forumid', vB_Search_Core::OP_EQ, $all_forumids); foreach ($all_forumids as $forumid) { if (!empty($vbulletin->forumcache[$forumid])) { $names[$forumid] = $vbulletin->forumcache[$forumid]['title']; } } if (!empty($names)) { $forum_strings = vB_Search_Searchtools::generateDisplayString($vbphrase['forum'], $names, vB_Search_Core::OP_EQ, false); $criteria->add_display_strings('forumid', $forum_strings . ($include_children ? ' ' . $vbphrase['and_child_forums'] : '')); } else { $criteria->add_error('invalidid', $vbphrase['forum'], $vbulletin->options['contactuslink']); } } else { $criteria->add_error('invalidid', $vbphrase['forum'], $vbulletin->options['contactuslink']); } }