Exemple #1
0
 /**
  * List all the evidence for a user competency.
  *
  * @param int $userid The user id - only used if usercompetencyid is 0.
  * @param int $competencyid The competency id - only used it usercompetencyid is 0.
  * @param int $planid The plan id - not used yet - but can be used to only list archived evidence if a plan is completed.
  * @param string $sort The field to sort the evidence by.
  * @param string $order The ordering of the sorting.
  * @param int $skip Number of records to skip.
  * @param int $limit Number of records to return.
  * @return \core_competency\evidence[]
  * @return array of \core_competency\evidence
  */
 public static function list_evidence($userid = 0, $competencyid = 0, $planid = 0, $sort = 'timecreated', $order = 'DESC', $skip = 0, $limit = 0)
 {
     static::require_enabled();
     if (!user_competency::can_read_user($userid)) {
         $context = context_user::instance($userid);
         throw new required_capability_exception($context, 'moodle/competency:usercompetencyview', 'nopermissions', '');
     }
     $usercompetency = user_competency::get_record(array('userid' => $userid, 'competencyid' => $competencyid));
     if (!$usercompetency) {
         return array();
     }
     $plancompleted = false;
     if ($planid != 0) {
         $plan = new plan($planid);
         if ($plan->get_status() == plan::STATUS_COMPLETE) {
             $plancompleted = true;
         }
     }
     $select = 'usercompetencyid = :usercompetencyid';
     $params = array('usercompetencyid' => $usercompetency->get_id());
     if ($plancompleted) {
         $select .= ' AND timecreated <= :timecompleted';
         $params['timecompleted'] = $plan->get_timemodified();
     }
     $orderby = $sort . ' ' . $order;
     $orderby .= !empty($orderby) ? ', id DESC' : 'id DESC';
     // Prevent random ordering.
     $evidence = evidence::get_records_select($select, $params, $orderby, '*', $skip, $limit);
     return $evidence;
 }