ILIAS  trunk Revision v11.0_alpha-3011-gc6b235a2e85
ilTimingCache Class Reference

class ilTimingCache More...

+ Collaboration diagram for ilTimingCache:

Public Member Functions

 __construct (int $ref_id)
 
 isWarningRequired (int $usr_id)
 

Static Public Member Functions

static getInstanceByRefId (int $ref_id)
 
static _getTimings (int $a_ref_id)
 

Protected Member Functions

 readObjectInformation ()
 

Private Attributes

int $ref_id = 0
 
int $obj_id = 0
 
bool $timings_active = false
 
array $timings = array()
 
array $timings_user = array()
 
array $collection_items = array()
 
array $completed_users = array()
 

Static Private Attributes

static array $instances = []
 

Detailed Description

class ilTimingCache

Author
Stefan Meyer meyer.nosp@m.@lei.nosp@m.fos.c.nosp@m.om

Definition at line 24 of file class.ilTimingCache.php.

Constructor & Destructor Documentation

◆ __construct()

ilTimingCache::__construct ( int  $ref_id)

Definition at line 36 of file class.ilTimingCache.php.

37 {
38 $this->ref_id = $ref_id;
39 $this->obj_id = ilObject::_lookupObjId($this->ref_id);
40 $this->readObjectInformation();
41 }
static _lookupObjId(int $ref_id)

References $ref_id, ilObject\_lookupObjId(), and readObjectInformation().

+ Here is the call graph for this function:

Member Function Documentation

◆ _getTimings()

static ilTimingCache::_getTimings ( int  $a_ref_id)
static

Definition at line 92 of file class.ilTimingCache.php.

92 : array
93 {
94 static $cache = array();
95
96 if (isset($cache[$a_ref_id])) {
97 return $cache[$a_ref_id];
98 }
99 $cache[$a_ref_id]['item'] = ilObjectActivation::getItem($a_ref_id);
100 $cache[$a_ref_id]['user'] = ilTimingPlaned::_getPlanedTimingsByItem($a_ref_id);
101
102 return $cache[$a_ref_id];
103 }
static getItem(int $ref_id)
static _getPlanedTimingsByItem($a_item_id)

References ilTimingPlaned\_getPlanedTimingsByItem(), and ilObjectActivation\getItem().

Referenced by ilLPTableBaseGUI\showTimingsWarning().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ getInstanceByRefId()

static ilTimingCache::getInstanceByRefId ( int  $ref_id)
static

Definition at line 43 of file class.ilTimingCache.php.

44 {
45 if (!isset(self::$instances[$ref_id])) {
46 self::$instances[$ref_id] = new self($ref_id);
47 }
48 return self::$instances[$ref_id];
49 }
class ilTimingCache

References $ref_id.

Referenced by isWarningRequired(), and ilLPTableBaseGUI\showTimingsWarning().

+ Here is the caller graph for this function:

◆ isWarningRequired()

ilTimingCache::isWarningRequired ( int  $usr_id)

Definition at line 51 of file class.ilTimingCache.php.

51 : bool
52 {
53 if (in_array($usr_id, $this->completed_users)) {
54 return false;
55 }
56 foreach ($this->collection_items as $item) {
57 $item_instance = self::getInstanceByRefId($item);
58 if ($item_instance->isWarningRequired($usr_id)) {
59 return true;
60 }
61 }
62 if (!$this->timings_active) {
63 return false;
64 }
65
66 // check constraints
67 if ($this->timings['changeable'] && isset($this->timings_user[$usr_id]['end'])) {
68 $end = $this->timings_user[$usr_id]['end'];
69 } else {
70 $end = $this->timings['suggestion_end'];
71 }
72 return $end < time();
73 }
static getInstanceByRefId(int $ref_id)

References getInstanceByRefId().

+ Here is the call graph for this function:

◆ readObjectInformation()

ilTimingCache::readObjectInformation ( )
protected

Definition at line 75 of file class.ilTimingCache.php.

75 : void
76 {
77 $this->timings = ilObjectActivation::getItem($this->ref_id);
78 $this->timings_active = false;
79 if ($this->timings['timing_type'] == ilObjectActivation::TIMINGS_PRESETTING) {
80 $this->timings_active = true;
81 $this->timings_user = ilTimingPlaned::_getPlanedTimingsByItem($this->ref_id);
82 }
83
84 $olp = ilObjectLP::getInstance($this->obj_id);
85 $collection = $olp->getCollectionInstance();
86 if ($collection instanceof ilLPCollectionOfRepositoryObjects) {
87 $this->collection_items = $collection->getItems();
88 }
89 $this->completed_users = ilLPStatus::_getCompleted($this->obj_id);
90 }
static _getCompleted(int $a_obj_id)
static getInstance(int $obj_id)

References ilLPStatus\_getCompleted(), ilTimingPlaned\_getPlanedTimingsByItem(), ilObjectLP\getInstance(), ilObjectActivation\getItem(), and ilObjectActivation\TIMINGS_PRESETTING.

Referenced by __construct().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

Field Documentation

◆ $collection_items

array ilTimingCache::$collection_items = array()
private

Definition at line 33 of file class.ilTimingCache.php.

◆ $completed_users

array ilTimingCache::$completed_users = array()
private

Definition at line 34 of file class.ilTimingCache.php.

◆ $instances

array ilTimingCache::$instances = []
staticprivate

Definition at line 26 of file class.ilTimingCache.php.

◆ $obj_id

int ilTimingCache::$obj_id = 0
private

Definition at line 29 of file class.ilTimingCache.php.

◆ $ref_id

int ilTimingCache::$ref_id = 0
private

Definition at line 28 of file class.ilTimingCache.php.

Referenced by __construct(), and getInstanceByRefId().

◆ $timings

array ilTimingCache::$timings = array()
private

Definition at line 31 of file class.ilTimingCache.php.

◆ $timings_active

bool ilTimingCache::$timings_active = false
private

Definition at line 30 of file class.ilTimingCache.php.

◆ $timings_user

array ilTimingCache::$timings_user = array()
private

Definition at line 32 of file class.ilTimingCache.php.


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