Lines 71-79
sub to_koha {
Link Here
|
71 |
$word =~ s/^[\,\.;:\\\/\"\'\-\=]+//g; |
71 |
$word =~ s/^[\,\.;:\\\/\"\'\-\=]+//g; |
72 |
$word =~ s/[\,\.;:\\\/\"\'\-\=]+$//g; |
72 |
$word =~ s/[\,\.;:\\\/\"\'\-\=]+$//g; |
73 |
next if (!$word); |
73 |
next if (!$word); |
|
|
74 |
$word = $self->escape($word); |
74 |
my @words; |
75 |
my @words; |
75 |
foreach my $field (@{$fields}) { |
76 |
foreach my $field (@{$fields}) { |
76 |
push(@words, "$field:($prefix$word$suffix)"); |
77 |
push(@words, "$field:($quote$prefix$word$suffix$quote)"); |
77 |
} |
78 |
} |
78 |
push (@terms, join(' OR ', @words)); |
79 |
push (@terms, join(' OR ', @words)); |
79 |
} |
80 |
} |
Lines 81-95
sub to_koha {
Link Here
|
81 |
} |
82 |
} |
82 |
|
83 |
|
83 |
my @terms; |
84 |
my @terms; |
|
|
85 |
$term = $self->escape($term); |
84 |
foreach my $field (@{$fields}) { |
86 |
foreach my $field (@{$fields}) { |
85 |
push(@terms, "$field:($prefix$term$suffix)"); |
87 |
push(@terms, "$field:($quote$prefix$term$suffix$quote)"); |
86 |
} |
88 |
} |
87 |
return '(' . join(' OR ', @terms) . ')'; |
89 |
return '(' . join(' OR ', @terms) . ')'; |
88 |
} |
90 |
} |
89 |
|
91 |
|
|
|
92 |
sub escape { |
93 |
my ($self, $term) = @_; |
94 |
|
95 |
$term =~ s/([()])/\\$1/g; |
96 |
return $term; |
97 |
} |
98 |
|
90 |
package Net::Z3950::RPN::And; |
99 |
package Net::Z3950::RPN::And; |
91 |
sub to_koha |
100 |
sub to_koha { |
92 |
{ |
|
|
93 |
my ($self, $mappings) = @_; |
101 |
my ($self, $mappings) = @_; |
94 |
|
102 |
|
95 |
return '(' . $self->[0]->to_koha($mappings) . ' AND ' . |
103 |
return '(' . $self->[0]->to_koha($mappings) . ' AND ' . |
Lines 97-104
sub to_koha
Link Here
|
97 |
} |
105 |
} |
98 |
|
106 |
|
99 |
package Net::Z3950::RPN::Or; |
107 |
package Net::Z3950::RPN::Or; |
100 |
sub to_koha |
108 |
sub to_koha { |
101 |
{ |
|
|
102 |
my ($self, $mappings) = @_; |
109 |
my ($self, $mappings) = @_; |
103 |
|
110 |
|
104 |
return '(' . $self->[0]->to_koha($mappings) . ' OR ' . |
111 |
return '(' . $self->[0]->to_koha($mappings) . ' OR ' . |
Lines 106-113
sub to_koha
Link Here
|
106 |
} |
113 |
} |
107 |
|
114 |
|
108 |
package Net::Z3950::RPN::AndNot; |
115 |
package Net::Z3950::RPN::AndNot; |
109 |
sub to_koha |
116 |
sub to_koha { |
110 |
{ |
|
|
111 |
my ($self, $mappings) = @_; |
117 |
my ($self, $mappings) = @_; |
112 |
|
118 |
|
113 |
return '(' . $self->[0]->to_koha($mappings) . ' NOT ' . |
119 |
return '(' . $self->[0]->to_koha($mappings) . ' NOT ' . |