public function update_skills_to_gradebook($gradebook_id, $skill_list)
 {
     if (!empty($skill_list)) {
         //Cleaning skills
         $skill_list = array_map('intval', $skill_list);
         $skill_list = array_filter($skill_list);
         $skill_gradebook = new SkillRelGradebook();
         $skill_gradebooks_source = $skill_gradebook->get_all(array('where' => array('gradebook_id = ?' => $gradebook_id)));
         $clean_gradebook = array();
         if (!empty($skill_gradebooks_source)) {
             foreach ($skill_gradebooks_source as $source) {
                 $clean_gradebook[] = $source['skill_id'];
             }
         }
         if (!empty($clean_gradebook)) {
             $skill_to_remove = array_diff($clean_gradebook, $skill_list);
         }
         foreach ($skill_list as $skill_id) {
             $params = array();
             $params['gradebook_id'] = $gradebook_id;
             $params['skill_id'] = $skill_id;
             if (!$skill_gradebook->exists_gradebook_skill($gradebook_id, $skill_id)) {
                 $skill_gradebook->save($params);
             }
         }
         if (!empty($skill_to_remove)) {
             foreach ($skill_to_remove as $remove) {
                 $skill_item = $skill_gradebook->get_skill_info($remove, $gradebook_id);
                 $skill_gradebook->delete($skill_item['id']);
             }
         }
         return true;
     }
     return false;
 }
Esempio n. 2
0
 /**
  * @param int $user_id
  * @param int $gradebook_id
  * @param int $courseId
  * @param int $sessionId
  */
 public function add_skill_to_user($user_id, $gradebook_id, $courseId = 0, $sessionId = 0)
 {
     $skill_gradebook = new SkillRelGradebook();
     $skill_rel_user = new SkillRelUser();
     $skill_gradebooks = $skill_gradebook->get_all(array('where' => array('gradebook_id = ?' => $gradebook_id)));
     if (!empty($skill_gradebooks)) {
         foreach ($skill_gradebooks as $skill_gradebook) {
             $user_has_skill = $this->user_has_skill($user_id, $skill_gradebook['skill_id'], $courseId, $sessionId);
             if (!$user_has_skill) {
                 $params = array('user_id' => $user_id, 'skill_id' => $skill_gradebook['skill_id'], 'acquired_skill_at' => api_get_utc_datetime(), 'course_id' => intval($courseId));
                 if (!empty($sessionId)) {
                     $params['session_id'] = $sessionId;
                 }
                 $skill_rel_user->save($params);
             }
         }
     }
 }