. /** * Displays external information about a course * @package core_course * @copyright 1999 onwards Martin Dougiamas http://dougiamas.com * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ require_once("../config.php"); require_once($CFG->dirroot.'/course/lib.php'); $search = optional_param('search', '', PARAM_RAW); // search words $page = optional_param('page', 0, PARAM_INT); // which page to show $perpage = optional_param('perpage', '', PARAM_RAW); // how many per page, may be integer or 'all' $blocklist = optional_param('blocklist', 0, PARAM_INT); $modulelist= optional_param('modulelist', '', PARAM_PLUGIN); $tagid = optional_param('tagid', '', PARAM_INT); // searches for courses tagged with this tag id // List of minimum capabilities which user need to have for editing/moving course $capabilities = array('moodle/course:create', 'moodle/category:manage'); // Populate usercatlist with list of category id's with course:create and category:manage capabilities. $usercatlist = core_course_category::make_categories_list($capabilities); $search = trim(strip_tags($search)); // trim & clean raw searched string $site = get_site(); $searchcriteria = array(); foreach (array('search', 'blocklist', 'modulelist', 'tagid') as $param) { if (!empty($$param)) { $searchcriteria[$param] = $$param; } } $urlparams = array(); if ($perpage !== 'all' && !($perpage = (int)$perpage)) { // default number of courses per page $perpage = $CFG->coursesperpage; } else { $urlparams['perpage'] = $perpage; } if (!empty($page)) { $urlparams['page'] = $page; } $PAGE->set_url('/course/search.php', $searchcriteria + $urlparams); $PAGE->set_context(context_system::instance()); $PAGE->set_pagelayout('standard'); $courserenderer = $PAGE->get_renderer('core', 'course'); if ($CFG->forcelogin) { require_login(); } $strcourses = new lang_string("courses"); $strsearch = new lang_string("search"); $strsearchresults = new lang_string("searchresults"); $strnovalidcourses = new lang_string('novalidcourses'); $courseurl = core_course_category::user_top() ? new moodle_url('/course/index.php') : null; $PAGE->navbar->add($strcourses, $courseurl); $PAGE->navbar->add($strsearch, new moodle_url('/course/search.php')); if (!empty($search)) { $PAGE->navbar->add(s($search)); } if (empty($searchcriteria)) { // no search criteria specified, print page with just search form $PAGE->set_title("$site->fullname : $strsearch"); } else { // this is search results page $PAGE->set_title("$site->fullname : $strsearchresults"); // Link to manage search results should be visible if user have system or category level capability if ((can_edit_in_category() || !empty($usercatlist))) { $aurl = new moodle_url('/course/management.php', $searchcriteria); $searchform = $OUTPUT->single_button($aurl, get_string('managecourses'), 'get'); } else { $searchform = $courserenderer->course_search_form($search, 'navbar'); } $PAGE->set_button($searchform); // Trigger event, courses searched. $eventparams = array('context' => $PAGE->context, 'other' => array('query' => $search)); $event = \core\event\courses_searched::create($eventparams); $event->trigger(); } $PAGE->set_heading($site->fullname); echo $OUTPUT->header(); echo $courserenderer->search_courses($searchcriteria); echo $OUTPUT->footer();