$biblionumber = int($biblionumber);
my $error = q{};
+# Determine logged in user's patron category.
+# Blank if not logged in.
+my $userenv = C4::Context->userenv;
+my $borcat = q{};
+if ($userenv) {
+ my $borrowernumber = $userenv->{'number'};
+ if ($borrowernumber) {
+ my $borrower = Koha::Patrons->find( { borrowernumber => $borrowernumber } );
+ $borcat = $borrower ? $borrower->categorycode : $borcat;
+ }
+}
+
my $include_items = ($format =~ /bibtex/) ? 0 : 1;
my $marc = $biblionumber
? GetMarcBiblio({
biblionumber => $biblionumber,
- embed_items => $include_items })
+ embed_items => $include_items,
+ opac => 1,
+ borcat => $borcat })
: undef;
if(!$marc) {
$marc = marc2bibtex($marc,$biblionumber);
$format = 'bibtex';
}
-elsif ($format =~ /dc$/) {
+elsif ($format =~ /^(dc|oaidc|srwdc|rdfdc)$/i ) {
# TODO: Dublin Core leaks fields marked hidden by framework.
$marc = marc2dcxml($marc, undef, $biblionumber, $format);
$format = "dublin-core.xml";
-charset => 'utf-8',
-attachment => "bib-$biblionumber.txt"
);
+ }
+ elsif ( $format eq 'ris' ) {
+ print $query->header(
+ -type => 'text/plain',
+ -charset => 'utf-8',
+ -attachment => "bib-$biblionumber.$format"
+ );
} else {
binmode STDOUT, ':encoding(UTF-8)';
print $query->header(