components = $components; } /** * Returns the list of supported components * * @return array */ public function getValue() { return $this->components; } /** * Serializes the property in a DOMDocument * * @param Sabre_DAV_Server $server * @param DOMElement $node * @return void */ public function serialize(Sabre_DAV_Server $server,DOMElement $node) { $doc = $node->ownerDocument; foreach($this->components as $component) { $xcomp = $doc->createElement('cal:comp'); $xcomp->setAttribute('name',$component); $node->appendChild($xcomp); } } /** * Unserializes the DOMElement back into a Property class. * * @param DOMElement $node * @return Sabre_CalDAV_Property_SupportedCalendarComponentSet */ static function unserialize(DOMElement $node) { $components = array(); foreach($node->childNodes as $childNode) { if (Sabre_DAV_XMLUtil::toClarkNotation($childNode)==='{' . Sabre_CalDAV_Plugin::NS_CALDAV . '}comp') { $components[] = $childNode->getAttribute('name'); } } return new self($components); } }