From: x2003bruneau Date: Sun, 25 Feb 2007 20:39:38 +0000 (+0000) Subject: Fixes on feeds: X-Git-Tag: 1.8~87 X-Git-Url: http://git.polytechnique.org/?a=commitdiff_plain;h=8879bc6c6ef4047833bf888949738ce1aad110c8;p=banana.git Fixes on feeds: -> fix feed-merger -> put feed description into a git-svn-id: svn+ssh://murphy/home/svn/banana/trunk@217 9869982d-c50d-0410-be91-f2a2ec7c7c7b --- diff --git a/banana/feed.inc.php b/banana/feed.inc.php index e4b3f90..4befd83 100644 --- a/banana/feed.inc.php +++ b/banana/feed.inc.php @@ -75,6 +75,7 @@ class BananaFeed } $this->messages[$key] = $array; } + uasort($this->messages, Array('BananaFeed', 'compare')); $this->writeToFile(); } @@ -156,22 +157,31 @@ class BananaFeed return $master; } $messages = array(); - $m1 = reset($master->messages); - $m2 = reset($slave->messages); + $m1 = end($master->messages); + $m2 = end($slave->messages); for ($i = 0 ; $i < 2 * Banana::$feed_size && ($m1 || $m2) ; $i++) { if ($m2 && (!$m1 || $m1['date'] < $m2['date'])) { $m2['title'] = '[' . $feed2->group . '] ' . $m2['title']; $messages[$slave->group . '-' . key($slave->messages)] = $m2; - $m2 = next($slave->messages); + $m2 = prev($slave->messages); } else { $messages[key($master->messages)] = $m1; - $m1 = next($master->messages); + $m1 = prev($master->messages); } } + uasort($messages, array('BananaFeed', 'compare')); $master->messages =& $messages; return $master; } + static function compare($a, $b) + { + if ($a['date'] == $b['date']) { + return 0; + } + return $a['date'] < $b['date'] ? -1 : 1; + } + /** Generate the feed xml */ public function toXML() diff --git a/banana/templates/banana-feed-rss2.tpl b/banana/templates/banana-feed-rss2.tpl index b1543b4..7a3624c 100644 --- a/banana/templates/banana-feed-rss2.tpl +++ b/banana/templates/banana-feed-rss2.tpl @@ -4,7 +4,7 @@ {$title_prefix}{$feed->group} {$language} {url group=$group} - {$feed->description} + description}]]> {foreach from=$feed->messages key=id item=message} <![CDATA[{$message.title}]]>