=head2 GetShelf
- (shelfnumber,shelfname,owner,category,sortfield) = &GetShelf($shelfnumber);
+ (shelfnumber,shelfname,owner,category,sortfield,allow_add,allow_delete_own,allow_delete_other) = &GetShelf($shelfnumber);
-Looks up information about the contents of virtual virtualshelves number
-C<$shelfnumber>
-
-Returns the database's information on 'virtualshelves' table.
+Returns the above-mentioned fields for passed virtual shelf number.
=cut
-sub GetShelf ($) {
+sub GetShelf {
my ($shelfnumber) = @_;
my $query = qq(
- SELECT shelfnumber, shelfname, owner, category, sortfield
+ SELECT shelfnumber, shelfname, owner, category, sortfield,
+ allow_add, allow_delete_own, allow_delete_other
FROM virtualshelves
WHERE shelfnumber=?
);
=cut
-sub GetShelfContents ($;$$$) {
+sub GetShelfContents {
my ($shelfnumber, $row_count, $offset, $sortfield) = @_;
my $dbh=C4::Context->dbh();
my $sth1 = $dbh->prepare("SELECT count(*) FROM virtualshelfcontents WHERE shelfnumber = ?");
#initialize missing hash values to silence warnings
foreach('shelfname','category', 'sortfield', 'allow_add', 'allow_delete_own', 'allow_delete_other' ) {
- $hashref->{$_}= exists $hashref->{$_}? $hashref->{$_}||'': '';
+ $hashref->{$_}= undef unless exists $hashref->{$_};
}
return -1 unless _CheckShelfName($hashref->{shelfname}, $hashref->{category}, $owner, 0);
$owner,
$hashref->{category},
$hashref->{sortfield},
- $hashref->{allow_add}||0,
- $hashref->{allow_delete_own}||1,
- $hashref->{allow_delete_other}||0 );
+ $hashref->{allow_add}//0,
+ $hashref->{allow_delete_own}//1,
+ $hashref->{allow_delete_other}//0 );
my $shelfnumber = $dbh->{'mysql_insertid'};
return $shelfnumber;
}
my $sth = $dbh->prepare($query);
$sth->execute( $shelfnumber, $biblionumber );
- ($sth->rows) and return undef; # already on shelf
+ ($sth->rows) and return; # already on shelf
$query = qq(
INSERT INTO virtualshelfcontents
(shelfnumber, biblionumber, flags, borrowernumber)
#initialize missing hash values to silence warnings
foreach('shelfname','category', 'sortfield', 'allow_add', 'allow_delete_own', 'allow_delete_other' ) {
- $hashref->{$_}= exists $hashref->{$_}? $hashref->{$_}||'': '';
+ $hashref->{$_}= undef unless exists $hashref->{$_};
}
#if name or category changes, the name should be tested
if($hashref->{shelfname} || $hashref->{category}) {
unless(_CheckShelfName(
- $hashref->{shelfname}||$oldrecord->{shelfname},
- $hashref->{category}||$oldrecord->{category},
- $oldrecord->{owner}, $shelfnumber )) {
- return 0; #name check failed
+ $hashref->{shelfname}//$oldrecord->{shelfname},
+ $hashref->{category}//$oldrecord->{category},
+ $oldrecord->{owner},
+ $shelfnumber )) {
+ return 0; #name check failed
}
}
$query= "UPDATE virtualshelves SET shelfname=?, category=?, sortfield=?, allow_add=?, allow_delete_own=?, allow_delete_other=? WHERE shelfnumber=?";
$sth = $dbh->prepare($query);
$sth->execute(
- $hashref->{shelfname}||$oldrecord->{shelfname},
- $hashref->{category}||$oldrecord->{category},
- $hashref->{sortfield}||$oldrecord->{sortfield},
- $hashref->{allow_add}||$oldrecord->{allow_add},
- $hashref->{allow_delete_own}||$oldrecord->{allow_delete_own},
- $hashref->{allow_delete_other}||$oldrecord->{allow_delete_other},
+ $hashref->{shelfname}//$oldrecord->{shelfname},
+ $hashref->{category}//$oldrecord->{category},
+ $hashref->{sortfield}//$oldrecord->{sortfield},
+ $hashref->{allow_add}//$oldrecord->{allow_add},
+ $hashref->{allow_delete_own}//$oldrecord->{allow_delete_own},
+ $hashref->{allow_delete_other}//$oldrecord->{allow_delete_other},
$shelfnumber );
return $@? 0: 1;
}
$sth;
}
-sub each_biblionumbers (&$) { #OBSOLETE
- my ($code,$shelf) = @_;
- my $ref = _biblionumber_sth($shelf)->fetchall_arrayref;
- map {
- $_=$$_[0];
- $code->();
- } @$ref;
-}
-
sub _CheckShelfName {
my ($name, $cat, $owner, $number)= @_;