@@ -, +, @@ browser - On a detail biblio page, click on a "Browse shelf" link. - Play with the next and previous links. --- C4/ShelfBrowser.pm | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) --- a/C4/ShelfBrowser.pm +++ a/C4/ShelfBrowser.pm @@ -172,7 +172,7 @@ sub GetNearbyItems { my $sth_prev_items = $dbh->prepare($prev_query . $query_cond . ' ORDER BY cn_sort DESC, itemnumber LIMIT ?'); my $sth_next_items = $dbh->prepare($next_query . $query_cond . ' ORDER BY cn_sort, itemnumber LIMIT ?'); - push @params, $num_each_side; + push @params, $num_each_side + 1; $sth_prev_items->execute(@params); $sth_next_items->execute(@params); @@ -185,11 +185,17 @@ sub GetNearbyItems { $prev_itemnumber, $prev_biblionumber ); - $next_itemnumber = $next_items[-1]->{itemnumber} if @next_items; - $next_biblionumber = $next_items[-1]->{biblionumber} if @next_items; + if ( @next_items and $#next_items > $num_each_side - 1 ) { + my $next_item = pop @next_items; + $next_itemnumber = $next_item->{itemnumber}; + $next_biblionumber = $next_item->{biblionumber}; + } - $prev_itemnumber = $prev_items[0]->{itemnumber} if @prev_items; - $prev_biblionumber = $prev_items[0]->{biblionumber} if @prev_items; + if ( @prev_items and $#prev_items > $num_each_side - 1 ) { + my $prev_item = shift @prev_items; + $prev_itemnumber = $prev_item->{itemnumber}; + $prev_biblionumber = $prev_item->{biblionumber}; + } my %result = ( next => \@next_items, --