koha-cvs
[Top][All Lists]
Advanced

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

[Koha-cvs] CVS: koha/C4 AuthoritiesMarc.pm,1.9.2.7,1.9.2.8


From: Paul POULAIN
Subject: [Koha-cvs] CVS: koha/C4 AuthoritiesMarc.pm,1.9.2.7,1.9.2.8
Date: Tue, 25 Oct 2005 05:39:01 -0700

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

Modified Files:
      Tag: rel_2_2
        AuthoritiesMarc.pm 
Log Message:
* fixing bug in summary (separator before subfield was in fact after)
* fixing bug in authority order : authorities are not ordered alphabetically 
instead of no order. Requires all the dataset to be retrieved, but the benefits 
is important !

Index: AuthoritiesMarc.pm
===================================================================
RCS file: /cvsroot/koha/koha/C4/AuthoritiesMarc.pm,v
retrieving revision 1.9.2.7
retrieving revision 1.9.2.8
diff -C2 -r1.9.2.7 -r1.9.2.8
*** AuthoritiesMarc.pm  1 Aug 2005 15:14:50 -0000       1.9.2.7
--- AuthoritiesMarc.pm  25 Oct 2005 12:38:59 -0000      1.9.2.8
***************
*** 136,145 ****
                        push @result,$authid;
                }
- 
        # we have authid list. Now, loads summary from [offset] to 
[offset]+[length]
!       my $counter = $offset;
        my @finalresult = ();
        my $oldline;
!       while (($counter <= $#result) && ($counter <= ($offset + $length))) {
  #             warn " HERE : $counter, $#result, $offset, $length";
                # get MARC::Record of the authority
--- 136,146 ----
                        push @result,$authid;
                }
        # we have authid list. Now, loads summary from [offset] to 
[offset]+[length]
! #     my $counter = $offset;
        my @finalresult = ();
        my $oldline;
! #     while (($counter <= $#result) && ($counter <= ($offset + $length))) {
!       # retrieve everything
!       for (my $counter=0;$counter <=$#result;$counter++) {
  #             warn " HERE : $counter, $#result, $offset, $length";
                # get MARC::Record of the authority
***************
*** 159,163 ****
                                        my $subfieldvalue = $subf[$i][1];
                                        my $tagsubf = $tag.$subfieldcode;
!                                       $summary =~ 
s/\[(.?.?.?.?)$tagsubf(.*?)]/$1$subfieldvalue\[$1$tagsubf$2]$2/g;
                                }
                        }
--- 160,164 ----
                                        my $subfieldvalue = $subf[$i][1];
                                        my $tagsubf = $tag.$subfieldcode;
!                                       $summary =~ 
s/\[(.?.?.?.?)$tagsubf(.*?)]/$1$subfieldvalue$2\[$1$tagsubf$2]/g;
                                }
                        }
***************
*** 185,193 ****
                $newline{even} = $counter % 2;
                $newline{mainentry} = 
$record->field($mainentrytag)->subfield('a')." 
".$record->field($mainentrytag)->subfield('b') if $record->field($mainentrytag);
-               $counter++;
                push @finalresult, \%newline;
        }
        my $nbresults = $#result + 1;
!       return (address@hidden, $nbresults);
  }
  
--- 186,201 ----
                $newline{even} = $counter % 2;
                $newline{mainentry} = 
$record->field($mainentrytag)->subfield('a')." 
".$record->field($mainentrytag)->subfield('b') if $record->field($mainentrytag);
                push @finalresult, \%newline;
        }
+       # sort everything
+       my @finalresult3= sort {$a->{summary} cmp $b->{summary}} @finalresult;
+       # cut from $offset to $offset+$length;
+       my @finalresult2;
+       for (my $i=$offset;$i<=$offset+$length;$i++) {
+               push @finalresult2,$finalresult3[$i] if $finalresult3[$i];
+       }
        my $nbresults = $#result + 1;
! 
!       return (address@hidden, $nbresults);
  }
  
***************
*** 400,404 ****
        my ($dbh,$record,$authid,$authtypecode) = @_;
        my @fields=$record->fields();
- #     warn "IN AUTHaddauthority $authid => ".$record->as_formatted;
  # adding main table, and retrieving authid
  # if authid is sent, then it's not a true add, it's only a re-add, after a 
delete (ie, a mod)
--- 408,411 ----
***************
*** 428,440 ****
                } else {
                        my @subfields=$field->subfields();
!                       foreach my $subfieldcount (0..$#subfields) {
!                               &AUTHaddsubfield($dbh,$authid,
!                                               $field->tag(),
!                                               
$field->indicator(1).$field->indicator(2),
!                                               $fieldcount,
!                                               $subfields[$subfieldcount][0],
!                                               $subfieldcount+1,
!                                               $subfields[$subfieldcount][1]
!                                               );
                        }
                }
--- 435,451 ----
                } else {
                        my @subfields=$field->subfields();
!                       my $subfieldorder;
!                       foreach my $subfield (@subfields) {
!                               foreach (split /\|/,@$subfield[1]) {
!                                       $subfieldorder++;
!                                       &AUTHaddsubfield($dbh,$authid,
!                                                       $field->tag(),
!                                                       
$field->indicator(1).$field->indicator(2),
!                                                       $fieldcount,
!                                                       @$subfield[0],
!                                                       $subfieldorder,
!                                                       $_
!                                                       );
!                               }
                        }
                }
***************
*** 458,461 ****
--- 469,473 ----
        foreach my $subfieldvalue (@subfieldvalues) {
                my $sth=$dbh->prepare("insert into auth_subfield_table 
(authid,tag,tagorder,tag_indicator,subfieldcode,subfieldorder,subfieldvalue) 
values (?,?,?,?,?,?,?)");
+ #             warn "==> $authid,".(sprintf "%03s",$tagid).",TAG : 
$tagorder,$tag_indicator,$subfieldcode,$subfieldorder,$subfieldvalue";
                $sth->execute($authid,(sprintf 
"%03s",$tagid),$tagorder,$tag_indicator,$subfieldcode,$subfieldorder,$subfieldvalue);
                if ($sth->errstr) {
***************
*** 474,478 ****
      my $sth=$dbh->prepare("select 
authid,subfieldid,tag,tagorder,tag_indicator,subfieldcode,subfieldorder,subfieldvalue
                                 from auth_subfield_table
!                                where authid=? order by 
tag,tagorder,subfieldcode
                         ");
        $sth->execute($authid);
--- 486,490 ----
      my $sth=$dbh->prepare("select 
authid,subfieldid,tag,tagorder,tag_indicator,subfieldcode,subfieldorder,subfieldvalue
                                 from auth_subfield_table
!                                where authid=? order by 
tag,tagorder,subfieldorder
                         ");
        $sth->execute($authid);
***************
*** 927,930 ****
--- 939,946 ----
  # $Id$
  # $Log$
+ # Revision 1.9.2.8  2005/10/25 12:38:59  tipaul
+ # * fixing bug in summary (separator before subfield was in fact after)
+ # * fixing bug in authority order : authorities are not ordered 
alphabetically instead of no order. Requires all the dataset to be retrieved, 
but the benefits is important !
+ #
  # Revision 1.9.2.7  2005/08/01 15:14:50  tipaul
  # minor change in summary handling (accepting 4 digits before the field)




reply via email to

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