ILIAS  trunk Revision v11.0_alpha-3011-gc6b235a2e85
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.

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:26

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

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

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 }

References $DIC, and $ilDB.

Referenced by ilCalendarCategory\delete().

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

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 }

References $DIC, and $ilDB.

◆ _getInstanceByUserId()

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

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

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.

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

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

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)
$info
Definition: entry_point.php:21

References $hidden, $info, and isHidden().

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

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

References $hidden.

◆ getVisible()

ilCalendarVisibility::getVisible ( )

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

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

References $visible.

◆ 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.

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 }

References ilCalendarCategoryAssignments\_lookupCategories().

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

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 (
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 }

References $info, and ilCalendarCategory\TYPE_OBJ.

Referenced by filterHidden().

+ Here is the caller graph for this function:

◆ read()

ilCalendarVisibility::read ( )
protected

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

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:69

References $res, and ilDBConstants\FETCHMODE_OBJECT.

Referenced by __construct().

+ 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 }

References $hidden, and $visible.

◆ 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 filterHidden(), getHidden(), and save().

◆ $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(), and save().

◆ 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: