Bug 22830: correct for loop in value_builder/unimarc_field_4XX.pl value_builder
authorFridolin Somers <fridolin.somers@biblibre.com>
Thu, 2 May 2019 12:20:45 +0000 (14:20 +0200)
committerMartin Renvoize <martin.renvoize@ptfs-europe.com>
Fri, 16 Aug 2019 10:42:54 +0000 (11:42 +0100)
In value_builder/unimarc_field_4XX.pl value_builder gets search results
and runs a for loog with $i index. This loop is limiter with number of
results par page, it should also be limited by number of results if
lower that number of results par page.

Same in cataloguing/value_builder/marc21_linking_section.pl.

Test plan :
1) configure framework to use value builder
2) use value builder
3) perform a search with number of results lower than number of results
   per page
4) check number of records diplayed is OK
5) perform a search with number of results upper than number of results
   per page and check number of results is OK
6) you see number of results par page records and pagination link

Signed-off-by: Owen Leonard <oleonard@myacpl.org>
Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>

cataloguing/value_builder/marc21_linking_section.pl
cataloguing/value_builder/unimarc_field_4XX.pl

index 0fb9b7b..f537516 100755 (executable)
@@ -213,7 +213,7 @@ my $launcher = sub {
         }
         my @arrayresults;
         my @field_data = ($search);
-        for ( my $i = 0 ; $i < $resultsperpage ; $i++ ) {
+        for ( my $i = 0 ; $i < $total && $i < $resultsperpage ; $i++ ) {
             my $record = C4::Search::new_record_from_zebra( 'biblioserver', $results->[$i] );
             my $rechash = TransformMarcToKoha( $record );
             my $pos;
index c514349..5b95f14 100755 (executable)
@@ -399,7 +399,7 @@ sub plugin {
         my @field_data = ($search);
          for (
              my $i = 0 ;
-             $i < $resultsperpage ;
+             $i < $total && $i < $resultsperpage ;
              $i++
            )
          {