- # CSV
- if ($format =~ /^\d+$/) {
- my @biblios;
- foreach (@$items) {
- push @biblios, $_->{biblionumber};
- }
- $output = marc2csv(\@biblios, $format);
- }
- else { #Other formats
- foreach my $biblio (@$items) {
- my $biblionumber = $biblio->{biblionumber};
- my $record = GetMarcBiblio($biblionumber, 1);
- if ($format eq 'iso2709') {
- $output .= $record->as_usmarc();
- }
- elsif ($format eq 'ris') {
- $output .= marc2ris($record);
+ my $shelf = Koha::Virtualshelves->find($shelfid);
+ if ( $shelf ) {
+ if ( $shelf->can_be_viewed( $loggedinuser ) ) {
+
+ my $contents = $shelf->get_contents;
+ # CSV
+ if ($format =~ /^\d+$/) {
+ my @biblios;
+ while ( my $content = $contents->next ) {
+ push @biblios, $content->biblionumber->biblionumber;
+ }
+ $output = marc2csv(\@biblios, $format);