diff --git a/app/controllers/configureController.php b/app/controllers/configureController.php index 5642ef547..c501e5242 100755 --- a/app/controllers/configureController.php +++ b/app/controllers/configureController.php @@ -88,4 +88,26 @@ class configureController extends ActionController { Session::_param ('conf', $this->view->conf); } } + + public function importExportAction () { + $this->view->req = Request::param ('q'); + + if ($this->view->req == 'export') { + View::_title ('feeds_opml.xml'); + + $this->view->_useLayout (false); + header('Content-type: text/xml'); + + $feedDAO = new FeedDAO (); + $this->view->feeds = $feedDAO->listFeeds (); + } elseif (Request::isPost ()) { + if ($_FILES['file']['error'] == 0) { + $content = file_get_contents ($_FILES['file']['tmp_name']); + $feeds = opml_import ($content); + + Request::_param ('feeds', $feeds); + Request::forward (array ('c' => 'feed', 'a' => 'massiveInsert')); + } + } + } } diff --git a/app/controllers/feedController.php b/app/controllers/feedController.php index 5bf7d9ec6..0a56af2ac 100755 --- a/app/controllers/feedController.php +++ b/app/controllers/feedController.php @@ -95,4 +95,24 @@ class feedController extends ActionController { Request::forward (array (), true); } + + public function massiveImport () { + $feedDAO = new FeedDAO (); + $feeds = Request::param ('feeds', array ()); + + foreach ($feeds as $feed) { + $values = array ( + 'id' => $feed->id (), + 'url' => $feed->url (), + 'category' => $feed->category (), + 'entries' => array (), + 'name' => $feed->name (), + 'website' => $feed->website (), + 'description' => $feed->description (), + ); + $feedDAO->addFeed ($values); + } + + Request::forward (array ('c' => 'configure', 'a' => 'importExport')); + } } diff --git a/app/controllers/javascriptController.php b/app/controllers/javascriptController.php index 8a2f4e761..8060f560c 100755 --- a/app/controllers/javascriptController.php +++ b/app/controllers/javascriptController.php @@ -3,6 +3,7 @@ class javascriptController extends ActionController { public function firstAction () { $this->view->_useLayout (false); + header('Content-type: text/javascript'); } public function mainAction () { diff --git a/app/layout/aside.phtml b/app/layout/aside.phtml index db4c482c1..b154c5ea3 100644 --- a/app/layout/aside.phtml +++ b/app/layout/aside.phtml @@ -30,6 +30,9 @@