// along with Moodle. If not, see <http://www.gnu.org/licenses/>. define('AJAX_SCRIPT', true); /** * * @package mod-dialogue * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ require_once dirname(dirname(dirname(__FILE__))) . '/config.php'; require_once $CFG->dirroot . '/mod/dialogue/locallib.php'; // course module identifier $id = required_param('id', PARAM_INT); // search text $q = required_param('q', PARAM_RAW); // check access. if (!isloggedin()) { print_error('mustbeloggedin'); } // check session if (!confirm_sesskey()) { print_error('invalidsesskey'); } $cm = get_coursemodule_from_id('dialogue', $id, 0, false, MUST_EXIST); $PAGE->set_cm($cm); list($receivers, $matches, $pagesize) = dialogue_search_potentials(new \mod_dialogue\dialogue($cm), $q); $return = array(); $return['results'] = array_values($receivers); $return['matches'] = $matches; $return['pagesize'] = $pagesize; header('Content-type: application/json; charset=utf-8'); echo json_encode($return); exit;
/** * * @return boolean */ public function definition_after_data() { global $PAGE; $mform = $this->_form; $q = optional_param('p_query', '', PARAM_TEXT); if (!empty($q)) { $dialogue = new \mod_dialogue\dialogue($PAGE->cm, $PAGE->course, $PAGE->activityrecord); $results = dialogue_search_potentials($dialogue, $q); if (empty($results[0])) { $people = array(get_string('nomatchingpeople', 'dialogue', $q) => array('')); } else { $options = array(); foreach ($results[0] as $person) { $options[$person->id] = fullname($person); } $people = array(get_string('matchingpeople', 'dialogue', count($options)) => $options); if ($mform->getElement('p_select')->getMultiple()) { $selected = optional_param_array('p_select', array(), PARAM_INT); } else { $selected = optional_param('p_select', array(), PARAM_INT); } $this->update_selectgroup('p_select', $people, $selected); } } // Clear out query string and selectgroup form data if (optional_param('p_clear', false, PARAM_BOOL)) { $mform = $this->_form; $pquery = $mform->getElement('p_query'); $pquery->setValue(''); $this->update_selectgroup('p_select', array(get_string('usesearch', 'dialogue') => array('' => ''))); } return true; }