/** * @see Form::save() */ public function save() { parent::save(); $this->userSuspension->update($this->userSuspension->userID, $this->userSuspension->suspensionID, $this->expiresDay && $this->expiresMonth && $this->expiresYear ? DateUtil::getUTC(gmmktime($this->expiresHour, $this->expiresMinute, 0, $this->expiresMonth, $this->expiresDay, $this->expiresYear)) : 0); $this->saved(); // show success message WCF::getTPL()->assign('success', true); }
/** * Checks the given parameters. * * @return boolean */ public function checkParams() { if (!$this->question) { return false; } if (count($this->pollOptionsArray) < 2) { throw new UserInputException('pollOptions', 'notEnoughOptions'); } if (count($this->pollOptionsArray) > POLL_MAX_OPTIONS) { throw new UserInputException('pollOptions', 'tooMuch'); } if ($this->choiceCount < 1) { throw new UserInputException('choiceCount', 'notValid'); } if ($this->choiceCount > count($this->pollOptionsArray)) { throw new UserInputException('choiceCount', 'tooMuch'); } if ($this->endTimeDay || $this->endTimeMonth || $this->endTimeYear || $this->endTimeHour || $this->endTimeMinutes) { $time = @gmmktime($this->endTimeHour, $this->endTimeMinutes, 0, $this->endTimeMonth, $this->endTimeDay, $this->endTimeYear); // since php5.1.0 mktime returns false on failure if ($time === false || $time === -1) { throw new UserInputException('endTime', 'invalid'); } // get utc time $time = DateUtil::getUTC($time); if (!$this->pollID && $time <= TIME_NOW) { throw new UserInputException('endTime', 'invalid'); } $this->data['endTime'] = $time; } else { $this->data['endTime'] = 0; } $this->valid = true; }
/** * @see Form::save() */ public function save() { parent::save(); $this->userWarning->update($this->warningID, $this->title, $this->points, $this->expiresDay && $this->expiresMonth && $this->expiresYear ? DateUtil::getUTC(gmmktime($this->expiresHour, $this->expiresMinute, 0, $this->expiresMonth, $this->expiresDay, $this->expiresYear)) : 0, $this->reason); $this->saved(); // show success message WCF::getTPL()->assign('success', true); }
public function getAppointmentList() { $ret = array(); $i = 0; $limit = intval(WBBCore::getUser()->monthlyCalendarBox_maxAppointments); $showPublic = intval(WBBCore::getUser()->monthlyCalendarBox_showPublicAppointments); $showBirthdays = intval(WBBCore::getUser()->monthlyCalendarBox_showBirthdaysInAppointments); $maxDays = intval(WBBCore::getUser()->monthlyCalendarBox_maxAppointmentDays); $userID = intval(WCF::getUser()->userID); if (!$limit > 0) { $limit = 10; } if (empty($maxDays)) { $maxDays = 30; } if (empty($userID)) { $showPublic = 1; $showBirthdays = 1; } $m = intval(date('n')); $y = intval(date('Y')); $d = intval(date('j')); $sTimestamp = mktime(0, 0, 0, $m, $d, $y); $eTimestamp = $sTimestamp + 86400; // WoltLab Calendar... 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(); if (empty($showBirthdays)) { foreach ($cals as $k => $v) { if ($v->className == 'BirthdayEvent') { unset($cals[$k]); break; } } } if (!empty($userID) && empty($showPublic)) { foreach ($cals as $k => $v) { if ($v->ownerID != $userID && $v->className != 'BirthdayEvent') { unset($cals[$k]); } } } $events = new EventList($sTimestamp, $sTimestamp + 86400 * $maxDays, $cals); $events->readEvents(); $myEvents = $events->getEvents($limit); // file_put_contents('/tmp/debug.txt', print_r($myEvents, true)); foreach ($myEvents as $event) { if ($showBirthdays && $event->calendar->className == 'BirthdayEvent' && $event->user && !$event->eventID) { $ret[$i]['birthday'] = true; $ret[$i]['userID'] = $event->userID; $ret[$i]['username'] = $event->user->username; $ret[$i]['age'] = $event->user->age; $ret[$i]['time'] = $event->startTime; $ret[$i]['eventID'] = null; } else { $ret[$i]['birthday'] = false; $ret[$i]['eventID'] = $event->eventID; } if ($event->isFullDay) { $ret[$i]['startTime'] = DateUtil::getUTC($event->startTime); $ret[$i]['endTime'] = DateUtil::getUTC($event->endTime); } else { $ret[$i]['startTime'] = $event->startTime; $ret[$i]['endTime'] = $event->endTime; } $ret[$i]['fullDay'] = $event->isFullDay; $ret[$i]['subject'] = $event->subject; $ret[$i]['severalDays'] = false; $ret[$i]['curYear'] = true; $ret[$i]['sameDay'] = false; $ret[$i]['color'] = $event->color; $ret[$i]['today'] = false; $ret[$i]['title'] = ''; if ($ret[$i]['startTime'] >= $sTimestamp && $ret[$i]['endTime'] < $eTimestamp) { $ret[$i]['today'] = true; } else { $ret[$i]['today'] = false; if (date('j', $ret[$i]['startTime']) != date('j', $ret[$i]['endTime'])) { $ret[$i]['severalDays'] = true; } if (date('Y', $ret[$i]['startTime']) != date('Y')) { $ret[$i]['curYear'] = false; } } if ($ret[$i]['severalDays']) { $ret[$i]['title'] = DateUtil::formatDate('%d.%m. %H:%M', $ret[$i]['startTime']) . ' - ' . DateUtil::formatDate('%d.%m. %H:%M', $ret[$i]['endTime']); } else { $ret[$i]['title'] = DateUtil::formatDate('%H:%M', $ret[$i]['startTime']) . '-' . DateUtil::formatDate('%H:%M', $ret[$i]['endTime']); } $ret[$i]['title'] .= ': ' . $ret[$i]['subject']; $i++; } } else { if (WBBCore::getUser()->getPermission('user.calendar.canEnter')) { if (!empty($showBirthdays)) { $birthdays = self::getBirthdayList($y, $m, $d); $color = ''; $isEnabled = 1; foreach ($birthdays as $k => $v) { $ret[$i]['birthday'] = true; $ret[$i]['color'] = $color; $ret[$i]['userID'] = $v['userID']; $ret[$i]['username'] = $v['username']; $ret[$i]['age'] = $v['age']; $ret[$i]['time'] = $v['time']; $i++; } } $sql = "SELECT ce.eventID, cem.subject AS subject, ce.eventTime AS startTime, ce.eventEndTime AS endTime, ce.isFullDay AS fullDay" . "\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 >= " . TIME_NOW . "\n OR (ce.isFullDay = 1 AND ce.eventTime >= " . $sTimestamp . ")" . "\n OR (ce.eventEndTime > ce.eventTime AND ce.eventEndTime > " . $sTimestamp . "))" . "\n AND cem.isDeleted != 1"; if (!empty($userID) && empty($showPublic)) { $sql .= "\n AND cem.userID = " . $userID; } $sql .= "\n ORDER BY ce.eventTime" . "\n LIMIT " . $limit; $result = WBBCore::getDB()->sendQuery($sql); while ($row = WBBCore::getDB()->fetchArray($result)) { if (!empty($row['fullDay'])) { $tM = intval(date('n', $row['startTime'])); $tY = intval(date('Y', $row['startTime'])); $tD = intval(date('j', $row['startTime'])); $row['startTime'] = mktime(0, 0, 0, $tM, $tD, $tY); if (empty($row['endTime'])) { $row['endTime'] = mktime(0, 0, 0, $tM, $tD, $tY); } else { $tM = intval(date('n', $row['endTime'])); $tY = intval(date('Y', $row['endTime'])); $tD = intval(date('j', $row['endTime'])); $row['endTime'] = mktime(0, 0, 0, $tM, $tD, $tY); } } if (empty($row['endTime'])) { $row['endTime'] = $row['startTime']; } $ret[$i]['fullDay'] = $row['fullDay']; $ret[$i]['birthday'] = false; $ret[$i]['color'] = ''; $ret[$i]['eventID'] = $row['eventID']; $ret[$i]['subject'] = $row['subject']; $ret[$i]['startTime'] = $row['startTime']; $ret[$i]['endTime'] = $row['endTime']; $ret[$i]['severalDays'] = false; $ret[$i]['curYear'] = true; $ret[$i]['sameDay'] = false; if ($row['startTime'] >= $sTimestamp && $row['endTime'] <= $eTimestamp) { $ret[$i]['today'] = true; } else { $ret[$i]['today'] = false; if (date('j', $row['startTime']) != date('j', $row['endTime'])) { $ret[$i]['severalDays'] = true; } if (date('Y', $row['startTime']) != date('Y')) { $ret[$i]['curYear'] = false; } } if ($ret[$i]['severalDays']) { $ret[$i]['title'] = DateUtil::formatShortTime('%d.%m. %H:%M', $row['startTime']) . ' - ' . DateUtil::formatShortTime('%d.%m. %H:%M', $row['endTime']); } else { $ret[$i]['title'] = DateUtil::formatShortTime('%H:%M', $row['startTime']) . '-' . DateUtil::formatShortTime('%H:%M', $row['endTime']); } $ret[$i]['title'] .= ': ' . $row['subject']; $i++; } } } return $ret; }