ILIAS  trunk Revision v11.0_alpha-1761-g6dbbfa7b760
All Data Structures Namespaces Files Functions Variables Enumerations Enumerator Modules Pages
ilCalendarVisibility Class Reference

Stores selection of hidden calendars for a specific user. More...

+ Collaboration diagram for ilCalendarVisibility:

Public Member Functions

 filterHidden (array $categories, array $category_info)
 Filter hidden categories (and hidden subitem categories) from category array. More...
 
 isAppointmentVisible (int $a_cal_id)
 
 getHidden ()
 
 getVisible ()
 
 hideSelected (array $a_hidden)
 
 showSelected (array $a_visible)
 
 save ()
 
 delete (?int $a_cat_id=null)
 
 forceVisibility (int $a_cat_id)
 

Static Public Member Functions

static _getInstanceByUserId (int $a_user_id, int $a_ref_id=0)
 
static _deleteCategories (int $a_cat_id)
 
static _deleteUser (int $a_user_id)
 

Data Fields

const HIDDEN = 0
 
const VISIBLE = 1
 

Protected Member Functions

 isHidden (int $a_cat_id, array $info)
 
 read ()
 

Protected Attributes

int $user_id = 0
 
int $ref_id = 0
 
int $obj_id = 0
 
array $hidden = array()
 
array $visible = array()
 
int $forced_visible = 0
 
ilDBInterface $db
 

Static Protected Attributes

static array $instances = array()
 

Private Member Functions

 __construct (int $a_user_id, int $a_ref_id=0)
 

Detailed Description

Stores selection of hidden calendars for a specific user.

Author
Stefan Meyer smeye.nosp@m.r.il.nosp@m.ias@g.nosp@m.mx.d.nosp@m.e

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

Constructor & Destructor Documentation

◆ __construct()

ilCalendarVisibility::__construct ( int  $a_user_id,
int  $a_ref_id = 0 
)
private

Definition at line 41 of file class.ilCalendarVisibility.php.

References $DIC, ilObject\_lookupObjId(), and read().

42  {
43  global $DIC;
44  $this->db = $DIC->database();
45  $this->user_id = $a_user_id;
46  $this->ref_id = $a_ref_id;
47  $this->obj_id = ilObject::_lookupObjId($a_ref_id);
48  $this->read();
49  }
static _lookupObjId(int $ref_id)
global $DIC
Definition: shib_login.php:22
+ Here is the call graph for this function:

Member Function Documentation

◆ _deleteCategories()

static ilCalendarVisibility::_deleteCategories ( int  $a_cat_id)
static

Definition at line 59 of file class.ilCalendarVisibility.php.

References $DIC, and $ilDB.

Referenced by ilCalendarCategory\delete().

59  : void
60  {
61  global $DIC;
62 
63  $ilDB = $DIC->database();
64  $query = "DELETE FROM cal_cat_visibility " .
65  "WHERE cat_id = " . $ilDB->quote($a_cat_id, 'integer') . " ";
66  $ilDB->manipulate($query);
67  }
global $DIC
Definition: shib_login.php:22
+ Here is the caller graph for this function:

◆ _deleteUser()

static ilCalendarVisibility::_deleteUser ( int  $a_user_id)
static

Definition at line 69 of file class.ilCalendarVisibility.php.

References $DIC, and $ilDB.

69  : void
70  {
71  global $DIC;
72 
73  $ilDB = $DIC->database();
74 
75  $query = "DELETE FROM cal_cat_visibility " .
76  "WHERE user_id = " . $ilDB->quote($a_user_id, 'integer') . " ";
77  $ilDB->manipulate($query);
78  }
global $DIC
Definition: shib_login.php:22

◆ _getInstanceByUserId()

static ilCalendarVisibility::_getInstanceByUserId ( int  $a_user_id,
int  $a_ref_id = 0 
)
static

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

Referenced by ilCalendarScheduleFilterHidden\__construct(), ilCalendarPresentationGUI\__construct(), ilCalendarSelectionBlockGUI\getCalendars(), ilCalendarPresentationGUI\initAndRedirectToConsultationHours(), and ilCalendarCategoryGUI\saveSelection().

