title = get_string('title', 'block_mytreestudyplan'); $systemcontext = \context_system::instance(); $teachermode = has_capability("local/treestudyplan:viewuserreports",$systemcontext); // Load CSS files from treestudyplan try{ $PAGE->requires->css(new \moodle_url($CFG->wwwroot.'/local/treestudyplan/css/bootstrap-vue.min.css')); $PAGE->requires->css(new \moodle_url($CFG->wwwroot.'/local/treestudyplan/css/devstyles.css')); // include javascript and run studyplan renderer when page loading is complete $PAGE->requires->js_call_amd('block_mytreestudyplan/block_mytreestudyplan', 'init',[$teachermode?'teaching':'myreport']); } catch( Exception $x) { // On some occasions (Plugin management), the plugin is loaded after HEAD has been printed. In those cases we don't want to show the block anyway, // so ignore the error that gets inevitably thrown } } public function applicable_formats() { // Limit this block to the site index and the dashboard (my) pages return [ 'admin' => false, 'site-index' => true, 'course-view' => false, 'mod' => false, 'my' => true ]; } public function get_content() { global $CFG; global $USER; global $COURSE; global $OUTPUT; if ($this->content !== null) { return $this->content; } $coursecontext = \context_course::instance($COURSE->id); $systemcontext = \context_system::instance(); $teachermode = has_capability("local/treestudyplan:viewuserreports",$systemcontext); $this->content = new \stdClass; $this->content->text = ""; $mystudyplans = studyplan::find_for_user($USER->id); $data = [ 'teachermode' => $teachermode, ]; $this->content->text = $OUTPUT->render_from_template("block_mytreestudyplan/block",$data); $invite_url =$CFG->wwwroot.'/local/treestudyplan/invitations.php'; $invite_text = get_string('manage_invites','local_treestudyplan'); if($teachermode){ $this->content->footer = "".get_string("view_plan","local_treestudyplan").""; if(has_capability("local/treestudyplan:editstudyplan",$systemcontext)){ $this->content->footer .= "  ".get_string("cfg_plans","local_treestudyplan").""; } } else if (count($mystudyplans) > 0) { $this->content->footer = "{$invite_text}"; } return $this->content; } public function hide_header() { return false; } public function has_config() { return false; } }