// 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;
 }
Example #4
0
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);