Lines Matching refs:this

101         $this->timeZone = $timeZone;
125 $this->masterEvent = $vevent;
129 $this->exceptions[
130 $vevent->{'RECURRENCE-ID'}->getDateTime($this->timeZone)->getTimeStamp()
132 $this->overriddenEvents[] = $vevent;
138 if (!$this->masterEvent) {
145 if (!count($this->overriddenEvents)) {
148 $this->masterEvent = array_shift($this->overriddenEvents);
151 $this->startDate = $this->masterEvent->DTSTART->getDateTime($this->timeZone);
152 $this->allDay = !$this->masterEvent->DTSTART->hasTime();
154 if (isset($this->masterEvent->EXDATE)) {
156 foreach ($this->masterEvent->EXDATE as $exDate) {
158 foreach ($exDate->getDateTimes($this->timeZone) as $dt) {
159 $this->exceptions[$dt->getTimeStamp()] = true;
166 if (isset($this->masterEvent->DTEND)) {
167 $this->eventDuration =
168 $this->masterEvent->DTEND->getDateTime($this->timeZone)->getTimeStamp() -
169 $this->startDate->getTimeStamp();
170 } elseif (isset($this->masterEvent->DURATION)) {
171 $duration = $this->masterEvent->DURATION->getDateInterval();
172 $end = clone $this->startDate;
174 $this->eventDuration = $end->getTimeStamp() - $this->startDate->getTimeStamp();
175 } elseif ($this->allDay) {
176 $this->eventDuration = 3600 * 24;
178 $this->eventDuration = 0;
181 if (isset($this->masterEvent->RDATE)) {
182 $this->recurIterator = new RDateIterator(
183 $this->masterEvent->RDATE->getParts(),
184 $this->startDate
186 } elseif (isset($this->masterEvent->RRULE)) {
187 $this->recurIterator = new RRuleIterator(
188 $this->masterEvent->RRULE->getParts(),
189 $this->startDate
192 $this->recurIterator = new RRuleIterator(
197 $this->startDate
201 $this->rewind();
202 if (!$this->valid()) {
215 if ($this->currentDate) {
216 return clone $this->currentDate;
229 if ($this->currentDate) {
230 return clone $this->currentDate;
243 if (!$this->valid()) {
246 $end = clone $this->currentDate;
247 return $end->modify('+' . $this->eventDuration . ' seconds');
261 if ($this->currentOverriddenEvent) {
262 return $this->currentOverriddenEvent;
265 $event = clone $this->masterEvent;
280 $event->DTSTART->setDateTime($this->getDtStart(), $event->DTSTART->isFloating());
282 $event->DTEND->setDateTime($this->getDtEnd(), $event->DTEND->isFloating());
301 return $this->counter - 1;
313 if ($this->counter > Settings::$maxRecurrences && Settings::$maxRecurrences !== -1) {
316 return !!$this->currentDate;
325 $this->recurIterator->rewind();
328 foreach ($this->overriddenEvents as $key => $event) {
329 $stamp = $event->DTSTART->getDateTime($this->timeZone)->getTimeStamp();
333 $this->counter = 0;
334 $this->overriddenEventsIndex = $index;
335 $this->currentOverriddenEvent = null;
337 $this->nextDate = null;
338 $this->currentDate = clone $this->startDate;
340 $this->next();
351 $this->currentOverriddenEvent = null;
352 $this->counter++;
353 if ($this->nextDate) {
355 $nextDate = $this->nextDate;
356 $this->nextDate = null;
362 if (!$this->recurIterator->valid()) {
366 $nextDate = $this->recurIterator->current();
367 $this->recurIterator->next();
368 } while (isset($this->exceptions[$nextDate->getTimeStamp()]));
375 if ($this->overriddenEventsIndex) {
377 $offsets = end($this->overriddenEventsIndex);
378 $timestamp = key($this->overriddenEventsIndex);
382 $this->currentOverriddenEvent = $this->overriddenEvents[$offset];
385 $this->nextDate = $nextDate;
386 … $this->currentDate = $this->currentOverriddenEvent->DTSTART->getDateTime($this->timeZone);
389 array_pop($this->overriddenEventsIndex[$timestamp]);
390 if (!$this->overriddenEventsIndex[$timestamp]) {
391 array_pop($this->overriddenEventsIndex);
401 $this->currentDate = $nextDate;
412 while ($this->valid() && $this->getDtEnd() <= $dateTime) {
413 $this->next();
425 return $this->recurIterator->isInfinite();