[ Index ]

PHP Cross Reference of Moodle 1.9.3 [Build 15-Oct-2008]

title

Body

[close]

/search/ -> stats.php (source)

   1  <?php
   2  /** 
   3  * Global Search Engine for Moodle
   4  *
   5  * @package search
   6  * @category core
   7  * @subpackage search_engine
   8  * @author Michael Champanis (mchampan) [cynnical@gmail.com], Valery Fremaux [valery.fremaux@club-internet.fr] > 1.8
   9  * @date 2008/03/31
  10  * @license http://www.gnu.org/copyleft/gpl.html GNU Public License
  11  *
  12  * Prints some basic statistics about the current index.
  13  * Does some diagnostics if you are logged in as an administrator.
  14  * 
  15  */
  16  
  17  /**
  18  * includes and requires
  19  */
  20  require_once ('../config.php');
  21  require_once("{$CFG->dirroot}/search/lib.php");
  22  
  23  /// checks global search is enabled
  24  
  25      if ($CFG->forcelogin) {
  26          require_login();
  27      }
  28      
  29      if (empty($CFG->enableglobalsearch)) {
  30          error(get_string('globalsearchdisabled', 'search'));
  31      }
  32      
  33  /// check for php5, but don't die yet
  34  
  35      if ($check = search_check_php5()) {
  36          require_once("{$CFG->dirroot}/search/indexlib.php");
  37          
  38          $indexinfo = new IndexInfo();
  39      } 
  40      
  41      if (!$site = get_site()) {
  42          redirect("index.php");
  43      } 
  44      
  45      $strsearch = get_string('search', 'search');
  46      $strquery  = get_string('statistics', 'search'); 
  47      
  48      if (!function_exists('build_navigation')){
  49          print_header("$site->shortname: $strsearch: $strquery", "$site->fullname",
  50                     "<a href=\"index.php\">$strsearch</a> -> $strquery");
  51      } else {
  52          $navlinks[] = array('name' => $strsearch, 'link' => "index.php", 'type' => 'misc');
  53          $navlinks[] = array('name' => $strquery, 'link' => null, 'type' => 'misc');
  54          $navigation = build_navigation($navlinks);
  55          $site = get_site();
  56          print_header("$strsearch", "$site->fullname" , $navigation, "", "", true, "&nbsp;", navmenu($site));
  57      }
  58      
  59  /// keep things pretty, even if php5 isn't available
  60  
  61      if (!$check) {
  62          print_heading(search_check_php5(true));
  63          print_footer();
  64          exit(0);
  65      }
  66      
  67      print_box_start();
  68      print_heading($strquery);
  69      
  70      print_box_start();
  71      
  72      $databasestr = get_string('database', 'search');
  73      $documentsinindexstr = get_string('documentsinindex', 'search');
  74      $deletionsinindexstr = get_string('deletionsinindex', 'search');
  75      $documentsindatabasestr = get_string('documentsindatabase', 'search');
  76      $databasestatestr = get_string('databasestate', 'search');
  77      
  78  /// this table is only for admins, shows index directory size and location
  79  
  80      if (isadmin()) {
  81          $datadirectorystr = get_string('datadirectory', 'search');
  82          $inindexdirectorystr = get_string('filesinindexdirectory', 'search');
  83          $totalsizestr = get_string('totalsize', 'search');
  84          $errorsstr = get_string('errors', 'search');
  85          $solutionsstr = get_string('solutions', 'search');
  86          $checkdirstr = get_string('checkdir', 'search');
  87          $checkdbstr = get_string('checkdb', 'search');
  88          $checkdiradvicestr = get_string('checkdiradvice', 'search');
  89          $checkdbadvicestr = get_string('checkdbadvice', 'search');
  90          $runindexerteststr = get_string('runindexertest', 'search');
  91          $runindexerstr = get_string('runindexer', 'search');
  92          
  93          $admin_table->tablealign = "center";
  94          $admin_table->align = array ("right", "left");
  95          $admin_table->wrap = array ("nowrap", "nowrap");
  96          $admin_table->cellpadding = 5;
  97          $admin_table->cellspacing = 0;
  98          $admin_table->width = '500';
  99      
 100          $admin_table->data[] = array("<strong>{$datadirectorystr}</strong>", '<em><strong>'.$indexinfo->path.'</strong></em>');
 101          $admin_table->data[] = array($inindexdirectorystr, $indexinfo->filecount);
 102          $admin_table->data[] = array($totalsizestr, $indexinfo->size);
 103      
 104          if ($indexinfo->time > 0) {
 105              $admin_table->data[] = array(get_string('createdon', 'search'), date('r', $indexinfo->time));
 106          } 
 107          else {
 108              $admin_table->data[] = array(get_string('createdon', 'search'), '-');
 109          } 
 110      
 111          if (!$indexinfo->valid($errors)) {
 112              $admin_table->data[] = array("<strong>{$errorsstr}</strong>", '&nbsp;');
 113              foreach ($errors as $key => $value) {
 114                  $admin_table->data[] = array($key.' ... ', $value);
 115              } 
 116          }
 117      
 118          print_table($admin_table);
 119          print_spacer(20);
 120          print_heading($solutionsstr);
 121          
 122          unset($admin_table->data);
 123          if (isset($errors['dir'])) {
 124              $admin_table->data[] = array($checkdirstr, $checkdiradvicestr);
 125          } 
 126          if (isset($errors['db'])) {
 127              $admin_table->data[] = array($checkdbstr, $checkdbadvicestr);
 128          } 
 129          
 130          $admin_table->data[] = array($runindexerteststr, '<a href="tests/index.php" target="_blank">tests/index.php</a>');
 131          $admin_table->data[] = array($runindexerstr, '<a href="indexersplash.php" target="_blank">indexersplash.php</a>');
 132          
 133          print_table($admin_table);
 134          print_spacer(20);
 135      } 
 136      
 137  /// this is the standard summary table for normal users, shows document counts
 138  
 139      $table->tablealign = "center";
 140      $table->align = array ("right", "left");
 141      $table->wrap = array ("nowrap", "nowrap");
 142      $table->cellpadding = 5;
 143      $table->cellspacing = 0;
 144      $table->width = '500';
 145      
 146      $table->data[] = array("<strong>{$databasestr}</strong>", "<em><strong>{$CFG->prefix}".SEARCH_DATABASE_TABLE.'</strong></em>');
 147      
 148  /// add extra fields if we're admin
 149  
 150      if (isadmin()) {
 151          //don't want to confuse users if the two totals don't match (hint: they should)
 152          $table->data[] = array($documentsinindexstr, $indexinfo->indexcount);
 153          
 154          //*cough* they should match if deletions were actually removed from the index,
 155          //as it turns out, they're only marked as deleted and not returned in search results
 156          $table->data[] = array($deletionsinindexstr, (int)$indexinfo->indexcount - (int)$indexinfo->dbcount);
 157      } 
 158      
 159      $table->data[] = array($documentsindatabasestr, $indexinfo->dbcount);
 160      
 161      foreach($indexinfo->types as $key => $value) {
 162          $table->data[] = array(get_string('documentsfor', 'search') . " '".get_string('modulenameplural', $key)."'", $value);
 163      } 
 164      
 165      print_heading($databasestatestr);
 166      print_table($table);
 167      
 168      print_box_end();
 169      print_box_end();
 170      print_footer();
 171  ?>


Generated: Wed Jan 14 11:33:29 2009 Cross-referenced by PHPXref 0.7