summaryrefslogtreecommitdiff
path: root/platform/www/vendor/openpsa/universalfeedcreator/lib/Creator/RSSCreator10.php
diff options
context:
space:
mode:
Diffstat (limited to 'platform/www/vendor/openpsa/universalfeedcreator/lib/Creator/RSSCreator10.php')
-rw-r--r--platform/www/vendor/openpsa/universalfeedcreator/lib/Creator/RSSCreator10.php112
1 files changed, 112 insertions, 0 deletions
diff --git a/platform/www/vendor/openpsa/universalfeedcreator/lib/Creator/RSSCreator10.php b/platform/www/vendor/openpsa/universalfeedcreator/lib/Creator/RSSCreator10.php
new file mode 100644
index 0000000..8d0c1ca
--- /dev/null
+++ b/platform/www/vendor/openpsa/universalfeedcreator/lib/Creator/RSSCreator10.php
@@ -0,0 +1,112 @@
+<?php
+
+/**
+ * RSSCreator10 is a FeedCreator that implements RDF Site Summary (RSS) 1.0.
+ *
+ * @see http://www.purl.org/rss/1.0/
+ * @since 1.3
+ * @author Kai Blankenhorn <kaib@bitfolge.de>
+ */
+class RSSCreator10 extends FeedCreator
+{
+
+ /** @inheritdoc */
+ public function createFeed()
+ {
+ $feed = "<?xml version=\"1.0\" encoding=\"".$this->encoding."\"?>\n";
+ $feed .= $this->_createGeneratorComment();
+ if (empty($this->cssStyleSheet)) {
+ $this->cssStyleSheet = "http://www.w3.org/2000/08/w3c-synd/style.css";
+ }
+ $feed .= $this->_createStylesheetReferences();
+ $feed .= "<rdf:RDF\n";
+ $feed .= " xmlns=\"http://purl.org/rss/1.0/\"\n";
+ $feed .= " xmlns:rdf=\"http://www.w3.org/1999/02/22-rdf-syntax-ns#\"\n";
+ $feed .= " xmlns:slash=\"http://purl.org/rss/1.0/modules/slash/\"\n";
+ if (!empty($this->items[0]->thumb)) {
+ $feed .= " xmlns:photo=\"http://www.pheed.com/pheed/\"\n";
+ }
+ if (!empty($this->items[0]->lat)) {
+ $feed .= " xmlns:georss=\"http://www.georss.org/georss\"\n";
+ }
+ $feed .= " xmlns:dc=\"http://purl.org/dc/elements/1.1/\">\n";
+ $feed .= " <channel rdf:about=\"".$this->syndicationURL."\">\n";
+ $feed .= " <title>".htmlspecialchars($this->title)."</title>\n";
+ $feed .= " <description>".htmlspecialchars($this->description)."</description>\n";
+ $feed .= " <link>".$this->link."</link>\n";
+ if ($this->image != null) {
+ $feed .= " <image rdf:resource=\"".$this->image->url."\" />\n";
+ }
+ $now = new FeedDate();
+ $feed .= " <dc:date>".htmlspecialchars($now->iso8601())."</dc:date>\n";
+ $feed .= " <items>\n";
+ $feed .= " <rdf:Seq>\n";
+ for ($i = 0; $i < count($this->items); $i++) {
+ $feed .= " <rdf:li rdf:resource=\"".htmlspecialchars($this->items[$i]->link)."\"/>\n";
+ }
+ $feed .= " </rdf:Seq>\n";
+ $feed .= " </items>\n";
+ $feed .= " </channel>\n";
+ if ($this->image != null) {
+ $feed .= " <image rdf:about=\"".$this->image->url."\">\n";
+ $feed .= " <title>".$this->image->title."</title>\n";
+ $feed .= " <link>".$this->image->link."</link>\n";
+ $feed .= " <url>".$this->image->url."</url>\n";
+ $feed .= " </image>\n";
+ }
+ $feed .= $this->_createAdditionalElements($this->additionalElements, " ");
+
+ for ($i = 0; $i < count($this->items); $i++) {
+ $feed .= " <item rdf:about=\"".htmlspecialchars($this->items[$i]->link)."\">\n";
+ $feed .= " <dc:format>text/html</dc:format>\n";
+ if ($this->items[$i]->date != null) {
+ $itemDate = new FeedDate($this->items[$i]->date);
+ $feed .= " <dc:date>".htmlspecialchars($itemDate->iso8601())."</dc:date>\n";
+ }
+ if ($this->items[$i]->source != "") {
+ $feed .= " <dc:source>".htmlspecialchars($this->items[$i]->source)."</dc:source>\n";
+ }
+ $creator = $this->getAuthor($this->items[$i]->author, $this->items[$i]->authorEmail);
+ if ($creator) {
+ $feed .= " <dc:creator>".htmlspecialchars($creator)."</dc:creator>\n";
+ }
+ if ($this->items[$i]->lat != "") {
+ $feed .= " <georss:point>".$this->items[$i]->lat." ".$this->items[$i]->long."</georss:point>\n";
+ }
+ if ($this->items[$i]->thumb != "") {
+ $feed .= " <photo:thumbnail>".htmlspecialchars($this->items[$i]->thumb)."</photo:thumbnail>\n";
+ }
+ $feed .= " <title>".htmlspecialchars(
+ strip_tags(strtr($this->items[$i]->title, "\n\r", " "))
+ )."</title>\n";
+ $feed .= " <link>".htmlspecialchars($this->items[$i]->link)."</link>\n";
+ $feed .= " <description>".htmlspecialchars($this->items[$i]->description)."</description>\n";
+ $feed .= $this->_createAdditionalElements($this->items[$i]->additionalElements, " ");
+ $feed .= " </item>\n";
+ }
+ $feed .= "</rdf:RDF>\n";
+
+ return $feed;
+ }
+
+ /**
+ * Compose the RSS-1.0 author field.
+ *
+ * @author Joe Lapp <joe.lapp@pobox.com>
+ * @param string $author
+ * @param string $email
+ * @return string
+ */
+ protected function getAuthor($author, $email)
+ {
+ if ($author) {
+ if ($email) {
+ return $author.' ('.$email.')';
+ }
+
+ return $author;
+ }
+
+ return $email;
+ }
+}