diff --git a/main/inc/lib/usergroup.lib.php b/main/inc/lib/usergroup.lib.php index 1a179edc2a..54f9e844d3 100644 --- a/main/inc/lib/usergroup.lib.php +++ b/main/inc/lib/usergroup.lib.php @@ -53,6 +53,7 @@ class UserGroup extends Model public function getTotalCount() { $row = Database::select('count(*) as count', $this->table, array(), 'first'); + return $row['count']; } @@ -64,14 +65,17 @@ class UserGroup extends Model if ($this->useMultipleUrl) { $urlId = api_get_current_access_url_id(); $sql = "SELECT count(u.id) as count FROM ".$this->table." u - INNER JOIN ".$this->access_url_rel_usergroup." a ON (u.id = a.usergroup_id) + INNER JOIN ".$this->access_url_rel_usergroup." a + ON (u.id = a.usergroup_id) WHERE access_url_id = $urlId "; $result = Database::query($sql); if (Database::num_rows($result)) { $row = Database::fetch_array($result); + return $row['count']; } + return 0; } else { return $this->getTotalCount(); @@ -97,6 +101,7 @@ class UserGroup extends Model $row = Database::fetch_array($result); return $row['count']; } + return 0; } else { @@ -106,6 +111,7 @@ class UserGroup extends Model array('where' => array('course_id = ?' => $course_id)), 'first' ); + return $row['count']; } } @@ -118,6 +124,7 @@ class UserGroup extends Model public function get_id_by_name($name) { $row = Database::select('id', $this->table, array('where' => array('name = ?' => $name)), 'first'); + return $row['id']; } @@ -146,8 +153,8 @@ class UserGroup extends Model /** * Gets a list of course ids by user group - * @param int user group id - * @param array $conditionsLike + * @param int user group id + * @param array $loadCourseData * @return array */ public function get_courses_by_usergroup($id, $loadCourseData = false) @@ -204,11 +211,13 @@ class UserGroup extends Model } } } + return $array; } /** * @param array $options + * * @return array */ public function get_usergroup_in_course($options = array()) @@ -235,13 +244,24 @@ class UserGroup extends Model $urlId = api_get_current_access_url_id(); $sql .= " AND access_url_id = $urlId "; } + + if (isset($options['LIMIT'])) { + $limits = explode(',', $options['LIMIT']); + $limits = array_map('intval', $limits); + if (isset($limits[0]) && isset($limits[1])) { + $sql .= " LIMIT ".$limits[0].', '.$limits[1]; + } + } + $result = Database::query($sql); $array = Database::store_result($result, 'ASSOC'); + return $array; } /** * @param array $options + * * @return array|bool */ public function get_usergroup_not_in_course($options = array()) @@ -251,13 +271,13 @@ class UserGroup extends Model $course_id = intval($options['course_id']); unset($options['course_id']); } + if (empty($course_id)) { return false; } - if ($this->useMultipleUrl) { + if ($this->useMultipleUrl) { $urlId = api_get_current_access_url_id(); - $sql = "SELECT DISTINCT u.id, name FROM {$this->table} u INNER JOIN {$this->access_url_rel_usergroup} a @@ -281,8 +301,16 @@ class UserGroup extends Model $sql .= " AND access_url_id = $urlId"; } + if (isset($options['LIMIT'])) { + $limits = explode(',', $options['LIMIT']); + $limits = array_map('intval', $limits); + if (isset($limits[0]) && isset($limits[1])) { + $sql .= " LIMIT ".$limits[0].', '.$limits[1]; + } + } $result = Database::query($sql); $array = Database::store_result($result, 'ASSOC'); + return $array; }