52  {
53  if (!isset(self::$instances[$a_user_id][$a_ref_id])) {
54  self::$instances[$a_user_id][$a_ref_id] = new ilCalendarVisibility($a_user_id, $a_ref_id);
55  }
56  return self::$instances[$a_user_id][$a_ref_id];
57  }
Stores selection of hidden calendars for a specific user.
+ Here is the caller graph for this function:

◆ delete()

ilCalendarVisibility::delete ( ?int  $a_cat_id = null)

Definition at line 178 of file class.ilCalendarVisibility.php.

178  : void
179  {
180  if ($a_cat_id) {
181  $query = "DELETE FROM cal_cat_visibility " .
182  "WHERE user_id = " . $this->db->quote($this->user_id, 'integer') . " " .
183  "AND obj_id = " . $this->db->quote($this->obj_id, 'integer') . " " .
184  "AND cat_id = " . $this->db->quote($a_cat_id, 'integer') . " ";
185  } else {
186  $query = "DELETE FROM cal_cat_visibility " .
187  "WHERE user_id = " . $this->db->quote($this->user_id, 'integer') . " " .
188  "AND obj_id = " . $this->db->quote($this->obj_id, 'integer');
189  }
190  $this->db->manipulate($query);
191  }

◆ filterHidden()

ilCalendarVisibility::filterHidden ( array  $categories,
array  $category_info 
)

Filter hidden categories (and hidden subitem categories) from category array.

Definition at line 83 of file class.ilCalendarVisibility.php.

References isHidden().

83  : array
84  {
85  $hidden = array();
86  foreach ($category_info as $cat_id => $info) {
87  $subitem_ids = [];
88  if (array_key_exists('subitem_ids', $info) && is_array($info['subitem_ids'])) {
89  $subitem_ids = $info['subitem_ids'];
90  }
91 
92  if ($this->isHidden($cat_id, $info)) {
93  $hidden = array_merge((array) $hidden, $subitem_ids, array($cat_id));
94  }
95  }
96  return array_diff($categories, $hidden);
97  }
isHidden(int $a_cat_id, array $info)
+ Here is the call graph for this function:

◆ forceVisibility()

ilCalendarVisibility::forceVisibility ( int  $a_cat_id)

Definition at line 209 of file class.ilCalendarVisibility.php.

209  : void
210  {
211  $this->forced_visible = $a_cat_id;
212  if (($key = array_search($a_cat_id, $this->hidden)) !== false) {
213  unset($this->hidden[$key]);
214  }
215  if (!in_array($a_cat_id, $this->visible)) {
216  $this->visible[] = $a_cat_id;
217  }
218  }

◆ getHidden()

ilCalendarVisibility::getHidden ( )

Definition at line 127 of file class.ilCalendarVisibility.php.

References $hidden.

127  : array
128  {
129  return $this->hidden;
130  }

◆ getVisible()

ilCalendarVisibility::getVisible ( )

Definition at line 132 of file class.ilCalendarVisibility.php.

References $visible.

132  : array
133  {
134  return $this->visible;
135  }

◆ hideSelected()

ilCalendarVisibility::hideSelected ( array  $a_hidden)

Definition at line 137 of file class.ilCalendarVisibility.php.

137  : void
138  {
139  $this->hidden = $a_hidden;
140  }

◆ isAppointmentVisible()

ilCalendarVisibility::isAppointmentVisible ( int  $a_cal_id)

Definition at line 117 of file class.ilCalendarVisibility.php.

References ilCalendarCategoryAssignments\_lookupCategories().

117  : bool
118  {
119  foreach (ilCalendarCategoryAssignments::_lookupCategories($a_cal_id) as $cat_id) {
120  if (in_array($cat_id, $this->hidden)) {
121  return true;
122  }
123  }
124  return false;
125  }
+ Here is the call graph for this function:

◆ isHidden()

ilCalendarVisibility::isHidden ( int  $a_cat_id,
array  $info 
)
protected

Definition at line 99 of file class.ilCalendarVisibility.php.

References ilCalendarCategory\TYPE_OBJ.

Referenced by filterHidden().

