RSS 1.0 actions were reading the stream from the database twice. Inefficient, but more importantly made notice search RSS fail with a DB error due to double search on a DB_DataObject instance

This commit is contained in:
CiaranG 2009-03-21 14:18:38 +00:00
parent 8ba43f18cd
commit c4072ef7c9

View File

@ -94,11 +94,11 @@ class Rss10Action extends Action
function handle($args) function handle($args)
{ {
// Get the list of notices
$this->notices = $this->getNotices();
// Parent handling, including cache check // Parent handling, including cache check
parent::handle($args); parent::handle($args);
$this->showRss($this->limit); // Get the list of notices
$this->notices = $this->getNotices($this->limit);
$this->showRss();
} }
/** /**
@ -132,15 +132,13 @@ class Rss10Action extends Action
return null; return null;
} }
function showRss($limit=0) function showRss()
{ {
$notices = $this->getNotices($limit);
$this->initRss(); $this->initRss();
$this->showChannel($notices); $this->showChannel();
$this->showImage(); $this->showImage();
foreach ($notices as $n) { foreach ($this->notices as $n) {
$this->showItem($n); $this->showItem($n);
} }
@ -148,7 +146,7 @@ class Rss10Action extends Action
$this->endRss(); $this->endRss();
} }
function showChannel($notices) function showChannel()
{ {
$channel = $this->getChannel(); $channel = $this->getChannel();
@ -167,7 +165,7 @@ class Rss10Action extends Action
$this->elementStart('items'); $this->elementStart('items');
$this->elementStart('rdf:Seq'); $this->elementStart('rdf:Seq');
foreach ($notices as $notice) { foreach ($this->notices as $notice) {
$this->element('sioct:MicroblogPost', array('rdf:resource' => $notice->uri)); $this->element('sioct:MicroblogPost', array('rdf:resource' => $notice->uri));
} }