diff --git a/main/inc/ajax/skill.ajax.php b/main/inc/ajax/skill.ajax.php
index b13e0e1e17..8c76dd5646 100755
--- a/main/inc/ajax/skill.ajax.php
+++ b/main/inc/ajax/skill.ajax.php
@@ -119,27 +119,19 @@ switch ($action) {
$id = isset($_REQUEST['id']) ? $_REQUEST['id'] : null;
$skill_info = $skill->get_skill_info($id);
$courses = $skill->get_courses_by_skill($id);
+ $sessions = $skill->getSessionsBySkill($id);
+
$html = '';
- if (!empty($courses)) {
- $html = sprintf(
- get_lang('ToGetToLearnXYouWillNeedToTakeOneOfTheFollowingCourses'),
- ''.$skill_info['name'].''
- ).'
';
- foreach ($courses as $course) {
- $url = '#';
- $attributes = array('class' => 'course_description_popup', 'rel' => $course['code']);
- $html .=
- Display::url(
- sprintf(
- get_lang('SkillXWithCourseX'),
- $skill_info['name'],
- $course['title']
- ),
- $url,
- $attributes
- ).'
';
- }
+
+ if (!empty($courses) || !empty($sessions)) {
+ Display::display_no_header();
+ Display::$global_template->assign('skill', $skill_info);
+ Display::$global_template->assign('courses', $courses);
+ Display::$global_template->assign('sessions', $sessions);
+
+ $html = Display::$global_template->fetch('default/skill/skill_info.tpl');
}
+
echo $html;
break;
case 'get_skills_tree_json':
diff --git a/main/inc/lib/skill.lib.php b/main/inc/lib/skill.lib.php
index 4b406c3bd0..2638fa0fbc 100755
--- a/main/inc/lib/skill.lib.php
+++ b/main/inc/lib/skill.lib.php
@@ -531,6 +531,7 @@ class Skill extends Model
$this->table_course = Database::get_main_table(TABLE_MAIN_COURSE);
$this->table_skill_rel_skill = Database::get_main_table(TABLE_MAIN_SKILL_REL_SKILL);
$this->table_gradebook = Database::get_main_table(TABLE_MAIN_GRADEBOOK_CATEGORY);
+ $this->sessionTable = Database::get_main_table(TABLE_MAIN_SESSION);
}
/**
@@ -1201,7 +1202,8 @@ class Skill extends Model
ON g.id = sg.gradebook_id
INNER JOIN {$this->table_course} c
ON c.code = g.course_code
- WHERE sg.skill_id = $skill_id";
+ WHERE sg.skill_id = $skill_id
+ AND (g.session_id IS NULL OR g.session_id = 0)";
$result = Database::query($sql);
return Database::store_result($result, 'ASSOC');
@@ -1371,4 +1373,26 @@ class Skill extends Model
return $list;
}
+
+ /**
+ * Get the session list where the user can achieve a skill
+ * @param int $skillId The skill id
+ * @return array
+ */
+ public function getSessionsBySkill($skillId)
+ {
+ $skillId = intval($skillId);
+
+ $sql = "SELECT s.id, s.name
+ FROM {$this->table_gradebook} g
+ INNER JOIN {$this->table_skill_rel_gradebook} sg ON g.id = sg.gradebook_id
+ INNER JOIN {$this->sessionTable} s ON g.session_id = s.id
+ WHERE sg.skill_id = $skillId
+ AND g.session_id > 0";
+
+ $result = Database::query($sql);
+
+ return Database::store_result($result, 'ASSOC');
+ }
+
}
diff --git a/main/template/default/skill/skill_info.tpl b/main/template/default/skill/skill_info.tpl
new file mode 100644
index 0000000000..9c8e65e2a8
--- /dev/null
+++ b/main/template/default/skill/skill_info.tpl
@@ -0,0 +1,15 @@
+
{{ "ToGetToLearnXYouWillNeedToTakeOneOfTheFollowingCourses" | get_lang | format( "" ~ skill.name ~ "") }}
+ +