aboutsummaryrefslogtreecommitdiff
path: root/app/controllers/entryController.php
diff options
context:
space:
mode:
authorGravatar Marien Fressinaud <dev@marienfressinaud.fr> 2013-03-17 21:34:14 +0100
committerGravatar Marien Fressinaud <dev@marienfressinaud.fr> 2013-03-17 21:34:14 +0100
commitcaf8d18c1d887f0c918ba181d1c48d9e08af6ea0 (patch)
treeb6d778c7c852432ca060470c41c44d7db7b1cab2 /app/controllers/entryController.php
parentdbb0de4e368b814f8cab9e7e1a1462a2839471dc (diff)
Début fix bug #22 : possibilité d'ajouter des notes à des articles et les mettre ou non en public
Diffstat (limited to 'app/controllers/entryController.php')
-rwxr-xr-xapp/controllers/entryController.php93
1 files changed, 83 insertions, 10 deletions
diff --git a/app/controllers/entryController.php b/app/controllers/entryController.php
index b772e1703..f5277fa6d 100755
--- a/app/controllers/entryController.php
+++ b/app/controllers/entryController.php
@@ -8,7 +8,8 @@ class entryController extends ActionController {
array ('error' => array ('Vous n\'avez pas le droit d\'accéder à cette page'))
);
}
-
+
+ $this->redirect = false;
$ajax = Request::param ('ajax');
if ($ajax) {
$this->view->_useLayout (false);
@@ -16,7 +17,7 @@ class entryController extends ActionController {
}
public function lastAction () {
$ajax = Request::param ('ajax');
- if (!$ajax) {
+ if (!$ajax && $this->redirect) {
Request::forward (array (
'c' => 'index',
'a' => 'index',
@@ -28,17 +29,19 @@ class entryController extends ActionController {
}
public function readAction () {
+ $this->redirect = true;
+
$id = Request::param ('id');
$is_read = Request::param ('is_read');
$get = Request::param ('get');
$dateMax = Request::param ('dateMax', time ());
-
+
if ($is_read) {
$is_read = true;
} else {
$is_read = false;
}
-
+
$entryDAO = new EntryDAO ();
if ($id == false) {
if (!$get) {
@@ -55,7 +58,7 @@ class entryController extends ActionController {
$this->params = array ('get' => 'f_' . $get);
}
}
-
+
// notif
$notif = array (
'type' => 'good',
@@ -66,28 +69,98 @@ class entryController extends ActionController {
$entryDAO->updateEntry ($id, array ('is_read' => $is_read));
}
}
-
+
public function bookmarkAction () {
+ $this->redirect = true;
+
$id = Request::param ('id');
$is_fav = Request::param ('is_favorite');
-
+
if ($is_fav) {
$is_fav = true;
} else {
$is_fav = false;
}
-
+
$entryDAO = new EntryDAO ();
if ($id != false) {
$entry = $entryDAO->searchById ($id);
-
+
if ($entry != false) {
$values = array (
'is_favorite' => $is_fav,
);
-
+
$entryDAO->updateEntry ($entry->id (), $values);
}
}
}
+
+ public function noteAction () {
+ $not_found = false;
+ $entryDAO = new EntryDAO ();
+ $catDAO = new CategoryDAO ();
+
+ $id = Request::param ('id');
+ if ($id) {
+ $entry = $entryDAO->searchById ($id);
+
+ if ($entry) {
+ $feed = $entry->feed (true);
+
+ if (Request::isPost ()) {
+ $note = htmlspecialchars (Request::param ('note', ''));
+ $public = Request::param ('public', 'no');
+ if ($public == 'yes') {
+ $public = true;
+ } else {
+ $public = false;
+ }
+
+ $values = array (
+ 'annotation' => $note,
+ 'is_public' => $public
+ );
+
+ if ($entryDAO->updateEntry ($id, $values)) {
+ $notif = array (
+ 'type' => 'good',
+ 'content' => 'Modifications enregistrées'
+ );
+ } else {
+ $notif = array (
+ 'type' => 'bad',
+ 'content' => 'Une erreur est survenue'
+ );
+ }
+ Session::_param ('notification', $notif);
+ Request::forward (array (
+ 'c' => 'entry',
+ 'a' => 'note',
+ 'params' => array (
+ 'id' => $id
+ )
+ ), true);
+ }
+ } else {
+ $not_found = true;
+ }
+ } else {
+ $not_found = true;
+ }
+
+ if ($not_found) {
+ Error::error (
+ 404,
+ array ('error' => array ('La page que vous cherchez n\'existe pas'))
+ );
+ } else {
+ $this->view->entry = $entry;
+ $this->view->cat_aside = $catDAO->listCategories ();
+ $this->view->nb_favorites = $entryDAO->countFavorites ();
+ $this->view->nb_total = $entryDAO->count ();
+ $this->view->get_c = $feed->category ();
+ $this->view->get_f = $feed->id ();
+ }
+ }
}