Fix session catalog pagination see #15629

pull/2901/head
Julio Montoya 7 years ago
parent 94b7ca55b6
commit 0d4c6a8d42
  1. 4
      main/auth/courses_controller.php
  2. 11
      main/inc/lib/sessionmanager.lib.php

@ -645,12 +645,12 @@ class CoursesController
public function sessionList($action, $nameTools, $limit = [])
{
$date = isset($_POST['date']) ? $_POST['date'] : date('Y-m-d');
$hiddenLinks = isset($_GET['hidden_links']) ? intval($_GET['hidden_links']) == 1 : false;
$hiddenLinks = isset($_GET['hidden_links']) ? $_GET['hidden_links'] == 1 : false;
$limit = isset($limit) ? $limit : self::getLimitArray();
$countSessions = SessionManager::countSessionsByEndDate($date);
$sessions = CoursesAndSessionsCatalog::browseSessions($date, $limit);
$pageTotal = intval(intval($countSessions) / $limit['length']);
$pageTotal = round($countSessions / $limit['length']);
// Do NOT show pagination if only one page or less
$cataloguePagination = $pageTotal > 1 ? CourseCategory::getCatalogPagination($limit['current'], $limit['length'], $pageTotal) : '';
$sessionsBlocks = $this->getFormattedSessionsBlock($sessions);

@ -4586,7 +4586,6 @@ class SessionManager
*/
public static function countSessionsByEndDate($date = null)
{
$count = 0;
$sessionTable = Database::get_main_table(TABLE_MAIN_SESSION);
$url = Database::get_main_table(TABLE_MAIN_ACCESS_URL_REL_SESSION);
$date = Database::escape_string($date);
@ -4596,8 +4595,10 @@ class SessionManager
$dateFilter = <<<SQL
AND ('$date' BETWEEN s.access_start_date AND s.access_end_date)
OR (s.access_end_date IS NULL)
OR (s.access_start_date IS NULL AND
s.access_end_date IS NOT NULL AND s.access_end_date > '$date')
OR (
s.access_start_date IS NULL AND
s.access_end_date IS NOT NULL AND s.access_end_date > '$date'
)
SQL;
}
$sql = "SELECT COUNT(*)
@ -4606,8 +4607,10 @@ SQL;
ON (s.id = u.session_id)
WHERE u.access_url_id = $urlId $dateFilter";
$res = Database::query($sql);
$count = 0;
if ($res !== false && Database::num_rows($res) > 0) {
$count = current(Database::fetch_row($res));
$count = (int) current(Database::fetch_row($res));
}
return $count;

Loading…
Cancel
Save