X-Git-Url: http://www.aleph1.co.uk/gitweb/?p=yaffs-website;a=blobdiff_plain;f=vendor%2Fzendframework%2Fzend-feed%2Fsrc%2FWriter%2FExtension%2FThreading%2FRenderer%2FEntry.php;fp=vendor%2Fzendframework%2Fzend-feed%2Fsrc%2FWriter%2FExtension%2FThreading%2FRenderer%2FEntry.php;h=bf7cde51a4cb570966463e2d707389790766f995;hp=0000000000000000000000000000000000000000;hb=a2bd1bf0c2c1f1a17d188f4dc0726a45494cefae;hpb=57c063afa3f66b07c4bbddc2d6129a96d90f0aad diff --git a/vendor/zendframework/zend-feed/src/Writer/Extension/Threading/Renderer/Entry.php b/vendor/zendframework/zend-feed/src/Writer/Extension/Threading/Renderer/Entry.php new file mode 100644 index 000000000..bf7cde51a --- /dev/null +++ b/vendor/zendframework/zend-feed/src/Writer/Extension/Threading/Renderer/Entry.php @@ -0,0 +1,138 @@ +getType()) == 'rss') { + return; // Atom 1.0 only + } + $this->_setCommentLink($this->dom, $this->base); + $this->_setCommentFeedLinks($this->dom, $this->base); + $this->_setCommentCount($this->dom, $this->base); + if ($this->called) { + $this->_appendNamespaces(); + } + } + + /** + * Append entry namespaces + * + * @return void + */ + // @codingStandardsIgnoreStart + protected function _appendNamespaces() + { + // @codingStandardsIgnoreEnd + $this->getRootElement()->setAttribute( + 'xmlns:thr', + 'http://purl.org/syndication/thread/1.0' + ); + } + + /** + * Set comment link + * + * @param DOMDocument $dom + * @param DOMElement $root + * @return void + */ + // @codingStandardsIgnoreStart + protected function _setCommentLink(DOMDocument $dom, DOMElement $root) + { + // @codingStandardsIgnoreEnd + $link = $this->getDataContainer()->getCommentLink(); + if (! $link) { + return; + } + $clink = $this->dom->createElement('link'); + $clink->setAttribute('rel', 'replies'); + $clink->setAttribute('type', 'text/html'); + $clink->setAttribute('href', $link); + $count = $this->getDataContainer()->getCommentCount(); + if ($count !== null) { + $clink->setAttribute('thr:count', $count); + } + $root->appendChild($clink); + $this->called = true; + } + + /** + * Set comment feed links + * + * @param DOMDocument $dom + * @param DOMElement $root + * @return void + */ + // @codingStandardsIgnoreStart + protected function _setCommentFeedLinks(DOMDocument $dom, DOMElement $root) + { + // @codingStandardsIgnoreEnd + $links = $this->getDataContainer()->getCommentFeedLinks(); + if (! $links || empty($links)) { + return; + } + foreach ($links as $link) { + $flink = $this->dom->createElement('link'); + $flink->setAttribute('rel', 'replies'); + $flink->setAttribute('type', 'application/' . $link['type'] . '+xml'); + $flink->setAttribute('href', $link['uri']); + $count = $this->getDataContainer()->getCommentCount(); + if ($count !== null) { + $flink->setAttribute('thr:count', $count); + } + $root->appendChild($flink); + $this->called = true; + } + } + + /** + * Set entry comment count + * + * @param DOMDocument $dom + * @param DOMElement $root + * @return void + */ + // @codingStandardsIgnoreStart + protected function _setCommentCount(DOMDocument $dom, DOMElement $root) + { + // @codingStandardsIgnoreEnd + $count = $this->getDataContainer()->getCommentCount(); + if ($count === null) { + return; + } + $tcount = $this->dom->createElement('thr:total'); + $tcount->nodeValue = $count; + $root->appendChild($tcount); + $this->called = true; + } +}