summaryrefslogtreecommitdiff
path: root/app/controllers/configureController.php
diff options
context:
space:
mode:
Diffstat (limited to 'app/controllers/configureController.php')
-rwxr-xr-xapp/controllers/configureController.php33
1 files changed, 25 insertions, 8 deletions
diff --git a/app/controllers/configureController.php b/app/controllers/configureController.php
index 2f56da177..8500a4a04 100755
--- a/app/controllers/configureController.php
+++ b/app/controllers/configureController.php
@@ -218,14 +218,31 @@ class configureController extends ActionController {
} elseif ($this->view->req == 'import' && Request::isPost ()) {
if ($_FILES['file']['error'] == 0) {
// on parse le fichier OPML pour récupérer les catégories et les flux associés
- list ($categories, $feeds) = opml_import (file_get_contents ($_FILES['file']['tmp_name']));
-
- // On redirige vers le controller feed qui va se charger d'insérer les flux en BDD
- // les flux sont mis au préalable dans des variables de Request
- Request::_param ('q', 'null');
- Request::_param ('categories', $categories);
- Request::_param ('feeds', $feeds);
- Request::forward (array ('c' => 'feed', 'a' => 'massiveImport'));
+ try {
+ list ($categories, $feeds) = opml_import (
+ file_get_contents ($_FILES['file']['tmp_name'])
+ );
+
+ // On redirige vers le controller feed qui va se charger d'insérer les flux en BDD
+ // les flux sont mis au préalable dans des variables de Request
+ Request::_param ('q', 'null');
+ Request::_param ('categories', $categories);
+ Request::_param ('feeds', $feeds);
+ Request::forward (array ('c' => 'feed', 'a' => 'massiveImport'));
+ } catch (OpmlException $e) {
+ Log::record ($e->getMessage (), Log::ERROR);
+
+ $notif = array (
+ 'type' => 'bad',
+ 'content' => Translate::t ('bad_opml_file')
+ );
+ Session::_param ('notification', $notif);
+
+ Request::forward (array (
+ 'c' => 'configure',
+ 'a' => 'importExport'
+ ), true);
+ }
}
}