my $branches = GetBranches();
my @branch_loop;
-for my $branch_hash (sort keys %$branches) {
+for my $branch_hash (sort { $branches->{$a}->{branchname} cmp $branches->{$b}->{branchname} } keys %$branches) {
push @branch_loop, {value => "$branch_hash" , branchname => $branches->{$branch_hash}->{'branchname'}, };
}
$template->param(branchloop => \@branch_loop, searchdomainloop => $categories);
-# load the itemtypes
+# load the Type stuff
+# load the Type stuff
my $itemtypes = GetItemTypes;
+# the index parameter is different for item-level itemtypes
+my $itype_or_itemtype = (C4::Context->preference("item-level_itypes"))?'itype':'itemtype';
my @itemtypesloop;
my $selected=1;
my $cnt;
my $imgdir = getitemtypeimagesrc('intranet');
-foreach my $thisitemtype ( sort {$itemtypes->{$a}->{'description'} cmp $itemtypes->{$b}->{'description'} } keys %$itemtypes ) {
+my $advanced_search_types = C4::Context->preference("AdvancedSearchTypes");
+
+if (!$advanced_search_types or $advanced_search_types eq 'itemtypes') { foreach my $thisitemtype ( sort {$itemtypes->{$a}->{'description'} cmp $itemtypes->{$b}->{'description'} } keys %$itemtypes ) {
my %row =( number=>$cnt++,
imageurl=> $itemtypes->{$thisitemtype}->{'imageurl'}?($imgdir."/".$itemtypes->{$thisitemtype}->{'imageurl'}):"",
+ ccl => $itype_or_itemtype,
code => $thisitemtype,
selected => $selected,
description => $itemtypes->{$thisitemtype}->{'description'},
count5 => $cnt % 4,
);
- $selected = 0 if ($selected) ;
- push @itemtypesloop, \%row;
+ $selected = 0 if ($selected) ;
+ push @itemtypesloop, \%row;
+ }
+ $template->param(itemtypeloop => \@itemtypesloop);
+} else {
+ my $advsearchtypes = GetAuthorisedValues($advanced_search_types);
+ for my $thisitemtype (@$advsearchtypes) {
+ my %row =(
+ number=>$cnt++,
+ imageurl=> $imgdir."/".$thisitemtype->{'imageurl'},
+ ccl => $advanced_search_types,
+ code => $thisitemtype->{authorised_value},
+ selected => $selected,
+ description => $thisitemtype->{'lib'},
+ count5 => $cnt % 4,
+ );
+ push @itemtypesloop, \%row;
+ }
+ $template->param(itemtypeloop => \@itemtypesloop);
}
-$template->param(itemtypeloop => \@itemtypesloop);
-
-# load the ccodes
-# my ($ccodecount,@ccode_loop) = GetCcodes();
-# $template->param(ccodeloop=>\@ccode_loop,);
# The following should only be loaded if we're bringing up the advanced search template
if ( $template_type eq 'advsearch' ) {
my @indexes;
@indexes = split("\0",$params->{'idx'});
+# if a simple index (only one) display the index used in the top search box
+if ($indexes[0] && !$indexes[1]) {
+ $template->param("ms_".$indexes[0] => 1);}
+
+
# an operand can be a single term, a phrase, or a complete ccl query
my @operands;
@operands = split("\0",$params->{'q'}) if $params->{'q'};
## parse the query_cgi string and put it into a form suitable for <input>s
my @query_inputs;
+my $scan_index_to_use;
+
for my $this_cgi ( split('&',$query_cgi) ) {
next unless $this_cgi;
$this_cgi =~ m/(.*=)(.*)/;
my $input_value = $2;
$input_name =~ s/=$//;
push @query_inputs, { input_name => $input_name, input_value => $input_value };
+ if ($input_name eq 'idx') {
+ $scan_index_to_use = $input_value; # unless $scan_index_to_use;
+ }
}
-$template->param ( QUERY_INPUTS => \@query_inputs );
+$template->param ( QUERY_INPUTS => \@query_inputs,
+ scan_index_to_use => $scan_index_to_use );
## parse the limit_cgi string and put it into a form suitable for <input>s
my @limit_inputs;
if ($server =~/biblioserver/) { # this is the local bibliographic server
$hits = $results_hashref->{$server}->{"hits"};
my $page = $cgi->param('page') || 0;
- my @newresults = searchResults( $query_desc,$hits,$results_per_page,$offset,@{$results_hashref->{$server}->{"RECORDS"}});
+ my @newresults = searchResults( $query_desc,$hits,$results_per_page,$offset,$scan,@{$results_hashref->{$server}->{"RECORDS"}});
$total = $total + $results_hashref->{$server}->{"hits"};
## If there's just one result, redirect to the detail page
if ($total == 1) {