コード例 #1
0
ファイル: vobject.php プロジェクト: olucao/owncloud-core
 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]);
 }
コード例 #2
0
ファイル: SlashRTest.php プロジェクト: TamirAl/hubzilla
 function testEncode()
 {
     $prop = new \Sabre\VObject\Property('test', "abc\r\ndef");
     $this->assertEquals("TEST:abc\\ndef\r\n", $prop->serialize());
 }
コード例 #3
0
/**
 * @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));
}
コード例 #4
0
 /**
  * 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);
         }
     }
 }