// Search all forums. // NOTE: I think this code branch is no longer used as we removed // the 'all forums' facility to the resources_search block, but // perhaps it may be used in standard Moodle installs somehow. $result->set_plugin('mod/forumng'); $result->set_course_id($courseid); $result->set_visible_modules_in_course($COURSE); // Restrict them to the groups they belong to. if (!isset($USER->groupmember[$courseid])) { $result->set_group_ids(array()); } else { $result->set_group_ids($USER->groupmember[$courseid]); } // Add exceptions where they can see other groups. $result->set_group_exceptions(local_ousearch_search::get_group_exceptions($courseid)); $result->set_user_id($USER->id); } else { // Search this forum. $result->set_coursemodule($forum->get_course_module(true)); if ($groupid && $groupid != mod_forumng::NO_GROUPS) { $result->set_group_id($groupid); } } // Pass necessary data to filter function using ugly global. global $forumngfilteroptions; $forumngfilteroptions = (object) array('author' => trim($data->author), 'datefrom' => $data->datefrom, 'dateto' => $data->dateto, 'asmoderator' => !empty($data->asmoderator)); $result->set_filter('forumng_exclude_words_filter'); print $result->display_results($url, $searchtitle); } else { // Searching without free text using author and/or date range. $page = optional_param('page', 0, PARAM_INT);
$name = $oublog->name; $buttontext = oublog_get_search_form('id', $cm->id, $strblogsearch, $querytexthtml); } $PAGE->navbar->add(get_string('searchfor', 'local_ousearch', $querytext)); $PAGE->set_button($buttontext); echo $OUTPUT->header(); // Print Groups groups_print_activity_menu($cm, $returnurl); global $modulecontext, $personalblog; $modulecontext = $context; $personalblog = $oublog->global ? true : false; // FINALLY do the actual query $query = new local_ousearch_search($querytext); $query->set_coursemodule($cm); if ($oublog->global && isset($oubloguser)) { $query->set_user_id($oubloguser->id); } else { if ($oublog->individual == OUBLOG_SEPARATE_INDIVIDUAL_BLOGS && !has_capability('mod/oublog:viewindividual', $context)) { $query->set_user_id($USER->id); } } if ($groupmode && $currentgroup) { $query->set_group_id($currentgroup); } $query->set_filter('visibility_filter'); $searchurl = 'search.php?' . (empty($id) ? 'user='******'id=' . $cm->id); $foundsomething = $query->display_results($searchurl); echo $foundsomething; // Add link to search the rest of this website if service available. if (!empty($CFG->block_resources_search_baseurl)) { $params = array('course' => $course->id, 'query' => $querytext);
/** * Do a coursewide search as the current user on the given course, through * all forums. * * @param stdClass $course Moodle course object * @param string $search Search query * @return array Array of titles of results (empty array if none) */ protected function coursewide_search($course, $search) { global $USER; // Based on the code in blocks/resources_search/search.class.php. $query = new local_ousearch_search($search); $query->set_course_id($course->id); $query->set_plugin('mod_forumng'); $query->set_visible_modules_in_course($course, 'forumng'); $groups = groups_get_all_groups($course->id, $USER->id); $groupids = array(); foreach ($groups as $group) { $groupids[] = $group->id; } $query->set_group_ids($groupids); $query->set_group_exceptions($query->get_group_exceptions($course->id)); $query->set_user_id($USER->id); $results = $query->query(0, 10); $out = array(); if ($results->success) { foreach ($results->results as $result) { $out[] = strip_tags($result->title); } } sort($out); return $out; }
require_once dirname(__FILE__) . '/../../config.php'; require_once $CFG->dirroot . '/local/ousearch/searchlib.php'; require $CFG->dirroot . '/mod/ouwiki/basicpage.php'; $querytext = required_param('query', PARAM_RAW); $url = new moodle_url('/mod/ouwiki/search.php', array('id' => $id, 'user' => $userid, 'query' => $querytext)); $PAGE->set_url($url); $ouwikioutput = $PAGE->get_renderer('mod_ouwiki'); echo $ouwikioutput->ouwiki_print_start($ouwiki, $cm, $course, $subwiki, get_string('searchresults'), $context, null, null, null, '', '', $querytext); echo html_writer::start_div(); $query = new local_ousearch_search($querytext); $query->set_coursemodule($cm); if ($subwiki->groupid) { $query->set_group_id($subwiki->groupid); } if ($subwiki->userid) { $query->set_user_id($subwiki->userid); } $foundsomething = $query->display_results('search.php?' . ouwiki_display_wiki_parameters('', $subwiki, $cm)); echo $foundsomething; // Add link to search the rest of this website if service available. if (!empty($CFG->block_resources_search_baseurl)) { $params = array('course' => $course->id, 'query' => $querytext); $restofwebsiteurl = new moodle_url('/blocks/resources_search/search.php', $params); $strrestofwebsite = get_string('restofwebsite', 'local_ousearch'); $altlink = html_writer::start_tag('div', array('class' => 'advanced-search-link')); $altlink .= html_writer::link($restofwebsiteurl, $strrestofwebsite); $altlink .= html_writer::end_tag('div'); print $altlink; } // Footer ouwiki_print_footer($course, $cm, $subwiki, null, 'search.php?query=' . urlencode($querytext), $foundsomething ? null : 'searchfailure', $querytext);