1.8 * @date 2008/03/31 * @license http://www.gnu.org/copyleft/gpl.html GNU Public License * * Prints some basic statistics about the current index. * Does some diagnostics if you are logged in as an administrator. * */ /** * includes and requires */ require_once('../config.php'); require_once("{$CFG->dirroot}/search/lib.php"); /// checks global search is enabled if ($CFG->forcelogin) { require_login(); } if (empty($CFG->enableglobalsearch)) { error(get_string('globalsearchdisabled', 'search')); } /// check for php5, but don't die yet require_once("{$CFG->dirroot}/search/indexlib.php"); $indexinfo = new IndexInfo(); if (!$site = get_site()) { redirect("index.php"); } $strsearch = get_string('search', 'search'); $strquery = get_string('statistics', 'search'); if (!function_exists('build_navigation')){ print_header("$site->shortname: $strsearch: $strquery", "$site->fullname", "$strsearch -> $strquery"); } else { $navlinks[] = array('name' => $strsearch, 'link' => "index.php", 'type' => 'misc'); $navlinks[] = array('name' => $strquery, 'link' => null, 'type' => 'misc'); $navigation = build_navigation($navlinks); $site = get_site(); print_header("$strsearch", "$site->fullname" , $navigation, "", "", true, " ", navmenu($site)); } /// keep things pretty, even if php5 isn't available print_box_start(); print_heading($strquery); print_box_start(); $databasestr = get_string('database', 'search'); $documentsinindexstr = get_string('documentsinindex', 'search'); $deletionsinindexstr = get_string('deletionsinindex', 'search'); $documentsindatabasestr = get_string('documentsindatabase', 'search'); $databasestatestr = get_string('databasestate', 'search'); /// this table is only for admins, shows index directory size and location if (has_capability('moodle/site:doanything', get_context_instance(CONTEXT_SYSTEM))) { $datadirectorystr = get_string('datadirectory', 'search'); $inindexdirectorystr = get_string('filesinindexdirectory', 'search'); $totalsizestr = get_string('totalsize', 'search'); $errorsstr = get_string('errors', 'search'); $solutionsstr = get_string('solutions', 'search'); $checkdirstr = get_string('checkdir', 'search'); $checkdbstr = get_string('checkdb', 'search'); $checkdiradvicestr = get_string('checkdiradvice', 'search'); $checkdbadvicestr = get_string('checkdbadvice', 'search'); $runindexerteststr = get_string('runindexertest', 'search'); $runindexerstr = get_string('runindexer', 'search'); $admin_table->tablealign = "center"; $admin_table->align = array ("right", "left"); $admin_table->wrap = array ("nowrap", "nowrap"); $admin_table->cellpadding = 5; $admin_table->cellspacing = 0; $admin_table->width = '500'; $admin_table->data[] = array("{$datadirectorystr}", ''.$indexinfo->path.''); $admin_table->data[] = array($inindexdirectorystr, $indexinfo->filecount); $admin_table->data[] = array($totalsizestr, $indexinfo->size); if ($indexinfo->time > 0) { $admin_table->data[] = array(get_string('createdon', 'search'), date('r', $indexinfo->time)); } else { $admin_table->data[] = array(get_string('createdon', 'search'), '-'); } if (!$indexinfo->valid($errors)) { $admin_table->data[] = array("{$errorsstr}", ' '); foreach ($errors as $key => $value) { $admin_table->data[] = array($key.' ... ', $value); } } print_table($admin_table); print_spacer(20); print_heading($solutionsstr); unset($admin_table->data); if (isset($errors['dir'])) { $admin_table->data[] = array($checkdirstr, $checkdiradvicestr); } if (isset($errors['db'])) { $admin_table->data[] = array($checkdbstr, $checkdbadvicestr); } $admin_table->data[] = array($runindexerteststr, 'tests/index.php'); $admin_table->data[] = array($runindexerstr, 'indexersplash.php'); print_table($admin_table); print_spacer(20); } /// this is the standard summary table for normal users, shows document counts $table->tablealign = "center"; $table->align = array ("right", "left"); $table->wrap = array ("nowrap", "nowrap"); $table->cellpadding = 5; $table->cellspacing = 0; $table->width = '500'; $table->data[] = array("{$databasestr}", "{$CFG->prefix}".SEARCH_DATABASE_TABLE.''); /// add extra fields if we're admin if (has_capability('moodle/site:doanything', get_context_instance(CONTEXT_SYSTEM))) { //don't want to confuse users if the two totals don't match (hint: they should) $table->data[] = array($documentsinindexstr, $indexinfo->indexcount); //*cough* they should match if deletions were actually removed from the index, //as it turns out, they're only marked as deleted and not returned in search results $table->data[] = array($deletionsinindexstr, (int)$indexinfo->indexcount - (int)$indexinfo->dbcount); } $table->data[] = array($documentsindatabasestr, $indexinfo->dbcount); foreach($indexinfo->types as $key => $value) { $table->data[] = array(get_string('documentsfor', 'search') . " '".get_string('modulenameplural', $key)."'", $value); } print_heading($databasestatestr); print_table($table); print_box_end(); print_box_end(); print_footer(); ?>