aboutsummaryrefslogtreecommitdiff
path: root/app/controllers/feedController.php
diff options
context:
space:
mode:
authorGravatar Marien Fressinaud <dev@marienfressinaud.fr> 2013-11-28 23:10:09 +0100
committerGravatar Marien Fressinaud <dev@marienfressinaud.fr> 2013-11-28 23:10:09 +0100
commit7e65c6b7829cacf371fcece074d4655e15259e7e (patch)
treefe56bc368bc9b53ab16be17f588326f3f07ad021 /app/controllers/feedController.php
parentdd61248d319e3f74a3670f5e15bc1e1ab2c2ae1a (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-xapp/controllers/feedController.php81
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);