Fixing pagination error see BT#7790

1.9.x
Julio Montoya 12 years ago
parent 036ff48640
commit 36f895a7e8
  1. 38
      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;
}

Loading…
Cancel
Save