[Top][All Lists]
[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)
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Koha-cvs] CVS: koha/C4 AuthoritiesMarc.pm,1.9.2.7,1.9.2.8,
Paul POULAIN <=