summaryrefslogtreecommitdiff
path: root/modules/media_rss
diff options
context:
space:
mode:
Diffstat (limited to 'modules/media_rss')
-rw-r--r--modules/media_rss/controllers/media_rss.php15
-rw-r--r--modules/media_rss/views/feed.mrss.php28
2 files changed, 30 insertions, 13 deletions
diff --git a/modules/media_rss/controllers/media_rss.php b/modules/media_rss/controllers/media_rss.php
index e6b499ea..f88e7004 100644
--- a/modules/media_rss/controllers/media_rss.php
+++ b/modules/media_rss/controllers/media_rss.php
@@ -18,6 +18,7 @@
* Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.
*/
class Media_RSS_Controller extends Controller {
+ public static $LIMIT = 10;
public function feed($id) {
$item = ORM::factory("item", $id)->find();
if (!$item->loaded) {
@@ -27,11 +28,15 @@ class Media_RSS_Controller extends Controller {
$view = new View("feed.mrss");
$view->item = $item;
- // This should probably be a method in ORM_MPTT
- $view->children = ORM::factory("item")
- ->where("parent_id", $item->id)
- ->where("type", "photo")
- ->find_all();
+ $offset = $this->input->get("offset", 0);
+ $view->children = $item->decendents_by_type("photo", Media_RSS_Controller::$LIMIT, $offset);
+
+ if (!empty($offset)) {
+ $view->prevOffset = $offset - Media_RSS_Controller::$LIMIT;
+ }
+ if ($view->children->count() >= Media_RSS_Controller::$LIMIT) {
+ $view->nextOffset = $offset + Media_RSS_Controller::$LIMIT;
+ }
header("Content-type: application/rss+xml");
print $view;
diff --git a/modules/media_rss/views/feed.mrss.php b/modules/media_rss/views/feed.mrss.php
index 4ccde722..f4efe27d 100644
--- a/modules/media_rss/views/feed.mrss.php
+++ b/modules/media_rss/views/feed.mrss.php
@@ -11,7 +11,7 @@
<atom:link rel="previous" href="<?= url::site("media_rss/feed/{$item->id}?offset={$prevOffset}") ?>" />
<? endif; ?>
<? if (isset($nextOffset)): ?>
- <atom:link rel="next" href="href="<?= url::site("media_rss/feed/{$item->id}?offset={$nextOffset}") ?>"/>
+ <atom:link rel="next" href="<?= url::site("media_rss/feed/{$item->id}?offset={$nextOffset}") ?>"/>
<? endif; ?>
<?
// @todo do we want to add an upload date to the items table?
@@ -20,16 +20,28 @@
<pubDate><?= $date ?></pubDate>
<lastBuildDate><?= $date ?></lastBuildDate>
<? foreach ($children as $child): ?>
- <item>
+ <item> $child->resize_url(false, "http")
<title><?= $child->title ?></title>
- <link><?= $child->resize_url(false, "http") ?></link>
+ <link><?= url::site("photos/$child->id", "http") ?></link>
<guid isPermaLink="false"><?= $child->id ?></guid>
<description><?= $child->description ?></description>
- <media:content url="<?= $child->thumbnail_url(false, "http") ?>"
- type="<?= $child->mime_type ?>"
- height="<?= $child->resize_height ?>"
- width="<?= $child->resize_width ?>"
- />
+ <media:group>
+ <media:thumbnail url="<?= $child->thumbnail_url(false, "http") ?>"
+ height="<?= $child->thumbnail_height ?>"
+ width="<?= $child->thumbnail_width ?>"
+ />
+ <media:content url="<?= $child->resize_url(false, "http") ?>"
+ type="<?= $child->mime_type ?>"
+ height="<?= $child->resize_height ?>"
+ width="<?= $child->resize_width ?>"
+ isDefault="true"
+ />
+ <media:content url="<?= $child->url(false, "http") ?>"
+ type="<?= $child->mime_type ?>"
+ height="<?= $child->height ?>"
+ width="<?= $child->width ?>"
+ />
+ </media:group>
</item>
<? endforeach; ?>
</channel>