protected function get_other_values(renderer_base $output) { $classname = static::define_class(); $status = $this->persistent->get_status(); $values = new stdClass(); $values->statusname = $this->persistent->get_statusname(); $values->isbasedontemplate = $this->persistent->is_based_on_template(); $values->canmanage = $this->persistent->can_manage(); $values->canrequestreview = $this->persistent->can_request_review(); $values->canreview = $this->persistent->can_review(); $values->canbeedited = $this->persistent->can_be_edited(); $values->isactive = $status == $classname::STATUS_ACTIVE; $values->isdraft = $status == $classname::STATUS_DRAFT; $values->iscompleted = $status == $classname::STATUS_COMPLETE; $values->isinreview = $status == $classname::STATUS_IN_REVIEW; $values->iswaitingforreview = $status == $classname::STATUS_WAITING_FOR_REVIEW; $values->isreopenallowed = $values->canmanage && $values->iscompleted; $values->iscompleteallowed = $values->canmanage && $values->isactive; $values->isunlinkallowed = $values->canmanage && !$values->iscompleted && $values->isbasedontemplate; $values->isrequestreviewallowed = false; $values->iscancelreviewrequestallowed = false; $values->isstartreviewallowed = false; $values->isstopreviewallowed = false; $values->isapproveallowed = false; $values->isunapproveallowed = false; if (!$values->isbasedontemplate) { $values->isrequestreviewallowed = $values->canrequestreview && $values->isdraft; $values->iscancelreviewrequestallowed = $values->canrequestreview && $values->iswaitingforreview; $values->isstartreviewallowed = $values->canreview && $values->iswaitingforreview; $values->isstopreviewallowed = $values->canreview && $values->isinreview; $values->isapproveallowed = $values->canreview && !$values->iscompleted && !$values->isactive; $values->isunapproveallowed = $values->canreview && $values->isactive; } $values->duedateformatted = userdate($this->persistent->get_duedate()); if ($this->persistent->is_based_on_template()) { $exporter = new template_exporter($this->related['template']); $values->template = $exporter->export($output); } if (!empty($values->isinreview)) { // TODO Make this more efficient. $userexporter = new user_summary_exporter(core_user::get_user($this->persistent->get_reviewerid(), '*', MUST_EXIST)); $values->reviewer = $userexporter->export($output); } $commentareaexporter = new comment_area_exporter($this->persistent->get_comment_object()); $values->commentarea = $commentareaexporter->export($output); $values->url = url::plan($this->persistent->get_id())->out(false); return (array) $values; }
/** * Export this data so it can be used as the context for a mustache template. * * @param renderer_base $output Renderer base. * @return stdClass */ public function export_for_template(renderer_base $output) { $data = new stdClass(); $data->pagecontextid = $this->pagecontext->id; $data->templates = array(); foreach ($this->templates as $template) { $exporter = new template_exporter($template); $data->templates[] = $exporter->export($output); } $data->pluginbaseurl = (new moodle_url('/admin/tool/lp'))->out(true); $data->navigation = array(); foreach ($this->navigation as $button) { $data->navigation[] = $output->render($button); } $data->canmanage = template::can_manage_context($this->pagecontext); return $data; }
/** * List the learning plan templates (visible to this user) that use this competency. * * @param int $competencyid Competency id. * @return array */ public static function list_templates_using_competency($competencyid) { global $PAGE; $params = self::validate_parameters(self::list_templates_using_competency_parameters(), array('id' => $competencyid)); $competency = api::read_competency($params['id']); self::validate_context($competency->get_context()); $output = $PAGE->get_renderer('core'); $templates = api::list_templates_using_competency($params['id']); $records = array(); foreach ($templates as $template) { $exporter = new template_exporter($template); $record = $exporter->export($output); $records[] = $record; } return $records; }