Lines Matching refs:this

101         $this->timeZone = $timeZone;
122 $this->masterEvent = $vevent;
124 $this->exceptions[
125 $vevent->{'RECURRENCE-ID'}->getDateTime($this->timeZone)->getTimeStamp()
127 $this->overriddenEvents[] = $vevent;
131 if (!$this->masterEvent) {
138 if (!count($this->overriddenEvents)) {
141 $this->masterEvent = array_shift($this->overriddenEvents);
144 $this->startDate = $this->masterEvent->DTSTART->getDateTime($this->timeZone);
145 $this->allDay = !$this->masterEvent->DTSTART->hasTime();
147 if (isset($this->masterEvent->EXDATE)) {
148 foreach ($this->masterEvent->EXDATE as $exDate) {
149 foreach ($exDate->getDateTimes($this->timeZone) as $dt) {
150 $this->exceptions[$dt->getTimeStamp()] = true;
155 if (isset($this->masterEvent->DTEND)) {
156 $this->eventDuration =
157 $this->masterEvent->DTEND->getDateTime($this->timeZone)->getTimeStamp() -
158 $this->startDate->getTimeStamp();
159 } elseif (isset($this->masterEvent->DURATION)) {
160 $duration = $this->masterEvent->DURATION->getDateInterval();
161 $end = clone $this->startDate;
163 $this->eventDuration = $end->getTimeStamp() - $this->startDate->getTimeStamp();
164 } elseif ($this->allDay) {
165 $this->eventDuration = 3600 * 24;
167 $this->eventDuration = 0;
170 if (isset($this->masterEvent->RDATE)) {
171 $this->recurIterator = new RDateIterator(
172 $this->masterEvent->RDATE->getParts(),
173 $this->startDate
175 } elseif (isset($this->masterEvent->RRULE)) {
176 $this->recurIterator = new RRuleIterator(
177 $this->masterEvent->RRULE->getParts(),
178 $this->startDate
181 $this->recurIterator = new RRuleIterator(
186 $this->startDate
190 $this->rewind();
191 if (!$this->valid()) {
203 if ($this->currentDate) {
204 return clone $this->currentDate;
216 if ($this->currentDate) {
217 return clone $this->currentDate;
229 if (!$this->valid()) {
232 $end = clone $this->currentDate;
234 return $end->modify('+'.$this->eventDuration.' seconds');
247 if ($this->currentOverriddenEvent) {
248 return $this->currentOverriddenEvent;
251 $event = clone $this->masterEvent;
266 $event->DTSTART->setDateTime($this->getDtStart(), $event->DTSTART->isFloating());
268 $event->DTEND->setDateTime($this->getDtEnd(), $event->DTEND->isFloating());
287 return $this->counter - 1;
298 if ($this->counter > Settings::$maxRecurrences && -1 !== Settings::$maxRecurrences) {
302 return (bool) $this->currentDate;
310 $this->recurIterator->rewind();
313 foreach ($this->overriddenEvents as $key => $event) {
314 $stamp = $event->DTSTART->getDateTime($this->timeZone)->getTimeStamp();
318 $this->counter = 0;
319 $this->overriddenEventsIndex = $index;
320 $this->currentOverriddenEvent = null;
322 $this->nextDate = null;
323 $this->currentDate = clone $this->startDate;
325 $this->next();
333 $this->currentOverriddenEvent = null;
334 ++$this->counter;
335 if ($this->nextDate) {
337 $nextDate = $this->nextDate;
338 $this->nextDate = null;
344 if (!$this->recurIterator->valid()) {
348 $nextDate = $this->recurIterator->current();
349 $this->recurIterator->next();
350 } while (isset($this->exceptions[$nextDate->getTimeStamp()]));
355 if ($this->overriddenEventsIndex) {
356 $offsets = end($this->overriddenEventsIndex);
357 $timestamp = key($this->overriddenEventsIndex);
361 $this->currentOverriddenEvent = $this->overriddenEvents[$offset];
364 $this->nextDate = $nextDate;
365 … $this->currentDate = $this->currentOverriddenEvent->DTSTART->getDateTime($this->timeZone);
368 array_pop($this->overriddenEventsIndex[$timestamp]);
369 if (!$this->overriddenEventsIndex[$timestamp]) {
370 array_pop($this->overriddenEventsIndex);
378 $this->currentDate = $nextDate;
388 while ($this->valid() && $this->getDtEnd() <= $dateTime) {
389 $this->next();
400 return $this->recurIterator->isInfinite();