/** * * @param integer Date range start (unix timestamp) * @param integer Date range end (unix timestamp) * @return integer Count */ public function count_events($start, $end = null) { // get email addresses of the current user $user_emails = $this->cal->get_user_emails(); $subquery = array(); foreach ($user_emails as $email) { foreach ($this->partstats as $partstat) { $subquery[] = array('tags', '=', 'x-partstat:' . $email . ':' . strtolower($partstat)); } } // aggregate counts from all calendar folders $count = 0; foreach (kolab_storage::list_folders('', '*', 'event', null) as $foldername) { $cal = new kolab_calendar($foldername, $this->cal); if ($cal->get_namespace() == 'other') { continue; } $count += $cal->count_events($start, $end, array(array($subquery, 'OR'))); } return $count; }