Example #1
0
 /**
  * Form definition.
  *
  * @return void
  */
 function definition()
 {
     global $CFG;
     $mform =& $this->_form;
     $mform->disable_form_change_checker();
     $mform->addElement('header', 'search', get_string('search', 'search'));
     // Help info depends on the selected search engine.
     $mform->addElement('text', 'q', get_string('enteryoursearchquery', 'search'));
     $mform->addHelpButton('q', 'searchinfo', $this->_customdata['searchengine']);
     $mform->setType('q', PARAM_TEXT);
     $mform->addRule('q', get_string('required'), 'required', null, 'client');
     $mform->addElement('header', 'filtersection', get_string('filterheader', 'search'));
     $mform->setExpanded('filtersection', false);
     $mform->addElement('text', 'title', get_string('title', 'search'));
     $mform->setType('title', PARAM_TEXT);
     $search = \core_search\manager::instance();
     $searchareas = \core_search\manager::get_search_areas_list(true);
     $areanames = array();
     foreach ($searchareas as $areaid => $searcharea) {
         $areanames[$areaid] = $searcharea->get_visible_name();
     }
     // Sort the array by the text.
     \core_collator::asort($areanames);
     $options = array('multiple' => true, 'noselectionstring' => get_string('allareas', 'search'));
     $mform->addElement('autocomplete', 'areaids', get_string('searcharea', 'search'), $areanames, $options);
     $options = array('multiple' => true, 'limittoenrolled' => !is_siteadmin(), 'noselectionstring' => get_string('allcourses', 'search'));
     $mform->addElement('course', 'courseids', get_string('courses', 'core'), $options);
     $mform->setType('courseids', PARAM_INT);
     $mform->addElement('date_time_selector', 'timestart', get_string('fromtime', 'search'), array('optional' => true));
     $mform->setDefault('timestart', 0);
     $mform->addElement('date_time_selector', 'timeend', get_string('totime', 'search'), array('optional' => true));
     $mform->setDefault('timeend', 0);
     $this->add_action_buttons(false, get_string('search', 'search'));
 }
Example #2
0
 /**
  * Form definition.
  *
  * @return void
  */
 function definition()
 {
     global $CFG;
     $mform =& $this->_form;
     $mform->addElement('header', 'search', get_string('search', 'search'));
     // Help info depends on the selected search engine.
     $mform->addElement('text', 'q', get_string('enteryoursearchquery', 'search'));
     $mform->addHelpButton('q', 'searchinfo', $this->_customdata['searchengine']);
     $mform->setType('q', PARAM_TEXT);
     $mform->addRule('q', get_string('required'), 'required', null, 'client');
     $mform->addElement('header', 'filtersection', get_string('filterheader', 'search'));
     $mform->setExpanded('filtersection', false);
     $mform->addElement('text', 'title', get_string('title', 'search'));
     $mform->setType('title', PARAM_TEXT);
     $search = \core_search\manager::instance();
     $searchareas = \core_search\manager::get_search_areas_list(true);
     $areanames = array('' => get_string('allareas', 'search'));
     foreach ($searchareas as $areaid => $searcharea) {
         $areanames[$areaid] = $searcharea->get_visible_name();
     }
     $mform->addElement('select', 'areaid', get_string('searcharea', 'search'), $areanames);
     $mform->addElement('date_time_selector', 'timestart', get_string('fromtime', 'search'), array('optional' => true));
     $mform->setDefault('timestart', 0);
     $mform->addElement('date_time_selector', 'timeend', get_string('totime', 'search'), array('optional' => true));
     $mform->setDefault('timeend', 0);
     $this->add_action_buttons(false, get_string('search', 'search'));
 }
Example #3
0
 public function test_search_areas()
 {
     global $CFG;
     $this->resetAfterTest();
     set_config('enableglobalsearch', true);
     $fakeareaid = \core_search\manager::generate_areaid('mod_unexisting', 'chihuaquita');
     $searcharea = \core_search\manager::get_search_area($this->forumpostareaid);
     $this->assertInstanceOf('\\core_search\\base', $searcharea);
     $this->assertFalse(\core_search\manager::get_search_area($fakeareaid));
     $this->assertArrayHasKey($this->forumpostareaid, \core_search\manager::get_search_areas_list());
     $this->assertArrayNotHasKey($fakeareaid, \core_search\manager::get_search_areas_list());
     // Enabled by default once global search is enabled.
     $this->assertArrayHasKey($this->forumpostareaid, \core_search\manager::get_search_areas_list(true));
     list($componentname, $varname) = $searcharea->get_config_var_name();
     set_config($varname . '_enabled', 0, $componentname);
     \core_search\manager::clear_static();
     $this->assertArrayNotHasKey('mod_forum', \core_search\manager::get_search_areas_list(true));
     set_config($varname . '_enabled', 1, $componentname);
     // Although the result is wrong, we want to check that \core_search\manager::get_search_areas_list returns cached results.
     $this->assertArrayNotHasKey($this->forumpostareaid, \core_search\manager::get_search_areas_list(true));
     // Now we check the real result.
     \core_search\manager::clear_static();
     $this->assertArrayHasKey($this->forumpostareaid, \core_search\manager::get_search_areas_list(true));
 }
