@ -26,7 +26,6 @@ class SkillProfile extends Model {
public function get_profiles() {
$sql = "SELECT * FROM $this->table p INNER JOIN $this->table_rel_profile sp ON(p.id = sp.profile_id) ";
$result = Database::query($sql);
$profiles = Database::store_result($result,'ASSOC');
return $profiles;
@ -47,7 +46,6 @@ class SkillProfile extends Model {
}
}
return false;
}
}
@ -119,12 +117,26 @@ class SkillRelSkill extends Model {
return $parents;
}
public function get_children($skill_id, $add_child_info = tru e) {
public function get_children($skill_id, $load_user_data = false, $user_id = fals e) {
$skills = $this->find('all', array('where'=> array('parent_id = ? '=> $skill_id)));
$skill_obj = new Skill();
$skill_rel_user = new SkillRelUser();
if ($load_user_data) {
$passed_skills = $skill_rel_user->get_user_skills($user_id);
$done_skills = array();
foreach($passed_skills as $done_skill) {
$done_skills[] = $done_skill['skill_id'];
}
}
if (!empty($skills)) {
foreach ($skills as & $skill) {
$skill['data'] = $skill_obj->get($skill['skill_id']);
if (!empty($done_skills)) {
$skill['data']['passed'] = 0;
if (in_array($skill['skill_id'], $done_skills)) {
$skill['data']['passed'] = 1;
}
}
}
}
return $skills;
@ -176,7 +188,6 @@ class SkillRelGradebook extends Model {
public function update_gradebooks_by_skill($skill_id, $gradebook_list) {
$original_gradebook_list = $this->find('all', array('where'=>array('skill_id = ?' => array($skill_id))));
//var_dump($original_gradebook_list);
$gradebooks_to_remove = array();
$gradebooks_to_add = array();
$original_gradebook_list_ids = array();
@ -282,11 +293,6 @@ class Skill extends Model {
return $skill_info;
}
public function skill_exists($skill_id) {
}
function get_skills_info($skill_list) {
$skill_list = array_map('intval', $skill_list);
$skill_list = implode("', '", $skill_list);
@ -296,12 +302,11 @@ class Skill extends Model {
$result = Database::query($sql);
$users = Database::store_result($result, 'ASSOC');
return $users;
}
function get_all($load_user_data = false) {
function get_all($load_user_data = false, $user_id = false) {
$sql = "SELECT id, name, description, parent_id, relation_type
FROM {$this->table} skill INNER JOIN {$this->table_skill_rel_skill} skill_rel_skill
ON skill.id = skill_rel_skill.skill_id ";
FROM {$this->table} s INNER JOIN {$this->table_skill_rel_skill} ss ON (s.id = ss.skill_id) ";
$result = Database::query($sql);
$skills = array();
@ -315,17 +320,16 @@ class Skill extends Model {
}
}
if ($load_user_data) {
$passed_skills = $this->get_user_skills(api_get_user_id());
if ($load_user_data & & $user_id) {
$passed_skills = $this->get_user_skills($user_id);
foreach ($skills as & $skill) {
$skill['done_by_user'] = 0;
if (in_array($skill['id'], $passed_skills)) {
$skill['done_by_user'] = 1;
}
}
}
return $skills;
}
@ -341,7 +345,8 @@ class Skill extends Model {
function get_children($skill_id) {
$skill_rel_skill = new SkillRelSkill();
$skills = $skill_rel_skill->get_children($skill_id, true);
$user_id = api_get_user_id();
$skills = $skill_rel_skill->get_children($skill_id, true, $user_id);
return $skills;
}
@ -409,7 +414,7 @@ class Skill extends Model {
$skill_rel_gradebook = new SkillRelGradebook();
//Saving name, description
var_dump($params);
$this->update($params);
$skill_id = $params['id'];
@ -465,18 +470,12 @@ class Skill extends Model {
}
}
public function remove_skill_to_user($user_id) {
}
/**
* Get user's skills
*
* @param int $userId User's id
*/
public function get_user_skills($user_id, $get_skill_data = false) {
$user_id = intval($user_id);
//$sql = 'SELECT skill.*, user.* FROM '.$this->table_skill_rel_user.' user INNER JOIN '.$this->table_skill.' skill
@ -499,9 +498,13 @@ class Skill extends Model {
return $clean_skill;
}
public function get_skills_tree($user_id = null, $return_flat_array = false) {
if (isset($user_id) & & !empty($user_id)) {
$skills = $this->get_all(true, $user_id);
} else {
$skills = $this->get_all();
}
$refs = array();
$skills_tree = null;