Head & rel_2_2 merged
[koha.git] / search.marc / search.pl
index 8ba60de..24a2015 100755 (executable)
@@ -24,7 +24,7 @@ use CGI;
 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;
@@ -92,7 +92,7 @@ sub create_scrolling_list {
 
 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');
@@ -130,7 +130,15 @@ if ($op eq "do_search") {
                        if ($tag) {
                                push @tags,$dbh->quote("$tag$subfield");
                        } else {
-                               push @tags, $dbh->quote(substr($marc,0,4));
+                               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, "";
@@ -142,17 +150,14 @@ if ($op eq "do_search") {
                                                                                $startfrom*$resultsperpage, $resultsperpage,$orderby,$desc_or_asc);
        if ($total == 1) {
         # if only 1 answer, jump directly to the biblio
-           # here we need to check if MARC searching is turned on or off.
-           # if on, go to MARCdetail.pl else go to
-           # detail.pl
-           my $marc_bool = C4::Context->boolean_preference("MARC") || 0;
-           if ($marc_bool eq "1") {                              
-               print $query->redirect("/cgi-bin/koha/MARCdetail.pl?biblionumber=".@$results[0]->{biblionumber});
-           }
-           else {
-               print $query->redirect("/cgi-bin/koha/detail.pl?biblionumber=".@$results[0]->{biblionumber});
-           }
-                exit
+       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",
@@ -205,6 +210,7 @@ if ($op eq "do_search") {
        } else {
                $to = (($startfrom+1)*$resultsperpage);
        }
+       my $defaultview = 'BiblioDefaultView'.C4::Context->preference('IntranetBiblioDefaultView');
        $template->param(result => $results,
                                                        startfrom=> $startfrom,
                                                        displaynext=> $displaynext,
@@ -218,11 +224,13 @@ if ($op eq "do_search") {
                                                        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,
@@ -311,6 +319,7 @@ else {
        my $marclist = CGI::scrolling_list(-name=>"marclist",
                                        -values=> $marcarray,
                                        -size=>1,
+                                       -tabindex=>'',
                                        -multiple=>0,
                                        -onChange => "sql_update()",
                                        );
@@ -337,6 +346,7 @@ else {
                                -values   => \@itemtype,
                                -labels   => \%itemtypes,
                                -size     => 1,
+                               -tabindex=>'',
                                -multiple => 0 );
        $sth->finish;
 
@@ -356,6 +366,7 @@ else {
        $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,
@@ -365,6 +376,10 @@ else {
 
 
 # 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: