Browse Source

Add "level" option in "getStudentSkills" BT#13769

jmontoyaa 7 years ago
parent
commit
d03128e03d
1 changed files with 17 additions and 7 deletions
  1. 17 7
      main/inc/lib/skill.lib.php

+ 17 - 7
main/inc/lib/skill.lib.php

@@ -2071,9 +2071,10 @@ class Skill extends Model
     /**
      * Get skills
      * @param int $userId
+     * @param int level
      * @return array
      */
-    public function getStudentSkills($userId)
+    public function getStudentSkills($userId, $level = 0)
     {
         $sql = "SELECT s.id, s.name, sru.acquired_skill_at
                 FROM {$this->table} s
@@ -2084,17 +2085,26 @@ class Skill extends Model
         $result = Database::query($sql);
 
         $skills = [];
-
         foreach ($result as $item) {
-            $skills[] = [
-                'name' => self::translateName($item['name']),
-                'acquired_skill_at' => $item['acquired_skill_at'],
-            ];
+            if (empty($level)) {
+                $skills[] = [
+                    'name' => self::translateName($item['name']),
+                    'acquired_skill_at' => $item['acquired_skill_at'],
+                ];
+            } else {
+                $parents = self::get_parents($item['id']);
+                // +2 because it takes into account the root
+                if (count($parents) == $level + 1) {
+                    $skills[] = [
+                        'name' => self::translateName($item['name']),
+                        'acquired_skill_at' => $item['acquired_skill_at'],
+                    ];
+                }
+            }
         }
 
         return $skills;
     }
-
     /**
      * @param string $name
      * @return string