ILIAS  release_5-0 Revision 5.0.0-1144-gc4397b1f870
All Data Structures Namespaces Files Functions Variables Modules Pages
ilSoapLearningProgressAdministration Class Reference

This class handles all DB changes necessary for fraunhofer. More...

+ Inheritance diagram for ilSoapLearningProgressAdministration:
+ Collaboration diagram for ilSoapLearningProgressAdministration:

Public Member Functions

 getLearningProgressChanges ($sid, $timestamp, $include_ref_ids, $type_filter)
 Get learning progress changes. More...
 
- Public Member Functions inherited from ilSoapAdministration
 ilSoapAdministration ($use_nusoap=true)
 
 initErrorWriter ()
 Overwrite error handler. More...
 
 __explodeSid ($sid)
 
 __setMessage ($a_str)
 
 __getMessage ()
 
 __appendMessage ($a_str)
 
 __setMessageCode ($a_code)
 
 __getMessageCode ()
 
 initAuth ($sid)
 
 initIlias ()
 
 __initAuthenticationObject ($a_auth_mode=AUTH_LOCAL)
 
 __raiseError ($a_message, $a_code)
 
 getNIC ($sid)
 get client information from current as xml result set More...
 
 isFault ($object)
 
 checkObjectAccess ($ref_id, $expected_type, $permission, $returnObject=false)
 check access for ref id: expected type, permission, return object instance if returnobject is true More...
 
 getInstallationInfoXML ()
 
 getClientInfoXML ($clientid)
 

Data Fields

const PROGRESS_FILTER_ALL = 0
 
const PROGRESS_FILTER_IN_PROGRESS = 1
 
const PROGRESS_FILTER_COMPLETED = 2
 
const PROGRESS_FILTER_FAILED = 3
 
const USER_FILTER_ALL = -1
 
- Data Fields inherited from ilSoapAdministration
 $sauth = null
 
 $error_method = null
 

Protected Member Functions

 applyProgressFilter ($obj_id, Array $usr_ids, Array $filter)
 Apply progress filter. More...
 
 deleteScormTracking ($a_obj_id, $a_usr_ids)
 Delete SCORM Tracking type $ilDB. More...
 
 deleteScorm2004Tracking ($a_obj_id, $a_usr_ids)
 Delete scorm 2004 tracking. More...
 

Static Protected Attributes

static $DELETE_PROGRESS_FILTER_TYPES = array('sahs', 'tst')
 

Additional Inherited Members

- Static Public Member Functions inherited from ilSoapAdministration
static return_bytes ($val)
 calculate bytes from K,M,G modifiers e.g: 8M = 8 * 1024 * 1024 bytes More...
 
- Protected Attributes inherited from ilSoapAdministration
 $soap_check = true
 

Detailed Description

This class handles all DB changes necessary for fraunhofer.

Author
Stefan Meyer smeye.nosp@m.r.il.nosp@m.ias@g.nosp@m.mx.d.nosp@m.e
Version
$Id$

Definition at line 14 of file class.ilSoapLearningProgressAdministration.php.

Member Function Documentation

◆ applyProgressFilter()

ilSoapLearningProgressAdministration::applyProgressFilter (   $obj_id,
Array  $usr_ids,
Array  $filter 
)
protected

Apply progress filter.

Parameters
int$obj_id
array$usr_ids
array$filter
Returns
array $filtered_users

Definition at line 152 of file class.ilSoapLearningProgressAdministration.php.

References $GLOBALS, ilLPStatusWrapper\_getCompleted(), ilLPStatusWrapper\_getFailed(), and ilLPStatusWrapper\_getInProgress().

153  {
154  include_once './Services/Tracking/classes/class.ilLPStatusWrapper.php';
155 
156 
157  $all_users = array();
158  if(in_array(self::USER_FILTER_ALL, $usr_ids))
159  {
160  $all_users = array_unique(
161  array_merge(
165  )
166  );
167  }
168  else
169  {
170  $all_users = $usr_ids;
171  }
172 
173  if(!$filter or in_array(self::PROGRESS_FILTER_ALL, $filter))
174  {
175  $GLOBALS['log']->write(__METHOD__.': Deleting all progress data');
176  return $all_users;
177  }
178 
179  $filter_users = array();
180  if(in_array(self::PROGRESS_FILTER_IN_PROGRESS, $filter))
181  {
182  $GLOBALS['log']->write(__METHOD__.': Filtering in progress.');
183  $filter_users = array_merge($filter, ilLPStatusWrapper::_getInProgress($obj_id));
184  }
185  if(in_array(self::PROGRESS_FILTER_COMPLETED, $filter))
186  {
187  $GLOBALS['log']->write(__METHOD__.': Filtering completed.');
188  $filter_users = array_merge($filter, ilLPStatusWrapper::_getCompleted($obj_id));
189  }
190  if(in_array(self::PROGRESS_FILTER_FAILED, $filter))
191  {
192  $GLOBALS['log']->write(__METHOD__.': Filtering failed.');
193  $filter_users = array_merge($filter, ilLPStatusWrapper::_getFailed($obj_id));
194  }
195 
196  // Build intersection
197  return array_intersect($all_users, $filter_users);
198  }
_getFailed($a_obj_id)
Static function to read the users who have the status 'completed'.
$GLOBALS['ct_recipient']
_getCompleted($a_obj_id)
Static function to read the users who have the status 'completed'.
_getInProgress($a_obj_id)
Static function to read users who have the status 'in_progress'.
+ Here is the call graph for this function:

