Lines 852-919
for (my $i=0;$i<@servers;$i++) {
Link Here
|
852 |
OPACItemsResultsDisplay => (C4::Context->preference("OPACItemsResultsDisplay")), |
852 |
OPACItemsResultsDisplay => (C4::Context->preference("OPACItemsResultsDisplay")), |
853 |
suppress_result_number => $hide, |
853 |
suppress_result_number => $hide, |
854 |
); |
854 |
); |
855 |
if (C4::Context->preference("OPACLocalCoverImages")){ |
855 |
if (C4::Context->preference("OPACLocalCoverImages")){ |
856 |
$template->param(OPACLocalCoverImages => 1); |
856 |
$template->param(OPACLocalCoverImages => 1); |
857 |
$template->param(OPACLocalCoverImagesPriority => C4::Context->preference("OPACLocalCoverImagesPriority")); |
857 |
$template->param(OPACLocalCoverImagesPriority => C4::Context->preference("OPACLocalCoverImagesPriority")); |
858 |
} |
|
|
859 |
## Build the page numbers on the bottom of the page |
860 |
my @page_numbers; |
861 |
my $max_result_window = $searcher->max_result_window; |
862 |
my $hits_to_paginate = ($max_result_window && $max_result_window < $hits) ? $max_result_window : $hits; |
863 |
$template->param( hits_to_paginate => $hits_to_paginate ); |
864 |
# total number of pages there will be |
865 |
my $pages = ceil($hits_to_paginate / $results_per_page); |
866 |
my $last_page_offset = ( $pages - 1 ) * $results_per_page; |
867 |
# default page number |
868 |
my $current_page_number = 1; |
869 |
if ($offset) { |
870 |
$current_page_number = ( $offset / $results_per_page + 1 ); |
871 |
} |
872 |
my $previous_page_offset; |
873 |
if ( $offset >= $results_per_page ) { |
874 |
$previous_page_offset = $offset - $results_per_page; |
875 |
} |
876 |
my $next_page_offset = $offset + $results_per_page; |
877 |
# If we're within the first 10 pages, keep it simple |
878 |
#warn "current page:".$current_page_number; |
879 |
if ($current_page_number < 10) { |
880 |
# just show the first 10 pages |
881 |
# Loop through the pages |
882 |
my $pages_to_show = 10; |
883 |
$pages_to_show = $pages if $pages<10; |
884 |
for ($i=1; $i<=$pages_to_show;$i++) { |
885 |
# the offset for this page |
886 |
my $this_offset = (($i*$results_per_page)-$results_per_page); |
887 |
# the page number for this page |
888 |
my $this_page_number = $i; |
889 |
# put it in the array |
890 |
push @page_numbers, |
891 |
{ offset => $this_offset, |
892 |
pg => $this_page_number, |
893 |
highlight => $this_page_number == $current_page_number, |
894 |
sort_by => join ' ', @sort_by |
895 |
}; |
896 |
|
897 |
} |
898 |
|
899 |
} |
858 |
} |
900 |
# now, show twenty pages, with the current one smack in the middle |
859 |
## Build the page numbers on the bottom of the page |
901 |
else { |
860 |
my ( $page_numbers, $hits_to_paginate, $pages, $current_page_number, $previous_page_offset, $next_page_offset, $last_page_offset ) = |
902 |
for ($i=$current_page_number; $i<=($current_page_number + 20 );$i++) { |
861 |
Koha::SearchEngine::Search->pagination_bar( |
903 |
my $this_offset = ((($i-9)*$results_per_page)-$results_per_page); |
862 |
{ |
904 |
my $this_page_number = $i-9; |
863 |
hits => $hits, |
905 |
if ( $this_page_number <= $pages ) { |
864 |
max_result_window => $searcher->max_result_window, |
906 |
push @page_numbers, |
865 |
results_per_page => $results_per_page, |
907 |
{ offset => $this_offset, |
866 |
offset => $offset, |
908 |
pg => $this_page_number, |
867 |
sort_by => \@sort_by |
909 |
highlight => $this_page_number == $current_page_number, |
|
|
910 |
sort_by => join ' ', @sort_by |
911 |
}; |
912 |
} |
868 |
} |
913 |
} |
869 |
); |
914 |
|
870 |
$template->param( hits_to_paginate => $hits_to_paginate ); |
915 |
} |
871 |
$template->param( PAGE_NUMBERS => $page_numbers, |
916 |
$template->param( PAGE_NUMBERS => \@page_numbers, |
|
|
917 |
last_page_offset => $last_page_offset, |
872 |
last_page_offset => $last_page_offset, |
918 |
previous_page_offset => $previous_page_offset) unless $pages < 2; |
873 |
previous_page_offset => $previous_page_offset) unless $pages < 2; |
919 |
$template->param(next_page_offset => $next_page_offset) unless $pages eq $current_page_number; |
874 |
$template->param(next_page_offset => $next_page_offset) unless $pages eq $current_page_number; |