/**
  * Return given recurrence data as text.
  *
  * @param  string  $rrule   Recurrence rule
  *
  * @return string
  */
 public function rrule_to_text($rrule = '')
 {
     $txt = '';
     $rc = new SG_iCal_Recurrence(new SG_iCal_Line('RRULE:' . $rrule));
     switch ($rc->getFreq()) {
         case 'DAILY':
             $this->_get_interval($txt, 'daily', $rc->getInterval());
             $this->_ending_sentence($txt, $rc);
             break;
         case 'WEEKLY':
             $this->_get_interval($txt, 'weekly', $rc->getInterval());
             $this->_get_sentence_by($txt, 'weekly', $rc);
             $this->_ending_sentence($txt, $rc);
             break;
         case 'MONTHLY':
             $this->_get_interval($txt, 'monthly', $rc->getInterval());
             $this->_get_sentence_by($txt, 'monthly', $rc);
             $this->_ending_sentence($txt, $rc);
             break;
         case 'YEARLY':
             $this->_get_interval($txt, 'yearly', $rc->getInterval());
             $this->_get_sentence_by($txt, 'yearly', $rc);
             $this->_ending_sentence($txt, $rc);
             break;
         default:
             $txt = $rrule;
     }
     return $txt;
 }
Ejemplo n.º 2
0
 /**
  * Return given recurrence data as text.
  *
  * @param  string  $rrule   Recurrence rule
  *
  * @return string
  */
 public function rrule_to_text($rrule = '')
 {
     $txt = '';
     $rc = new SG_iCal_Recurrence(new SG_iCal_Line('RRULE:' . $rrule));
     switch ($rc->getFreq()) {
         case 'DAILY':
             $this->_get_interval($txt, 'daily', $rc->getInterval());
             $this->_ending_sentence($txt, $rc);
             break;
         case 'WEEKLY':
             $this->_get_interval($txt, 'weekly', $rc->getInterval());
             $this->_get_sentence_by($txt, 'weekly', $rc);
             $this->_ending_sentence($txt, $rc);
             break;
         case 'MONTHLY':
             $this->_get_interval($txt, 'monthly', $rc->getInterval());
             $this->_get_sentence_by($txt, 'monthly', $rc);
             $this->_ending_sentence($txt, $rc);
             break;
         case 'YEARLY':
             $this->_get_interval($txt, 'yearly', $rc->getInterval());
             $this->_get_sentence_by($txt, 'yearly', $rc);
             $this->_ending_sentence($txt, $rc);
             break;
         default:
             $processed = explode('=', $rrule);
             if (isset($processed[1]) && in_array(strtoupper($processed[0]), array('RDATE', 'EXDATE'))) {
                 $txt = $this->exdate_to_text($processed[1]);
             } else {
                 $txt = $rrule;
             }
     }
     return $txt;
 }
 public function testGetFrequencyGetIntervalWithTypicalLineReturnsFrequency()
 {
     $line = new SG_iCal_Line('RRULE:FREQ=DAILY;INTERVAL=2');
     $recurrence = new SG_iCal_Recurrence($line);
     $this->assertEquals('DAILY', $recurrence->getFreq());
     $this->assertEquals('2', $recurrence->getInterval());
 }