99  : bool
100  {
101  // personal desktop
102  if ($this->obj_id == 0) {
103  return in_array($a_cat_id, $this->hidden);
104  }
105 
106  // crs/grp, always show current object and objects that have been selected due to
107  // current container ref id
108  if (
109  $info["type"] == ilCalendarCategory::TYPE_OBJ &&
110  ($info["obj_id"] == $this->obj_id || $info["source_ref_id"] == $this->ref_id)
111  ) {
112  return false;
113  }
114  return !in_array($a_cat_id, $this->visible);
115  }
+ Here is the caller graph for this function:

◆ read()

ilCalendarVisibility::read ( )
protected

Definition at line 193 of file class.ilCalendarVisibility.php.

References $res, and ilDBConstants\FETCHMODE_OBJECT.

Referenced by __construct().

193  : void
194  {
195  $query = "SELECT * FROM cal_cat_visibility " .
196  "WHERE user_id = " . $this->db->quote($this->user_id, 'integer') . " " .
197  " AND obj_id = " . $this->db->quote($this->obj_id, 'integer');
198  $res = $this->db->query($query);
199  while ($row = $res->fetchRow(ilDBConstants::FETCHMODE_OBJECT)) {
200  if ($row->visible == self::HIDDEN) {
201  $this->hidden[] = $row->cat_id;
202  }
203  if ($row->visible == self::VISIBLE) {
204  $this->visible[] = $row->cat_id;
205  }
206  }
207  }
$res
Definition: ltiservices.php:66
+ Here is the caller graph for this function:

◆ save()

ilCalendarVisibility::save ( )

Definition at line 147 of file class.ilCalendarVisibility.php.

147  : void
148  {
149  $this->delete();
150  foreach ($this->hidden as $hidden) {
151  if ($hidden === $this->forced_visible) {
152  continue;
153  }
154  $query = "INSERT INTO cal_cat_visibility (user_id, cat_id, obj_id, visible) " .
155  "VALUES ( " .
156  $this->db->quote($this->user_id, 'integer') . ", " .
157  $this->db->quote($hidden, 'integer') . ", " .
158  $this->db->quote($this->obj_id, 'integer') . ", " .
159  $this->db->quote(self::HIDDEN, 'integer') .
160  ")";
161  $this->db->manipulate($query);
162  }
163  foreach ($this->visible as $visible) {
164  if ($visible === $this->forced_visible) {
165  continue;
166  }
167  $query = "INSERT INTO cal_cat_visibility (user_id, cat_id, obj_id, visible) " .
168  "VALUES ( " .
169  $this->db->quote($this->user_id, 'integer') . ", " .
170  $this->db->quote($visible, 'integer') . ", " .
171  $this->db->quote($this->obj_id, 'integer') . ", " .
172  $this->db->quote(self::VISIBLE, 'integer') .
173  ")";
174  $this->db->manipulate($query);
175  }
176  }

◆ showSelected()

ilCalendarVisibility::showSelected ( array  $a_visible)

Definition at line 142 of file class.ilCalendarVisibility.php.

142  : void
143  {
144  $this->visible = $a_visible;
145  }

Field Documentation

◆ $db

ilDBInterface ilCalendarVisibility::$db
protected

Definition at line 39 of file class.ilCalendarVisibility.php.

◆ $forced_visible

int ilCalendarVisibility::$forced_visible = 0
protected

Definition at line 37 of file class.ilCalendarVisibility.php.

◆ $hidden

array ilCalendarVisibility::$hidden = array()
protected

Definition at line 35 of file class.ilCalendarVisibility.php.

Referenced by getHidden().

◆ $instances

array ilCalendarVisibility::$instances = array()
staticprotected

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

◆ $obj_id

int ilCalendarVisibility::$obj_id = 0
protected

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

◆ $ref_id

int ilCalendarVisibility::$ref_id = 0
protected

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

◆ $user_id

int ilCalendarVisibility::$user_id = 0
protected

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

◆ $visible

array ilCalendarVisibility::$visible = array()
protected

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

Referenced by getVisible().

◆ HIDDEN

const ilCalendarVisibility::HIDDEN = 0

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

◆ VISIBLE

const ilCalendarVisibility::VISIBLE = 1

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


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