diff options
author | Gregor Tätzner <gregor@freenet.de> | 2012-08-03 23:32:35 +0200 |
---|---|---|
committer | Gregor Tätzner <gregor@freenet.de> | 2012-08-03 23:32:35 +0200 |
commit | 7ebeeacf49a2d00d90a15d2eb359e1fb1c6b7715 (patch) | |
tree | 8a7cbc1eb42d6c2d21024f5fa21fc39609730f1f /lib/feedmapper.php | |
parent | fbcac103cf685326f5a873760998672c7f93f039 (diff) |
Fixed deletion of feed items on folder removal
Diffstat (limited to 'lib/feedmapper.php')
-rw-r--r-- | lib/feedmapper.php | 18 |
1 files changed, 13 insertions, 5 deletions
diff --git a/lib/feedmapper.php b/lib/feedmapper.php index 274b28bb8..4e3987a17 100644 --- a/lib/feedmapper.php +++ b/lib/feedmapper.php @@ -69,7 +69,7 @@ class OC_News_FeedMapper { /** * @brief Retrieve a feed from the database * @param id The id of the feed in the database table. - * @returns + * @returns an instance of OC_News_Feed */ public function findByFolderId($folderid){ $stmt = OCP\DB::prepare('SELECT * FROM ' . self::tableName . ' WHERE folder_id = ?'); @@ -91,7 +91,7 @@ class OC_News_FeedMapper { /** * @brief Retrieve a feed and all its items from the database * @param id The id of the feed in the database table. - * @returns + * @returns an instance of OC_News_Feed */ public function findWithItems($id){ $stmt = OCP\DB::prepare('SELECT * FROM ' . self::tableName . ' WHERE id = ?'); @@ -218,13 +218,21 @@ class OC_News_FeedMapper { if ($folderid == null) { return false; } - $stmt = OCP\DB::prepare('DELETE FROM ' . self::tableName .' WHERE folder_id = ?'); + + // delete items + $itemMapper = new OC_News_ItemMapper(); + $stmt = OCP\DB::prepare('SELECT ' . self::tableName . '.id FROM ' . self::tableName .' INNER JOIN ' . OC_News_ItemMapper::tableName . + ' ON ' . self::tableName . '.id = ' . OC_News_ItemMapper::tableName . '.feed_id WHERE folder_id = ?'); $result = $stmt->execute(array($folderid)); + while ($row = $result->fetchRow()) { + $itemMapper->deleteAll($row['id']); + } - $itemMapper = new OC_News_ItemMapper(); + // delete feeds + $stmt = OCP\DB::prepare('DELETE FROM ' . self::tableName .' WHERE folder_id = ?'); + $result = $stmt->execute(array($folderid)); //TODO: handle the value that the execute returns - $itemMapper->deleteAll($folderid); return true; } |