X-Git-Url: http://www.aleph1.co.uk/gitweb/?a=blobdiff_plain;f=vendor%2Fzendframework%2Fzend-feed%2Fsrc%2FReader%2FExtension%2FAbstractEntry.php;fp=vendor%2Fzendframework%2Fzend-feed%2Fsrc%2FReader%2FExtension%2FAbstractEntry.php;h=54df33e4c6c75c90fd5a1f3d6cad395dcfd72267;hb=a2bd1bf0c2c1f1a17d188f4dc0726a45494cefae;hp=0000000000000000000000000000000000000000;hpb=57c063afa3f66b07c4bbddc2d6129a96d90f0aad;p=yaffs-website diff --git a/vendor/zendframework/zend-feed/src/Reader/Extension/AbstractEntry.php b/vendor/zendframework/zend-feed/src/Reader/Extension/AbstractEntry.php new file mode 100644 index 000000000..54df33e4c --- /dev/null +++ b/vendor/zendframework/zend-feed/src/Reader/Extension/AbstractEntry.php @@ -0,0 +1,233 @@ +entry = $entry; + $this->domDocument = $entry->ownerDocument; + return $this; + } + + /** + * Get the entry DOMElement + * + * @return DOMElement + */ + public function getEntryElement() + { + return $this->entry; + } + + /** + * Set the entry key + * + * @param string $entryKey + * @return AbstractEntry + */ + public function setEntryKey($entryKey) + { + $this->entryKey = $entryKey; + return $this; + } + + /** + * Get the DOM + * + * @return DOMDocument + */ + public function getDomDocument() + { + return $this->domDocument; + } + + /** + * Get the Entry's encoding + * + * @return string + */ + public function getEncoding() + { + $assumed = $this->getDomDocument()->encoding; + return $assumed; + } + + /** + * Set the entry type + * + * Has side effect of setting xpath prefix + * + * @param string $type + * @return AbstractEntry + */ + public function setType($type) + { + if (null === $type) { + $this->data['type'] = null; + return $this; + } + + $this->data['type'] = $type; + if ($type === Reader\Reader::TYPE_RSS_10 + || $type === Reader\Reader::TYPE_RSS_090 + ) { + $this->setXpathPrefix('//rss:item[' . ((int)$this->entryKey + 1) . ']'); + return $this; + } + + if ($type === Reader\Reader::TYPE_ATOM_10 + || $type === Reader\Reader::TYPE_ATOM_03 + ) { + $this->setXpathPrefix('//atom:entry[' . ((int)$this->entryKey + 1) . ']'); + return $this; + } + + $this->setXpathPrefix('//item[' . ((int)$this->entryKey + 1) . ']'); + return $this; + } + + /** + * Get the entry type + * + * @return string + */ + public function getType() + { + $type = $this->data['type']; + if ($type === null) { + $type = Reader\Reader::detectType($this->getEntryElement(), true); + $this->setType($type); + } + + return $type; + } + + /** + * Set the XPath query + * + * @param DOMXPath $xpath + * @return AbstractEntry + */ + public function setXpath(DOMXPath $xpath) + { + $this->xpath = $xpath; + $this->registerNamespaces(); + return $this; + } + + /** + * Get the XPath query object + * + * @return DOMXPath + */ + public function getXpath() + { + if (! $this->xpath) { + $this->setXpath(new DOMXPath($this->getDomDocument())); + } + return $this->xpath; + } + + /** + * Serialize the entry to an array + * + * @return array + */ + public function toArray() + { + return $this->data; + } + + /** + * Get the XPath prefix + * + * @return string + */ + public function getXpathPrefix() + { + return $this->xpathPrefix; + } + + /** + * Set the XPath prefix + * + * @param string $prefix + * @return AbstractEntry + */ + public function setXpathPrefix($prefix) + { + $this->xpathPrefix = $prefix; + return $this; + } + + /** + * Register XML namespaces + * + * @return void + */ + abstract protected function registerNamespaces(); +}