diff options
| author | 2012-10-21 18:47:57 +0200 | |
|---|---|---|
| committer | 2012-10-21 18:47:57 +0200 | |
| commit | fb57be5a5af3a2fb46b2dbf2b503ffe78eb5cf49 (patch) | |
| tree | 9440fc7846d8a56a7005b9ef029669c96ad959aa /app/controllers/feedController.php | |
First commit
Diffstat (limited to 'app/controllers/feedController.php')
| -rwxr-xr-x | app/controllers/feedController.php | 89 |
1 files changed, 89 insertions, 0 deletions
diff --git a/app/controllers/feedController.php b/app/controllers/feedController.php new file mode 100755 index 000000000..3b4a90b64 --- /dev/null +++ b/app/controllers/feedController.php @@ -0,0 +1,89 @@ +<?php + +class feedController extends ActionController { + public function addAction () { + if (Request::isPost ()) { + $url = Request::param ('url_rss'); + + try { + $feed = new Feed ($url); + $entries = $feed->loadEntries (); + $feed_entries = array (); + + if ($entries !== false) { + $entryDAO = new EntryDAO (); + + foreach ($entries as $entry) { + $values = array ( + 'id' => $entry->id (), + 'guid' => $entry->guid (), + 'title' => $entry->title (), + 'author' => $entry->author (), + 'content' => $entry->content (), + 'link' => $entry->link (), + 'date' => $entry->date (true), + 'is_read' => $entry->isRead (), + 'is_favorite' => $entry->isFavorite (), + ); + $entryDAO->addEntry ($values); + + $feed_entries[] = $entry->id (); + } + } + + $feedDAO = new FeedDAO (); + $values = array ( + 'id' => $feed->id (), + 'url' => $feed->url (), + 'categories' => $feed->categories (), + 'entries' => $feed_entries + ); + $feedDAO->addFeed ($values); + } catch (Exception $e) { + // TODO ajouter une erreur : url non valide + } + + Request::forward (array (), true); + } + } + + public function actualizeAction () { + $feedDAO = new FeedDAO (); + $entryDAO = new EntryDAO (); + + $feeds = $feedDAO->listFeeds (); + + foreach ($feeds as $feed) { + $entries = $feed->loadEntries (); + $feed_entries = $feed->entries (); + + if ($entries !== false) { + foreach ($entries as $entry) { + $values = array ( + 'id' => $entry->id (), + 'guid' => $entry->guid (), + 'title' => $entry->title (), + 'author' => $entry->author (), + 'content' => $entry->content (), + 'link' => $entry->link (), + 'date' => $entry->date (true), + 'is_read' => $entry->isRead (), + 'is_favorite' => $entry->isFavorite (), + ); + $entryDAO->addEntry ($values); + + if (!in_array ($entry->id (), $feed_entries)) { + $feed_entries[] = $entry->id (); + } + } + } + + $values = array ( + 'entries' => $feed_entries + ); + $feedDAO->updateFeed ($values); + } + + Request::forward (array (), true); + } +} |
