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
00032 include_once 'Modules/Course/classes/class.ilCourseItems.php';
00033 include_once 'Modules/Course/classes/Timings/class.ilTimingPlaned.php';
00034
00035 class ilTimingCache
00036 {
00037 function &_getTimings($a_ref_id)
00038 {
00039 static $cache = array();
00040
00041 if(isset($cache[$a_ref_id]))
00042 {
00043 return $cache[$a_ref_id];
00044 }
00045 $cache[$a_ref_id]['item'] = ilCourseItems::_getItem($a_ref_id);
00046 $cache[$a_ref_id]['user'] = ilTimingPlaned::_getPlanedTimingsByItem($a_ref_id);
00047
00048 return $cache[$a_ref_id];
00049 }
00050
00051 function _showWarning($a_ref_id,$a_usr_id)
00052 {
00053 include_once './Services/Tracking/classes/class.ilLPCollectionCache.php';
00054 include_once './Services/Tracking/classes/class.ilLPStatusWrapper.php';
00055
00056 global $ilObjDataCache;
00057 $obj_id = $ilObjDataCache->lookupObjId($a_ref_id);
00058
00059
00060 if(in_array($a_usr_id,ilLPStatusWrapper::_getCompleted($obj_id)))
00061 {
00062 return false;
00063 }
00064
00065 $timings =& ilTimingCache::_getTimings($a_ref_id);
00066 if($timings['item']['timing_type'] == IL_CRS_TIMINGS_PRESETTING)
00067 {
00068 if($timings['item']['changeable'] and $timings['user'][$a_usr_id]['end'])
00069 {
00070 $end = $timings['user'][$a_usr_id]['end'];
00071 }
00072 else
00073 {
00074 $end = $timings['item']['suggestion_end'];
00075 }
00076 if($end < time())
00077 {
00078 return true;
00079 }
00080 }
00081
00082 foreach(ilLPCollectionCache::_getItems($obj_id) as $item)
00083 {
00084 if(ilTimingCache::_showWarning($item,$a_usr_id))
00085 {
00086 return true;
00087 }
00088 }
00089
00090 return false;
00091 }
00092 }
00093 ?>