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.10,1.11 updatebibitem.pl,1.8,1.9 update


From: Paul POULAIN
Subject: [Koha-cvs] CVS: koha search.pl,1.10,1.11 updatebibitem.pl,1.8,1.9 updateitem.pl,1.4,1.5
Date: Fri, 20 Sep 2002 06:01:53 -0700

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

Modified Files:
        search.pl updatebibitem.pl updateitem.pl 
Log Message:
long is the road to 1.4.0
* MARCadditem and MARCmoditem now works
* various bugfixes in MARC management
!!! 1.3.0 should be released very soon now. Be careful !!!


Index: search.pl
===================================================================
RCS file: /cvsroot/koha/koha/search.pl,v
retrieving revision 1.10
retrieving revision 1.11
diff -C2 -r1.10 -r1.11
*** search.pl   14 Aug 2002 18:12:51 -0000      1.10
--- search.pl   20 Sep 2002 13:01:50 -0000      1.11
***************
*** 1,3 ****
--- 1,4 ----
  #!/usr/bin/perl
+ use HTML::Template;
  #script to provide intranet (librarian) advanced search facility
  
***************
*** 21,348 ****
  
  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);
- }
--- 22,166 ----
  
  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 $abstract=$query->param('abstract');
+ $search{'abstract'}=$abstract;
+ my $publisher=$query->param('publisher');
+ $search{'publisher'}=$publisher;
  
+ 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"});
! ($abstract) && (push @$forminputs, { line => "abstract=$abstract"});
! ($publisher) && (push @$forminputs, { line => "publisher=$publisher"});
! $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=10;
! 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+$num);
! $template->param(numrecords => $count);
! my $nextstartfrom=($startfrom+$num<$count-$num) ? ($startfrom+$num) : 
($count-$num);
! my $prevstartfrom=($startfrom-$num>0) ? ($startfrom-$num) : (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;
  

Index: updatebibitem.pl
===================================================================
RCS file: /cvsroot/koha/koha/updatebibitem.pl,v
retrieving revision 1.8
retrieving revision 1.9
diff -C2 -r1.8 -r1.9
*** updatebibitem.pl    14 Aug 2002 18:12:51 -0000      1.8
--- updatebibitem.pl    20 Sep 2002 13:01:51 -0000      1.9
***************
*** 85,89 ****
      my $barcode=$input->param($temp);
      if ($barcode ne ''){
!       moditem($items[$i]->{'notforloan'},$items[$i]->{'itemnumber'},$group);
  #      print "modify $items[$i]->{'itemnumber'} $group";
      }
--- 85,93 ----
      my $barcode=$input->param($temp);
      if ($barcode ne ''){
!       moditem({ biblionumber => $bibnum,
!               notforloan   => $items[$i]->{'notforloan'},
!               itemnumber   => $items[$i]->{'itemnumber'},
!               group        => $group
!                   });
  #      print "modify $items[$i]->{'itemnumber'} $group";
      }
***************
*** 127,131 ****
        for (my $i=0;$i<$count;$i++){
          if ($barcodes[$i] ne ''){
!         moditem($loan,$items[$i]->{'itemnumber'},$bibitemnum);
        }
        }
--- 131,139 ----
        for (my $i=0;$i<$count;$i++){
          if ($barcodes[$i] ne ''){
!         moditem({ biblionumber => $bibnum,
!                   loan         => $loan,
!                   itemnumber   => $items[$i]->{'itemnumber'},
!                   bibitemnum   => $bibitemnum
!                   });
        }
        }
***************
*** 134,137 ****
--- 142,146 ----
        &modbibitem({
          biblioitemnumber => $bibitemnum,
+         biblionumber     => $bibnum,
          itemtype         => $itemtype?$itemtype:"",
          url              => $url?$url:"",
***************
*** 155,159 ****
        for (my $i=0;$i<$count;$i++){                                           
  
          if ($barcodes[$i] ne ''){                                             
  
!           moditem($loan,$items[$i]->{'itemnumber'},$bibitemnum);              
  
          }                                                                     
  
        }
--- 164,172 ----
        for (my $i=0;$i<$count;$i++){                                           
  
          if ($barcodes[$i] ne ''){                                             
  
!           moditem( {biblionumber => $bibnum,
!                     loan         => $loan,
!                     itemnumber   => $items[$i]->{'itemnumber'},
!                     bibitemnum   => $bibitemnum
!                     });
          }                                                                     
  
        }

Index: updateitem.pl
===================================================================
RCS file: /cvsroot/koha/koha/updateitem.pl,v
retrieving revision 1.4
retrieving revision 1.5
diff -C2 -r1.4 -r1.5
*** updateitem.pl       14 Aug 2002 18:12:51 -0000      1.4
--- updateitem.pl       20 Sep 2002 13:01:51 -0000      1.5
***************
*** 77,81 ****
  
  if ($wthdrawn == 0 && $override ne 'yes'){
!   
moditem('loan',$itemnum,$bibitemnum,$barcode,$notes,$homebranch,$lost,$wthdrawn);
    if ($lost ==1){
      my $dbh=C4Connect;
--- 77,90 ----
  
  if ($wthdrawn == 0 && $override ne 'yes'){
!   moditem( { biblionumber => $bibnum,
!            loan         =>'loan',
!            itemnum      => $itemnum,
!            bibitemnum   => $bibitemnum,
!            barcode      => $barcode,
!            notes        => $notes,
!            homebranch   => $homebranch,
!            lost         => $lost,
!            wthdranw     => $wthdrawn
!            });
    if ($lost ==1){
      my $dbh=C4Connect;
***************
*** 130,134 ****
      print "<p> <a href=$url>Cancel Anyway</a> &nbsp; or <a 
href=\"\">Back</a>";
    }else {
!     
moditem('loan',$itemnum,$bibitemnum,$barcode,$notes,$homebranch,$lost,$wthdrawn);
      print 
$input->redirect("moredetail.pl?type=intra&bib=$bibnum&bi=$bibitemnum");
    }
--- 139,152 ----
      print "<p> <a href=$url>Cancel Anyway</a> &nbsp; or <a 
href=\"\">Back</a>";
    }else {
!     moditem({ biblionumber => $bibnum,
!             loan         => 'loan',
!             itemnum      => $itemnum,
!             bibitemnum   => $bibitemnum,
!             barcode      => $barcode,
!             notes        => $notes,
!             homebranch   => $homebranch,
!             lost         => $lost,
!             wthdrawn     => $wthdrawn
!             });
      print 
$input->redirect("moredetail.pl?type=intra&bib=$bibnum&bi=$bibitemnum");
    }




reply via email to

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