Ejemplo n.º 1
0
/**
 * This function extends the user navigation.
 *
 * @param navigation_node $navigation The navigation node to extend
 * @param stdClass $user The user object
 * @param context_user $usercontext The user context
 * @param stdClass $course The course object
 * @param context_course $coursecontext The context of the course
 */
function tool_lp_extend_navigation_user($navigation, $user, $usercontext, $course, $coursecontext)
{
    if (!get_config('core_competency', 'enabled')) {
        return;
    }
    if (\core_competency\plan::can_read_user($user->id)) {
        $node = $navigation->add(get_string('learningplans', 'tool_lp'), new moodle_url('/admin/tool/lp/plans.php', array('userid' => $user->id)));
        if (\core_competency\user_evidence::can_read_user($user->id)) {
            $node->add(get_string('userevidence', 'tool_lp'), new moodle_url('/admin/tool/lp/user_evidence_list.php', array('userid' => $user->id)));
        }
    }
}
Ejemplo n.º 2
0
 /**
  * Export this data so it can be used as the context for a mustache template.
  *
  * @param renderer_base $output
  * @return stdClass
  */
 public function export_for_template(renderer_base $output)
 {
     $data = new stdClass();
     $data->userid = $this->userid;
     $data->pluginbaseurl = (new moodle_url('/admin/tool/lp'))->out(true);
     $data->canreaduserevidence = user_evidence::can_read_user($this->userid);
     $data->canmanageuserplans = plan::can_manage_user($this->userid);
     // Attach standard objects as mustache can not parse \core_competency\plan objects.
     $data->plans = array();
     if ($this->plans) {
         foreach ($this->plans as $plan) {
             $exporter = new plan_exporter($plan, array('template' => $plan->get_template()));
             $record = $exporter->export($output);
             $data->plans[] = $record;
         }
     }
     $data->navigation = array();
     foreach ($this->navigation as $button) {
         $data->navigation[] = $output->render($button);
     }
     return $data;
 }
Ejemplo n.º 3
0
 /**
  * List the user evidence of a user.
  *
  * @param  int $userid The user ID.
  * @return user_evidence[]
  */
 public static function list_user_evidence($userid)
 {
     static::require_enabled();
     if (!user_evidence::can_read_user($userid)) {
         $context = context_user::instance($userid);
         throw new required_capability_exception($context, 'moodle/competency:userevidenceview', 'nopermissions', '');
     }
     $evidence = user_evidence::get_records(array('userid' => $userid), 'name');
     return $evidence;
 }
Ejemplo n.º 4
0
/**
 * File serving.
 *
 * @param stdClass $course The course object.
 * @param stdClass $cm The cm object.
 * @param context $context The context object.
 * @param string $filearea The file area.
 * @param array $args List of arguments.
 * @param bool $forcedownload Whether or not to force the download of the file.
 * @param array $options Array of options.
 * @return void|false
 */
function core_competency_pluginfile($course, $cm, $context, $filearea, $args, $forcedownload, array $options = array())
{
    global $CFG;
    if (!get_config('core_competency', 'enabled')) {
        return false;
    }
    $fs = get_file_storage();
    $file = null;
    $itemid = array_shift($args);
    $filename = array_shift($args);
    $filepath = $args ? '/' . implode('/', $args) . '/' : '/';
    if ($filearea == 'userevidence' && $context->contextlevel == CONTEXT_USER) {
        if (user_evidence::can_read_user($context->instanceid)) {
            $file = $fs->get_file($context->id, 'core_competency', $filearea, $itemid, $filepath, $filename);
        }
    }
    if (!$file) {
        return false;
    }
    send_stored_file($file, null, 0, $forcedownload);
}