[Koha-patches] [PATCH] (bug4309) Error 500 Authorities search
Henri-Damien LAURENT
henridamien.laurent at biblibre.com
Tue Mar 9 11:24:40 CET 2010
Search For multiple values ( Heading strict, Heading main and anywhere)
produced an ill formed z3950 query.
Fixing that
---
C4/AuthoritiesMarc.pm | 22 +++++++++++++++-------
1 files changed, 15 insertions(+), 7 deletions(-)
diff --git a/C4/AuthoritiesMarc.pm b/C4/AuthoritiesMarc.pm
index 1a38450..a00bcb1 100644
--- a/C4/AuthoritiesMarc.pm
+++ b/C4/AuthoritiesMarc.pm
@@ -218,9 +218,10 @@ sub SearchAuthorities {
my $dosearch;
my $and=" \@and " ;
- my $q2;
+ my @q2;
for(my $i = 0 ; $i <= $#{$value} ; $i++)
{
+ my $querypart;
if (@$value[$i]){
##If mainentry search $a tag
if (@$tags[$i] eq "mainmainentry") {
@@ -244,16 +245,23 @@ sub SearchAuthorities {
$attr .=" \@attr 5=1 \@attr 4=6 ";## Word list, right truncated, anywhere
}
$attr =$attr."\"".@$value[$i]."\"";
- $q2 .=$attr;
+ $querypart .=$attr;
$dosearch=1;
}#if value
+ push @q2, $querypart;
}
##Add how many queries generated
- if ($query=~/\S+/){
- $query= $and.$query.$q2
- } else {
- $query=$q2;
- }
+ my $count=0;
+ for my $querypart (@q2){
+ if ($query=~/\S+/){
+ $query= (($count<scalar(@q2)-1)?$and:"").$query.$querypart;
+ }
+ else {
+ $query= $querypart;
+ }
+ $count++;
+ }
+
## Adding order
#$query=' @or @attr 7=2 @attr 1=Heading 0 @or @attr 7=1 @attr 1=Heading 1'.$query if ($sortby eq "HeadingDsc");
my $orderstring= ($sortby eq "HeadingAsc"?
--
1.6.3.3
More information about the Koha-patches
mailing list