|
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 ' . |