* includes and requires */ require_once '../config.php'; require_once $CFG->dirroot . '/search/lib.php'; /// makes inclusions of the Zend Engine more reliable ini_set('include_path', $CFG->dirroot . DIRECTORY_SEPARATOR . 'search' . PATH_SEPARATOR . ini_get('include_path')); /// check global search is enabled require_login(); if (empty($CFG->enableglobalsearch)) { error(get_string('globalsearchdisabled', 'search')); } if (!has_capability('moodle/site:doanything', get_context_instance(CONTEXT_SYSTEM))) { error(get_string('beadmin', 'search'), $CFG->wwwroot . '/login/index.php'); } require_once $CFG->dirroot . '/search/indexlib.php'; $indexinfo = new IndexInfo(); if ($indexinfo->valid()) { $strsearch = get_string('search', 'search'); $strquery = get_string('stats'); $navlinks[] = array('name' => $strsearch, 'link' => "index.php", 'type' => 'misc'); $navlinks[] = array('name' => $strquery, 'link' => "stats.php", 'type' => 'misc'); $navlinks[] = array('name' => get_string('runindexer', 'search'), 'link' => null, 'type' => 'misc'); // if ($CFG->version <= 2007021541){ // 1.8 branch stable timestamp NOT RELIABLE if (!function_exists('build_navigation')) { // 1.8 branch stable timestamp $navigation = ''; } else { $navigation = build_navigation($navlinks); } $site = get_site(); print_header("{$strsearch}", "{$site->fullname}", $navigation, "", "", true, " ", navmenu($site));
} if (empty($CFG->enableglobalsearch)) { print_error('globalsearchdisabled', 'search'); } //Check user's permissions against the block instance from which the user came if (empty($block_instanceid)) { print_error('searchnotpermitted', 'search'); } if (!$DB->record_exists('block_instances', array('id' => $block_instanceid, 'blockname' => 'search'))) { print_error('searchnotpermitted', 'search'); } $contextblock = get_context_instance(CONTEXT_BLOCK, $block_instanceid); require_capability('moodle/block:view', $contextblock); /// check for php5, but don't die yet require_once $CFG->dirroot . '/search/indexlib.php'; $indexinfo = new IndexInfo(); $site = get_site(); $strsearch = get_string('search', 'search'); $strquery = get_string('statistics', 'search'); $site = get_site(); $url = new moodle_url('/search/stats.php'); $url->param('block_instanceid', $block_instanceid); $PAGE->set_url($url); $PAGE->set_context(get_context_instance(CONTEXT_SYSTEM)); $PAGE->navbar->add($strsearch, new moodle_url('/search/query.php?block_instanceid=' . $block_instanceid)); $PAGE->navbar->add($strquery, new moodle_url('/search/stats.php?block_instanceid=' . $block_instanceid)); $PAGE->set_title($strsearch); $PAGE->set_heading($site->fullname); echo $OUTPUT->header(); /// keep things pretty, even if php5 isn't available echo $OUTPUT->box_start();
protected function initIndexes() { $query = "select * from information_schema.statistics " . "where table_name = '%s' and TABLE_SCHEMA = '%s' " . "order by INDEX_NAME, SEQ_IN_INDEX"; $query = sprintf($query, $this->newtablename, $this->dbname); if (!($result = mysql_query($query, $this->conn))) { $this->raiseException('Failed to get index info ' . $query); } // save index info as array $this->indexes = array(); // we are resetting the PK so that it will be used in later steps if ($this->flags & OSC_FLAGS_USE_NEW_PK) { $this->pkcolumnarray = array(); } $prev_index_name = ''; $index = null; $primary = null; while ($row = mysql_fetch_assoc($result)) { $index_name = quotify($row['INDEX_NAME']); $column_name = quotify($row['COLUMN_NAME']); if ($prev_index_name != $index_name) { // is the 1st column of the index autoincrement column? $auto = isset($this->autoIncrement) && $column_name === $this->autoIncrement; $index = new IndexInfo($this->newtablename, $index_name, $row['NON_UNIQUE'], $auto); if ($index->isPrimary()) { $primary = $index; } $this->indexes[] = $index; } $index->addColumn($column_name, $row['SUB_PART']); if ($this->flags & OSC_FLAGS_USE_NEW_PK && $index->isPrimary()) { $this->pkcolumnarray[] = $column_name; } $prev_index_name = $index_name; } // re-create these strings with new array if ($this->flags & OSC_FLAGS_USE_NEW_PK) { $this->initColumnNameStrings(); } $this->validatePostAlterPK($primary); $this->joinClauseReplay = $this->getJoinClauseReplay(); }