ILIAS  release_8 Revision v8.19
All Data Structures Namespaces Files Functions Variables Modules Pages
ilTimingCache Class Reference

This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Learning e.V. 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

This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Learning e.V.

ILIAS is licensed with the GPL-3.0, see https://www.gnu.org/licenses/gpl-3.0.en.html You should have received a copy of said license along with the source code, too.

If this is not the case or you just want to try ILIAS, you'll find us at: https://www.ilias.de https://github.com/ILIAS-eLearning 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.

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

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)
+ 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.

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

Referenced by ilLPTableBaseGUI\showTimingsWarning().

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 _getPlanedTimingsByItem($a_item_id)
static getItem(int $ref_id)
+ 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.

References $ref_id.

Referenced by ilLPTableBaseGUI\showTimingsWarning().

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  }
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
+ 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  }

◆ readObjectInformation()

ilTimingCache::readObjectInformation ( )
protected

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

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

Referenced by __construct().

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 _getPlanedTimingsByItem($a_item_id)
static _getCompleted(int $a_obj_id)
static getItem(int $ref_id)
static getInstance(int $obj_id)
+ 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: