diff options
Diffstat (limited to 'app/controllers')
| -rwxr-xr-x | app/controllers/configureController.php | 7 | ||||
| -rwxr-xr-x | app/controllers/feedController.php | 10 |
2 files changed, 15 insertions, 2 deletions
diff --git a/app/controllers/configureController.php b/app/controllers/configureController.php index d6d210099..2f56da177 100755 --- a/app/controllers/configureController.php +++ b/app/controllers/configureController.php @@ -199,7 +199,7 @@ class configureController extends ActionController { $this->view->req = Request::param ('q'); if ($this->view->req == 'export') { - View::_title ('feeds.opml'); + View::_title ('freshrss_feeds.opml'); $this->view->_useLayout (false); header('Content-Type: text/xml; charset=utf-8'); @@ -217,8 +217,11 @@ class configureController extends ActionController { $this->view->categories = $list; } 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); @@ -228,6 +231,8 @@ class configureController extends ActionController { $feedDAO = new FeedDAO (); $this->view->feeds = $feedDAO->listFeeds (); + + // au niveau de la vue, permet de ne pas voir un flux sélectionné dans la liste $this->view->flux = false; View::prependTitle (Translate::t ('import_export_opml') . ' - '); diff --git a/app/controllers/feedController.php b/app/controllers/feedController.php index ea68952a0..ebbf3259f 100755 --- a/app/controllers/feedController.php +++ b/app/controllers/feedController.php @@ -217,18 +217,23 @@ class feedController extends ActionController { $categories = Request::param ('categories', array ()); $feeds = Request::param ('feeds', array ()); + // on ajoute les catégories en masse dans une fonction à part $this->addCategories ($categories); + // on calcule la date des articles les plus anciens qu'on accepte $nb_month_old = $this->view->conf->oldEntries (); $date_min = time () - (60 * 60 * 24 * 30 * $nb_month_old); + // la variable $error permet de savoir si une erreur est survenue + // Le but est de ne pas arrêter l'import même en cas d'erreur + // L'utilisateur sera mis au courant s'il y a eu des erreurs, mais + // ne connaîtra pas les détails. Ceux-ci seront toutefois logguées $error = false; $i = 0; foreach ($feeds as $feed) { try { $feed->load (); - // Enregistrement du flux $values = array ( 'id' => $feed->id (), 'url' => $feed->url (), @@ -239,6 +244,7 @@ class feedController extends ActionController { 'lastUpdate' => 0 ); + // ajout du flux que s'il n'est pas déjà en BDD if (!$feedDAO->searchByUrl ($values['url'])) { if (!$feedDAO->addFeed ($values)) { $error = true; @@ -255,12 +261,14 @@ class feedController extends ActionController { } else { $res = Translate::t ('feeds_imported'); } + $notif = array ( 'type' => 'good', 'content' => $res ); Session::_param ('notification', $notif); + // et on redirige vers la page import/export Request::forward (array ( 'c' => 'configure', 'a' => 'importExport' |
