sub SearchAuthorities {
my ($tags, $and_or, $excluding, $operator, $value, $offset,$length,$authtypecode,$sortby) = @_;
- #use Data::Dumper; map {warn "CALL : ".Data::Dumper::Dumper($_);} @_;
+# warn "CALL : $tags, $and_or, $excluding, $operator, $value, $offset,$length,$authtypecode,$sortby";
my $dbh=C4::Context->dbh;
+ use YAML;
+ warn "tags : ",Dump($tags),"\noperators:",Dump($operator),"\nvalues:",Dump($value);
if (C4::Context->preference('NoZebra')) {
#
while ($n>1){$query= "\@or ".$query;$n--;}
}
+ my $dosearch;
my $and=" \@and " ;
- my $q2="";
+ my $q2;
for(my $i = 0 ; $i <= $#{$value} ; $i++)
{
if (@$value[$i]){
##If mainentry search $a tag
if (@$tags[$i] eq "mainmainentry") {
-# FIXME: 'Heading-Main' index not yet defined in zebra
-# $attr =" \@attr 1=Heading-Main ";
- $attr =" \@attr 1=Heading ";
+ $attr =" \@attr 1=Heading-Main ";
+# $attr =" \@attr 1=Heading ";
}elsif (@$tags[$i] eq "mainentry") {
$attr =" \@attr 1=Heading ";
$attr .=" \@attr 5=1 \@attr 4=6 ";## Word list, right truncated, anywhere
}
$attr =$attr."\"".@$value[$i]."\"";
- $q2 =($q2 ne "" ?$and.$q2.$attr:$attr);
+ $q2 =($q2?"$and $q2 $attr":"$attr");
+ $dosearch=1;
}#if value
}
##Add how many queries generated
- if ($query=~/\S+/ && $q2 ne ""){
- $query= $and.$query.$q2;
- }
- elsif ($q2 ne "") {
- $query=$q2;
- }
+ if ($query=~/\S+/){
+ $query= $and.$query.$q2
+ } else {
+ $query=$q2;
+ }
## 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"?
'@attr 7=2 @attr 1=Heading 0'
:''
);
- my $allrecords=" \@attr 1=_ALLRECORDS \@attr 2=103 '' ";
- $query=($q2?"\@or $orderstring $query":"\@or $orderstring ".($query?"\@and $allrecords $query":$allrecords) );
+ $query=($query?"\@or $orderstring $query":"\@or \@attr 1=_ALLRECORDS \@attr 2=103 '' $orderstring ");
$offset=0 unless $offset;
my $counter = $offset;
my @and_or = $query->param('and_or');
my @excluding = $query->param('excluding');
my @operator = $query->param('operator');
- my @value = ($query->param('value_mainstr'), $query->param('value_main'), $query->param('value_any'));
+ my @value = ($query->param('value_mainstr')||undef, $query->param('value_main')||undef, $query->param('value_any')||undef);
my $orderby = $query->param('orderby');
$resultsperpage = $query->param('resultsperpage');
<input type="text" name="value_main" value="<!-- TMPL_VAR ESCAPE="HTML" name="value_main" -->" />
</li>
<li>
- <label for="marclist">Anywhere</label>
+ <label for="anywhere">Anywhere</label>
<input type="hidden" name="marclist" value="" />
<input type="hidden" name="and_or" value="and" />
<input type="hidden" name="excluding" value="" />
- <select name="operator" id="marclist">
+ <select name="operator" id="anywhere">
<option value="contains">contains</option>
<option value="start">starts with</option>
<option value="is">is exactly</option>
</select>
<input type="text" name="value_any" value="<!-- TMPL_VAR ESCAPE="HTML" name="value_any" -->" />
</li>
- <li>
- <label for="orderby">Sort by </label>
- <select name="orderby" id="orderby">
- <option value="NoOrder">No order</option>
- <option value="HeadingAsc" selected="selected">Heading Ascendant</option>
- <option value="HeadingDsc">Heading Descendant</option>
- </select>
- </li></ol></fieldset>
+ <li>
+ <label for="orderby">Sort by </label>
+ <select name="orderby" id="orderby">
+ <option value="">No order</option>
+ <option value="HeadingAsc" selected="selected">Heading Ascendant</option>
+ <option value="HeadingDsc">Heading Descendant</option>
+ </select>
+ </li></ol></fieldset>
<fieldset class="action"> <input type="submit" value="Start search" class="submit" /> <a class="cancel close" href="#">Cancel</a></fieldset>
</form>