title = get_string('administration'); $this->version = 2007101509; } function get_content() { global $CFG, $USER, $SITE, $COURSE; if ($this->content !== NULL) { return $this->content; } $this->content = new stdClass; $this->content->items = array(); $this->content->icons = array(); $this->content->footer = ''; if (empty($this->instance->pageid)) { // sticky if (!empty($COURSE)) { $this->instance->pageid = $COURSE->id; } } if (empty($this->instance)) { return $this->content = ''; } else if ($this->instance->pageid == SITEID) { // return $this->content = ''; } if (!empty($this->instance->pageid)) { $context = get_context_instance(CONTEXT_COURSE, $this->instance->pageid); if ($COURSE->id == $this->instance->pageid) { $course = $COURSE; } else { $course = get_record('course', 'id', $this->instance->pageid); } } else { $context = get_context_instance(CONTEXT_SYSTEM); $course = $SITE; } if (!has_capability('moodle/course:view', $context)) { // Just return return $this->content; } if (empty($CFG->loginhttps)) { $securewwwroot = $CFG->wwwroot; } else { $securewwwroot = str_replace('http:','https:',$CFG->wwwroot); } /// Course editing on/off if ($course->id !== SITEID and has_capability('moodle/course:update', $context)) { $this->content->icons[]=''; if (isediting($this->instance->pageid)) { $this->content->items[]=''.get_string('turneditingoff').''; } else { $this->content->items[]=''.get_string('turneditingon').''; } $this->content->items[]=''.get_string('settings').''; $this->content->icons[]=''; } /// Assign roles to the course if ($course->id != SITEID) { if (has_capability('moodle/role:assign', $context)) { $this->content->items[]=''.get_string('assignroles', 'role').''; $this->content->icons[]=''; } else if (get_overridable_roles($context, 'name', ROLENAME_ORIGINAL)) { $this->content->items[]=''.get_string('overridepermissions', 'role').''; $this->content->icons[]=''; } } /// View course grades (or just your own grades, same link) /// find all accessible reports if ($course->id !== SITEID) { $reportavailable = false; if (has_capability('moodle/grade:viewall', $context)) { $reportavailable = true; } else if (!empty($course->showgrades)) { if ($reports = get_list_of_plugins('grade/report')) { // Get all installed reports arsort($reports); // user is last, we want to test it first foreach ($reports as $plugin) { if (has_capability('gradereport/'.$plugin.':view', $context)) { //stop when the first visible plugin is found $reportavailable = true; break; } } } } if ($reportavailable) { $this->content->items[]=''.get_string('grades').''; $this->content->icons[]=''; } } /// Course outcomes (to help give it more prominence because it's important) if (!empty($CFG->enableoutcomes)) { if ($course->id!==SITEID and has_capability('moodle/course:update', $context)) { $this->content->items[]=''.get_string('outcomes', 'grades').''; $this->content->icons[]=''; } } /// Manage metacourses if ($course->metacourse) { if (has_capability('moodle/course:managemetacourse', $context)) { $strchildcourses = get_string('childcourses'); $this->content->items[]=''.$strchildcourses.''; $this->content->icons[]=''; } else if (has_capability('moodle/role:assign', $context)) { $strchildcourses = get_string('childcourses'); $this->content->items[]=''.$strchildcourses.''; $this->content->icons[]=''; } } /// Manage groups in this course if (($course->id!==SITEID) && ($course->groupmode || !$course->groupmodeforce) && has_capability('moodle/course:managegroups', $context)) { $strgroups = get_string('groups'); $this->content->items[]=''.$strgroups.''; $this->content->icons[]=''; } /// Backup this course if ($course->id!==SITEID and has_capability('moodle/site:backup', $context)) { $this->content->items[]=''.get_string('backup').''; $this->content->icons[]=''; } /// Restore to this course if ($course->id !== SITEID and has_capability('moodle/site:restore', $context)) { $this->content->items[]=''.get_string('restore').''; $this->content->icons[]=''; } /// Import data from other courses if ($course->id !== SITEID and has_capability('moodle/site:import', $context)) { $this->content->items[]=''.get_string('import').''; $this->content->icons[]=''; } /// Reset this course if ($course->id!==SITEID and has_capability('moodle/course:reset', $context)) { $this->content->items[]=''.get_string('reset').''; $this->content->icons[]=''; } /// View course reports if ($course->id !== SITEID and has_capability('moodle/site:viewreports', $context)) { // basic capability for listing of reports $this->content->items[]=''.get_string('reports').''; $this->content->icons[]=''; } /// Manage questions if ($course->id !== SITEID){ $questionlink = ''; $questioncaps = array( 'moodle/question:add', 'moodle/question:editmine', 'moodle/question:editall', 'moodle/question:viewmine', 'moodle/question:viewall', 'moodle/question:movemine', 'moodle/question:moveall'); foreach ($questioncaps as $questioncap){ if (has_capability($questioncap, $context)){ $questionlink = 'edit.php'; break; } } if (!$questionlink && has_capability('moodle/question:managecategory', $context)) { $questionlink = 'category.php'; } if ($questionlink) { $this->content->items[]=''.get_string('questions', 'quiz').''; $this->content->icons[]=''; } } /// Manage files if ($course->id !== SITEID and has_capability('moodle/course:managefiles', $context)) { $this->content->items[]=''.get_string('files').''; $this->content->icons[]=''; } /// Authorize hooks if ($course->enrol == 'authorize' || (empty($course->enrol) && $CFG->enrol == 'authorize') && ($course->id!==SITEID)) { require_once($CFG->dirroot.'/enrol/authorize/const.php'); $paymenturl = ''.get_string('payments').' '; if (has_capability('enrol/authorize:managepayments', $context)) { if ($cnt = count_records('enrol_authorize', 'status', AN_STATUS_AUTH, 'courseid', $course->id)) { $paymenturl .= ''.get_string('paymentpending', 'moodle', $cnt).''; } } $this->content->items[] = $paymenturl; $this->content->icons[] = ''; } /// Unenrol link if (empty($course->metacourse) && ($course->id!==SITEID)) { if (has_capability('moodle/legacy:guest', $context, NULL, false)) { // Are a guest now $this->content->items[]=''.get_string('enrolme', '', format_string($course->shortname)).''; $this->content->icons[]=''; } else if (has_capability('moodle/role:unassignself', $context, NULL, false) and get_user_roles($context, $USER->id, false)) { // Have some role $this->content->items[]=''.get_string('unenrolme', '', format_string($course->shortname)).''; $this->content->icons[]=''; } } /// Link to the user own profile (except guests) if (!isguestuser() and isloggedin()) { $this->content->items[]=''.get_string('profile').''; $this->content->icons[]=''; } return $this->content; } function applicable_formats() { return array('course' => true); // Not needed on site } } ?>