From 059a3380341c439e1debb4921bbf023a3b424a4b Mon Sep 17 00:00:00 2001 From: Thomas Citharel Date: Mon, 2 Mar 2015 00:15:49 +0100 Subject: implement #1123 --- inc/poche/Database.class.php | 20 ++++++++++++++++++++ inc/poche/Poche.class.php | 26 +++++++++++++++++++++++--- 2 files changed, 43 insertions(+), 3 deletions(-) (limited to 'inc') diff --git a/inc/poche/Database.class.php b/inc/poche/Database.class.php index 65675afe..4f55a7fe 100755 --- a/inc/poche/Database.class.php +++ b/inc/poche/Database.class.php @@ -421,6 +421,26 @@ class Database { return $id; } + public function getPreviousArticle($id, $user_id) + { + $sql = "SELECT id FROM entries WHERE id = (SELECT max(id) FROM entries WHERE id < ?) AND user_id=? AND is_read=0"; + $params = array($id, $user_id); + $query = $this->executeQuery($sql, $params); + $id_entry = $query->fetchAll(); + $id = $id_entry[0][0]; + return $id; + } + + public function getNextArticle($id, $user_id) + { + $sql = "SELECT id FROM entries WHERE id = (SELECT min(id) FROM entries WHERE id > ?) AND user_id=? AND is_read=0"; + $params = array($id, $user_id); + $query = $this->executeQuery($sql, $params); + $id_entry = $query->fetchAll(); + $id = $id_entry[0][0]; + return $id; + } + public function updateContent($id, $content, $user_id) { diff --git a/inc/poche/Poche.class.php b/inc/poche/Poche.class.php index 30d42c61..18e1d051 100755 --- a/inc/poche/Poche.class.php +++ b/inc/poche/Poche.class.php @@ -310,11 +310,16 @@ class Poche if ( Tools::isAjaxRequest() ) { echo 1; exit; - } - else { + } else { Tools::redirect(); } break; + case 'archive_and_next' : + $nextid = $this->store->getNextArticle($id, $this->user->getId()); + $this->store->archiveById($id, $this->user->getId()); + Tools::logm('archive link #' . $id); + Tools::redirect('?view=view&id=' . $nextid); + break; case 'archive_all' : $this->store->archiveAll($this->user->getId()); Tools::logm('archive all links'); @@ -516,6 +521,20 @@ class Poche $flattr->checkItem($entry['url'], $entry['id']); } + # previous and next + $previous = FALSE; + $previous_id = $this->store->getPreviousArticle($id, $this->user->getId()); + $next = FALSE; + $next_id = $this->store->getNextArticle($id, $this->user->getId()); + + if ($this->store->retrieveOneById($previous_id, $this->user->getId())) { + $previous = TRUE; + } + if ($this->store->retrieveOneById($next_id, $this->user->getId())) { + $next = TRUE; + } + $navigate = $arrayName = array('previous' => $previous, 'previousid' => $previous_id, 'next' => $next, 'nextid' => $next_id); + # tags $tags = $this->store->retrieveTagsByEntry($entry['id']); @@ -523,7 +542,8 @@ class Poche 'entry' => $entry, 'content' => $content, 'flattr' => $flattr, - 'tags' => $tags + 'tags' => $tags, + 'navigate' => $navigate ); } else { -- cgit v1.2.3