/** * get shared calendars of user * * @access public * @param int user id * @return array shared calendar info * @static */ public static function getSharedCalendarsForUser($a_usr_id = 0) { global $ilDB, $ilUser, $rbacreview; if (!$a_usr_id) { $a_usr_id = $ilUser->getId(); } $query = "SELECT * FROM cal_shared " . "WHERE obj_type = " . $ilDB->quote(self::TYPE_USR, 'integer') . " " . "AND obj_id = " . $ilDB->quote($a_usr_id, 'integer') . " " . "ORDER BY create_date"; $res = $ilDB->query($query); $calendars = array(); while ($row = $res->fetchRow(DB_FETCHMODE_OBJECT)) { $calendars[] = $row->cal_id; $shared[$row->cal_id]['cal_id'] = $row->cal_id; $shared[$row->cal_id]['create_date'] = $row->create_date; $shared[$row->cal_id]['obj_type'] = $row->obj_type; } $assigned_roles = $rbacreview->assignedRoles($ilUser->getId()); $query = "SELECT * FROM cal_shared " . "WHERE obj_type = " . $ilDB->quote(self::TYPE_ROLE, 'integer') . " " . "AND " . $ilDB->in('obj_id', $assigned_roles, false, 'integer'); $res = $ilDB->query($query); while ($row = $res->fetchRow(DB_FETCHMODE_OBJECT)) { if (in_array($row->cal_id, $calendars)) { continue; } if (ilCalendarCategories::_isOwner($ilUser->getId(), $row->cal_id)) { continue; } $shared[$row->cal_id]['cal_id'] = $row->cal_id; $shared[$row->cal_id]['create_date'] = $row->create_date; $shared[$row->cal_id]['obj_type'] = $row->obj_type; } return $shared ? $shared : array(); // TODO: return also role calendars }