/** * 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; }
/** * 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()); }