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;
 }
示例#2
0
 /**
  * Adds a new skill
  * @param array $params
  * @return bool|null
  */
 public function add($params)
 {
     if (!isset($params['parent_id'])) {
         $params['parent_id'] = 1;
     }
     if (!is_array($params['parent_id'])) {
         $params['parent_id'] = array($params['parent_id']);
     }
     $skill_rel_skill = new SkillRelSkill();
     $skill_rel_gradebook = new SkillRelGradebook();
     //Saving name, description
     $skill_id = $this->save($params);
     if ($skill_id) {
         //Saving skill_rel_skill (parent_id, relation_type)
         foreach ($params['parent_id'] as $parent_id) {
             $relation_exists = $skill_rel_skill->relation_exists($skill_id, $parent_id);
             if (!$relation_exists) {
                 $attributes = array('skill_id' => $skill_id, 'parent_id' => $parent_id, 'relation_type' => isset($params['relation_type']) ? $params['relation_type'] : 0);
                 $skill_rel_skill->save($attributes);
             }
         }
         if (!empty($params['gradebook_id'])) {
             foreach ($params['gradebook_id'] as $gradebook_id) {
                 $attributes = array();
                 $attributes['gradebook_id'] = $gradebook_id;
                 $attributes['skill_id'] = $skill_id;
                 $skill_rel_gradebook->save($attributes);
             }
         }
         return $skill_id;
     }
     return null;
 }