ILIAS  eassessment Revision 61809
 All Data Structures Namespaces Files Functions Variables Groups Pages
class.ilLPStatusWrapper.php
Go to the documentation of this file.
1 <?php
2 
3 /* Copyright (c) 1998-2010 ILIAS open source, Extended GPL, see docs/LICENSE */
4 
5 include_once 'Services/Tracking/classes/class.ilLPObjSettings.php';
6 include_once 'Services/Tracking/classes/class.ilLPStatusFactory.php';
7 
20 {
21 
25  function _getCountNotAttempted($a_obj_id)
26  {
27  return count(ilLPStatusWrapper::_getNotAttempted($a_obj_id));
28  }
29 
33  function _getNotAttempted($a_obj_id)
34  {
35  static $cache = array();
36 
37  if(isset($cache[$a_obj_id]))
38  {
39  return $cache[$a_obj_id];
40  }
41 
42  $class = ilLPStatusFactory::_getClassById($a_obj_id);
43  $cache[$a_obj_id] = call_user_func(array($class,'_getNotAttempted'),$a_obj_id);
44 
45  return $cache[$a_obj_id];
46  }
47 
51  function _getCountInProgress($a_obj_id)
52  {
53  return count(ilLPStatusWrapper::_getInProgress($a_obj_id));
54  }
55 
59  function _getInProgress($a_obj_id)
60  {
61  static $cache = array();
62 
63  if(isset($cache[$a_obj_id]))
64  {
65  return $cache[$a_obj_id];
66  }
67 
68  global $ilBench;
69 
70  $class = ilLPStatusFactory::_getClassById($a_obj_id);
71 
72  $cache[$a_obj_id] = call_user_func($tmp = array($class,'_getInProgress'),$a_obj_id);
73 
74  return $cache[$a_obj_id];
75  }
76 
80  function _getCountCompleted($a_obj_id)
81  {
82  return count(ilLPStatusWrapper::_getCompleted($a_obj_id));
83  }
84 
88  function _getCompleted($a_obj_id)
89  {
90  static $cache = array();
91 
92  if(isset($cache[$a_obj_id]))
93  {
94  return $cache[$a_obj_id];
95  }
96  $class = ilLPStatusFactory::_getClassById($a_obj_id);
97  $cache[$a_obj_id] = call_user_func(array($class,'_getCompleted'),$a_obj_id);
98 
99  return $cache[$a_obj_id];
100  }
101 
105  function _getCountFailed($a_obj_id)
106  {
107  return count(ilLPStatusWrapper::_getFailed($a_obj_id));
108  }
109 
113  function _getFailed($a_obj_id)
114  {
115  static $cache = array();
116 
117  if(isset($cache[$a_obj_id]))
118  {
119  return $cache[$a_obj_id];
120  }
121 
122  $class = ilLPStatusFactory::_getClassById($a_obj_id);
123 
124  $cache[$a_obj_id] = call_user_func(array($class,'_getFailed'),$a_obj_id);
125 
126  return $cache[$a_obj_id];
127  }
128 
132  function _getStatusInfo($a_obj_id)
133  {
134  static $cache = array();
135 
136  if(isset($cache[$a_obj_id]))
137  {
138  return $cache[$a_obj_id];
139  }
140 
141  $class = ilLPStatusFactory::_getClassById($a_obj_id);
142  $cache[$a_obj_id] = call_user_func(array($class,'_getStatusInfo'),$a_obj_id);
143  return $cache[$a_obj_id];
144  }
145 
149  function _getTypicalLearningTime($a_obj_id)
150  {
151  static $cache = array();
152 
153  if(isset($cache[$a_obj_id]))
154  {
155  return $cache[$a_obj_id];
156  }
157 
158  $class = ilLPStatusFactory::_getClassById($a_obj_id);
159 
160  $cache[$a_obj_id] = call_user_func(array($class,'_getTypicalLearningTime'),$a_obj_id);
161 
162  return $cache[$a_obj_id];
163  }
164 
166  // Special functions for 'objects' that have not an entry in object_data
167  // E.g. events
169 
173  function _getCountNotAttemptedByType($a_obj_id,$a_type)
174  {
175  return count(ilLPStatusWrapper::_getNotAttemptedByType($a_obj_id,$a_type));
176  }
177  function _getNotAttemptedByType($a_obj_id,$a_type)
178  {
179  static $cache = array();
180 
181  if(isset($cache[$a_obj_id.'_'.$a_type]))
182  {
183  return $cache[$a_obj_id.'_'.$a_type];
184  }
185 
186  $class = ilLPStatusFactory::_getClassByIdAndType($a_obj_id,$a_type);
187 
188  $cache[$a_obj_id.'_'.$a_type] = call_user_func(array($class,'_getNotAttempted'),$a_obj_id);
189 
190  return $cache[$a_obj_id.'_'.$a_type];
191  }
192  function _getCountInProgressByType($a_obj_id,$a_type)
193  {
194  return count(ilLPStatusWrapper::_getInProgressByType($a_obj_id,$a_type));
195  }
196  function _getInProgressByType($a_obj_id,$a_type)
197  {
198  static $cache = array();
199 
200  if(isset($cache[$a_obj_id.'_'.$a_type]))
201  {
202  return $cache[$a_obj_id.'_'.$a_type];
203  }
204 
205  $class = ilLPStatusFactory::_getClassByIdAndType($a_obj_id,$a_type);
206 
207  $cache[$a_obj_id.'_'.$a_type] = call_user_func(array($class,'_getInProgress'),$a_obj_id);
208 
209  return $cache[$a_obj_id.'_'.$a_type];
210  }
211  function _getCountCompletedByType($a_obj_id,$a_type)
212  {
213  return count(ilLPStatusWrapper::_getCompletedByType($a_obj_id,$a_type));
214  }
215  function _getCompletedByType($a_obj_id,$a_type)
216  {
217  static $cache = array();
218 
219  if(isset($cache[$a_obj_id.'_'.$a_type]))
220  {
221  return $cache[$a_obj_id.'_'.$a_type];
222  }
223 
224  $class = ilLPStatusFactory::_getClassByIdAndType($a_obj_id,$a_type);
225  $cache[$a_obj_id.'_'.$a_type] = call_user_func(array($class,'_getCompleted'),$a_obj_id);
226  return $cache[$a_obj_id.'_'.$a_type];
227  }
228  function _getCountFailedByType($a_obj_id,$a_type)
229  {
230  return count(ilLPStatusWrapper::_getFailedByType($a_obj_id,$a_type));
231  }
232  function _getFailedByType($a_obj_id,$a_type)
233  {
234  static $cache = array();
235 
236  if(isset($cache[$a_obj_id.'_'.$a_type]))
237  {
238  return $cache[$a_obj_id.'_'.$a_type];
239  }
240 
241  $class = ilLPStatusFactory::_getClassByIdAndType($a_obj_id,$a_type);
242  $cache[$a_obj_id.'_'.$a_type] = call_user_func(array($class,'_getFailed'),$a_obj_id);
243  return $cache[$a_obj_id.'_'.$a_type];
244  }
245  function _getStatusInfoByType($a_obj_id,$a_type)
246  {
247  static $cache = array();
248 
249  if(isset($cache[$a_obj_id.'_'.$a_type]))
250  {
251  return $cache[$a_obj_id.'_'.$a_type];
252  }
253 
254  $class = ilLPStatusFactory::_getClassByIdAndType($a_obj_id,$a_type);
255 
256  $cache[$a_obj_id.'_'.$a_type] = call_user_func(array($class,'_getStatusInfo'),$a_obj_id);
257 
258  return $cache[$a_obj_id.'_'.$a_type];
259  }
260 
267  static function _updateStatus($a_obj_id, $a_usr_id, $a_obj = null, $a_percentage = false)
268  {
269  $class = ilLPStatusFactory::_getClassById($a_obj_id);
270 
271  if (strtolower($class) != "illpstatus")
272  {
273  $trac_obj = new $class($a_obj_id);
274  $trac_obj->_updateStatus($a_obj_id, $a_usr_id, $a_obj, $a_percentage);
275  }
276  }
277 
283  function _setDirty($a_obj_id)
284  {
285  $class = ilLPStatusFactory::_getClassById($a_obj_id);
286  $trac_obj = new $class($a_obj_id);
287  $trac_obj->_setDirty($a_obj_id);
288  }
289 
295  function _refreshStatus($a_obj_id)
296  {
297  $class = ilLPStatusFactory::_getClassById($a_obj_id);
298  $trac_obj = new $class($a_obj_id);
299  $trac_obj->refreshStatus($a_obj_id);
300  }
301 
308  static function _determineStatus($a_obj_id, $a_usr_id)
309  {
310  $class = ilLPStatusFactory::_getClassById($a_obj_id);
311  $trac_obj = new $class($a_obj_id);
312  return $trac_obj->determineStatus($a_obj_id, $a_usr_id);
313  }
314 
315 }
316 ?>