use YAML; #marcrecords2csv
use Template;
use Text::CSV::Encoded; #marc2csv
+use Koha::Items;
use Koha::SimpleMARC qw(read_field);
use Koha::XSLT_Handler;
use Koha::CsvProfiles;
my dcxml = marc2dcxml (undef, undef, 1, "oaidc");
Convert MARC or MARCXML to Dublin Core metadata (XSLT Transformation),
-optionally can get an XML directly from database (biblioitems.marcxml)
+optionally can get an XML directly from biblio_metadata
without item information. This method take into consideration the syspref
'marcflavour' (UNIMARC, MARC21 and NORMARC).
Return an XML file with the format defined in C<$format>
C<$xml> - a MARCXML file
-C<$biblionumber> - obtain the record directly from database (biblioitems.marcxml)
+C<$biblionumber> - biblionumber for database access
C<$format> - accept three type of DC formats (oaidc, srwdc, and rdfdc )
# no need to catch errors or warnings marc2marcxml do it instead
$marcxml = C4::Record::marc2marcxml( $marc );
} elsif ( not defined $xml and defined $biblionumber ) {
- # get MARCXML biblio directly from biblioitems.marcxml without item information
+ # get MARCXML biblio directly without item information
$marcxml = C4::Biblio::GetXmlBiblio( $biblionumber );
} else {
$marcxml = $xml;
};
} elsif ( $record =~ /^MARC::Record/ ) { # if OK makes xslt transformation
my $xslt_engine = Koha::XSLT_Handler->new;
- if ( $format =~ /oaidc|srwdc|rdfdc/ ) {
+ if ( $format =~ /^(dc|oaidc|srwdc|rdfdc)$/i ) {
$output = $xslt_engine->transform( $marcxml, $xsl );
} else {
croak "The format argument ($format) not accepted.\n" .
"Please pass a valid format (oaidc, srwdc, or rdfdc)\n";
}
- my $err = $xslt_engine->err; # error number
- my $errstr = $xslt_engine->errstr; # error message
+ my $err = $xslt_engine->err; # error code
if ( $err ) {
- croak "Error when processing $errstr Error number: $err\n";
+ croak "Error $err while processing\n";
} else {
return $output;
}
my $firstpass = 1;
if ( @$itemnumbers ) {
for my $itemnumber ( @$itemnumbers) {
- my $biblionumber = GetBiblionumberFromItemnumber $itemnumber;
+ my $item = Koha::Items->find( $itemnumber );
+ my $biblionumber = $item->biblio->biblionumber;
$output .= marcrecord2csv( $biblionumber, $id, $firstpass, $csv, $fieldprocessing, [$itemnumber] );
$firstpass = 0;
}
my $output;
# Getting the record
- my $record = GetMarcBiblio($biblio);
+ my $record = GetMarcBiblio({ biblionumber => $biblio });
return unless $record;
- C4::Biblio::EmbedItemsInMarcBiblio( $record, $biblio, $itemnumbers );
+ C4::Biblio::EmbedItemsInMarcBiblio({
+ marc_record => $record,
+ biblionumber => $biblio,
+ item_numbers => $itemnumbers });
# Getting the framework
my $frameworkcode = GetFrameworkCode($biblio);