function testCompoundProperty() { $arr = array('ABC, Inc.', 'North American Division', 'Marketing;Sales'); $property = Sabre\VObject\Property::create('ORG'); $property->setParts($arr); $this->assertEquals('ABC\\, Inc.;North American Division;Marketing\\;Sales', $property->value); $this->assertEquals('ORG:ABC\\, Inc.;North American Division;Marketing\\;Sales' . "\r\n", $property->serialize()); $this->assertEquals(3, count($property->getParts())); $parts = $property->getParts(); $this->assertEquals('Marketing;Sales', $parts[2]); }
function testEncode() { $prop = new \Sabre\VObject\Property('test', "abc\r\ndef"); $this->assertEquals("TEST:abc\\ndef\r\n", $prop->serialize()); }
/** * @param Sabre_VObject_Component_VEvent $component * @param wdcal_local $localization */ function wdcal_set_component_recurrence(&$component, &$localization) { $component->__unset("RRULE"); $component->__unset("EXRULE"); $component->__unset("EXDATE"); $component->__unset("RDATE"); $part_until = ""; switch ($_REQUEST["rec_until_type"]) { case "date": $date = $localization->date_local2timestamp($_REQUEST["rec_until_date"]); $part_until = ";UNTIL=" . date("Ymd", $date); $datetime_until = new Sabre\VObject\Property\DateTime("UNTIL"); $datetime_until->setDateTime(new DateTime(date("Y-m-d H:i:s", $date)), Sabre\VObject\Property\DateTime::DATE); break; case "count": $part_until = ";COUNT=" . IntVal($_REQUEST["rec_until_count"]); break; } switch ($_REQUEST["rec_frequency"]) { case "daily": $part_freq = "FREQ=DAILY"; if (isset($_REQUEST["rec_daily_byday"])) { $days = array(); foreach ($_REQUEST["rec_daily_byday"] as $x) { if (in_array($x, array("MO", "TU", "WE", "TH", "FR", "SA", "SU"))) { $days[] = $x; } } if (count($days) > 0) { $part_freq .= ";BYDAY=" . implode(",", $days); } } break; case "weekly": $part_freq = "FREQ=WEEKLY"; if (isset($_REQUEST["rec_weekly_wkst"]) && in_array($_REQUEST["rec_weekly_wkst"], array("MO", "SU"))) { $part_freq .= ";WKST=" . $_REQUEST["rec_weekly_wkst"]; } if (isset($_REQUEST["rec_weekly_byday"])) { $days = array(); foreach ($_REQUEST["rec_weekly_byday"] as $x) { if (in_array($x, array("MO", "TU", "WE", "TH", "FR", "SA", "SU"))) { $days[] = $x; } } if (count($days) > 0) { $part_freq .= ";BYDAY=" . implode(",", $days); } } break; case "monthly": $part_freq = "FREQ=MONTHLY"; $part_freq .= wdcal_set_component_recurrence_special($component, $_REQUEST["rec_monthly_day"]); break; case "yearly": /** @var Sabre\VObject\Property\DateTime $start */ $start = $component->__get("DTSTART"); $part_freq = "FREQ=YEARLY"; $part_freq .= ";BYMONTH=" . $start->getDateTime()->format("n"); $part_freq .= wdcal_set_component_recurrence_special($component, $_REQUEST["rec_yearly_day"]); break; default: $part_freq = ""; } if ($part_freq == "") { return; } if (isset($_REQUEST["rec_interval"])) { $part_freq .= ";INTERVAL=" . InTVal($_REQUEST["rec_interval"]); } if (isset($_REQUEST["rec_exceptions"])) { $arr = array(); foreach ($_REQUEST["rec_exceptions"] as $except) { $arr[] = new DateTime(date("Y-m-d H:i:s", $except)); } /** @var Sabre\VObject\Property\MultiDateTime $prop */ $prop = Sabre\VObject\Property::create("EXDATE"); $prop->setDateTimes($arr); $component->add($prop); } $rrule = $part_freq . $part_until; $component->add(new Sabre\VObject\Property("RRULE", $rrule)); }
/** * Replaces the x-prop_name value. Replaces the prop_name value IF the old value is the same as the old value of x-prop_name (meaning: the user has not manually changed it) * * @param Sabre\VObject\Component $component * @param string $prop_name * @param string $prop_value * @param array $parameters * @return void */ public static function card_set_automatic_value(&$component, $prop_name, $prop_value, $parameters = array()) { $automatic = $component->select("X-" . $prop_name); $curr = $component->select($prop_name); if (count($automatic) == 0) { $prop = new Sabre\VObject\Property('X-' . $prop_name, $prop_value); foreach ($parameters as $key => $val) { $prop->add($key, $val); } $component->children[] = $prop; if (count($curr) == 0) { $prop = new Sabre\VObject\Property($prop_name, $prop_value); foreach ($parameters as $key => $val) { $prop->add($key, $val); } $component->children[] = $prop; } } else { foreach ($automatic as $auto_prop) { /** @var Sabre\VObject\Property $auto_prop */ /** @var Sabre\VObject\Property $actual_prop */ foreach ($curr as $actual_prop) { if ($auto_prop->value == $actual_prop->value) { $actual_prop->setValue($prop_value); } } $auto_prop->setValue($prop_value); } } }