summaryrefslogtreecommitdiff
path: root/includes/ical/src/Recurrence.php
diff options
context:
space:
mode:
authorMinteck <contact@minteck.org>2023-02-23 19:34:56 +0100
committerMinteck <contact@minteck.org>2023-02-23 19:34:56 +0100
commit3d1cd02f27518f1a04374c7c8320cd5d82ede6e9 (patch)
tree75be5fba4368472fb11c8015aee026b2b9a71888 /includes/ical/src/Recurrence.php
parent8cc1f13c17fa2fb5a4410542d39e650e02945634 (diff)
downloadpluralconnect-3d1cd02f27518f1a04374c7c8320cd5d82ede6e9.tar.gz
pluralconnect-3d1cd02f27518f1a04374c7c8320cd5d82ede6e9.tar.bz2
pluralconnect-3d1cd02f27518f1a04374c7c8320cd5d82ede6e9.zip
Updated 40 files, added 37 files, deleted 1103 files and renamed 3905 files (automated)
Diffstat (limited to 'includes/ical/src/Recurrence.php')
-rw-r--r--includes/ical/src/Recurrence.php234
1 files changed, 0 insertions, 234 deletions
diff --git a/includes/ical/src/Recurrence.php b/includes/ical/src/Recurrence.php
deleted file mode 100644
index 15f39cd..0000000
--- a/includes/ical/src/Recurrence.php
+++ /dev/null
@@ -1,234 +0,0 @@
-<?php
-
-namespace om;
-
-use DateTime;
-use Exception;
-
-/**
- * Class taken from https://github.com/coopTilleuls/intouch-iCalendar.git (Recurrence.php)
- *
- * A wrapper for recurrence rules in iCalendar. Parses the given line and puts the
- * recurrence rules in the correct field of this object.
- *
- * See http://tools.ietf.org/html/rfc2445 for more information. Page 39 and onward contains more
- * information on the recurrence rules themselves. Page 116 and onward contains
- * some great examples which were often used for testing.
- *
- * @author Steven Oxley
- * @author Michael Kahn (C) 2013
- * @license http://creativecommons.org/licenses/by-sa/2.5/dk/deed.en_GB CC-BY-SA-DK
- */
-class Recurrence {
-
- public $rrule;
- protected $freq;
- protected $until;
- protected $count;
- protected $interval;
- protected $bysecond;
- protected $byminute;
- protected $byhour;
- protected $byday;
- protected $bymonthday;
- protected $byyearday;
- protected $byweekno;
- protected $bymonth;
- protected $bysetpos;
- protected $wkst;
- /**
- * A list of the properties that can have comma-separated lists for values.
- *
- * @var array
- */
- protected array $listProperties = [
- 'bysecond', 'byminute', 'byhour', 'byday', 'bymonthday',
- 'byyearday', 'byweekno', 'bymonth', 'bysetpos',
- ];
-
- /**
- * Creates an recurrence object with a passed in line. Parses the line.
- *
- * @param array $rrule an om\icalparser row array which will be parsed to get the
- * desired information.
- */
- public function __construct(array $rrule) {
- $this->parseRrule($rrule);
- }
-
- /**
- * Parses an 'RRULE' array and sets the member variables of this object.
- * Expects a string that looks like this: 'FREQ=WEEKLY;INTERVAL=2;BYDAY=SU,TU,WE'
- *
- * @param $rrule
- */
- protected function parseRrule($rrule): void {
- $this->rrule = $rrule;
- //loop through the properties in the line and set their associated
- //member variables
- foreach ($this->rrule as $propertyName => $propertyValue) {
- //need the lower-case name for setting the member variable
- $propertyName = strtolower($propertyName);
- //split up the list of values into an array (if it's a list)
- if (in_array($propertyName, $this->listProperties, true)) {
- $propertyValue = explode(',', $propertyValue);
- }
- $this->$propertyName = $propertyValue;
- }
- }
-
- /**
- * Returns the frequency - corresponds to FREQ in RFC 2445.
- *
- * @return mixed string if the member has been set, false otherwise
- */
- public function getFreq() {
- return $this->getMember('freq');
- }
-
- /**
- * Retrieves the desired member variable and returns it (if it's set)
- *
- * @param string $member name of the member variable
- * @return mixed the variable value (if set), false otherwise
- */
- protected function getMember(string $member) {
- return $this->$member ?? false;
- }
-
- /**
- * Returns when the event will go until - corresponds to UNTIL in RFC 2445.
- *
- * @return mixed string if the member has been set, false otherwise
- */
- public function getUntil() {
- return $this->getMember('until');
- }
-
- /**
- * Set the $until member
- *
- * @param mixed $ts timestamp (int) / Valid DateTime format (string)
- * @throws Exception
- */
- public function setUntil($ts): void {
- if ($ts instanceof DateTime) {
- $dt = $ts;
- } elseif (is_int($ts)) {
- $dt = new DateTime('@' . $ts);
- } else {
- $dt = new DateTime($ts);
- }
- $this->until = $dt->format('Ymd\THisO');
- $this->rrule['until'] = $this->until;
- }
-
- /**
- * Returns the count of the times the event will occur (should only appear if 'until'
- * does not appear) - corresponds to COUNT in RFC 2445.
- *
- * @return mixed string if the member has been set, false otherwise
- */
- public function getCount() {
- return $this->getMember('count');
- }
-
- /**
- * Returns the interval - corresponds to INTERVAL in RFC 2445.
- *
- * @return mixed string if the member has been set, false otherwise
- */
- public function getInterval() {
- return $this->getMember('interval');
- }
-
- /**
- * Returns the bysecond part of the event - corresponds to BYSECOND in RFC 2445.
- *
- * @return mixed string if the member has been set, false otherwise
- */
- public function getBySecond() {
- return $this->getMember('bysecond');
- }
-
- /**
- * Returns the byminute information for the event - corresponds to BYMINUTE in RFC 2445.
- *
- * @return mixed string if the member has been set, false otherwise
- */
- public function getByMinute() {
- return $this->getMember('byminute');
- }
-
- /**
- * Corresponds to BYHOUR in RFC 2445.
- *
- * @return mixed string if the member has been set, false otherwise
- */
- public function getByHour() {
- return $this->getMember('byhour');
- }
-
- /**
- *Corresponds to BYDAY in RFC 2445.
- *
- * @return mixed string if the member has been set, false otherwise
- */
- public function getByDay() {
- return $this->getMember('byday');
- }
-
- /**
- * Corresponds to BYMONTHDAY in RFC 2445.
- *
- * @return mixed string if the member has been set, false otherwise
- */
- public function getByMonthDay() {
- return $this->getMember('bymonthday');
- }
-
- /**
- * Corresponds to BYYEARDAY in RFC 2445.
- *
- * @return mixed string if the member has been set, false otherwise
- */
- public function getByYearDay() {
- return $this->getMember('byyearday');
- }
-
- /**
- * Corresponds to BYWEEKNO in RFC 2445.
- *
- * @return mixed string if the member has been set, false otherwise
- */
- public function getByWeekNo() {
- return $this->getMember('byweekno');
- }
-
- /**
- * Corresponds to BYMONTH in RFC 2445.
- *
- * @return mixed string if the member has been set, false otherwise
- */
- public function getByMonth() {
- return $this->getMember('bymonth');
- }
-
- /**
- * Corresponds to BYSETPOS in RFC 2445.
- *
- * @return mixed string if the member has been set, false otherwise
- */
- public function getBySetPos() {
- return $this->getMember('bysetpos');
- }
-
- /**
- * Corresponds to WKST in RFC 2445.
- *
- * @return mixed string if the member has been set, false otherwise
- */
- public function getWkst() {
- return $this->getMember('wkst');
- }
-}