/**
  * @todo Optimalization. Calculate range between current time and time
  *       of event, and calculate how much days/weeks/months/years has passed
  *       between this values, and call one time strtotime fn, instead of
  *       multiple times, for every interval. I.e. first call
  *       strtotime('+ 4 weeks'), and then, in do...while loop, call
  *       every time, for every interval, like now. One call for 4 weeks, is
  *       quickly, than calls 4 times, for 1 week.
  */
 public function allFromRange($from, $to)
 {
     $events = parent::selectQuery('SELECT * FROM ' . $this->dbTable . ' WHERE owner = ' . $this->user()->getId() . ' AND `start` >= ' . $from . ' AND `start` <= ' . $to . ' AND `repeat` = 0 ORDER BY `start` ASC');
     $repeated = parent::selectQuery('SELECT * FROM ' . $this->dbTable . ' WHERE owner = ' . $this->user()->getId() . ' AND `repeat` = 1 AND `start` <= ' . $to . ' ORDER BY `start` ASC');
     foreach ($repeated as $event) {
         $checkFrom = $event->getStart();
         $checkTo = $event->getEnd();
         if ($checkFrom >= $from && $checkFrom <= $to) {
             $events[] = clone $event;
         }
         // For 2 days
         if ($event->getRepeatType() == 2) {
             $interval = '+ 2 days';
         } elseif ($event->getRepeatType() == 3) {
             $interval = '+ 1 week';
         } elseif ($event->getRepeatType() == 4) {
             $interval = '+ 2 weeks';
         } elseif ($event->getRepeatType() == 5) {
             $interval = '+ 1 month';
         } elseif ($event->getRepeatType() == 6) {
             $interval = '+ 3 months';
         } elseif ($event->getRepeatType() == 7) {
             $interval = '+ 6 months';
         } elseif ($event->getRepeatType() == 8) {
             $interval = '+ 1 year';
         } else {
             $interval = '+ 1 day';
         }
         do {
             $checkFrom = strtotime($interval, $checkFrom);
             $checkTo = strtotime($interval, $checkTo);
             if ($checkFrom >= $from && $checkFrom <= $to) {
                 $new = clone $event;
                 $new->setStart($checkFrom);
                 $new->setEnd($checkTo);
                 $events[] = $new;
             }
         } while ($checkFrom <= $to);
     }
     return $events;
 }
 public function allForEdit()
 {
     return parent::selectQuery('SELECT * FROM ' . $this->dbTable . ' WHERE userFor = ' . $this->user()->getId() . ' OR userFrom = ' . $this->user()->getId() . ' ORDER BY ordering ASC');
 }
 public function all()
 {
     return parent::selectQuery('SELECT * FROM ' . $this->dbTable . ' WHERE owner = ' . $this->user()->getId());
 }