Go to the documentation of this file.00001 <?php
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00034 include_once 'course/classes/class.ilCourseItems.php';
00035 include_once 'course/classes/Timings/class.ilTimingPlaned.php';
00036
00037 class ilTimingCache
00038 {
00039 function &_getTimings($a_ref_id)
00040 {
00041 static $cache = array();
00042
00043 if(isset($cache[$a_ref_id]))
00044 {
00045 return $cache[$a_ref_id];
00046 }
00047 $cache[$a_ref_id]['item'] = ilCourseItems::_getItem($a_ref_id);
00048 $cache[$a_ref_id]['user'] = ilTimingPlaned::_getPlanedTimingsByItem($a_ref_id);
00049
00050 return $cache[$a_ref_id];
00051 }
00052
00053 function _showWarning($a_ref_id,$a_usr_id)
00054 {
00055 include_once './Services/Tracking/classes/class.ilLPCollectionCache.php';
00056 include_once './Services/Tracking/classes/class.ilLPStatusWrapper.php';
00057
00058 global $ilObjDataCache;
00059 $obj_id = $ilObjDataCache->lookupObjId($a_ref_id);
00060
00061
00062 if(in_array($a_usr_id,ilLPStatusWrapper::_getCompleted($obj_id)))
00063 {
00064 return false;
00065 }
00066
00067 $timings =& ilTimingCache::_getTimings($a_ref_id);
00068 if($timings['item']['timing_type'] == IL_CRS_TIMINGS_PRESETTING)
00069 {
00070 if($timings['item']['changeable'] and $timings['user'][$a_usr_id]['end'])
00071 {
00072 $end = $timings['user'][$a_usr_id]['end'];
00073 }
00074 else
00075 {
00076 $end = $timings['item']['suggestion_end'];
00077 }
00078 if($end < time())
00079 {
00080 return true;
00081 }
00082 }
00083
00084 foreach(ilLPCollectionCache::_getItems($obj_id) as $item)
00085 {
00086 if(ilTimingCache::_showWarning($item,$a_usr_id))
00087 {
00088 return true;
00089 }
00090 }
00091
00092 return false;
00093 }
00094 }
00095 ?>