use strict;
require Exporter;
use CGI;
+use C4::Output;
use C4::Auth;
-use HTML::Template;
+
use C4::Context;
-use C4::Search;
-use C4::Auth;
-use C4::Output;
-use C4::Interface::CGI::Output;
use C4::AuthoritiesMarc;
-use C4::SearchMarc;
-use C4::Catalogue;
+use C4::Acquisition;
use C4::Koha; # XXX subfield_is_koha_internal_p
my $query=new CGI;
my $op = $query->param('op');
my $authtypecode = $query->param('authtypecode');
+my $index = $query->param('index');
+my $tagid=$query->param('tagid');
+my $resultstring = $query->param('result');
my $dbh = C4::Context->dbh;
my $startfrom=$query->param('startfrom');
my $authtypes = getauthtypes;
my @authtypesloop;
foreach my $thisauthtype (keys %$authtypes) {
- my $selected = 1 if $thisauthtype eq $authtypecode;
- my %row =(value => $thisauthtype,
- selected => $selected,
- authtypetext => $authtypes->{$thisauthtype}{'authtypetext'},
- );
- push @authtypesloop, \%row;
+ my $selected = 1 if $thisauthtype eq $authtypecode;
+ my %row =(value => $thisauthtype,
+ selected => $selected,
+ authtypetext => $authtypes->{$thisauthtype}{'authtypetext'},
+ index => $index,
+ );
+ push @authtypesloop, \%row;
}
if ($op eq "do_search") {
- my @marclist = $query->param('marclist');
- my @and_or = $query->param('and_or');
- my @excluding = $query->param('excluding');
- my @operator = $query->param('operator');
- my @value = $query->param('value');
-
- $resultsperpage= $query->param('resultsperpage');
- $resultsperpage = 19 if(!defined $resultsperpage);
- my $orderby = $query->param('orderby');
-
- # builds tag and subfield arrays
- my @tags;
-
- my ($results,$total) = authoritysearch($dbh, \@tags,\@and_or,
- \@excluding, \@operator, \@value,
- $startfrom*$resultsperpage, $resultsperpage,$orderby);
-
- ($template, $loggedinuser, $cookie)
- = get_template_and_user({template_name => "authorities/auth_finder.tmpl",
- query => $query,
- type => 'intranet',
- authnotrequired => 0,
- flagsrequired => {borrowers => 1},
- flagsrequired => {catalogue => 1},
- debug => 1,
- });
+ my @marclist = $query->param('marclist');
+ my @and_or = $query->param('and_or');
+ my @excluding = $query->param('excluding');
+ my @operator = $query->param('operator');
+ my @value = $query->param('value');
+
+ $resultsperpage= $query->param('resultsperpage');
+ $resultsperpage = 19 if(!defined $resultsperpage);
+
+ my ($results,$total) = SearchAuthorities(\@marclist,\@and_or,
+ \@excluding, \@operator, \@value,
+ $startfrom*$resultsperpage, $resultsperpage,$authtypecode);# $orderby);
# multi page display gestion
my $displaynext=0;
my $displayprev=$startfrom;
- if(($total - (($startfrom+1)*($resultsperpage))) > 0 ){
+ if(($total - (($startfrom+1)*($resultsperpage))) > 0 ) {
$displaynext = 1;
}
my @field_data = ();
- for(my $i = 0 ; $i <= $#marclist ; $i++)
- {
- push @field_data, { term => "marclist", val=>$marclist[$i] };
+ my @marclist_ini = $query->param('marclist'); # get marclist again, as the previous one has been modified by catalogsearch (mainentry replaced by field name
+ for(my $i = 0 ; $i <= $#marclist ; $i++) {
+ push @field_data, { term => "marclist", val=>$marclist_ini[$i] };
push @field_data, { term => "and_or", val=>$and_or[$i] };
push @field_data, { term => "excluding", val=>$excluding[$i] };
push @field_data, { term => "operator", val=>$operator[$i] };
my @numbers = ();
- if ($total>$resultsperpage)
- {
- for (my $i=1; $i<$total/$resultsperpage+1; $i++)
- {
- if ($i<16)
- {
+ if ($total>$resultsperpage) {
+ for (my $i=1; $i<$total/$resultsperpage+1; $i++) {
+ if ($i<16) {
my $highlight=0;
($startfrom==($i-1)) && ($highlight=1);
push @numbers, { number => $i,
my $from = $startfrom*$resultsperpage+1;
my $to;
- if($total < (($startfrom+1)*$resultsperpage))
- {
+ if($total < (($startfrom+1)*$resultsperpage)) {
$to = $total;
} else {
$to = (($startfrom+1)*$resultsperpage);
}
- $template->param(result => $results,
- startfrom=> $startfrom,
- displaynext=> $displaynext,
- displayprev=> $displayprev,
- resultsperpage => $resultsperpage,
- startfromnext => $startfrom+1,
- startfromprev => $startfrom-1,
- searchdata=>\@field_data,
- total=>$total,
- from=>$from,
- to=>$to,
- numbers=>\@numbers,
- );
-
+ ($template, $loggedinuser, $cookie)
+ = get_template_and_user({template_name => "authorities/searchresultlist-auth.tmpl",
+ query => $query,
+ type => 'intranet',
+ authnotrequired => 0,
+ flagsrequired => {catalogue => 1},
+ debug => 1,
+ });
+
+ $template->param(result => $results) if $results;
+ $template->param(index => $query->param('index')."");
+ $template->param(startfrom=> $startfrom,
+ displaynext=> $displaynext,
+ displayprev=> $displayprev,
+ resultsperpage => $resultsperpage,
+ startfromnext => $startfrom+1,
+ startfromprev => $startfrom-1,
+ index => $index,
+ tagid => $tagid,
+ searchdata=>\@field_data,
+ total=>$total,
+ from=>$from,
+ to=>$to,
+ numbers=>\@numbers,
+ authtypecode =>$authtypecode,
+ mainmainstring =>$value[0],
+ mainstring =>$value[1],
+ anystring =>$value[2],
+ );
} else {
- ($template, $loggedinuser, $cookie)
- = get_template_and_user({template_name => "authorities/auth_finder.tmpl",
- query => $query,
- type => 'intranet',
- authnotrequired => 0,
- flagsrequired => {catalogue => 1},
- debug => 1,
- });
-
+ ($template, $loggedinuser, $cookie)
+ = get_template_and_user({template_name => "authorities/auth_finder.tmpl",
+ query => $query,
+ type => 'intranet',
+ authnotrequired => 0,
+ flagsrequired => {catalogue => 1},
+ debug => 1,
+ });
+
+ $template->param(index=>$query->param('index')."",
+ tagid => $tagid,
+ resultstring => $resultstring,
+ );
}
-$template->param(authtypesloop => \@authtypesloop);
+$template->param(authtypesloop => \@authtypesloop,
+ authtypecode => $authtypecode,
+ intranetcolorstylesheet => C4::Context->preference("intranetcolorstylesheet"),
+ intranetstylesheet => C4::Context->preference("intranetstylesheet"),
+ IntranetNav => C4::Context->preference("IntranetNav"),
+ );
# Print the page
output_html_with_http_headers $query, $cookie, $template->output;