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; }
/** * 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; }