Differences Between: [Versions 310 and 403] [Versions 311 and 403] [Versions 39 and 403] [Versions 400 and 403]
1 <?php 2 // This file is part of Moodle - http://moodle.org/ 3 // 4 // Moodle is free software: you can redistribute it and/or modify 5 // it under the terms of the GNU General Public License as published by 6 // the Free Software Foundation, either version 3 of the License, or 7 // (at your option) any later version. 8 // 9 // Moodle is distributed in the hope that it will be useful, 10 // but WITHOUT ANY WARRANTY; without even the implied warranty of 11 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 // GNU General Public License for more details. 13 // 14 // You should have received a copy of the GNU General Public License 15 // along with Moodle. If not, see <http://www.gnu.org/licenses/>. 16 17 /** 18 * Displays external information about a course 19 * @package core_course 20 * @copyright 1999 onwards Martin Dougiamas http://dougiamas.com 21 * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later 22 */ 23 24 require_once("../config.php"); 25 require_once($CFG->dirroot.'/course/lib.php'); 26 27 $q = optional_param('q', '', PARAM_RAW); // Global search words. 28 $search = optional_param('search', '', PARAM_RAW); // search words 29 $page = optional_param('page', 0, PARAM_INT); // which page to show 30 $perpage = optional_param('perpage', '', PARAM_RAW); // how many per page, may be integer or 'all' 31 $blocklist = optional_param('blocklist', 0, PARAM_INT); 32 $modulelist= optional_param('modulelist', '', PARAM_PLUGIN); 33 $tagid = optional_param('tagid', '', PARAM_INT); // searches for courses tagged with this tag id 34 35 // Use global search. 36 if ($q) { 37 $search = $q; 38 } 39 40 // List of minimum capabilities which user need to have for editing/moving course 41 $capabilities = array('moodle/course:create', 'moodle/category:manage'); 42 43 // Populate usercatlist with list of category id's with course:create and category:manage capabilities. 44 $usercatlist = core_course_category::make_categories_list($capabilities); 45 46 $search = trim(strip_tags($search)); // trim & clean raw searched string 47 48 $site = get_site(); 49 50 $searchcriteria = array(); 51 foreach (array('search', 'blocklist', 'modulelist', 'tagid') as $param) { 52 if (!empty($$param)) { 53 $searchcriteria[$param] = $$param; 54 } 55 } 56 $urlparams = array(); 57 if ($perpage !== 'all' && !($perpage = (int)$perpage)) { 58 // default number of courses per page 59 $perpage = $CFG->coursesperpage; 60 } else { 61 $urlparams['perpage'] = $perpage; 62 } 63 if (!empty($page)) { 64 $urlparams['page'] = $page; 65 } 66 $PAGE->set_url('/course/search.php', $searchcriteria + $urlparams); 67 $PAGE->set_context(context_system::instance()); 68 $PAGE->set_pagelayout('standard'); 69 $courserenderer = $PAGE->get_renderer('core', 'course'); 70 71 if ($CFG->forcelogin) { 72 require_login(); 73 } 74 75 $strcourses = new lang_string("courses"); 76 $strsearch = new lang_string("search"); 77 $strsearchresults = new lang_string("searchresults"); 78 $strnovalidcourses = new lang_string('novalidcourses'); 79 80 $courseurl = core_course_category::user_top() ? new moodle_url('/course/index.php') : null; 81 $PAGE->navbar->add($strcourses, $courseurl); 82 $PAGE->navbar->add($strsearch, new moodle_url('/course/search.php')); 83 if (!empty($search)) { 84 $PAGE->navbar->add(s($search)); 85 } 86 87 if (empty($searchcriteria)) { 88 // no search criteria specified, print page with just search form 89 $PAGE->set_title($strsearch); 90 } else { 91 // this is search results page 92 $PAGE->set_title($strsearchresults); 93 // Link to manage search results should be visible if user have system or category level capability 94 if ((can_edit_in_category() || !empty($usercatlist))) { 95 $aurl = new moodle_url('/course/management.php', $searchcriteria); 96 $searchform = $OUTPUT->single_button($aurl, get_string('managecourses'), 'get'); 97 } else { 98 $searchform = $courserenderer->course_search_form($search); 99 } 100 $PAGE->set_button($searchform); 101 102 // Trigger event, courses searched. 103 $eventparams = array('context' => $PAGE->context, 'other' => array('query' => $search)); 104 $event = \core\event\courses_searched::create($eventparams); 105 $event->trigger(); 106 } 107 108 $PAGE->set_heading($site->fullname); 109 110 echo $OUTPUT->header(); 111 echo $courserenderer->search_courses($searchcriteria); 112 echo $OUTPUT->footer();
title
Description
Body
title
Description
Body
title
Description
Body
title
Body