id = $id; $this->type = $type; $this->description = $description; $this->href = $href; $this->etag = $etag; } /** * Serializes the notification as a single property. * * You should usually just encode the single top-level element of the * notification. * * @param Sabre_DAV_Server $server * @param DOMElement $node * @return void */ public function serialize(Sabre_DAV_Server $server, \DOMElement $node) { switch($this->type) { case self::TYPE_LOW : $type = 'low'; break; case self::TYPE_MEDIUM : $type = 'medium'; break; default : case self::TYPE_HIGH : $type = 'high'; break; } $prop = $node->ownerDocument->createElement('cs:systemstatus'); $prop->setAttribute('type', $type); $node->appendChild($prop); } /** * This method serializes the entire notification, as it is used in the * response body. * * @param Sabre_DAV_Server $server * @param DOMElement $node * @return void */ public function serializeBody(Sabre_DAV_Server $server, \DOMElement $node) { switch($this->type) { case self::TYPE_LOW : $type = 'low'; break; case self::TYPE_MEDIUM : $type = 'medium'; break; default : case self::TYPE_HIGH : $type = 'high'; break; } $prop = $node->ownerDocument->createElement('cs:systemstatus'); $prop->setAttribute('type', $type); if ($this->description) { $text = $node->ownerDocument->createTextNode($this->description); $desc = $node->ownerDocument->createElement('cs:description'); $desc->appendChild($text); $prop->appendChild($desc); } if ($this->href) { $text = $node->ownerDocument->createTextNode($this->href); $href = $node->ownerDocument->createElement('d:href'); $href->appendChild($text); $prop->appendChild($href); } $node->appendChild($prop); } /** * Returns a unique id for this notification * * This is just the base url. This should generally be some kind of unique * id. * * @return string */ public function getId() { return $this->id; } /* * Returns the ETag for this notification. * * The ETag must be surrounded by literal double-quotes. * * @return string */ public function getETag() { return $this->etag; } }