| | <?php |
| |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| |
|
| | namespace Eluceo\iCal\Component; |
| |
|
| | use Eluceo\iCal\Component; |
| | use Eluceo\iCal\Property\Event\RecurrenceRule; |
| | use Eluceo\iCal\PropertyBag; |
| |
|
| | |
| | |
| | |
| | |
| | class TimezoneRule extends Component |
| | { |
| | const TYPE_DAYLIGHT = 'DAYLIGHT'; |
| | const TYPE_STANDARD = 'STANDARD'; |
| |
|
| | |
| | |
| | |
| | protected $type; |
| |
|
| | |
| | |
| | |
| | protected $tzOffsetFrom; |
| |
|
| | |
| | |
| | |
| | protected $tzOffsetTo; |
| |
|
| | |
| | |
| | |
| | protected $tzName; |
| |
|
| | |
| | |
| | |
| | protected $dtStart; |
| |
|
| | |
| | |
| | |
| | protected $recurrenceRule; |
| |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | public function __construct($ruleType) |
| | { |
| | $ruleType = strtoupper($ruleType); |
| | if ($ruleType === self::TYPE_DAYLIGHT || $ruleType === self::TYPE_STANDARD) { |
| | $this->type = $ruleType; |
| | } else { |
| | throw new \InvalidArgumentException('Invalid value for timezone rule type'); |
| | } |
| | } |
| |
|
| | |
| | |
| | |
| | public function buildPropertyBag() |
| | { |
| | $propertyBag = new PropertyBag(); |
| |
|
| | if ($this->getTzName()) { |
| | $propertyBag->set('TZNAME', $this->getTzName()); |
| | } |
| |
|
| | if ($this->getTzOffsetFrom()) { |
| | $propertyBag->set('TZOFFSETFROM', $this->getTzOffsetFrom()); |
| | } |
| |
|
| | if ($this->getTzOffsetTo()) { |
| | $propertyBag->set('TZOFFSETTO', $this->getTzOffsetTo()); |
| | } |
| |
|
| | if ($this->getDtStart()) { |
| | $propertyBag->set('DTSTART', $this->getDtStart()); |
| | } |
| |
|
| | if ($this->recurrenceRule) { |
| | $propertyBag->set('RRULE', $this->recurrenceRule); |
| | } |
| |
|
| | return $propertyBag; |
| | } |
| |
|
| | |
| | |
| | |
| | |
| | |
| | public function setTzOffsetFrom($offset) |
| | { |
| | $this->tzOffsetFrom = $offset; |
| |
|
| | return $this; |
| | } |
| |
|
| | |
| | |
| | |
| | |
| | |
| | public function setTzOffsetTo($offset) |
| | { |
| | $this->tzOffsetTo = $offset; |
| |
|
| | return $this; |
| | } |
| |
|
| | |
| | |
| | |
| | |
| | |
| | public function setTzName($name) |
| | { |
| | $this->tzName = $name; |
| |
|
| | return $this; |
| | } |
| |
|
| | |
| | |
| | |
| | public function setDtStart(\DateTimeInterface $dtStart) |
| | { |
| | $this->dtStart = $dtStart; |
| |
|
| | return $this; |
| | } |
| |
|
| | |
| | |
| | |
| | public function setRecurrenceRule(RecurrenceRule $recurrenceRule) |
| | { |
| | $this->recurrenceRule = $recurrenceRule; |
| |
|
| | return $this; |
| | } |
| |
|
| | |
| | |
| | |
| | public function getType() |
| | { |
| | return $this->type; |
| | } |
| |
|
| | |
| | |
| | |
| | public function getTzOffsetFrom() |
| | { |
| | return $this->tzOffsetFrom; |
| | } |
| |
|
| | |
| | |
| | |
| | public function getTzOffsetTo() |
| | { |
| | return $this->tzOffsetTo; |
| | } |
| |
|
| | |
| | |
| | |
| | public function getTzName() |
| | { |
| | return $this->tzName; |
| | } |
| |
|
| | |
| | |
| | |
| | public function getRecurrenceRule() |
| | { |
| | return $this->recurrenceRule; |
| | } |
| |
|
| | |
| | |
| | |
| | public function getDtStart() |
| | { |
| | if ($this->dtStart) { |
| | return $this->dtStart->format('Ymd\THis'); |
| | } |
| |
|
| | return; |
| | } |
| | } |
| |
|