use warnings;
use CGI;
+
use C4::Auth;
use C4::Context;
use C4::Output;
use C4::AuthoritiesMarc;
use C4::Koha; # XXX subfield_is_koha_internal_p
+use C4::Search::History;
my $query = new CGI;
my $op = $query->param('op') || '';
}
if ( $op eq "do_search" ) {
- my @marclist = ($query->param('marclista'),$query->param('marclistb'),$query->param('marclistc'));
- my @and_or = ($query->param('and_ora'),$query->param('and_orb'),$query->param('and_orc'));
- my @excluding = ($query->param('excludinga'),$query->param('excludingb'),$query->param('excludingc'),);
- my @operator = ($query->param('operatora'),$query->param('operatorb'),$query->param('operatorc'));
+ my @marclist = ($query->param('marclist'));
+ my @and_or = ($query->param('and_or'));
+ my @excluding = ($query->param('excluding'),);
+ my @operator = ($query->param('operator'));
my $orderby = $query->param('orderby');
- my @value = ($query->param('valuea') || "",$query->param('valueb') || "",$query->param('valuec') || "",);
+ my @value = ($query->param('value') || "",);
$resultsperpage = $query->param('resultsperpage');
$resultsperpage = 20 if ( !defined $resultsperpage );
$displaynext = 1;
}
- my @field_data = ();
-
- foreach my $letter (qw/a b c/){
- push @field_data, { term => "marclist$letter" , val => $query->param("marclist$letter") || ''};
- push @field_data, { term => "and_or$letter" , val => $query->param("and_or$letter") || ''};
- push @field_data, { term => "excluding$letter" , val => $query->param("excluding$letter") || ''};
- push @field_data, { term => "operator$letter" , val => $query->param("operator$letter") || ''};
- push @field_data, { term => "value$letter" , val => $query->param("value$letter") || ''};
- }
+ my @field_data = (
+ { term => "marclist", val => $marclist[0] },
+ { term => "and_or", val => $and_or[0] },
+ { term => "excluding", val => $excluding[0] },
+ { term => "operator", val => $operator[0] },
+ { term => "value", val => $value[0] },
+ );
my @numbers = ();
my @usedauths = grep { $_->{used} > 0 } @$results;
$results = \@usedauths;
}
+
+ # Opac search history
+ if (C4::Context->preference('EnableOpacSearchHistory')) {
+ unless ( $startfrom ) {
+ my $path_info = $query->url(-path_info=>1);
+ my $query_cgi_history = $query->url(-query=>1);
+ $query_cgi_history =~ s/^$path_info\?//;
+ $query_cgi_history =~ s/;/&/g;
+
+ unless ( $loggedinuser ) {
+ my $new_search = C4::Search::History::add_to_session({
+ cgi => $query,
+ query_desc => $value[0],
+ query_cgi => $query_cgi_history,
+ total => $total,
+ type => "authority",
+ });
+ } else {
+ # To the session (the user is logged in)
+ C4::Search::History::add({
+ userid => $loggedinuser,
+ sessionid => $query->cookie("CGISESSID"),
+ query_desc => $value[0],
+ query_cgi => $query_cgi_history,
+ total => $total,
+ type => "authority",
+ });
+ }
+ }
+ }
+
$template->param( result => $results ) if $results;
$template->param( FIELDS => \@fields );
$template->param( orderby => $orderby );