Fixes on feeds:
authorx2003bruneau <x2003bruneau@9869982d-c50d-0410-be91-f2a2ec7c7c7b>
Sun, 25 Feb 2007 20:39:38 +0000 (20:39 +0000)
committerFlorent Bruneau <florent.bruneau@polytechnique.org>
Fri, 4 Jan 2008 23:35:33 +0000 (00:35 +0100)
-> fix feed-merger
-> put feed description into a <![CDATA[ ]]>

git-svn-id: svn+ssh://murphy/home/svn/banana/trunk@217 9869982d-c50d-0410-be91-f2a2ec7c7c7b

banana/feed.inc.php
banana/templates/banana-feed-rss2.tpl

index e4b3f90..4befd83 100644 (file)
@@ -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()
index b1543b4..7a3624c 100644 (file)
@@ -4,7 +4,7 @@
     <title>{$title_prefix}{$feed->group}</title>
     <language>{$language}</language>
     <link>{url group=$group}</link>
-    <description>{$feed->description}</description>
+    <description><![CDATA[{$feed->description}]]></description>
     {foreach from=$feed->messages key=id item=message}
     <item>
       <title><![CDATA[{$message.title}]]></title>