$searchterm) { if (strlen($searchterm) < 2) { unset($searchterms[$key]); } } $search = s(trim(implode(" ", $searchterms))); } if (! $course = get_record("course", "id", $id)) { error("Course id is incorrect."); } require_course_login($course); add_to_log($course->id, "forum", "search", "search.php?id=$course->id&search=".urlencode($search), $search); $strforums = get_string("modulenameplural", "forum"); $strsearch = get_string("search", "forum"); $strsearchresults = get_string("searchresults", "forum"); $strpage = get_string("page"); $strmissingsearchterms = get_string('missingsearchterms','forum'); $searchform = forum_print_search_form($course, $search, true, "navbar"); if (!$search) { print_header_simple("$strsearch", "", "id\">$strforums -> $strsearch", "search.search", "", "", " ", navmenu($course)); print_simple_box_start("center"); echo "
"; echo "
"; echo $searchform; echo "

"; print_string("searchhelp"); echo "

"; echo "
"; print_simple_box_end(); } if ($search) { $strippedsearch = str_replace("user:","",$search); $strippedsearch = str_replace("subject:","",$strippedsearch); $strippedsearch = str_replace(""","",$strippedsearch); if ($group = user_group($id, $USER->id)) { $groupid = $group->id; } else { $groupid = 0; } if (!$posts = forum_search_posts($searchterms, $course->id, $page*$perpage, $perpage, $totalcount, $groupid)) { print_header_simple("$strsearchresults", "", "id\">$strforums -> id\">$strsearch -> \"$search\"", "search.search", "", "", " ", navmenu($course)); print_heading(get_string("nopostscontaining", "forum", $search)); print_simple_box_start("center"); echo "
"; echo "
"; echo $searchform; echo "

"; print_string("searchhelp"); echo "

"; echo "
"; print_simple_box_end(); print_footer($course); exit; } print_header_simple("$strsearchresults", "", "id\">$strforums -> id\">$strsearch -> \"$search\"", "search.search", "", "", $searchform, navmenu($course)); print_heading("$strsearchresults: $totalcount"); echo "
"; print_paging_bar($totalcount, $page, $perpage, "search.php?search=$search&id=$course->id&perpage=$perpage&"); echo "
"; //added to implement highlighting of search terms found only in HTML markup //fiedorow - 9/2/2005 $searchterms = explode(" ", $strippedsearch); // Search for words independently foreach ($searchterms as $key => $searchterm) { if (preg_match('/^\-/',$searchterm)) { unset($searchterms[$key]); } else { $searchterms[$key] = preg_replace('/^\+/','',$searchterm); } } foreach ($posts as $post) { if (! $discussion = get_record("forum_discussions", "id", $post->discussion)) { error("Discussion ID was incorrect"); } if (! $forum = get_record("forum", "id", "$discussion->forum")) { error("Could not find forum $discussion->forum"); } $post->subject = highlight("$strippedsearch", $post->subject); $discussion->name = highlight("$strippedsearch", $discussion->name); $fullsubject = "id\">$forum->name"; if ($forum->type != "single") { $fullsubject .= " -> id\">$discussion->name"; if ($post->parent != 0) { $fullsubject .= " -> discussion&parent=$post->id\">$post->subject"; } } $post->subject = $fullsubject; /// Add the forum id to the post object - used by read tracking. $post->forum = $forum->id; //Indicate search terms only found in HTML markup //Use highlight() with nonsense tags to spot search terms in the //actual text content first. //fiedorow - 9/2/2005 $missing_terms = ""; $message = highlight($strippedsearch,format_text($post->message, $post->format, NULL, $course->id), 0,'',''); foreach ($searchterms as $searchterm) { if (preg_match("/$searchterm/i",$message) && !preg_match('/'.$searchterm.'<\/fgw9sdpq4>/i',$message)) { $missing_terms .= " $searchterm"; } } $message = str_replace('','',$message); $message = str_replace('','',$message); if ($missing_terms) { $post->message = '

'.$strmissingsearchterms.' '.$missing_terms.'

'.$message; } $fulllink = "discussion#$post->id\">".get_string("postincontext", "forum").""; //search terms already highlighted - fiedorow - 9/2/2005 forum_print_post($post, $course->id, false, false, false, false, $fulllink); echo "
"; } echo "
"; print_paging_bar($totalcount, $page, $perpage, "search.php?search=".urlencode($search)."&id=$course->id&perpage=$perpage&"); echo "
"; } print_footer($course); ?>