Browse Source

Fix get group students - refs BT#11726

Angel Fernando Quiroz Campos 8 years ago
parent
commit
697c95bda2
1 changed files with 22 additions and 13 deletions
  1. 22 13
      main/inc/lib/groupmanager.lib.php

+ 22 - 13
main/inc/lib/groupmanager.lib.php

@@ -1,6 +1,8 @@
 <?php
 /* For licensing terms, see /license.txt */
 
+use Chamilo\CourseBundle\Entity\CGroupRelUser;
+
 /**
  * This library contains some functions for group-management.
  * @author Bart Mollet
@@ -1128,19 +1130,26 @@ class GroupManager
      */
     public static function getStudents($group_id)
     {
-        $group_user_table = Database :: get_course_table(TABLE_GROUP_USER);
-        $course_id = api_get_course_int_id();
-        $group_id = intval($group_id);
-        $sql = "SELECT user_id 
-                FROM $group_user_table gu
-                INNER JOIN $groupTable g
-                ON (gu.group_id = g.iid and g.c_id = gu.c_id)
-                WHERE gu.c_id = $course_id AND g.id = $group_id";
-        $res = Database::query($sql);
-        $users = array();
-
-        while ($obj = Database::fetch_object($res)) {
-            $users[] = api_get_user_info($obj->user_id);
+        $em = Database::getManager();
+        $subscriptions = $em
+            ->createQuery('
+                SELECT gu
+                FROM ChamiloCourseBundle:CGroupRelUser gu
+                INNER JOIN ChamiloCourseBundle:CGroupInfo g
+                WITH gu.groupId = g.iid AND g.cId = gu.cId
+                WHERE gu.cId = :course AND g.id = :group
+            ')
+            ->setParameters([
+                'course' => api_get_course_int_id(),
+                'group' => intval($group_id)
+            ])
+            ->getResult();
+
+        $users = [];
+
+        /** @var CGroupRelUser $subscription */
+        foreach ($subscriptions as $subscription) {
+            $users[] = api_get_user_info($subscription->getUserId());
         }
 
         return $users;