From 767d99cf540650ac8b43690986690f6c0964bb15 Mon Sep 17 00:00:00 2001 From: Julio Date: Thu, 24 Mar 2016 11:33:13 +0100 Subject: [PATCH] Add from and too see BT#10927 --- main/inc/lib/sessionmanager.lib.php | 8 +++++++- main/webservices/registration.soap.php | 12 +++++++++--- 2 files changed, 16 insertions(+), 4 deletions(-) diff --git a/main/inc/lib/sessionmanager.lib.php b/main/inc/lib/sessionmanager.lib.php index 711193de05..e61b57ecc7 100755 --- a/main/inc/lib/sessionmanager.lib.php +++ b/main/inc/lib/sessionmanager.lib.php @@ -2609,7 +2609,7 @@ class SessionManager * @return array An array with all sessions of the platform. * @todo optional course code parameter, optional sorting parameters... */ - public static function get_sessions_list($conditions = array(), $order_by = array()) + public static function get_sessions_list($conditions = array(), $order_by = array(), $from = null, $to = null) { $session_table = Database::get_main_table(TABLE_MAIN_SESSION); $session_category_table = Database::get_main_table(TABLE_MAIN_SESSION_CATEGORY); @@ -2679,6 +2679,12 @@ class SessionManager } } + if (!is_null($from) && !is_null($to)) { + $to = intval($to); + $from = intval($from); + $sql_query .= "LIMIT $from, $to"; + } + $sql_result = Database::query($sql_query); if (Database::num_rows($sql_result) > 0) { while ($result = Database::fetch_array($sql_result)) { diff --git a/main/webservices/registration.soap.php b/main/webservices/registration.soap.php index 0b72b8ea9a..3f203ae8d6 100755 --- a/main/webservices/registration.soap.php +++ b/main/webservices/registration.soap.php @@ -5992,6 +5992,8 @@ $server->wsdl->addComplexType( 'all', '', array( + 'from' => array('name' => 'from', 'type' => 'xsd:int'), + 'to' => array('name' => 'to', 'type' => 'xsd:int'), 'date_start' => array('name' => 'date_start', 'type' => 'xsd:string'), 'date_end' => array('name' => 'date_end', 'type' => 'xsd:string'), 'secret_key' => array('name' => 'secret_key', 'type' => 'xsd:string') @@ -6048,8 +6050,9 @@ $server->register('WSListSessions', // method name * @param array List of parameters (security key, date_start and date_end) * @return array Sessions list (id=>[title=>'title',url='http://...',date_start=>'...',date_end=>'']) */ -function WSListSessions($params) { - if(!WSHelperVerifyKey($params)) { +function WSListSessions($params) +{ + if (!WSHelperVerifyKey($params)) { return returnError(WS_ERROR_SECRET_KEY); } $sql_params = array(); @@ -6060,7 +6063,10 @@ function WSListSessions($params) { if (!empty($params['date_end'])) { $sql_params['s.access_end_date'] = array('operator' => '<=', 'value' => $params['date_end']); } - $sessions_list = SessionManager::get_sessions_list($sql_params); + $from = isset($params['from']) ? $params['from'] : null; + $to = isset($params['to']) ? $params['to'] : null; + + $sessions_list = SessionManager::get_sessions_list($sql_params, null, $from, $to); $return_list = array(); foreach ($sessions_list as $session) { $return_list[] = array(