Esempio n. 1
0
File: OBM.php Progetto: Kervinou/OBM
 function parseRrule($data) {
   $rrule = array();
    switch ($data['event_repeatkind']) {
      case 'daily' :
      case 'yearly' :
        $rrule['kind'] = $data['event_repeatkind'];
        break;
      case 'monthlybydate' :
        $rrule['kind'] = 'monthly';
        break;
      case 'monthlybyday' :
        $rrule['kind'] = 'monthly';
        $date = new Of_Date($data['event_date'], 'GMT');
        $day = $date->get(Of_Date::WEEKDAY_ICS);
        
        $num =  ceil($date->getDay()/7);
        $rrule['byday'] = array($num.$day);
        break;
      case 'weekly' :
        $rrule['kind'] = 'weekly';
        foreach($this->weekDays as $longDay => $shortDay) {
          $index = date('w', strtotime($longDay));
          if($data['event_repeatdays'][$index] == '1') {
            $days[] = $shortDay;
          }           
        }
        $rrule['byday'] = $days;
        break;
    }
    if ($data['event_endrepeat'])
      $rrule['until'] = $this->parseDate($data['event_endrepeat']);
    $rrule['interval'] = $data['event_repeatfrequence'];
    return $rrule;
 }
Esempio n. 2
0
File: ICS.php Progetto: Kervinou/OBM
 /**
  * Parse a date with the given format, preferably with ICS_DATETIME if possible.
  *
  * @param Of_Date $date
  * @param string $format Date format. Can be Of_Date::ICS_DATETIME or Of_Date::ICS_DATE.
  */
 function parseTZIDedDate($date, $format=Of_Date::ICS_DATETIME) {
   if ($date->getOriginalTimeZone() && $format == Of_Date::ICS_DATETIME) {
     $date->setTimezone(new DateTimeZone($date->getOriginalTimeZone()));
     $res = ';TZID='. $date->getOriginalTimeZone().':'. $date->get($format);
     $date->setDefaultTimezone();
   } else {
     $res = ':'. $this->parseDate($date, $format);
   }
   
   return $res;
 }