summaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
authorGregor Tätzner <gregor@freenet.de>2012-08-02 18:52:33 +0200
committerGregor Tätzner <gregor@freenet.de>2012-08-02 18:52:33 +0200
commitbdc51593245f6495bbd7e198c5dcda8072497e12 (patch)
treeb9fb41b454d647b49ff4af41294232c7152a4f8a /lib
parent1cc2f0c7f0317fc5b1a0f19a147538f51927984e (diff)
Add feed to feed list instantly on feed adding
Reload is no longer necessary. There are still some issues - especially the order of the feeds: atm the feed is just inserted at the beginning
Diffstat (limited to 'lib')
-rw-r--r--lib/foldermapper.php15
-rw-r--r--lib/utils.php10
2 files changed, 14 insertions, 11 deletions
diff --git a/lib/foldermapper.php b/lib/foldermapper.php
index 19d7e56a5..b875f1369 100644
--- a/lib/foldermapper.php
+++ b/lib/foldermapper.php
@@ -34,6 +34,15 @@ class OC_News_FolderMapper {
*/
public function populate($name, $id){
$root = new OC_News_Folder($name, $id);
+
+ // first add child feeds
+ $feedmapper = new OC_News_FeedMapper();
+ $feeds = $feedmapper->findByFolderId($id);
+ foreach ($feeds as $feed){
+ $root->addChild($feed);
+ }
+
+ // and second child folders
$stmt = OCP\DB::prepare('SELECT *
FROM ' . self::tableName .
' WHERE user_id = ? AND parent_id = ?');
@@ -44,12 +53,6 @@ class OC_News_FolderMapper {
$root->addChild($child);
}
- $feedmapper = new OC_News_FeedMapper();
- $feeds = $feedmapper->findByFolderId($id);
- foreach ($feeds as $feed){
- $root->addChild($feed);
- }
-
return $root;
}
diff --git a/lib/utils.php b/lib/utils.php
index ce7712e9a..b7750e71a 100644
--- a/lib/utils.php
+++ b/lib/utils.php
@@ -19,22 +19,22 @@ class OC_News_Utils {
/**
* @brief Fetch a feed from remote
* @param url remote url of the feed
- * @returns
+ * @returns an instance of OC_News_Feed
*/
public static function fetch($url){
$spfeed = new SimplePie_Core();
$spfeed->set_feed_url( $url );
$spfeed->enable_cache( false );
-
+
if (!$spfeed->init()) {
return null;
}
-
+
//I understand this try-catch sucks, but SimplePie gives weird errors sometimes
try {
$spfeed->handle_content_type();
$title = $spfeed->get_title();
-
+
$items = array();
if ($spitems = $spfeed->get_items()) {
foreach($spitems as $spitem) { //FIXME: maybe we can avoid this loop
@@ -45,7 +45,7 @@ class OC_News_Utils {
$items[] = new OC_News_Item($itemUrl, $itemTitle, $itemGUID, $itemBody);
}
}
-
+
$feed = new OC_News_Feed($url, $title, $items);
$favicon = $spfeed->get_image_url();