修正箇所はmod/forum/search.phpとmod/forum/lib.phpの二つのソース.まずは,mod/forum/search.phpです.
(a) パラメータの取得
if ($timetorestrict) {
$dateto = make_timestamp($toyear, $tomonth, $today, $tohour, $tominute);
} else {
$dateto = optional_param('dateto', 0, PARAM_INT); // Ending date
}
// (Shirai118): ここから追加
if (($ratingmin = optional_param('ratingmin', 0, PARAM_INT)) <= 0) $ratingmin = ''; // 評価の最小値
// (Shirai118): ここまで追加
(b) サーチ文字列の追加
if (empty($search)) { // Check the other parameters instead
if (!empty($words)) {
$search .= ' '.$words;
}
(中略)
if (!empty($dateto)) {
$search .= ' dateto:'.$dateto;
}
// (Shirai118): ここから追加
if (!empty($ratingmin)) {
if (empty($search)) {
$dateto = time()+3600;
$search .= ' dateto:'.$dateto;
}
$search .= ' ratingmin:'.$ratingmin;
}
// (Shirai118): ここまで追加
$individualparams = true;
} else {
$individualparams = false;
}
(c) 検索(リダイレクト)
$strforums = get_string("modulenameplural", "forum");
$strsearch = get_string("search", "forum");
$strsearchresults = get_string("searchresults", "forum");
$strpage = get_string("page");
// (Shirai118): フォーラム投稿のサーチ機能を強化するいくつかの機能拡張 (2009/02/12)
// (Shirai118): ここから追加
if (!empty($uniqueid)) {
if (($mydiscussion = forum_get_discussion_post_id($uniqueid)) && count($mydiscussion) == 1) {
$mydiscussionid = array_shift($mydiscussion);
$mydiscussionid = $mydiscussionid->discussion;
$redirecturl = $CFG->wwwroot.'/mod/forum/discuss.php?d='.$mydiscussionid.'#'.$uniqueid;
redirect($redirecturl);
}
}
// (Shirai118): ここまで追加
if (!$search || $showform) {
(d) リンクの追加
echo '<div class="reportlink">';
echo '<a href="search.php?id='.$course->id.
'&user='.urlencode($user).
'&userid='.$userid.
'&forumid='.$forumid.
'&subject='.urlencode($subject).
'&phrase='.urlencode($phrase).
'&words='.urlencode($words).
'&fullwords='.urlencode($fullwords).
'&notwords='.urlencode($notwords).
'&dateto='.$dateto.
'&datefrom='.$datefrom.
'&showform=1'.
// (Shirai118): フォーラム投稿のサーチ機能を強化するいくつかの機能拡張 (2009/02/12)
// (Shirai118): ここから追加
'&ratingmin='.$ratingmin.
// (Shirai118): ここまで追加
'">'.get_string('advancedsearch','forum').'...</a>';
echo '</div>';
(e1) function forum_print_big_search_form()の頭
function forum_print_big_search_form($course) {
global $CFG, $words, $subject, $phrase, $user, $userid, $fullwords, $notwords, $datefrom, $dateto;
// (Shirai118): フォーラム投稿のサーチ機能を強化するいくつかの機能拡張 (2009/02/12)
// (Shirai118): ここから追加
global $uniqueid, $ratingmin;
// (Shirai118): ここまで追加
print_simple_box(get_string('searchforumintro', 'forum'), 'center', '', '', 'searchbox', 'intro');
(e2) function forum_print_big_search_form()のフォームの追加
echo '<tr>';
echo '<td class="c0"><label for="user">'.get_string('searchuser', 'forum').'</label></td>';
echo '<td class="c1"><input type="text" size="35" name="user" id="user" value="'.s($user, true).'" alt="" /></td>';
echo '</tr>';
// (Shirai118): フォーラム投稿のサーチ機能を強化するいくつかの機能拡張 (2009/02/12)
// (Shirai118): ここから追加
if (enable_forum_exsearch()) {
echo '<tr>';
echo '<td class="c0"><label for="ratingmin">'.get_string('searchratingmin', 'fs_moodle').'</label></td>';
echo '<td class="c1"><input type="text" size="35" name="ratingmin" id="ratingmin" value="'.s($ratingmin, true).'" alt="" /></td>';
echo '</tr>';
echo '<tr><td><hr /></td><td><hr /></td></tr>';
echo '<tr>';
echo '<td class="c0"><label for="uniqueid">'.'少なくとも評価の一つがこの値以上'.'</label></td>';
echo '<td class="c1"><input type="text" size="35" name="uniqueid" id="uniqueid" value="'.s($uniqueid, true).'" alt="" /></td>';
echo '</tr>';
}
// (Shirai118): ここまで追加
echo '<tr>';
echo '<td class="submit" colspan="2" align="center">';