diff --git a/controllers/bookmark.php b/controllers/bookmark.php index 47f4607..d0f7ac6 100644 --- a/controllers/bookmark.php +++ b/controllers/bookmark.php @@ -37,8 +37,17 @@ Router\get_action('bookmark', function() { Router\get_action('bookmarks', function() { $offset = Request\int_param('offset', 0); - $nb_items = Model\Item\count_bookmarks(); - $items = Model\Item\get_bookmarks($offset, Model\Config\get('items_per_page')); + $group_id = Request\int_param('group_id', null); + $feed_ids = array(); + if (! is_null($group_id)) { + $feed_ids = Model\Group\get_feeds_by_group($group_id); + } + $nb_items = Model\Item\count_bookmarks($feed_ids); + $items = Model\Item\get_bookmarks( + $offset, + Model\Config\get('items_per_page'), + $feed_ids + ); Response\html(Template\layout('bookmarks', array( 'favicons' => Model\Favicon\get_item_favicons($items), @@ -46,6 +55,7 @@ Router\get_action('bookmarks', function() { 'order' => '', 'direction' => '', 'display_mode' => Model\Config\get('items_display_mode'), + 'group_id' => $group_id, 'items' => $items, 'nb_items' => $nb_items, 'offset' => $offset, @@ -53,6 +63,7 @@ Router\get_action('bookmarks', function() { 'nothing_to_read' => Request\int_param('nothing_to_read'), 'nb_unread_items' => Model\Item\count_by_status('unread'), 'menu' => 'bookmarks', + 'groups' => Model\Group\get_all(), 'title' => t('Bookmarks').' ('.$nb_items.')' ))); }); diff --git a/models/item.php b/models/item.php index 91e887e..d9e65ca 100644 --- a/models/item.php +++ b/models/item.php @@ -131,17 +131,18 @@ function count_by_status($status, $feed_ids = array()) } // Get the number of bookmarks -function count_bookmarks() +function count_bookmarks($feed_ids = array()) { return Database::getInstance('db') ->table('items') ->eq('bookmark', 1) + ->in('feed_id', $feed_ids) ->in('status', array('read', 'unread')) ->count(); } // Get all bookmarks -function get_bookmarks($offset = null, $limit = null) +function get_bookmarks($offset = null, $limit = null, $feed_ids = array()) { return Database::getInstance('db') ->table('items') @@ -163,6 +164,7 @@ function get_bookmarks($offset = null, $limit = null) 'feeds.rtl' ) ->join('feeds', 'id', 'feed_id') + ->in('feed_id', $feed_ids) ->in('status', array('read', 'unread')) ->eq('bookmark', 1) ->orderBy('updated', Config\get('items_sorting_direction')) diff --git a/templates/bookmarks.php b/templates/bookmarks.php index 41406f3..d4d5b58 100644 --- a/templates/bookmarks.php +++ b/templates/bookmarks.php @@ -1,9 +1,21 @@ - +

@@ -23,7 +35,7 @@ )) ?> - $menu, 'nb_items' => $nb_items, 'items_per_page' => $items_per_page, 'offset' => $offset, 'order' => $order, 'direction' => $direction)) ?> + $menu, 'nb_items' => $nb_items, 'items_per_page' => $items_per_page, 'offset' => $offset, 'order' => $order, 'direction' => $direction, 'group_id' => $group_id)) ?> \ No newline at end of file