[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Koha-cvs] koha/C4 SearchMarc.pm [rel_2_2]
From: |
paul poulain |
Subject: |
[Koha-cvs] koha/C4 SearchMarc.pm [rel_2_2] |
Date: |
Wed, 14 Dec 2005 15:58:03 +0000 |
CVSROOT: /cvsroot/koha
Module name: koha
Branch: rel_2_2
Changes by: paul poulain <address@hidden> 05/12/14 15:58:03
Modified files:
C4 : SearchMarc.pm
Log message:
small bug, large effects.
there was a SQL statement added when 2 search term were separated by 2
empty char (spaces, comma, dot...) or more.
CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/koha/koha/C4/SearchMarc.pm.diff?only_with_tag=rel_2_2&tr1=1.36.2.19&tr2=1.36.2.20&r1=text&r2=text
Patches:
Index: koha/C4/SearchMarc.pm
diff -u koha/C4/SearchMarc.pm:1.36.2.19 koha/C4/SearchMarc.pm:1.36.2.20
--- koha/C4/SearchMarc.pm:1.36.2.19 Thu Dec 1 15:30:53 2005
+++ koha/C4/SearchMarc.pm Wed Dec 14 15:58:03 2005
@@ -221,7 +221,7 @@
@$value[$i] =~ s/\*/%/g;
# remove % at the beginning
@$value[$i] =~ s/^%//g;
- @$value[$i] =~ s/(\.|\?|\:|\!|\'|,|\-|\"|\(|\)|\[|\]|\{|\}|\/)/ /g
if @$operator[$i] eq "contains";
+ @$value[$i] =~ s/(\.|\?|\:|\!|\'|,|\-|\"|\(|\)|\[|\]|\{|\}|\/|--)/
/g if @$operator[$i] eq "contains";
if(@$excluding[$i]) # NOT statements
{
$any_not = 1;
@@ -230,9 +230,8 @@
foreach my $word (split(/ /, @$value[$i]))
# if operator is contains, splits the words in separate requests
{
# remove the "%" for small word (3
letters. (note : the >4 is due to the % at the end)
-# warn "word : $word";
$word =~ s/%//g unless length($word)>4;
- unless
(C4::Context->stopwords->{uc($word)} or length($word)==1) { #it's NOT a
stopword => use it. Otherwise, ignore
+ unless
(C4::Context->stopwords->{uc($word)} or length($word)<=1) { #it's NOT a
stopword => use it. Otherwise, ignore
push @not_tags, @$tags[$i];
push @not_and_or, "or"; # as
request is negated, finds "foo" or "bar" if final request is NOT "foo" and "bar"
push @not_operator,
@$operator[$i];
@@ -255,9 +254,9 @@
foreach my $word (split(/ /, @$value[$i]))
{
# remove the "%" for small word (3
letters. (note : the >4 is due to the % at the end)
-# warn "word : $word";
+ warn "word : $word";
$word =~ s/%//g unless length($word)>4;
- unless
(C4::Context->stopwords->{uc($word)} or length($word)==1) { #it's NOT a
stopword => use it. Otherwise, ignore
+ unless
(C4::Context->stopwords->{uc($word)} or length($word)<=1) { #it's NOT a
stopword => use it. Otherwise, ignore
push @normal_tags, @$tags[$i];
push @normal_and_or, "and";
# assumes "foo" and "bar" if "foo bar" is entered
push @normal_operator,
@$operator[$i];