koha-cvs
[Top][All Lists]
Advanced

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

[Koha-cvs] CVS: koha/C4 Input.pm,1.16,1.17


From: Henri-Damien LAURENT
Subject: [Koha-cvs] CVS: koha/C4 Input.pm,1.16,1.17
Date: Wed, 22 Jun 2005 02:36:26 -0700

Update of /cvsroot/koha/koha/C4
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv21033/C4

Modified Files:
        Input.pm 
Log Message:
Adding scrolling list for sort1 and sort2

Index: Input.pm
===================================================================
RCS file: /cvsroot/koha/koha/C4/Input.pm,v
retrieving revision 1.16
retrieving revision 1.17
diff -C2 -r1.16 -r1.17
*** Input.pm    28 Nov 2003 14:06:57 -0000      1.16
--- Input.pm    22 Jun 2005 09:36:24 -0000      1.17
***************
*** 22,25 ****
--- 22,26 ----
  require Exporter;
  use C4::Context;
+ use CGI;
  
  use vars qw($VERSION @ISA @EXPORT);
***************
*** 50,53 ****
--- 51,55 ----
  @EXPORT = qw(
        &checkdigit &checkvalidisbn
+       &buildCGIsort
  );
  
***************
*** 141,175 ****
  #   of 10 digits and valid checksum
  sub checkvalidisbn {
!         use strict;
!         my ($q)address@hidden ;       # Input: ISBN number
! 
!         my $isbngood = 0; # Return: true or false
! 
!         $q=~s/x$/X/g;           # upshift lower case X
!         $q=~s/[^X\d]//g;
!         $q=~s/X.//g;
!         
!       #return 0 if $q is not ten digits long
!       if (length($q)!=10) {
!               return 0;
!       }
        
!       #If we get to here, length($q) must be 10
!         my $checksum=substr($q,9,1);
!         my $isbn=substr($q,0,9);
!         my $i;
!         my $c=0;
!         for ($i=0; $i<9; $i++) {
!             my $digit=substr($q,$i,1);
!             $c+=$digit*(10-$i);
!         }
        $c %= 11;
!         ($c==10) && ($c='X');
!         $isbngood = $c eq $checksum;
! 
!         return $isbngood;
  
  } # sub checkvalidisbn
  
  END { }       # module clean-up code here (global destructor)
  
--- 143,214 ----
  #   of 10 digits and valid checksum
  sub checkvalidisbn {
!       use strict;
!       my ($q)address@hidden ; # Input: ISBN number
!       
!       my $isbngood = 0; # Return: true or false
!       
!       $q=~s/x$/X/g;   # upshift lower case X
!       $q=~s/[^X\d]//g;
!       $q=~s/X.//g;
        
!               #return 0 if $q is not ten digits long
!               if (length($q)!=10) {
!                       return 0;
!               }
!               
!               #If we get to here, length($q) must be 10
!       my $checksum=substr($q,9,1);
!       my $isbn=substr($q,0,9);
!       my $i;
!       my $c=0;
!       for ($i=0; $i<9; $i++) {
!               my $digit=substr($q,$i,1);
!               $c+=$digit*(10-$i);
!       }
        $c %= 11;
!       ($c==10) && ($c='X');
!       $isbngood = $c eq $checksum;
!       return $isbngood;
  
  } # sub checkvalidisbn
  
+ =item buildCGISort
+ 
+   $CGIScrollingList = &BuildCGISort($name string, $input_name string);
+ 
+ Returns the scrolling list with name $input_name, built on authorised Values 
named $name.
+ Returns NULL if no authorised values found
+ 
+ =cut
+ #'
+ #--------------------------------------
+ # Determine if a number is a valid ISBN number, according to length
+ #   of 10 digits and valid checksum
+ sub buildCGIsort {
+     use strict;
+       my ($name,$input_name,$data) = @_;
+       my $dbh=C4::Context->dbh;
+       my $query=qq{SELECT * FROM authorised_values WHERE category=?};
+       my $sth=$dbh->prepare($query);
+       $sth->execute($name);
+       my $CGISort;
+       if ($sth->rows>0){
+               my @values;
+               my %labels;
+               for (my $i =0;$i<=$sth->rows;$i++){
+                       my $results = $sth->fetchrow_hashref;
+                       push @values, $results->{authorised_value};
+                       $labels{$results->{authorised_value}}=$results->{lib};
+               }
+               $CGISort= CGI::scrolling_list(
+                                       -name => $input_name,
+                                       -values => address@hidden,
+                                       -labels => \%labels,
+                                       -default=> $data,
+                                       -size => 1,
+                                       -multiple => 0);
+       } 
+       return $CGISort;
+ }
  END { }       # module clean-up code here (global destructor)
  




reply via email to

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