diff options
| author | 2013-11-28 23:10:09 +0100 | |
|---|---|---|
| committer | 2013-11-28 23:10:09 +0100 | |
| commit | 7e65c6b7829cacf371fcece074d4655e15259e7e (patch) | |
| tree | fe56bc368bc9b53ab16be17f588326f3f07ad021 /app/controllers/feedController.php | |
| parent | dd61248d319e3f74a3670f5e15bc1e1ab2c2ae1a (diff) | |
Corrige bug ajout flux
L'id d'un flux est généré à l'ajout. On continuait de considérer qu'on
l'avait généré nous-même lors de l'ajout. Du coup on essayait d'ajouter
des articles en BDD associés à un flux qui n'existait pas et la
redirection ne marchait pas
Diffstat (limited to 'app/controllers/feedController.php')
| -rwxr-xr-x | app/controllers/feedController.php | 81 |
1 files changed, 43 insertions, 38 deletions
diff --git a/app/controllers/feedController.php b/app/controllers/feedController.php index 2bbd5ab49..fa3f0712f 100755 --- a/app/controllers/feedController.php +++ b/app/controllers/feedController.php @@ -57,7 +57,6 @@ class feedController extends ActionController { $feedDAO = new FeedDAO (); $values = array ( - 'id' => $feed->id (), 'url' => $feed->url (), 'category' => $feed->category (), 'name' => $feed->name (), @@ -74,46 +73,52 @@ class feedController extends ActionController { 'content' => Translate::t ('already_subscribed', $feed->name ()) ); Session::_param ('notification', $notif); - } elseif (!$feedDAO->addFeed ($values)) { - // problème au niveau de la base de données - $notif = array ( - 'type' => 'bad', - 'content' => Translate::t ('feed_not_added', $feed->name ()) - ); - Session::_param ('notification', $notif); } else { - $entryDAO = new EntryDAO (); - $entries = $feed->entries (); - usort($entries, 'self::entryDateComparer'); - - // 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); - - $transactionStarted = true; - $feedDAO->beginTransaction (); - // on ajoute les articles en masse sans vérification - foreach ($entries as $entry) { - if ($entry->date (true) >= $date_min || - $feed->keepHistory ()) { - $values = $entry->toArray (); - $values['id'] = min(time(), $entry->date (true)) . '.' . rand(0, 999999); - $entryDAO->addEntry ($values); + $id = $feedDAO->addFeed ($values); + if (!$id) { + // problème au niveau de la base de données + $notif = array ( + 'type' => 'bad', + 'content' => Translate::t ('feed_not_added', $feed->name ()) + ); + Session::_param ('notification', $notif); + } else { + $feed->_id ($id); + + $entryDAO = new EntryDAO (); + $entries = $feed->entries (); + usort($entries, 'self::entryDateComparer'); + + // 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); + + $transactionStarted = true; + $feedDAO->beginTransaction (); + // on ajoute les articles en masse sans vérification + foreach ($entries as $entry) { + if ($entry->date (true) >= $date_min || + $feed->keepHistory ()) { + $values = $entry->toArray (); + $values['id_feed'] = $feed->id (); + $values['id'] = min(time(), $entry->date (true)) . '.' . rand(0, 999999); + $entryDAO->addEntry ($values); + } } + $feedDAO->updateLastUpdate ($feed->id ()); + $feedDAO->commit (); + $transactionStarted = false; + + // ok, ajout terminé + $notif = array ( + 'type' => 'good', + 'content' => Translate::t ('feed_added', $feed->name ()) + ); + Session::_param ('notification', $notif); + + // permet de rediriger vers la page de conf du flux + $params['id'] = $feed->id (); } - $feedDAO->updateLastUpdate ($feed->id ()); - $feedDAO->commit (); - $transactionStarted = false; - - // ok, ajout terminé - $notif = array ( - 'type' => 'good', - 'content' => Translate::t ('feed_added', $feed->name ()) - ); - Session::_param ('notification', $notif); - - // permet de rediriger vers la page de conf du flux - $params['id'] = $feed->id (); } } catch (BadUrlException $e) { Minz_Log::record ($e->getMessage (), Minz_Log::WARNING); |
