[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Koha-cvs] CVS: koha/acqui.simple marcimport.pl,1.31,1.32
From: |
Paul POULAIN |
Subject: |
[Koha-cvs] CVS: koha/acqui.simple marcimport.pl,1.31,1.32 |
Date: |
Tue, 22 Apr 2003 05:22:57 -0700 |
Update of /cvsroot/koha/koha/acqui.simple
In directory sc8-pr-cvs1:/tmp/cvs-serv30791/acqui.simple
Modified Files:
marcimport.pl
Log Message:
1st draft for z3950 client import.
moving Breeding farm script to a perl package C4/Breeding.pm
Index: marcimport.pl
===================================================================
RCS file: /cvsroot/koha/koha/acqui.simple/marcimport.pl,v
retrieving revision 1.31
retrieving revision 1.32
diff -C2 -r1.31 -r1.32
*** marcimport.pl 19 Feb 2003 01:01:07 -0000 1.31
--- marcimport.pl 22 Apr 2003 12:22:54 -0000 1.32
***************
*** 44,47 ****
--- 44,48 ----
use C4::Output;
use C4::Auth;
+ use C4::Breeding;
#------------------
***************
*** 83,145 ****
$marcrecord.=$_;
}
! my @marcarray = split /\x1D/, $marcrecord;
! my $dbh = C4::Context->dbh;
! my $searchisbn = $dbh->prepare("select biblioitemnumber from
biblioitems where isbn=?");
! my $searchissn = $dbh->prepare("select biblioitemnumber from
biblioitems where issn=?");
! my $searchbreeding = $dbh->prepare("select id from marc_breeding where
isbn=?");
! my $insertsql = $dbh->prepare("insert into marc_breeding
(file,isbn,title,author,marc) values(?,?,?,?,?)");
! my $replacesql = $dbh->prepare("update marc_breeding set
file=?,isbn=?,title=?,author=?,marc=? where id=?");
! # fields used for import results
! my $imported=0;
! my $alreadyindb = 0;
! my $alreadyinfarm = 0;
! my $notmarcrecord = 0;
! for (my $i=0;$i<=$#marcarray;$i++) {
! my $marcrecord =
MARC::File::USMARC::decode($marcarray[$i]."\x1D");
! if (ref($marcrecord) eq undef) {
! $notmarcrecord++;
! } else {
! my $oldbiblio = MARCmarc2koha($dbh,$marcrecord);
! $oldbiblio->{title} = char_decode($oldbiblio->{title});
! $oldbiblio->{author} =
char_decode($oldbiblio->{author});
! # if isbn found and biblio does not exist, add it. If
isbn found and biblio exists, overwrite or ignore depending on user choice
! # drop every "special" char : spaces, - ...
! $oldbiblio->{isbn} =~ s/ |-|\.//g,
! # search if biblio exists
! my $biblioitemnumber;
! if ($oldbiblio->{isbn}) {
! $searchisbn->execute($oldbiblio->{isbn});
! ($biblioitemnumber) = $searchisbn->fetchrow;
! } else {
! $searchissn->execute($oldbiblio->{issn});
! ($biblioitemnumber) = $searchissn->fetchrow;
! }
! if ($biblioitemnumber) {
! $alreadyindb++;
! } else {
! # search in breeding farm
! my $breedingid;
! if ($oldbiblio->{isbn}) {
!
$searchbreeding->execute($oldbiblio->{isbn});
! ($breedingid) =
$searchbreeding->fetchrow;
! } else {
!
$searchbreeding->execute($oldbiblio->{issn});
! ($breedingid) =
$searchbreeding->fetchrow;
! }
! if (!$breedingid || $overwrite_biblio) {
! my $recoded;
! $recoded = $marcrecord->as_usmarc();
! if ($breedingid) {
! $replacesql
->execute($filename,substr($oldbiblio->{isbn}.$oldbiblio->{issn},0,10),$oldbiblio->{title},$oldbiblio->{author},$recoded,$breedingid);
! } else {
! $insertsql
->execute($filename,substr($oldbiblio->{isbn}.$oldbiblio->{issn},0,10),$oldbiblio->{title},$oldbiblio->{author},$recoded);
! }
! $imported++;
! } else {
! $alreadyinfarm++;
! }
! }
! }
! }
$template->param(imported => $imported,
alreadyindb =>
$alreadyindb,
--- 84,89 ----
$marcrecord.=$_;
}
! my ($notmarcrecord,$alreadyindb,$alreadyinfarm,$imported) =
ImportBreeding($marcrecord,$overwrite_biblio,$filename);
!
$template->param(imported => $imported,
alreadyindb =>
$alreadyindb,
***************
*** 155,810 ****
my $file;
- # Process a MARC file : show list of records, of 1 record detail, if
numrecord exists
- sub ProcessFile {
- # A MARC file has been specified; process it for review form
- use strict;
- # Input params
- my (
- $input,
- )address@hidden;
-
- # local vars
- my (
- $sth,
- $record,
- );
-
- my $debug=0;
-
- # See if a particular result item was specified
- my $numrecord = $input->param('numrecord');
- if ($numrecord) {
- ProcessRecord($dbh,$input,$numrecord);
- } else {
- # No result item specified, list results
- ListFileRecords($dbh,$input);
- } # if
- } # sub ProcessFile
-
- # show 1 record from the MARC file
- sub ProcessRecord {
- my ($dbh, $input,$numrecord) = @_;
- # local vars
- my (
- $sth,
- $record,
- $data,
- );
-
- if ($file=~/Z-(\d+)/) {
- my $id=$1;
- my $resultsid=$input->param('resultsid');
- my $sth=$dbh->prepare("select results from z3950results where
id=$resultsid");
- $sth->execute;
- ($data) = $sth->fetchrow;
- } else {
- my $sth=$dbh->prepare("select marc from uploadedmarc where id=$file");
- $sth->execute;
- ($data) = $sth->fetchrow;
- }
-
- my $file=MARC::File::USMARC->indata ($data);
- my $oldkoha;
- for (my $i=1;$i<$numrecord;$i++) {
- $record = $file->next;
- }
- if ($record) {
- $oldkoha=MARCmarc2koha($dbh,$record);
- }
- my $template=gettemplate('marcimport/marcimportdetail.tmpl');
- $oldkoha->{additionalauthors} =~ s/ \| /\n/g;
- $oldkoha =~ s/\|/\n/g;
- $template->param($oldkoha);
- #---- build MARC array for template
- my @loop = ();
- my $tagmeaning = &MARCgettagslib($dbh,1);
- my @fields = $record->fields();
- my $color=0;
- my $lasttag="";
- foreach my $field (@fields) {
- my @subfields=$field->subfields();
- foreach my $subfieldcount (0..$#subfields) {
- my %row_data;
- if ($lasttag== $field->tag()) {
- $row_data{tagid} = "";
- } else {
- $row_data{tagid} = $field->tag();
- }
- $row_data{subfield} = $subfields[$subfieldcount][0];
- $row_data{tagmean} =
$tagmeaning->{$field->tag()}->{$subfields[$subfieldcount][0]};
- $row_data{tagvalue}= $subfields[$subfieldcount][1];
- if ($color ==0) {
- $color=1;
- $row_data{color} = $lc1;
- } else {
- $color=0;
- $row_data{color} = $lc2;
- }
- push(@loop,\%row_data);
- $lasttag=$field->tag();
- }
- }
- $template->param(MARC => address@hidden);
- $template->param(numrecord => $numrecord);
- $template->param(file => $data);
- print "Content-Type: text/html\n\n", $template->output;
- }
-
- # lists all records from the MARC file
- sub ListFileRecords {
- use strict;
-
- # Input parameters
- my (
- $dbh, # FIXME - Unused argument
- $input,
- )address@hidden;
-
- my (
- $sth, $sti,
- $field,
- $data, # records in MARC file format
- $name,
- $srvid,
- %servernames,
- $serverdb,
- );
-
- my $z3950=0;
- my $recordsource;
- my $record;
- my ($numrecords,$resultsid,$data,$startdate,$enddate);
- # FIXME - there's already a $data a few lines above.
-
- $dbh = C4::Context->dbh;
-
- my $template=gettemplate('marcimport/ListFileRecords.tmpl');
- # File can be z3950 search query or uploaded MARC data
-
- # if z3950 results
- if (not $file=~/Z-(\d+)/) {
- # This is a Marc upload
- $sth=$dbh->prepare("select marc,name from uploadedmarc where id=$file");
- $sth->execute;
- ($data, $name) = $sth->fetchrow;
- $template->param(IS_MARC => 1);
- $template->param(recordsource => $name);
- }
-
- if ($file=~/Z-(\d+)/) {
- # This is a z3950 search
- $template->param(IS_Z3950 =>1);
- my $id=$1; # search query id number
- my $serverstring;
- my $starttimer=time();
-
- $sth=$dbh->prepare("
- select
z3950results.numrecords,z3950results.id,z3950results.results,
- z3950results.startdate,z3950results.enddate,server
- from z3950queue left outer join z3950results
- on z3950queue.id=z3950results.queryid
- where z3950queue.id=?
- order by server
- ");
- $sth->execute($id);
- if ( $sth->rows ) {
- # loop through all servers in search results
- while ( ($numrecords,$resultsid,$data,
- $startdate,$enddate,$serverstring) = $sth->fetchrow ) {
- my ($srvid, $server, $database, $auth) = split(/\//,
$serverstring, 4);
- if ( $server ) {
- my
$srvname=&z3950servername($srvid,"$server/$database");
- $template->param(srvid => $srvid);
- $template->param(srvname => $srvname);
- } # if $server
- my $startrecord=$input->param("ST-$srvid");
- ($startrecord) || ($startrecord='0');
- my $serverplaceholder='';
- foreach ($input->param) {
- (next) unless (/ST-(.+)/);
- my $serverid=$1;
- (next) if ($serverid eq $srvid);
- my $place=$input->param("ST-$serverid");
- $serverplaceholder.="\&ST-$serverid=$place";
- }
- if ($numrecords) {
- $template->param(HAS_NUMRECORDS => 1);
- my $previous='';
- my $next='';
- if ($startrecord>0) {
- $previous="<a
href=".$ENV{'SCRIPT_NAME'}."?file=Z-$id&menu=z3950$serverplaceholder\&ST-$srvid=".($startrecord-10)."#SERVER-$srvid>Previous</a>";
- }
- my $highest;
- $highest=$startrecord+10;
- ($highest>$numrecords) && ($highest=$numrecords);
- if ($numrecords>$startrecord+10) {
- $next="<a
href=".$ENV{'SCRIPT_NAME'}."?file=Z-$id&menu=z3950$serverplaceholder\&ST-$srvid=$highest#SERVER-$srvid>Next</a>";
- }
- $template->param(startrecord => $startrecord+1);
- $template->param(highest => $highest);
- $template->param(numrecords => $numrecords);
- $template->param(previous => $previous);
- $template->param(next => $next);
- my $stj=$dbh->prepare("update z3950results
- set highestseen=? where id=?");
- $stj->execute($startrecord+10,$resultsid);
- }
-
- if (! $server ) {
- $template->param(PENDING => 1);
- } elsif ($enddate == 0) {
- my $now=time();
- my $elapsed=$now-$startdate;
- my $elapsedtime='';
- if ($elapsed>60) {
- $elapsedtime=sprintf "%d minutes",($elapsed/60);
- } else {
- $elapsedtime=sprintf "%d seconds",$elapsed;
- }
- $template->param(elapsedtime => $elapsedtime);
- } elsif ($numrecords) {
- my @loop = ();
- my $z3950file=MARC::File::USMARC->indata ($data);
- while (my $record=$z3950file->next) {
- my $oldkoha = MARCmarc2koha($dbh,$record);
- my %row = ResultRecordLink($dbh,$oldkoha,$resultsid);
- push(@loop,\%row);
- }
- $template->param(LINES => address@hidden);
- } else {
- }
- # print "</ul>\n";
- } # foreach server
- my $elapsed=time()-$starttimer;
- # print "<hr>It took $elapsed seconds to process this page.\n";
- } else {
- $template->param(NO_RECORDS =>1);
- $template->param(id => $id);
- } # if rows
-
- } else {
- #
- # This is an uploaded Marc record
- #
- my @loop = ();
- my $MARCfile = MARC::File::USMARC->indata($data);
- my $num = 0;
- while (my $record=$MARCfile->next) {
- $num++;
- my $oldkoha = MARCmarc2koha($dbh,$record);
- my %row = ResultRecordLink($dbh,$oldkoha,'',$num);
- push(@loop,\%row);
- }
- $template->param(LINES => address@hidden);
- } # if z3950 or marc upload
- print "Content-Type: text/html\n\n", $template->output;
- } # sub ListFileRecords
-
- #--------------
-
- sub ResultRecordLink {
- use strict;
- my ($dbh,$oldkoha,$resultsid, $num)address@hidden; # input
- # FIXME - $dbh as argument is no longer used
- my (
- $sth,
- $bib, # hash ref to named fields
- $searchfield, $searchvalue,
- $donetext,
- $fieldname,
- );
- my %row = ();
-
- $dbh = C4::Context->dbh;
-
- # $bib=extractmarcfields($record);
-
- $sth=$dbh->prepare("select *
- from biblioitems
- where (isbn=? and isbn!='') or (issn=? and issn!='') or (lccn=? and
lccn!='') ");
- $sth->execute($oldkoha->{isbn},$oldkoha->{issn},$oldkoha->{lccn});
- if ($sth->rows) {
- $donetext="DONE";
- } else {
- $donetext="";
- }
- ($oldkoha->{author}) && ($oldkoha->{author}="by $oldkoha->{author}");
-
- $searchfield="";
- foreach $fieldname ( "controlnumber", "lccn", "issn", "isbn") {
- if ( defined $oldkoha->{$fieldname} && $oldkoha->{$fieldname} ) {
- $searchfield=$fieldname;
- $searchvalue=$oldkoha->{$fieldname};
- } # if defined fieldname
- } # foreach
- if ( $searchfield ) {
- $row{SCRIPT_NAME} = $ENV{'SCRIPT_NAME'};
- $row{donetext} = $donetext;
- $row{file} = $file;
- # $row{resultsid} = $resultsid;
- # $row{searchfield} = $searchfield;
- # $row{searchvalue} = $searchvalue;
- $row{numrecord} = $num;
- $row{title} = $oldkoha->{title};
- $row{author} = $oldkoha->{author};
- } else {
- $row{title} = "Error: Problem with <br>$bib->{title}
$bib->{author}<br>";
- } # if searchfield
- return %row;
- } # sub PrintResultRecordLink
-
- #---------------------------------
-
-
- sub uploadmarc {
- use strict;
- my ($dbh)address@hidden; # FIXME - Unused argument
-
- $dbh = C4::Context->dbh;
-
- my $template=gettemplate('marcimport/uploadmarc.tmpl');
- $template->param(SCRIPT_NAME => $ENV{'SCRIPT_NAME'});
- # print "<a href=$ENV{'SCRIPT_NAME'}>Main Menu</a><hr>\n";
- my $sth=$dbh->prepare("select id,name from uploadedmarc");
- $sth->execute;
- # print "<h2>Select a set of MARC records</h2>\n<ul>";
- my @marc_loop = ();
- while (my ($id, $name) = $sth->fetchrow) {
- my %row;
- $row{id} = $id;
- $row{name} = $name;
- push(@marc_loop, \%row);
- # print "<li><a
href=$ENV{'SCRIPT_NAME'}?file=$id&menu=$menu>$name</a><br>\n";
- }
- $template->param(marc => address@hidden);
- print "Content-Type: text/html\n\n", $template->output;
-
- }
-
- sub manual {
- }
-
-
- sub mainmenu {
- my $template=gettemplate('marcimport/mainmenu.tmpl');
- $template->param(SCRIPT_NAME => $ENV{'SCRIPT_NAME'});
- print "Content-Type: text/html\n\n", $template->output;
- } # sub mainmenu
-
- #---------------------------------------------
- sub AcceptMarcUpload {
- use strict;
- my (
- $dbh, # DBI handle
- # FIXME - Unused argument
- $input, # CGI parms
- )address@hidden;
-
- $dbh = C4::Context->dbh;
-
- my $name=$input->param('name');
- my $data=$input->param('uploadmarc');
- my $marcrecord='';
-
- ($name) || ($name=$data);
- if (length($data)>0) {
- while (<$data>) {
- $marcrecord.=$_;
- }
- }
- my $q_marcrecord=$dbh->quote($marcrecord);
- my $q_name=$dbh->quote($name);
- my $sth=$dbh->prepare("insert into uploadedmarc
- (marc,name)
- values ($q_marcrecord, $q_name)");
- $sth->execute;
- } # sub AcceptMarcUpload
-
- #-------------------------------------------
- sub AcceptBiblioitem {
- use strict;
- my (
- $dbh, # FIXME - Unused argument
- $input,
- )address@hidden;
-
- my $biblionumber=0;
- my $biblioitemnumber=0;
- my $sth;
- my $record;
-
- $dbh = C4::Context->dbh;
-
- # my $isbn=$input->param('isbn');
- # my $issn=$input->param('issn');
- # my $lccn=$input->param('lccn');
- # my $q_origisbn=$dbh->quote($input->param('origisbn'));
- # my $q_origissn=$dbh->quote($input->param('origissn'));
- # my $q_origlccn=$dbh->quote($input->param('origlccn'));
- # my $q_origcontrolnumber=$dbh->quote($input->param('origcontrolnumber'));
- my $title=$input->param('title');
-
- # my $q_isbn=$dbh->quote((($isbn) || ('NIL')));
- # my $q_issn=$dbh->quote((($issn) || ('NIL')));
- # my $q_lccn=$dbh->quote((($lccn) || ('NIL')));
- my $file= MARC::File::USMARC->indata($input->param('file'));
- my $numrecord = $input->param('numrecord');
- if ($numrecord) {
- for (my $i=1;$i<$numrecord;$i++) {
- $record=$file->next;
- }
- } else {
- print STDERR "Error in marcimport.pl/Acceptbiblioitem : numrecord not
defined\n";
- print "Error in marcimport.pl/Acceptbiblioitem : numrecord not defined
: contact administrator\n";
- }
- my $template=gettemplate('marcimport/AcceptBiblioitem.tmpl');
-
- my $oldkoha = MARCmarc2koha($dbh,$record);
- # See if it already exists
- # FIXME - There's already a $sth in this context.
- my $sth=$dbh->prepare("select biblionumber,biblioitemnumber
- from biblioitems
- where isbn=? or issn=? or lccn=?");
- $sth->execute($oldkoha->{isbn},$oldkoha->{issn},$oldkoha->{lccn});
- if ($sth->rows) {
- # Already exists
-
- ($biblionumber, $biblioitemnumber) = $sth->fetchrow;
- $template->param(title => $title);
- $template->param(biblionumber => $biblionumber);
- $template->param(biblioitemnumber => $biblioitemnumber);
- $template->param(BIBLIO_EXISTS => 1);
-
- } else {
- # It doesn't exist; add it.
-
- my $error;
- my %biblio;
- my %biblioitem;
-
- # convert to upper case and split on lines
- my $subjectheadings=$input->param('subject');
- my @subjectheadings=split(/[\r\n]+/,$subjectheadings);
-
- my $additionalauthors=$input->param('additionalauthors');
- my @additionalauthors=split(/[\r\n]+|\|/,uc($additionalauthors));
- # FIXME - WTF are the additional authors
- # converted to upper case?
-
- # Use individual assignments to hash buckets, in case
- # any of the input parameters are empty or don't exist
- $biblio{title} =$input->param('title');
- $biblio{author} =$input->param('author');
- $biblio{copyright} =$input->param('copyrightdate');
- $biblio{seriestitle} =$input->param('seriestitle');
- $biblio{notes} =$input->param('notes');
- $biblio{abstract} =$input->param('abstract');
- $biblio{subtitle} =$input->param('subtitle');
-
- $biblioitem{volume} =$input->param('volume');
- $biblioitem{number} =$input->param('number');
- $biblioitem{itemtype} =$input->param('itemtype');
- $biblioitem{isbn} =$input->param('isbn');
- $biblioitem{issn} =$input->param('issn');
- $biblioitem{dewey} =$input->param('dewey');
- $biblioitem{subclass} =$input->param('subclass');
- $biblioitem{publicationyear} =$input->param('publicationyear');
- $biblioitem{publishercode} =$input->param('publishercode');
- $biblioitem{volumedate} =$input->param('volumedate');
- $biblioitem{volumeddesc} =$input->param('volumeddesc');
- $biblioitem{illus} =$input->param('illustrator');
- $biblioitem{pages} =$input->param('pages');
- $biblioitem{notes} =$input->param('notes');
- $biblioitem{size} =$input->param('size');
- $biblioitem{place} =$input->param('place');
- $biblioitem{lccn} =$input->param('lccn');
- $biblioitem{marc} =$input->param('marc');
- # print STDERR $record->as_formatted();
- # die;
- ($biblionumber, $biblioitemnumber, $error)=
- ALLnewbiblio($dbh,$record,\%biblio,\%biblioitem);
- # (1,2,0);
- # newcompletebiblioitem($dbh,
- # \%biblio,
- # \%biblioitem,
- # address@hidden,
- # address@hidden
- # );
-
- if ( $error ) {
- print "<H2>Error adding biblio item</H2> $error\n";
- } else {
- $template->param(title => $title);
- $template->param(biblionumber => $biblionumber);
- $template->param(biblioitemnumber => $biblioitemnumber);
- $template->param(BIBLIO_CREATE => 1);
- } # if error
- } # if new record
- my $barcode;
-
- # Get next barcode, or pick random one if none exist yet
- $sth=$dbh->prepare("select max(barcode) from items");
- $sth->execute;
- ($barcode) = $sth->fetchrow;
- $barcode++;
- if ($barcode==1) {
- $barcode=int(rand()*1000000);
- }
- my $branchselect=getkeytableselectoptions(
- $dbh, 'branches', 'branchcode', 'branchname', 0);
- $template->param(barcode => $barcode);
- $template->param(branchselect => $branchselect);
- print "Content-Type: text/html\n\n", $template->output;
-
- } # sub ItemCopyForm
-
- #---------------------------------------
- # Accept form data to add an item copy
- sub AcceptItemCopy {
- use strict;
- my ( $dbh, $input )address@hidden;
- # FIXME - $dbh argument unused
-
- my $template=gettemplate('marcimport/AcceptItemCopy.tmpl');
-
- my $error;
-
- $dbh = C4::Context->dbh;
-
- my $barcode=$input->param('barcode');
- my $replacementprice=($input->param('replacementprice') || 0);
-
- my $sth=$dbh->prepare("select barcode
- from items
- where barcode=?");
- $sth->execute($barcode);
- if ($sth->rows) {
- $template->param(BARCODE_EXISTS => 1);
- $template->param(barcode => $barcode);
- } else {
- # Insert new item into database
- $error=&ALLnewitem($dbh,
- { biblionumber=> $input->param('biblionumber'),
- biblioitemnumber=>
$input->param('biblioitemnumber'),
- itemnotes=> $input->param('notes'),
- homebranch=> $input->param('homebranch'),
- replacementprice=> $replacementprice,
- barcode => $barcode
- }
- );
- if ( $error ) {
- $template->param(ITEM_ERROR => 1);
- $template->param(error => $error);
- } else {
- $template->param(ITEM_CREATED => 1);
- $template->param(barcode => $barcode);
- } # if error
- } # if barcode exists
- print "Content-Type: text/html\n\n", $template->output;
- } # sub AcceptItemCopy
-
- #---------------------------------------
- sub FormatMarcText {
- use strict;
-
- # Input
- my (
- $fields, # list ref to MARC fields
- )address@hidden;
- # Return
- my $marctext;
-
- my (
- $color,
- $field,
- $tag,
- $label,
- $indicator,
- $subfieldcode,$subfieldvalue,
- @values, $value
- );
- my $debug=0;
-
- #-----------------------------------------
-
- $marctext="<table border=0 cellspacing=1>
- <tr><th colspan=4 background=/images/background-acq.gif>
- MARC RECORD
- </th></tr>\n";
-
- foreach $field ( @$fields ) {
-
- # Swap colors on alternating lines
- ($color eq $lc1) ? ($color=$lc2) : ($color=$lc1);
-
- $tag=$field->{'tag'};
- $label=taglabel($tag);
-
- if ( $tag eq 'LDR' ) {
- $tag='';
- $label="Leader:";
- }
- print "<pre>Format tag=$tag label=$label</pre>\n" if $debug;
-
- $marctext.="<tr><td bgcolor=$color valign=top>$label</td> \n" .
- "<td bgcolor=$color valign=top>$tag</td> \n";
-
- $indicator=$field->{'indicator'};
- $indicator=~s/ +$//; # drop trailing blanks
-
- # Third table column has indicator if it is short.
- # Fourth column has embedded table of subfields, and indicator
- # if it is long (leader or fixed-position fields)
-
- print "<pre>Format indicator=$indicator" .
- " length=" . length( $indicator ) . "</pre>\n" if $debug;
- if ( length( $indicator <= 3 ) ) {
- $marctext.="<td bgcolor=$color valign=top><pre>" .
- "$indicator</pre></td>" .
- "<td bgcolor=$color valign=top>" ;
- } else {
- $marctext.="<td bgcolor=$color valign=top></td>" .
- "<td bgcolor=$color valign=top>" .
- "$indicator ";
- } # if length
-
- # Subfields
- if ( $field->{'subfields'} ) {
- # start another table for subfields
- $marctext.= "<table border=0 cellspacing=2>\n";
- foreach $subfieldcode ( sort( keys %{ $field->{'subfields'} } )) {
- $subfieldvalue=$field->{'subfields'}->{$subfieldcode};
- if (ref($subfieldvalue) eq 'ARRAY' ) {
- # if it's a pointer to array, get all the values
- @address@hidden;
- } else {
- # otherwise get the one value
- @values=( $subfieldvalue );
- } # if subfield array
- foreach $value ( @values ) {
- $marctext.="<tr><td><strong>$subfieldcode</strong></td>" .
- "<td>$value</td></tr>\n";
- } # foreach value
- } # foreach subfield
- $marctext.="</table>\n";
- } # if subfields
- # End of indicator and subfields column
- $marctext.="</td>\n";
-
- # End of columns
- $marctext.="</tr>\n";
-
- } # foreach field
-
- $marctext.="</table>\n";
-
- return $marctext;
-
- } # sub FormatMarcText
-
#---------------
# log cleared, as marcimport is (almost) rewritten from scratch.
# $Log$
# Revision 1.31 2003/02/19 01:01:07 wolfpac444
# Removed the unecessary $dbh argument from being passed.
--- 99,110 ----
my $file;
#---------------
# log cleared, as marcimport is (almost) rewritten from scratch.
# $Log$
+ # Revision 1.32 2003/04/22 12:22:54 tipaul
+ # 1st draft for z3950 client import.
+ # moving Breeding farm script to a perl package C4/Breeding.pm
+ #
# Revision 1.31 2003/02/19 01:01:07 wolfpac444
# Removed the unecessary $dbh argument from being passed.
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Koha-cvs] CVS: koha/acqui.simple marcimport.pl,1.31,1.32,
Paul POULAIN <=
- Prev by Date:
[Koha-cvs] CVS: koha/z3950 processz3950queue,1.1,1.2 z3950import.pl,1.2,1.3
- Next by Date:
[Koha-cvs] CVS: koha/koha-tmpl/intranet-tmpl/default/en/parameters categorie.tmpl,1.6,1.7 categoryitem.tmpl,1.3,1.4 itemtypes.tmpl,1.7,1.8 marctagstructure.tmpl,1.13,1.14 printers.tmpl,1.5,1.6 stopwords.tmpl,1.7,1.8 systempreferences.tmpl,1.13,1.14 z3950servers.tmpl,1.6,1.7
- Previous by thread:
[Koha-cvs] CVS: koha/z3950 processz3950queue,1.1,1.2 z3950import.pl,1.2,1.3
- Next by thread:
[Koha-cvs] CVS: koha/koha-tmpl/intranet-tmpl/default/en/parameters categorie.tmpl,1.6,1.7 categoryitem.tmpl,1.3,1.4 itemtypes.tmpl,1.7,1.8 marctagstructure.tmpl,1.13,1.14 printers.tmpl,1.5,1.6 stopwords.tmpl,1.7,1.8 systempreferences.tmpl,1.13,1.14 z3950servers.tmpl,1.6,1.7
- Index(es):