From d24169856137d5327f657cd18ff50ea4190ab0a2 Mon Sep 17 00:00:00 2001 From: ben Date: Fri, 13 Feb 2009 16:15:42 +0000 Subject: Simple river pagination. git-svn-id: https://code.elgg.org/elgg/trunk@2748 36083f99-b078-4883-b0ff-0f9b5a30f544 --- engine/lib/river2.php | 2 +- views/default/river/item/list.php | 29 +++++++++++++++++++++++++++++ 2 files changed, 30 insertions(+), 1 deletion(-) diff --git a/engine/lib/river2.php b/engine/lib/river2.php index d70f1e73b..d3d285aac 100644 --- a/engine/lib/river2.php +++ b/engine/lib/river2.php @@ -238,7 +238,7 @@ $offset = (int) get_input('offset',0); // Get river items, if they exist - if ($riveritems = get_river_items($subject_guid,$object_guid,$subject_relationship,$type,$subtype,$action_type,$limit,$offset,$posted_min,$posted_max)) { + if ($riveritems = get_river_items($subject_guid,$object_guid,$subject_relationship,$type,$subtype,$action_type,($limit + 1),$offset,$posted_min,$posted_max)) { return elgg_view('river/item/list',array( 'limit' => $limit, diff --git a/views/default/river/item/list.php b/views/default/river/item/list.php index 781c18a48..8b7d37bd0 100644 --- a/views/default/river/item/list.php +++ b/views/default/river/item/list.php @@ -4,14 +4,43 @@ if (isset($vars['items']) && is_array($vars['items'])) { + $i = 0; if (!empty($vars['items'])) foreach($vars['items'] as $item) { echo elgg_view_river_item($item); + $i++; + if ($i >= $vars['limit']) break; } } + + $baseurl = $_SERVER['REQUEST_URI']; + $baseurl = $baseurl = preg_replace('/[\&\?]offset\=[0-9]*/',"",$baseurl); + + $nav = ''; + + if ($vars['offset'] > 0) { + $newoffset = $vars['offset'] - $vars['limit']; + if ($newoffset < 0) $newoffset = 0; + $urladdition = 'offset='.$newoffset; + if (substr_count($baseurl,'?')) $prevurl=$baseurl . '&' . $urladdition; else $prevurl=$baseurl . '?' . $urladdition; + + $nav .= '' . elgg_echo('previous') . ' '; + } + + if (sizeof($vars['items']) > $vars['limit']) { + $newoffset = $vars['offset'] + $vars['limit']; + $urladdition = 'offset='.$newoffset; + if (substr_count($baseurl,'?')) $nexturl=$baseurl . '&' . $urladdition; else $nexturl=$baseurl . '?' . $urladdition; + + $nav .= '' . elgg_echo('next') . ' '; + } + + if (!empty($nav)) { + echo '
'.$nav.'

'; + } ?> \ No newline at end of file -- cgit v1.2.3