-$shelfnumber = AddShelf( $newvirtualshelf, $loggedinuser, $category, $sortfield ) if $newvirtualshelf;
-if ( $shelfnumber || ( $shelfnumber == -1 ) ) { # the shelf already exist.
-
- if ($confirmed == 1) {
- AddBibliosToShelf($shelfnumber,@biblionumber);
- print
- "Content-Type: text/html\n\n<html><body onload=\"window.opener.location.reload(true);window.close()\"></body></html>";
- exit;
- } else {
- my ( $singleshelf, $singleshelfname, $singlecategory ) = GetShelf( $query->param('shelfnumber') );
- my @biblios;
- for my $bib (@biblionumber) {
- my $data = GetBiblioData( $bib );
- push(@biblios,
- { biblionumber => $bib,
- title => $data->{'title'},
- author => $data->{'author'},
- } );
- }
-
- $template->param
- (
- biblionumber => \@biblionumber,
- biblios => \@biblios,
- multiple => (scalar(@biblionumber) > 1),
- singleshelf => 1,
- shelfname => $singleshelfname,
- shelfnumber => $singleshelf,
- total => scalar(@biblionumber),
- confirm => 1,
- );
+sub HandleBiblioPars {
+ my @bib= $query->param('biblionumber');
+ if(@bib==0 && $query->param('biblionumbers')) {
+ my $str= $query->param('biblionumbers');
+ @bib= split '/', $str;
+ }
+ elsif(@bib==1 && $bib[0]=~/\//) {
+ @bib= split '/', $bib[0];
+ }
+ return @bib;
+}
+
+sub AddBibliosToShelf {
+ my ($shelfnumber, @biblionumber)=@_;
+ for my $bib (@biblionumber){
+ AddToShelf($bib, $shelfnumber, $loggedinuser);
+ }
+}
+
+sub HandleNewVirtualShelf {
+ $shelfnumber = AddShelf( {
+ shelfname => $newvirtualshelf,
+ sortfield => $sortfield,
+ category => $category }, $loggedinuser);
+ if($shelfnumber == -1) {
+ $authorized=0;
+ $errcode=1; #add failed
+ return;