Example #4
0
        if (file_exists($settingspath)) {
            $settings = new admin_settingpage('search' . $engine, new lang_string('pluginname', 'search_' . $engine), 'moodle/site:config');
            include $settingspath;
            if ($settings) {
                $pages[] = $settings;
            }
        }
    }
    // Setup status.
    $temp->add(new admin_setting_searchsetupinfo());
    // Search engine selection.
    $temp->add(new admin_setting_heading('searchengineheading', new lang_string('searchengine', 'admin'), ''));
    $temp->add(new admin_setting_configselect('searchengine', new lang_string('selectsearchengine', 'admin'), '', 'solr', $engines));
    // Enable search areas.
    $temp->add(new admin_setting_heading('searchareasheading', new lang_string('availablesearchareas', 'admin'), ''));
    $searchareas = \core_search\manager::get_search_areas_list();
    foreach ($searchareas as $areaid => $searcharea) {
        list($componentname, $varname) = $searcharea->get_config_var_name();
        $temp->add(new admin_setting_configcheckbox($componentname . '/' . $varname . '_enabled', $searcharea->get_visible_name(true), '', 1, 1, 0));
    }
    $ADMIN->add('searchplugins', $temp);
    core_collator::asort_objects_by_property($pages, 'visiblename');
    foreach ($pages as $page) {
        $ADMIN->add('searchplugins', $page);
    }
}
/// Add all admin tools
if ($hassiteconfig) {
    $ADMIN->add('modules', new admin_category('tools', new lang_string('tools', 'admin')));
    $ADMIN->add('tools', new admin_externalpage('managetools', new lang_string('toolsmanage', 'admin'), $CFG->wwwroot . '/' . $CFG->admin . '/tools.php'));
}
Example #5
0
 /**
  * Builds the HTML to display the control
  *
  * @param string $data Unused
  * @param string $query
  * @return string
  */
 public function output_html($data, $query = '')
 {
     global $CFG, $OUTPUT;
     $return = '';
     $brtag = html_writer::empty_tag('br');
     // Available search areas.
     $searchareas = \core_search\manager::get_search_areas_list();
     $anyenabled = false;
     $anyindexed = false;
     foreach ($searchareas as $areaid => $searcharea) {
         list($componentname, $varname) = $searcharea->get_config_var_name();
         if (!$anyenabled) {
             $anyenabled = get_config($componentname, $varname . '_enabled');
         }
         if (!$anyindexed) {
             $anyindexed = get_config($componentname, $varname . '_indexingstart');
         }
         if ($anyenabled && $anyindexed) {
             break;
         }
     }
     $return .= $OUTPUT->heading(get_string('searchsetupinfo', 'admin'), 3, 'main');
     $table = new html_table();
     $table->head = array(get_string('step', 'search'), get_string('status'));
     $table->colclasses = array('leftalign step', 'leftalign status');
     $table->id = 'searchsetup';
     $table->attributes['class'] = 'admintable generaltable';
     $table->data = array();
     $return .= $brtag . get_string('searchsetupdescription', 'search') . $brtag . $brtag;
     // Select a search engine.
     $row = array();
     $url = new moodle_url('/admin/settings.php?section=manageglobalsearch#admin-searchengine');
     $row[0] = '1. ' . html_writer::tag('a', get_string('selectsearchengine', 'admin'), array('href' => $url));
     $status = html_writer::tag('span', get_string('no'), array('class' => 'statuscritical'));
     if (!empty($CFG->searchengine)) {
         $status = html_writer::tag('span', get_string('pluginname', 'search_' . $CFG->searchengine), array('class' => 'statusok'));
     }
     $row[1] = $status;
     $table->data[] = $row;
     // Available areas.
     $row = array();
     $url = new moodle_url('/admin/settings.php?section=manageglobalsearch#admin-searchengine');
     $row[0] = '2. ' . html_writer::tag('a', get_string('enablesearchareas', 'admin'), array('href' => $url));
     $status = html_writer::tag('span', get_string('no'), array('class' => 'statuscritical'));
     if ($anyenabled) {
         $status = html_writer::tag('span', get_string('yes'), array('class' => 'statusok'));
     }
     $row[1] = $status;
     $table->data[] = $row;
     // Setup search engine.
     $row = array();
     if (empty($CFG->searchengine)) {
         $row[0] = '3. ' . get_string('setupsearchengine', 'admin');
         $row[1] = html_writer::tag('span', get_string('no'), array('class' => 'statuscritical'));
     } else {
         $url = new moodle_url('/admin/settings.php?section=search' . $CFG->searchengine);
         $row[0] = '3. ' . html_writer::tag('a', get_string('setupsearchengine', 'admin'), array('href' => $url));
         // Check the engine status.
         $searchengine = \core_search\manager::search_engine_instance();
         $serverstatus = $searchengine->is_server_ready();
         if ($serverstatus === true) {
             $status = html_writer::tag('span', get_string('yes'), array('class' => 'statusok'));
         } else {
             $status = html_writer::tag('span', $serverstatus, array('class' => 'statuscritical'));
         }
         $row[1] = $status;
     }
     $table->data[] = $row;
     // Indexed data.
     $row = array();
     $url = new moodle_url('/report/search/index.php#searchindexform');
     $row[0] = '4. ' . html_writer::tag('a', get_string('indexdata', 'admin'), array('href' => $url));
     if ($anyindexed) {
         $status = html_writer::tag('span', get_string('yes'), array('class' => 'statusok'));
     } else {
         $status = html_writer::tag('span', get_string('no'), array('class' => 'statuscritical'));
     }
     $row[1] = $status;
     $table->data[] = $row;
     // Enable global search.
     $row = array();
     $url = new moodle_url("/admin/search.php?query=enableglobalsearch");
     $row[0] = '5. ' . html_writer::tag('a', get_string('enableglobalsearch', 'admin'), array('href' => $url));
     $status = html_writer::tag('span', get_string('no'), array('class' => 'statuscritical'));
     if (\core_search\manager::is_global_search_enabled()) {
         $status = html_writer::tag('span', get_string('yes'), array('class' => 'statusok'));
     }
     $row[1] = $status;
     $table->data[] = $row;
     $return .= html_writer::table($table);
     return highlight($query, $return);
 }