dirroot/search/lib.php"); if ($CFG->forcelogin) { require_login(); } if (empty($CFG->enableglobalsearch)) { error('Global searching is not enabled.'); } $adv = new Object(); //check for php5, but don't die yet (see line 52) if ($check = search_check_php5()) { require_once("$CFG->dirroot/search/querylib.php"); $page_number = optional_param('page', -1, PARAM_INT); $pages = ($page_number == -1) ? false : true; $advanced = (optional_param('a', '0', PARAM_INT) == '1') ? true : false; $query_string = optional_param('query_string', '', PARAM_CLEAN); if ($pages && isset($_SESSION['search_advanced_query'])) { //if both are set, then we are busy browsing through the result pages of an advanced query $adv = unserialize($_SESSION['search_advanced_query']); } else if ($advanced) { //otherwise we are dealing with a new advanced query unset($_SESSION['search_advanced_query']); session_unregister('search_advanced_query'); //chars to strip from strings (whitespace) $chars = " \t\n\r\0\x0B,-+"; //retrieve advanced query variables $adv->mustappear = trim(optional_param('mustappear', '', PARAM_CLEAN), $chars); $adv->notappear = trim(optional_param('notappear', '', PARAM_CLEAN), $chars); $adv->canappear = trim(optional_param('canappear', '', PARAM_CLEAN), $chars); $adv->module = optional_param('module', '', PARAM_CLEAN); $adv->title = trim(optional_param('title', '', PARAM_CLEAN), $chars); $adv->author = trim(optional_param('author', '', PARAM_CLEAN), $chars); } //else if ($advanced) { //parse the advanced variables into a query string //TODO: move out to external query class (QueryParse?) $query_string = ''; //get all available module types $module_types = array_merge(array('All'), array_values(search_get_document_types())); $adv->module = in_array($adv->module, $module_types) ? $adv->module : 'All'; //convert '1 2' into '+1 +2' for required words field if (strlen(trim($adv->mustappear)) > 0) { $query_string = ' +'.implode(' +', preg_split("/[\s,;]+/", $adv->mustappear)); } //if //convert '1 2' into '-1 -2' for not wanted words field if (strlen(trim($adv->notappear)) > 0) { $query_string .= ' -'.implode(' -', preg_split("/[\s,;]+/", $adv->notappear)); } //if //this field is left untouched, apart from whitespace being stripped if (strlen(trim($adv->canappear)) > 0) { $query_string .= ' '.implode(' ', preg_split("/[\s,;]+/", $adv->canappear)); } //if //add module restriction if ($adv->module != 'All') { $query_string .= ' +doctype:'.$adv->module; } //if //create title search string if (strlen(trim($adv->title)) > 0) { $query_string .= ' +title:'.implode(' +title:', preg_split("/[\s,;]+/", $adv->title)); } //if //create author search string if (strlen(trim($adv->author)) > 0) { $query_string .= ' +author:'.implode(' +author:', preg_split("/[\s,;]+/", $adv->author)); } //if //save our options if the query is valid if (!empty($query_string)) { $_SESSION['search_advanced_query'] = serialize($adv); } //if } //if //normalise page number if ($page_number < 1) { $page_number = 1; } //if //run the query against the index $sq = new SearchQuery($query_string, $page_number, 10, false); } //if if (!$site = get_site()) { redirect("index.php"); } //if $strsearch = "Search"; //get_string(); $strquery = "Enter your search query"; //get_string(); print_header("$site->shortname: $strsearch: $strquery", "$site->fullname", "$strsearch -> $strquery"); //keep things pretty, even if php5 isn't available if (!$check) { print_heading(search_check_php5(true)); print_footer(); exit(0); } //if print_simple_box_start('center', '100%', '', 20); print_heading($strquery); print_simple_box_start('center', '', '', 20); $vars = get_object_vars($adv); if (isset($vars)) { foreach ($vars as $key => $value) { $adv->$key = stripslashes(htmlentities($value)); } //foreach } ?>
Admin: There appears to be no search index. Please create an index.
\n"; } //if print ''; print_simple_box_end(); if ($sq->is_valid()) { print_simple_box_start('center', '50%', 'white', 10); search_stopwatch(); $hit_count = $sq->count(); print "