◆ deleteScorm2004Tracking()

ilSoapLearningProgressAdministration::deleteScorm2004Tracking (   $a_obj_id,
  $a_usr_ids 
)
protected

Delete scorm 2004 tracking.

Parameters
type$a_obj_id
type$a_usr_ids

Definition at line 223 of file class.ilSoapLearningProgressAdministration.php.

References $ilDB, $query, $res, $row, and DB_FETCHMODE_OBJECT.

224  {
225  global $ilDB;
226 
227  $query = 'SELECT cp_node_id FROM cp_node '.
228  'WHERE nodename = '. $ilDB->quote('item','text').' '.
229  'AND cp_node.slm_id = '.$ilDB->quote($a_obj_id,'integer');
230  $res = $ilDB->query($query);
231 
232  $scos = array();
233  while($row = $res->fetchRow(DB_FETCHMODE_OBJECT))
234  {
235  $scos[] = $row->cp_node_id;
236  }
237 
238  $query = 'DELETE FROM cmi_node '.
239  'WHERE '.$ilDB->in('user_id',(array) $a_usr_ids,false,'integer').' '.
240  'AND '.$ilDB->in('cp_node_id',$scos,false,'integer');
241  $ilDB->manipulate($query);
242 
243  }
const DB_FETCHMODE_OBJECT
Definition: class.ilDB.php:11
global $ilDB

◆ deleteScormTracking()

ilSoapLearningProgressAdministration::deleteScormTracking (   $a_obj_id,
  $a_usr_ids 
)
protected

Delete SCORM Tracking type $ilDB.

Parameters
type$a_obj_id
type$a_usr_ids
Returns
boolean

Definition at line 207 of file class.ilSoapLearningProgressAdministration.php.

References $ilDB, $query, and $res.

208  {
209  global $ilDB;
210 
211  $query = 'DELETE FROM scorm_tracking '.
212  'WHERE '.$ilDB->in('user_id',$a_usr_ids,false,'integer').' '.
213  'AND obj_id = '. $ilDB->quote($a_obj_id,'integer').' ';
214  $res = $ilDB->manipulate($query);
215  return true;
216  }
global $ilDB

◆ getLearningProgressChanges()

ilSoapLearningProgressAdministration::getLearningProgressChanges (   $sid,
  $timestamp,
  $include_ref_ids,
  $type_filter 
)

Get learning progress changes.

Definition at line 248 of file class.ilSoapLearningProgressAdministration.php.

References $ilLog, $timestamp, ilSoapAdministration\__getMessage(), ilSoapAdministration\__getMessageCode(), ilSoapAdministration\__raiseError(), ilSoapAdministration\initAuth(), and ilSoapAdministration\initIlias().

249  {
250  $this->initAuth($sid);
251  $this->initIlias();
252 
253  if(!$this->__checkSession($sid))
254  {
255  return $this->__raiseError($this->__getMessage(),$this->__getMessageCode());
256  }
257  global $rbacsystem, $tree, $ilLog;
258 
259  // check administrator
260  $types = "";
261  if (is_array($type_filter))
262  {
263  $types = implode($type_filter, ",");
264  }
265 
266  // output lp changes as xml
267  try
268  {
269  include_once './Services/Tracking/classes/class.ilLPXmlWriter.php';
270  $writer = new ilLPXmlWriter(true);
271  $writer->setTimestamp($timestamp);
272  $writer->setIncludeRefIds($include_ref_ids);
273  $writer->setTypeFilter($type_filter);
274  $writer->write();
275 
276  return $writer->xmlDumpMem(true);
277  }
278  catch(UnexpectedValueException $e)
279  {
280  return $this->__raiseError($e->getMessage(), 'Client');
281  }
282  }
XML writer learning progress.
__raiseError($a_message, $a_code)
foreach($mandatory_scripts as $file) $timestamp
Definition: buildRTE.php:81
+ Here is the call graph for this function:

Field Documentation

◆ $DELETE_PROGRESS_FILTER_TYPES

ilSoapLearningProgressAdministration::$DELETE_PROGRESS_FILTER_TYPES = array('sahs', 'tst')
staticprotected

◆ PROGRESS_FILTER_ALL

const ilSoapLearningProgressAdministration::PROGRESS_FILTER_ALL = 0

◆ PROGRESS_FILTER_COMPLETED

const ilSoapLearningProgressAdministration::PROGRESS_FILTER_COMPLETED = 2

◆ PROGRESS_FILTER_FAILED

const ilSoapLearningProgressAdministration::PROGRESS_FILTER_FAILED = 3

◆ PROGRESS_FILTER_IN_PROGRESS

const ilSoapLearningProgressAdministration::PROGRESS_FILTER_IN_PROGRESS = 1

◆ USER_FILTER_ALL

const ilSoapLearningProgressAdministration::USER_FILTER_ALL = -1

The documentation for this class was generated from the following file: