koha-cvs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Koha-cvs] CVS: koha search.pl,1.7,1.8


From: Steve Tonnesen
Subject: [Koha-cvs] CVS: koha search.pl,1.7,1.8
Date: Tue, 14 May 2002 21:12:27 -0700

Update of /cvsroot/koha/koha
In directory usw-pr-cvs1:/tmp/cvs-serv1961/koha

Modified Files:
        search.pl 
Log Message:
Fixed search.pl so that next and previous buttons work... had to pass form
parameters in to the templates

Didn't make any changes to bulkmarcimport.pl recently, so I'm probably
squashing somebody else's changes.  Will have to fix that...


Index: search.pl
===================================================================
RCS file: /cvsroot/koha/koha/search.pl,v
retrieving revision 1.7
retrieving revision 1.8
diff -C2 -r1.7 -r1.8
*** search.pl   7 May 2002 00:09:06 -0000       1.7
--- search.pl   15 May 2002 04:12:24 -0000      1.8
***************
*** 1,330 ****
  #!/usr/bin/perl
! #script to provide intranet (librarian) advanced search facility
! 
  use strict;
! use C4::Search;
  use CGI;
! use C4::Output;
! 
! my $env;
! my $input = new CGI;
! print $input->header;
! #print $input->dump;
! 
! #whether it is called from the opac or the intranet
! my $type=$input->param('type');if ($type eq ''){
!   $type = 'intra';
! }
  
- my $ttype=$input->param('ttype');
  
! #setup colours                 
! my $main;
! my $secondary;
! 
! if ($type eq 'opac'){
!   $main='#99cccc';    
!   $secondary='#efe5ef';
! } else {
!   $main='#cccc99';
!   $secondary='#ffffcc';
! }       
  
- #print $input->Dump;
- my $blah;
- my %search;
  
! #build hash of users input
! my $title=validate($input->param('title'));
! $search{'title'}=$title;
  
! my $keyword=validate($input->param('keyword'));
! $search{'keyword'}=$keyword;
  
! $search{'front'}=validate($input->param('front'));
  
! my $author=validate($input->param('author'));
! $search{'author'}=$author;
  
! my $illustrator=validate($input->param('illustrator'));
! $search{'illustrator'}=$illustrator;
  
- my $subject=validate($input->param('subject'));
  $search{'subject'}=$subject;
! 
! my $itemnumber=validate($input->param('item'));
! $search{'item'}=$itemnumber;
! 
! my $isbn=validate($input->param('isbn'));
  $search{'isbn'}=$isbn;
! 
! my $datebefore=validate($input->param('date-before'));
! $search{'date-before'};
! 
! my $class=$input->param('class');
  $search{'class'}=$class;
! 
  $search{'ttype'}=$ttype;
  
! my $dewey=validate($input->param('dewey'));
! $search{'dewey'}=$dewey;
  
- my $branch=validate($input->param('branch'));
- $search{'branch'}=$branch;
  
! my @results;
! my $offset=$input->param('offset');
! if ($offset eq ''){
!   $offset=0;
! }
! my $num=$input->param('num');
! if ($num eq ''){
!   $num=10;
! }
! print startpage();
! print startmenu($type);
! #print $type;
! #print $search{'ttype'};
! if ($type eq 'intra'){
!   print mkheadr(1,'Catalogue Search Results');
! } elsif ($type eq 'catmain'){
!   print mkheadr(1,'Catalogue Maintenance');
! } else {
!   print mkheadr(1,'Opac Search Results');
! }
! print center();
! my $count;
! my @results;
! if ($itemnumber ne '' || $isbn ne ''){
!     ($count,@results)=&CatSearch(\$blah,'precise',\%search,$num,$offset);
! } else {
!   if ($subject ne ''){
!     ($count,@results)=&CatSearch(\$blah,'subject',\%search,$num,$offset);
!   } else {
!     if ($keyword ne ''){
!       ($count,@results)=&KeywordSearch(\$blah,'intra',\%search,$num,$offset);
!     }elsif ($title ne '' || $author ne '' || $illustrator ne '' || $dewey ne 
'' || $class ne '') {
!       ($count,@results)=&CatSearch(\$blah,'loose',\%search,$num,$offset);
!     }
!   }
! }
! print "You searched on ";
! while ( my ($key, $value) = each %search) {                                 
!   if ($value ne '' && $key ne 'ttype'){
!     $value=~ s/\\//g;
!     print bold("$key $value,");
!   }                          
! }
! print " $count results found";
! my $offset2=$num+$offset;
! my $dispnum=$offset+1;
! print "<br> Results $dispnum to $offset2 displayed";
! print mktablehdr;
! if ($type ne 'opac'){
!   if ($subject ne ''){
!    print mktablerow(1,$main,'<b>SUBJECT</b>','/images/background-mem.gif');
!   } elsif ($illustrator ne '') {
!    print mktablerow(7,$main,'<b>TITLE</b>','<b>AUTHOR</b>', 
'<b>ILLUSTRATOR<b>', 
bold('&copy;'),'<b>COUNT</b>',bold('LOCATION'),'','/images/background-mem.gif');
!   } else {
!    print 
mktablerow(6,$main,'<b>TITLE</b>','<b>AUTHOR</b>',bold('&copy;'),'<b>COUNT</b>',bold('LOCATION'),'','/images/background-mem.gif');
!   }
! } else {
!   if ($subject ne ''){
!    print mktablerow(6,$main,'<b>SUBJECT</b>',' &nbsp; ',' &nbsp; ');
!   } elsif ($illustrator ne '') {
!    print 
mktablerow(7,$main,'<b>TITLE</b>','<b>AUTHOR</b>','<b>ILLUSTRATOR</b>', 
bold('&copy;'),'<b>COUNT</b>',bold('BRANCH'),'');
!   } else {
!    print 
mktablerow(6,$main,'<b>TITLE</b>','<b>AUTHOR</b>',bold('&copy;'),'<b>COUNT</b>',bold('BRANCH'),'');
!   }
! }
! my address@hidden;
! if ($keyword ne '' && $offset > 0){
!   $count2=$count-$offset;
!   if ($count2 > 10){
!     $count2=10;
!   }
! }
! #print $count2;
! my $i=0;
! my $colour=1;
! while ($i < $count2){
! #    print $results[$i]."\n";
! #    my @stuff=split('\t',$results[$i]);
!     my $result=$results[$i];
!     $result->{'title'}=~ s/\`/\\\'/g;
!     my $title2=$result->{'title'};
!     $title2=~ s/ /%20/g;
!     my $location='';
!     my $itemcount;
!     if ($subject eq ''){
!       
$result->{'title'}=mklink("/cgi-bin/koha/detail.pl?type=$type&bib=$result->{'biblionumber'}&title=$title2",$result->{'title'});
!       my $word=$result->{'author'};
!       $word=~ s/([a-z]) +([a-z])/$1%20$2/ig;
!       $word=~ s/  //g;
!       $word=~ s/ /%20/g;
!       $word=~ s/\,/\,%20/g;
!       $word=~ s/\n//g;
!       my $url="/cgi-bin/koha/search.pl?author=$word&type=$type";
!       $result->{'author'}=mklink($url,$result->{'author'});
!       my 
($count,$lcount,$nacount,$fcount,$scount,$lostcount,$mending,$transit,$ocount)=itemcount($env,$result->{'biblionumber'},$type);
!       $itemcount=$count;
!       ####
!       # Fix this chunk below, remove all hardcoded branch references
!       # need to fix itemcount as well
!       ###
!       if ($nacount > 0){
!         $location=$location."On Loan";
!       if ($nacount >1 ){                                                      
                                                   
!         $location=$location." ($nacount)";                                    
                                                        
!          }                                                                    
                                                     
!        $location.=" ";
!       }
!       if ($lcount > 0){
!          $location=$location."Levin";
!          if ($lcount >1 ){                                                    
                                                     
!         $location=$location." ($lcount)";                                     
                                                       
!          }                                                                    
                                                     
!        $location.=" ";
!       }
!       if ($fcount > 0){
!         $location=$location."Foxton";
!          if ($fcount >1 ){                                                    
                                                     
!         $location=$location." ($fcount)";                                     
                                                       
!          }                                                                    
                                                     
!        $location.=" ";        
!       }
!       if ($scount > 0){
!         $location=$location."Shannon";
!          if ($scount >1 ){                                                    
                                                     
!         $location=$location." ($scount)";                                     
                                                       
!          }                                                                    
                                                     
!        $location.=" ";        
!       }
!       if ($lostcount > 0){
!         $location=$location."Lost";
!          if ($lostcount >1 ){                                                 
                                                        
!         $location=$location." ($lostcount)";                                  
                                                          
!          }                                                                    
                                                     
!        $location.=" ";        
!       }
!       if ($mending > 0){
!         $location=$location."Mending";
!          if ($mending >1 ){                                                   
                                                      
!         $location=$location." ($mending)";                                    
                                                        
!          }                                                                    
                                                     
!        $location.=" ";        
!       }
!       if ($transit > 0){
!         $location=$location."In Transiit";
!          if ($transit >1 ){                                                   
                                                      
!         $location=$location." ($transit)";                                    
                                                        
!          }                                                                    
                                                     
!        $location.=" ";        
!       }
!       if ($ocount > 0){
!         $location=$location."On Order";
!          if ($ocount >1 ){                                                    
                                                     
!         $location=$location." ($ocount)";                                     
                                                       
!          }                                                                    
                                                     
!        $location.=" ";        
!       }
!       
! #      if ($type ne 'opac'){
! #        
$result->{'request'}=mklink("/cgi-bin/koha/request.pl?bib=$stuff[2]","Request");
! #      }
!     } else {
!       my $word=$result->{'subject'};
!       $word=~ s/ /%20/g;
!       
!         
$result->{'title'}=mklink("/cgi-bin/koha/subjectsearch.pl?subject=$word&type=$type",$result->{'subject'});
! 
!     }
! 
!     if ($colour == 1){
!       if ($illustrator) {
!         print 
mktablerow(7,$secondary,$result->{'title'},$result->{'author'},$result->{'illus'},$result->{'copyrightdate'},$itemcount,$location);
!       } else {
!         print 
mktablerow(6,$secondary,$result->{'title'},$result->{'author'},$result->{'copyrightdate'},$itemcount,$location);
!       }
!       $colour=0;
!     } else {
!       if ($illustrator) {
!         print 
mktablerow(7,'white',$result->{'title'},$result->{'author'},$result->{'illus'},$result->{'copyrightdate'},$itemcount,$location);
!       } else {
!         print 
mktablerow(6,'white',$result->{'title'},$result->{'author'},$result->{'copyrightdate'},$itemcount,$location);
!       }
!       $colour=1;
!     }
!     $i++;
! }
! $offset=$num+$offset;
! if ($type ne 'opac'){
!     if ($illustrator) {
!        print mktablerow(7,$main,' &nbsp; ',' &nbsp; ',' &nbsp;',' 
&nbsp;','','','','/images/background-mem.gif');
!     } else {
!        print mktablerow(6,$main,' &nbsp; ',' &nbsp; ',' &nbsp;',' 
&nbsp;','','','/images/background-mem.gif');
!     }
! } else {
!  if ($illustrator) {
!      print mktablerow(7,$main,' &nbsp; ',' &nbsp; ',' &nbsp;',' &nbsp; ','', 
'','');
!  } else {
!      print mktablerow(6,$main,' &nbsp; ',' &nbsp; ',' &nbsp;',' &nbsp; 
','','');
!  }
! }
! print mktableft();
! my $search;
! 
!     $search="num=$num&offset=$offset&type=$type";
!     if ($subject ne ''){
!       $subject=~ s/ /%20/g;
!       $search=$search."&subject=$subject";
!     }
!     if ($title ne ''){
!       $title=~ s/ /%20/g;
!       $search=$search."&title=$title";
!     }
!     if ($author ne ''){
!       $author=~ s/ /%20/g;
!       $search=$search."&author=$author";
!     }
!     if ($keyword ne ''){
!       $keyword=~ s/ /%20/g;
!       $search=$search."&keyword=$keyword";
!     }
!     if ($class ne ''){
!       $keyword=~ s/ /%20/g;
!       $search=$search."&class=$class";
!     }
!     if ($dewey ne ''){
!       $search=$search."&dewey=$dewey";
!     }
!     $search.="&ttype=$ttype";    
! if ($offset < $count){    
!     my $stuff=mklink("/cgi-bin/koha/search.pl?$search",'Next');
!     print $stuff;
! }
! print "<br>";
! my $pages=$count/10;
! $pages++;
! for (my $i=1;$i<$pages;$i++){
!   my $temp=$i*10;
!   $temp=$temp-10;
!   $search=~ s/offset=[0-9]+/offset=$temp/;
!   my $stuff=mklink("/cgi-bin/koha/search.pl?$search",$i);
!   print "$stuff ";
! }
!   
! print endcenter();
! print endmenu($type);
! print endpage();
  
- 
- sub validate {
-   my ($input)address@hidden;
-   $input=~ s/\<[a-z]+\>//gi;
-   $input=~ s/\<\/[a-z]+\>//gi;
-   $input=~ s/\<//g;
-   $input=~ s/\>//g;
-   $input=~ s/^%//g;
-   return($input);
- }
--- 1,139 ----
  #!/usr/bin/perl
! use HTML::Template;
  use strict;
! require Exporter;
! use C4::Database;
  use CGI;
! use C4::Search;
! use C4::Output; # no contains picktemplate
!   
! my $query=new CGI;
  
  
! my $language='french';
  
  
! my %configfile;
! open (KC, "/etc/koha.conf");
! while (<KC>) {
!  chomp;
!  (next) if (/^\s*#/);
!  if (/(.*)\s*=\s*(.*)/) {
!    my $variable=$1;
!    my $value=$2;
!    # Clean up white space at beginning and end
!    $variable=~s/^\s*//g;
!    $variable=~s/\s*$//g;
!    $value=~s/^\s*//g;
!    $value=~s/\s*$//g;
!    $configfile{$variable}=$value;
!  }
! }
! #print $query->header;
  
! my $includes=$configfile{'includes'};
! ($includes) || ($includes="/usr/local/www/hdl/htdocs/includes");
! my $templatebase="catalogue/searchresults.tmpl";
! my $startfrom=$query->param('startfrom');
! ($startfrom) || ($startfrom=0);
! my $theme=picktemplate($includes, $templatebase);
! 
! my $subject=$query->param('subject');
! # if its a subject we need to use the subject.tmpl
! if ($subject) {
!     $templatebase=~ s/searchresults\.tmpl/subject\.tmpl/;
!     $theme=picktemplate($includes, $templatebase);
! }
  
! my $template = HTML::Template->new(filename => 
"$includes/templates/$theme/$templatebase", die_on_bad_params => 0, path => 
[$includes]);
  
! my $env;
! $env->{itemcount}=1;
  
! # get all the search variables
! # we assume that C4::Search will validate these values for us
! my %search;
! my $keyword=$query->param('keyword');
! $search{'keyword'}=$keyword;
  
  $search{'subject'}=$subject;
! my $author=$query->param('author');
! $search{'author'}=$author;
! my $illustrator=$query->param('illustrator');
! $search{'param'}=$illustrator;
! my $itemnumber=$query->param('itemnumber');
! $search{'itemnumber'}=$itemnumber;
! my $isbn=$query->param('isbn');
  $search{'isbn'}=$isbn;
! my $datebefore=$query->param('date-before');
! $search{'date-before'}=$datebefore;
! my $class=$query->param('class');
  $search{'class'}=$class;
! my $dewey=$query->param('dewey');
! $search{'dewey'};
! my $branch=$query->param('branch');
! $search{'branch'}=$branch;
! my $title=$query->param('title');
! $search{'title'}=$title;
! my $ttype=$query->param('ttype');
  $search{'ttype'}=$ttype;
  
! my $forminputs;
! ($keyword) && (push @$forminputs, { line => "keyword=$keyword"});
! ($subject) && (push @$forminputs, { line => "subject=$subject"});
! ($author) && (push @$forminputs, { line => "author=$author"});
! ($illustrator) && (push @$forminputs, { line => "illustrator=$illustrator"});
! ($itemnumber) && (push @$forminputs, { line => "itemnumber=$itemnumber"});
! ($isbn) && (push @$forminputs, { line => "isbn=$isbn"});
! ($datebefore) && (push @$forminputs, { line => "date-before=$datebefore"});
! ($class) && (push @$forminputs, { line => "class=$class"});
! ($dewey) && (push @$forminputs, { line => "dewey=$dewey"});
! ($branch) && (push @$forminputs, { line => "branch=$branch"});
! ($title) && (push @$forminputs, { line => "title=$title"});
! ($ttype) && (push @$forminputs, { line => "ttype=$ttype"});
! $template->param(FORMINPUTS => $forminputs);
! # whats this for?
! # I think it is (or was) a search from the "front" page...   [st]
! $search{'front'}=$query->param('front');
! 
! my $num=20;
! my ($count,@results)=catalogsearch($env,'',\%search,$num,$startfrom);
! 
! my address@hidden;
! 
! my $search="num=20";
! if ($keyword){
!     $search=$search."&keyword=$keyword";
! }
! if ($subject){
!     $search=$search."&subject=$subject";
! }
! if ($author){
!     $search=$search."&author=$author";
! }
! if ($class){
!     $search=$search."&class=$class";
! }
! if ($title){
!     $search=$search."&title=$title";
! }
! if ($dewey){
!     $search=$search."&dewey=$dewey";
! }
! $search.="&ttype=$ttype";
! 
! $search=~ s/ /%20/g;
! $template->param(startfrom => $startfrom+1);
! $template->param(endat => $startfrom+20);
! $template->param(numrecords => $count);
! my $nextstartfrom=($startfrom+20<$count-20) ? ($startfrom+20) : ($count-20);
! my $prevstartfrom=($startfrom-20>0) ? ($startfrom-20) : (0);
! $template->param(nextstartfrom => $nextstartfrom);
! $template->param(prevstartfrom => $prevstartfrom);
! $template->param(search => $search);
! $template->param(SEARCH_RESULTS => $resultsarray);
! $template->param(includesdir => $includes);
  
  
! print "Content-Type: text/html\n\n", $template->output;
  




reply via email to

[Prev in Thread] Current Thread [Next in Thread]