use C4::Auth;
use HTML::Template;
use C4::Context;
-use C4::Search;
+# use C4::Search;
use C4::Auth;
use C4::Output;
use C4::Interface::CGI::Output;
use C4::Biblio;
use C4::SearchMarc;
-use C4::Catalogue;
+use C4::Acquisition;
use C4::Koha; # XXX subfield_is_koha_internal_p
# Creates the list of active tags using the active MARC configuration
my $widest_menu_item_width = 0;
for (my $pass = 1; $pass <= 2; $pass += 1)
{
- for (my $tabloop = 0; $tabloop<=9;$tabloop++)
+ for (my $tabloop = 0; $tabloop<=10;$tabloop++)
{
my $separator_inserted_p = 0; # FIXME... should not use!!
foreach my $tag (sort(keys (%{$tagslib})))
my $query=new CGI;
my $type=$query->param('type');
-my $op = $query->param('op');
+my $op = $query->param('op') || "";
my $dbh = C4::Context->dbh;
my $startfrom=$query->param('startfrom');
$startfrom=0 if(!defined $startfrom);
my ($template, $loggedinuser, $cookie);
+my $searchdesc;
my $resultsperpage;
if ($op eq "do_search") {
my @operator = $query->param('operator');
my @value = $query->param('value');
+ for (my $i=0;$i<=$#marclist;$i++) {
+ if ($searchdesc) { # don't put the and_or on the 1st search term
+ $searchdesc .= $and_or[$i]." ".$excluding[$i]." ".($marclist[$i]?$marclist[$i]:"*")." ".$operator[$i]." ".$value[$i]." " if ($value[$i]);
+ } else {
+ $searchdesc = $excluding[$i]." ".($marclist[$i]?$marclist[$i]:"*")." ".$operator[$i]." ".$value[$i]." " if ($value[$i]);
+ }
+ }
+
$resultsperpage= $query->param('resultsperpage');
$resultsperpage = 19 if(!defined $resultsperpage);
my $orderby = $query->param('orderby');
+ my $desc_or_asc = $query->param('desc_or_asc');
# builds tag and subfield arrays
my @tags;
foreach my $marc (@marclist) {
- my ($tag,$subfield) = MARCfind_marc_from_kohafield($dbh,$marc);
- if ($tag) {
- push @tags,$dbh->quote("$tag$subfield");
+ if ($marc) {
+ my ($tag,$subfield) = MARCfind_marc_from_kohafield($dbh,$marc,'');
+ if ($tag) {
+ push @tags,$dbh->quote("$tag$subfield");
+ } else {
+ if ($marc =~ /^(\d){3}(. -)(.)*/)
+ {
+ # The user is using the search catalogue part, more fields
+ push @tags, $dbh->quote(substr($marc,0,4));
+ }
+ else
+ {
+ push @tags, $marc;
+ }
+ }
} else {
- push @tags, $dbh->quote(substr($marc,0,4));
+ push @tags, "";
}
}
findseealso($dbh,\@tags);
my ($results,$total) = catalogsearch($dbh, \@tags,\@and_or,
\@excluding, \@operator, \@value,
- $startfrom*$resultsperpage, $resultsperpage,$orderby);
-
+ $startfrom*$resultsperpage, $resultsperpage,$orderby,$desc_or_asc);
+ if ($total == 1) {
+ # if only 1 answer, jump directly to the biblio
+ if (C4::Context->preference("IntranetBiblioDefaultView") eq "normal") {
+ print $query->redirect("/cgi-bin/koha/detail.pl?bib=".@$results[0]->{biblionumber});
+ } elsif (C4::Context->preference("IntranetBiblioDefaultView") eq "marc") {
+ print $query->redirect("/cgi-bin/koha/MARCdetail.pl?bib=".@$results[0]->{biblionumber});
+ } else {
+ print $query->redirect("/cgi-bin/koha/ISBDdetail.pl?bib=".@$results[0]->{biblionumber});
+ }
+ exit
+ }
($template, $loggedinuser, $cookie)
= get_template_and_user({template_name => "search.marc/result.tmpl",
query => $query,
# 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++)
- {
+ for(my $i = 0 ; $i <= $#marclist ; $i++) {
push @field_data, { term => "marclist", val=>$marclist[$i] };
push @field_data, { term => "and_or", val=>$and_or[$i] };
push @field_data, { term => "excluding", val=>$excluding[$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,
} else {
$to = (($startfrom+1)*$resultsperpage);
}
+ my $defaultview = 'BiblioDefaultView'.C4::Context->preference('IntranetBiblioDefaultView');
$template->param(result => $results,
startfrom=> $startfrom,
displaynext=> $displaynext,
from=>$from,
to=>$to,
numbers=>\@numbers,
+ searchdesc=> $searchdesc,
+ desc_asc=>$desc_or_asc,
+ orderby=>$orderby,
+ MARC_ON => C4::Context->preference("marc"),
+ $defaultview => 1,
);
} elsif ($op eq "AddStatement") {
-
($template, $loggedinuser, $cookie)
= get_template_and_user({template_name => "search.marc/search.tmpl",
query => $query,
my $marclist = CGI::scrolling_list(-name=>"marclist",
-values=> $marcarray,
-size=>1,
+ -tabindex=>'',
-multiple=>0,
-onChange => "sql_update()",
);
}
my $CGIitemtype=CGI::scrolling_list( -name => 'value',
+ -id => 'itemtype',
-values => \@itemtype,
-labels => \%itemtypes,
-size => 1,
+ -tabindex=>'',
-multiple => 0 );
$sth->finish;
my @branches;
my @select_branch;
my %select_branches;
- my ($count2,@branches)=branches();
- push @select_branch, "";
- $select_branches{''} = "";
- for (my $i=0;$i<$count2;$i++){
- push @select_branch, $branches[$i]->{'branchcode'};#
- $select_branches{$branches[$i]->{'branchcode'}} = $branches[$i]->{'branchname'};
+ my $branches=getbranches();
+ my @branchloop;
+ foreach my $thisbranch (sort keys %$branches) {
+# my $selected = 1 if $thisbranch eq $branch;
+ my %row =(value => $thisbranch,
+# selected => $selected,
+ branchname => $branches->{$thisbranch}->{'branchname'},
+ );
+ push @branchloop, \%row;
}
- my $CGIbranch=CGI::scrolling_list( -name => 'value',
- -values => \@select_branch,
- -labels => \%select_branches,
- -size => 1,
- -multiple => 0 );
$sth->finish;
+ $template->param('Disable_Dictionary'=>C4::Context->preference("Disable_Dictionary")) if (C4::Context->preference("Disable_Dictionary"));
$template->param("statements" => \@statements,
"nbstatements" => 3,
CGIitemtype => $CGIitemtype,
- CGIbranch => $CGIbranch,
+ branchloop => \@branchloop,
);
}
# Print the page
+$template->param(intranetcolorstylesheet => C4::Context->preference("intranetcolorstylesheet"),
+ intranetstylesheet => C4::Context->preference("intranetstylesheet"),
+ IntranetNav => C4::Context->preference("IntranetNav"),
+ );
output_html_with_http_headers $query, $cookie, $template->output;
# Local Variables: