Esempio n. 1
0
 /**
  * @param string $className
  *
  * @return EventList
  */
 public function filterByClass($className)
 {
     $events = new EventList();
     foreach ($this->events as $event) {
         if ($event instanceof $className) {
             $events->add($event);
         }
     }
     return $events;
 }
 public function getAppointments($y, $m)
 {
     $ret = array();
     $i = 0;
     $month = intval($m);
     $sTimestamp = gmmktime(0, 0, 0, $m, 1, $y);
     $eTimestamp = gmmktime(0, 0, 0, $m + 1, 0, $y);
     $userID = intval(WCF::getUser()->userID);
     $showPublic = intval(WBBCore::getUser()->monthlyCalendarBox_showPublicAppointments);
     if (empty($userID)) {
         $showPublic = 1;
     }
     if (WBBCore::getUser()->getPermission('user.calendar.canUseCalendar')) {
         require_once WCF_DIR . 'lib/util/CalendarUtil.class.php';
         require_once WCF_DIR . 'lib/data/calendar/event/EventList.class.php';
         $cals = Calendar::getEnabledCalendars();
         $events = new EventList($sTimestamp, $eTimestamp, $cals);
         $events->readEvents();
         $myEvents = $events->getEvents(1000);
         foreach ($myEvents as $event) {
             if (!$event->eventID) {
                 continue;
             }
             $dd = date('j', $event->startTime);
             if (isset($ret[$dd])) {
                 $ret[$dd] .= ", ";
             } else {
                 $ret[$dd] = '';
             }
             $ret[$dd] .= StringUtil::encodeHTML($event->subject);
             $i++;
         }
     } else {
         if (WBBCore::getUser()->getPermission('user.calendar.canEnter')) {
             $sql = "SELECT cem.subject AS subject, ce.eventTime AS startTime" . "\n  FROM wcf" . WCF_N . "_calendar_event ce" . "\n  LEFT JOIN wcf" . WCF_N . "_calendar_event_message cem ON (cem.eventID = ce.eventID)" . "\n WHERE ce.eventTime >= " . $sTimestamp . "\n   AND ce.eventTime <= " . $eTimestamp;
             if (!empty($userID) && empty($showPublic)) {
                 $sql .= "\n   AND cem.userID = " . $userID;
             }
             $result = WBBCore::getDB()->sendQuery($sql);
             while ($row = WBBCore::getDB()->fetchArray($result)) {
                 $dd = date('j', $row['startTime']);
                 if (isset($ret[$dd])) {
                     $ret[$dd] .= ", ";
                 } else {
                     $ret[$dd] = '';
                 }
                 $ret[$dd] .= StringUtil::encodeHTML($row['subject']);
             }
         }
     }
     return $ret;
 }