aboutsummaryrefslogtreecommitdiff
path: root/views/rss
diff options
context:
space:
mode:
Diffstat (limited to 'views/rss')
-rw-r--r--views/rss/annotation/generic_comment.php33
-rw-r--r--views/rss/extensions/tidypics/channel.php1
-rw-r--r--views/rss/extensions/tidypics/xmlns.php1
-rw-r--r--views/rss/group/default.php37
-rw-r--r--views/rss/object/album.php59
-rw-r--r--views/rss/object/default.php36
-rw-r--r--views/rss/object/file.php23
-rw-r--r--views/rss/object/image.php19
-rw-r--r--views/rss/output/url.php6
-rw-r--r--views/rss/page/components/creator.php14
-rw-r--r--views/rss/page/components/gallery.php8
-rw-r--r--views/rss/page/components/georss.php15
-rw-r--r--views/rss/page/components/image_block.php7
-rw-r--r--views/rss/page/components/list.php14
-rw-r--r--views/rss/page/default.php46
-rw-r--r--views/rss/page/elements/comments.php13
-rw-r--r--views/rss/page/layouts/default.php5
-rw-r--r--views/rss/river/item.php35
-rw-r--r--views/rss/tidypics/content_wrapper.php2
-rw-r--r--views/rss/tidypics/gallery.php16
-rw-r--r--views/rss/user/default.php34
21 files changed, 303 insertions, 121 deletions
diff --git a/views/rss/annotation/generic_comment.php b/views/rss/annotation/generic_comment.php
new file mode 100644
index 000000000..de652fc8e
--- /dev/null
+++ b/views/rss/annotation/generic_comment.php
@@ -0,0 +1,33 @@
+<?php
+/**
+ * Elgg RSS view for a generic_comment annotation
+ *
+ * @package Elgg
+ * @subpackage Core
+ */
+
+$annotation = $vars['annotation'];
+
+$poster = $annotation->getOwnerEntity();
+$poster_name = htmlspecialchars($poster->name, ENT_NOQUOTES, 'UTF-8');
+$pubdate = date('r', $annotation->getTimeCreated());
+$permalink = $annotation->getURL();
+
+$title = elgg_echo('generic_comment:title', array($poster_name));
+
+$creator = elgg_view('page/components/creator', array('entity' => $annotation));
+$extensions = elgg_view('extensions/item', $vars);
+
+$item = <<<__HTML
+<item>
+ <guid isPermaLink='true'>$permalink</guid>
+ <pubDate>$pubdate</pubDate>
+ <link>$permalink</link>
+ <title><![CDATA[$title]]></title>
+ <description><![CDATA[{$vars['annotation']->value}]]></description>
+ $creator$extensions
+</item>
+
+__HTML;
+
+echo $item;
diff --git a/views/rss/extensions/tidypics/channel.php b/views/rss/extensions/tidypics/channel.php
deleted file mode 100644
index 8b620d15d..000000000
--- a/views/rss/extensions/tidypics/channel.php
+++ /dev/null
@@ -1 +0,0 @@
-<description /> \ No newline at end of file
diff --git a/views/rss/extensions/tidypics/xmlns.php b/views/rss/extensions/tidypics/xmlns.php
deleted file mode 100644
index cb9646dcb..000000000
--- a/views/rss/extensions/tidypics/xmlns.php
+++ /dev/null
@@ -1 +0,0 @@
- xmlns:media="http://search.yahoo.com/mrss/" \ No newline at end of file
diff --git a/views/rss/group/default.php b/views/rss/group/default.php
new file mode 100644
index 000000000..7fef4d434
--- /dev/null
+++ b/views/rss/group/default.php
@@ -0,0 +1,37 @@
+<?php
+/**
+ * RSS group view
+ *
+ * @package Elgg
+ * @subpackage Core
+ */
+
+$permalink = htmlspecialchars($vars['entity']->getURL(), ENT_NOQUOTES, 'UTF-8');
+$pubdate = date('r', $vars['entity']->getTimeCreated());
+$title = htmlspecialchars($vars['entity']->name, ENT_NOQUOTES, 'UTF-8');
+
+if ($vars['entity']->description) {
+ $description = elgg_autop($vars['entity']->description);
+} elseif ($vars['entity']->briefdescription) {
+ $description = elgg_autop($vars['entity']->briefdescription);
+} else {
+ $description = '';
+}
+
+$creator = elgg_view('page/components/creator', $vars);
+$georss = elgg_view('page/components/georss', $vars);
+$extension = elgg_view('extensions/item', $vars);
+
+$item = <<<__HTML
+<item>
+ <guid isPermaLink="true">$permalink</guid>
+ <pubDate>$pubdate</pubDate>
+ <link>$permalink</link>
+ <title><![CDATA[$title]]></title>
+ <description><![CDATA[$description]]></description>
+ $creator$georss$extension
+</item>
+
+__HTML;
+
+echo $item;
diff --git a/views/rss/object/album.php b/views/rss/object/album.php
deleted file mode 100644
index 8df98cf7a..000000000
--- a/views/rss/object/album.php
+++ /dev/null
@@ -1,59 +0,0 @@
-<?php
- /**
- * Tidypics Album RSS View
- */
-
-// for now catch the albums view and ignore it
-if (get_context() == "search" && get_input('search_viewtype') == "gallery") {
-?>
- <item>
- <guid isPermaLink='true'><?php echo $vars['entity']->getURL(); ?></guid>
- <pubDate><?php echo date("r",$vars['entity']->time_created) ?></pubDate>
- <link><?php echo $vars['entity']->getURL(); ?></link>
- <title><![CDATA[<?php echo $vars['entity']->title; ?>]]></title>
- <description><![CDATA[<?php echo (autop($vars['entity']->description)); ?>]]></description>
- </item>
-
-<?php
-} else {
-
- $album = $vars['entity'];
-
- // use fullsize image
- $base_url_fullsize = $vars['url'] . 'pg/photos/download/';
-
- $album_cover_guid = $album->getCoverImageGuid();
- if ($album_cover_guid) {
- // Set title
- $vars['title'] = $album->title;
- if (empty($vars['title'])) {
- $title = $vars['config']->sitename;
- } else if (empty($vars['config']->sitename)) {
- $title = $vars['title'];
- } else {
- $title = $vars['config']->sitename . ": " . $vars['title'];
- }
- $album_cover_url = $vars['url'] . 'mod/tidypics/thumbnail.php?file_guid=' . $album_cover_guid . '&amp;size=thumb';
-?> <image>
- <url><?php echo $album_cover_url; ?></url>
- <title><![CDATA[<?php echo $title; ?>]]></title>
- <link><?php echo $album->getURL() . '?view=rss'; ?></link>
- </image>
-<?php
- }
-
- $limit = get_input('limit', 20);
-
- $images = elgg_get_entities(array(
- "type" => "object",
- "subtype" => "image",
- "container_guid" => $album->guid,
- "limit" => $limit,
- ));
-
-
- foreach ($images as $image) {
- echo elgg_view_entity($image);
- }
-
-}
diff --git a/views/rss/object/default.php b/views/rss/object/default.php
new file mode 100644
index 000000000..8c7d5d8e0
--- /dev/null
+++ b/views/rss/object/default.php
@@ -0,0 +1,36 @@
+<?php
+/**
+ * RSS object view
+ *
+ * @package Elgg
+ * @subpackage Core
+ */
+
+$title = $vars['entity']->title;
+if (empty($title)) {
+ $title = strip_tags($vars['entity']->description);
+ $title = elgg_get_excerpt($title, 32);
+}
+
+$permalink = htmlspecialchars($vars['entity']->getURL(), ENT_NOQUOTES, 'UTF-8');
+$pubdate = date('r', $vars['entity']->getTimeCreated());
+
+$description = elgg_autop($vars['entity']->description);
+
+$creator = elgg_view('page/components/creator', $vars);
+$georss = elgg_view('page/components/georss', $vars);
+$extension = elgg_view('extensions/item', $vars);
+
+$item = <<<__HTML
+<item>
+ <guid isPermaLink="true">$permalink</guid>
+ <pubDate>$pubdate</pubDate>
+ <link>$permalink</link>
+ <title><![CDATA[$title]]></title>
+ <description><![CDATA[$description]]></description>
+ $creator$georss$extension
+</item>
+
+__HTML;
+
+echo $item;
diff --git a/views/rss/object/file.php b/views/rss/object/file.php
deleted file mode 100644
index 1ede661ad..000000000
--- a/views/rss/object/file.php
+++ /dev/null
@@ -1,23 +0,0 @@
-<?php
-
-/**
- * Tidypics RSS file object view - need to look into removing download link based on settings
- */
-
-$title = $vars['entity']->title;
-if (empty($title)) {
- $title = substr($vars['entity']->description,0,32);
- if (strlen($vars['entity']->description) > 32) {
- $title .= " ...";
- }
-}
-?>
-
- <item>
- <guid isPermaLink='true'><?php echo $vars['entity']->getURL(); ?></guid>
- <pubDate><?php echo date("r",$vars['entity']->time_created) ?></pubDate>
- <link><?php echo $vars['entity']->getURL(); ?></link>
- <title><![CDATA[<?php echo $title; ?>]]></title>
- <description><![CDATA[<?php echo (autop($vars['entity']->description)); ?>]]></description>
- <enclosure url="<?php echo $vars['url']; ?>pg/photos/download/<?php echo $vars['entity']->getGUID(); ?>/" length="<?php echo $vars['entity']->size(); ?>" type="<?php echo $vars['entity']->getMimeType(); ?>" />
- </item>
diff --git a/views/rss/object/image.php b/views/rss/object/image.php
deleted file mode 100644
index b93592081..000000000
--- a/views/rss/object/image.php
+++ /dev/null
@@ -1,19 +0,0 @@
-<?php
-
-$title = $vars['entity']->title;
-$descr = $vars['entity']->description;
-$download = $vars['url'] . 'pg/photos/download/' . $vars['entity']->guid . '/inline/';
-$base_url = $vars['url'] . 'mod/tidypics/thumbnail.php?file_guid=';
-?>
-
- <item>
- <title><?php echo $title; ?></title>
- <link><?php echo $base_url . $vars['entity']->guid . '&amp;size=large'; ?></link>
- <description><?php echo htmlentities($descr, ENT_QUOTES); ?></description>
- <pubDate><?php echo date("r", $vars['entity']->time_created); ?></pubDate>
- <guid isPermaLink="true"><?php echo $vars['entity']->getURL(); ?></guid>
- <media:content url="<?php echo $download; ?>" medium="image" type="<?php echo $vars['entity']->getMimeType(); ?>" />
- <media:title><?php echo $title; ?></media:title>
- <media:description><?php echo htmlentities($descr); ?></media:description>
- <media:thumbnail url="<?php echo $base_url . $vars['entity']->guid . '&amp;size=thumb'; ?>"></media:thumbnail>
- </item> \ No newline at end of file
diff --git a/views/rss/output/url.php b/views/rss/output/url.php
new file mode 100644
index 000000000..b0f4d9792
--- /dev/null
+++ b/views/rss/output/url.php
@@ -0,0 +1,6 @@
+<?php
+/**
+ * RSS url output view
+ *
+ */
+echo elgg_view('output/url', $vars, false, false, 'default');
diff --git a/views/rss/page/components/creator.php b/views/rss/page/components/creator.php
new file mode 100644
index 000000000..a14f1dbca
--- /dev/null
+++ b/views/rss/page/components/creator.php
@@ -0,0 +1,14 @@
+<?php
+/**
+ * Creator view
+ *
+ * Implements Dublin Core creator
+ *
+ * @uses $vars['entity']
+ */
+
+$owner = $vars['entity']->getOwnerEntity();
+if ($owner) {
+ $owner_name = htmlspecialchars($owner->name, ENT_NOQUOTES, 'UTF-8');
+ echo "<dc:creator>$owner_name</dc:creator>";
+}
diff --git a/views/rss/page/components/gallery.php b/views/rss/page/components/gallery.php
new file mode 100644
index 000000000..690416e5b
--- /dev/null
+++ b/views/rss/page/components/gallery.php
@@ -0,0 +1,8 @@
+<?php
+/*
+ * RSS gallery view
+ *
+ * @uses $vars['items']
+ */
+
+echo elgg_view('page/components/list', $vars);
diff --git a/views/rss/page/components/georss.php b/views/rss/page/components/georss.php
new file mode 100644
index 000000000..d176b8cac
--- /dev/null
+++ b/views/rss/page/components/georss.php
@@ -0,0 +1,15 @@
+<?php
+/**
+ * GeoRSS view
+ *
+ * This implements GeoRSS-Simple
+ *
+ * @uses $vars['entity']
+ */
+
+$longitude = $vars['entity']->getLongitude();
+$latitude = $vars['entity']->getLatitude();
+
+if ($vars['entity'] instanceof Locatable && $longitude && $latitude) {
+ echo "<georss:point>$latitude $longitude</georss:point>";
+}
diff --git a/views/rss/page/components/image_block.php b/views/rss/page/components/image_block.php
new file mode 100644
index 000000000..ff94bcff2
--- /dev/null
+++ b/views/rss/page/components/image_block.php
@@ -0,0 +1,7 @@
+<?php
+/**
+ * RSS image block view
+ *
+ * Only display the body
+ */
+echo $vars['body']; \ No newline at end of file
diff --git a/views/rss/page/components/list.php b/views/rss/page/components/list.php
new file mode 100644
index 000000000..2650fc006
--- /dev/null
+++ b/views/rss/page/components/list.php
@@ -0,0 +1,14 @@
+<?php
+/**
+ * RSS list view
+ *
+ * @uses $vars['items']
+ */
+
+$items = $vars['items'];
+
+if (is_array($items) && sizeof($items) > 0) {
+ foreach ($items as $item) {
+ echo elgg_view_list_item($item, $vars);
+ }
+} \ No newline at end of file
diff --git a/views/rss/page/default.php b/views/rss/page/default.php
new file mode 100644
index 000000000..a7b757760
--- /dev/null
+++ b/views/rss/page/default.php
@@ -0,0 +1,46 @@
+<?php
+/**
+ * Elgg RSS output pageshell
+ *
+ * @package Elgg.Core
+ *
+ * @uses $vars['title'] The title of the RSS feed
+ * @uses $vars['body'] The items for the RSS feed as a string
+ * @uses $vars['descrption'] The description for the RSS feed
+ */
+
+// Set title
+if (empty($vars['title'])) {
+ $title = elgg_get_config('sitename');
+} else {
+ $title = elgg_get_config('sitename') . ": " . $vars['title'];
+}
+
+// Remove RSS from URL
+$url = str_replace('?view=rss', '', current_page_url());
+$url = str_replace('&view=rss', '', $url);
+$url = htmlspecialchars($url, ENT_NOQUOTES, 'UTF-8');
+
+$body = elgg_extract('body', $vars, '');
+$description = elgg_extract('description', $vars, '');
+
+$namespaces = elgg_view('extensions/xmlns');
+$extensions = elgg_view('extensions/channel');
+
+
+// allow caching as required by stupid MS products for https feeds.
+header('Pragma: public', true);
+header("Content-Type: text/xml");
+
+echo "<?xml version='1.0'?>";
+echo <<<END
+<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:georss="http://www.georss.org/georss" $namespaces>
+<channel>
+ <title><![CDATA[$title]]></title>
+ <link>$url</link>
+ <description><![CDATA[$description]]></description>
+ $extensions
+ $body
+</channel>
+</rss>
+END;
diff --git a/views/rss/page/elements/comments.php b/views/rss/page/elements/comments.php
new file mode 100644
index 000000000..9c655ffef
--- /dev/null
+++ b/views/rss/page/elements/comments.php
@@ -0,0 +1,13 @@
+<?php
+/**
+ * RSS comments view
+ *
+ * @uses $vars['entity']
+ */
+
+$options = array(
+ 'guid' => $vars['entity']->getGUID(),
+ 'annotation_name' => 'generic_comment',
+ 'order_by' => 'n_table.time_created desc',
+);
+echo elgg_list_annotations($options);
diff --git a/views/rss/page/layouts/default.php b/views/rss/page/layouts/default.php
new file mode 100644
index 000000000..7f3ddebbd
--- /dev/null
+++ b/views/rss/page/layouts/default.php
@@ -0,0 +1,5 @@
+<?php
+/**
+ * RSS layout shell
+ */
+echo $vars['content']; \ No newline at end of file
diff --git a/views/rss/river/item.php b/views/rss/river/item.php
new file mode 100644
index 000000000..fa2914eff
--- /dev/null
+++ b/views/rss/river/item.php
@@ -0,0 +1,35 @@
+<?php
+/**
+ * RSS river view
+ *
+ * @uses $vars['item']
+ */
+$item = $vars['item'];
+
+$name = $item->getSubjectEntity()->name;
+$name = htmlspecialchars($name, ENT_NOQUOTES, 'UTF-8');
+$title = elgg_echo('river:update', array($name));
+
+$timestamp = date('r', $item->getPostedTime());
+$body = elgg_view('river/elements/summary', $vars, false, false, 'default');
+
+
+$object = $item->getObjectEntity();
+if ($object) {
+ $url = htmlspecialchars($object->getURL());
+} else {
+ $url = elgg_normalize_url('activity');
+}
+
+$html = <<<__HTML
+<item>
+ <guid>$item->id</guid>
+ <pubDate>$timestamp</pubDate>
+ <link>$url</link>
+ <title><![CDATA[$title]]></title>
+ <description><![CDATA[$body]]></description>
+</item>
+
+__HTML;
+
+echo $html;
diff --git a/views/rss/tidypics/content_wrapper.php b/views/rss/tidypics/content_wrapper.php
deleted file mode 100644
index 0b16f2357..000000000
--- a/views/rss/tidypics/content_wrapper.php
+++ /dev/null
@@ -1,2 +0,0 @@
-<?php
-echo $vars['content'];
diff --git a/views/rss/tidypics/gallery.php b/views/rss/tidypics/gallery.php
deleted file mode 100644
index 0e90a8c44..000000000
--- a/views/rss/tidypics/gallery.php
+++ /dev/null
@@ -1,16 +0,0 @@
-<?php
-/**
- * Tidypics Listing RSS View
- */
-
-$context = $vars['context'];
-$entities = $vars['entities'];
-$count = $vars['count'];
-$baseurl = $vars['baseurl'];
-
-
-if (is_array($entities) && sizeof($entities) > 0) {
- foreach($entities as $entity) {
- echo elgg_view_entity($entity);
- }
-}
diff --git a/views/rss/user/default.php b/views/rss/user/default.php
new file mode 100644
index 000000000..92c9427b2
--- /dev/null
+++ b/views/rss/user/default.php
@@ -0,0 +1,34 @@
+<?php
+/**
+ * RSS user view
+ *
+ * @package Elgg
+ * @subpackage Core
+ */
+
+$permalink = htmlspecialchars($vars['entity']->getURL(), ENT_NOQUOTES, 'UTF-8');
+$pubdate = date('r', $vars['entity']->getTimeCreated());
+$title = htmlspecialchars($vars['entity']->name, ENT_NOQUOTES, 'UTF-8');
+
+if ($vars['entity']->description) {
+ $description = elgg_autop($vars['entity']->description);
+} else {
+ $description = '';
+}
+
+$georss = elgg_view('page/components/georss', $vars);
+$extension = elgg_view('extensions/item', $vars);
+
+$item = <<<__HTML
+<item>
+ <guid isPermaLink="true">$permalink</guid>
+ <pubDate>$pubdate</pubDate>
+ <link>$permalink</link>
+ <title><![CDATA[$title]]></title>
+ <description><![CDATA[$description]]></description>
+ $georss$extension
+</item>
+
+__HTML;
+
+echo $item;