=head2 GetShelves
- ($shelflist, $totshelves) = &GetShelves($category, $row_count, $offset, $owner);
+ $shelflist = &GetShelves($category, $row_count, $offset, $owner);
($shelfnumber, $shelfhash) = each %{$shelflist};
Returns the number of shelves specified by C<$row_count> and C<$offset> as well as the total
A string. The name of the shelf.
-=item C<$shelfhash-E<gt>{count}>
-
-The number of virtuals on that virtualshelves.
-
=back
=cut
sub GetShelves {
my ($category, $row_count, $offset, $owner) = @_;
- my @params;
- my $total = _shelf_count($owner, $category);
+ $offset ||= 0;
+ my @params = ( $offset, $row_count );
my $dbh = C4::Context->dbh;
my $query = qq{
SELECT vs.shelfnumber, vs.shelfname,vs.owner,
LEFT JOIN virtualshelfshares sh ON sh.shelfnumber=vs.shelfnumber
AND sh.borrowernumber=?
WHERE category=1 AND (vs.owner=? OR sh.borrowernumber=?) };
- @params= ($owner, $owner, $owner, $offset||0, $row_count);
+ push @params, ($owner) x 3;
}
else {
$query.= 'WHERE category=2 ';
- @params= ($offset||0, $row_count);
}
$query.= qq{
GROUP BY vs.shelfnumber
$shelflist{$shelfnumber}->{'surname'} = $surname;
$shelflist{$shelfnumber}->{'firstname'} = $firstname;
}
- return ( \%shelflist, $total );
+ return \%shelflist;
}
=head2 GetAllShelves
return 1;
}
-# internal subs
-sub _shelf_count {
+sub GetShelfCount {
my ($owner, $category) = @_;
my @params;
# Find out how many shelves total meet the submitted criteria...
return $total;
}
+# internal subs
sub _CheckShelfName {
my ($name, $cat, $owner, $number)= @_;
$shelvesoffset = ( $shelfoff - 1 ) * $shelflimit; # Sets the offset to begin retrieving shelves at (offset)
# getting the Shelves list
my $category = ( ( $displaymode eq 'privateshelves' ) ? 1 : 2 );
- my ( $shelflist, $totshelves ) = GetShelves( $category, $shelveslimit, $shelvesoffset, $loggedinuser );
+ my $shelflist = GetShelves( $category, $shelveslimit, $shelvesoffset, $loggedinuser );
+ my $totshelves = C4::VirtualShelves::GetShelfCount( $loggedinuser, $category );
#Get a list of private shelves for possible deletion. Only do this when we've defaulted to public shelves
my ( $privshelflist, $privtotshelves );
my $numberCanManage = 0;
# rebuild shelflist in case a shelf has been added
- ( $shelflist, $totshelves ) = GetShelves( $category, $shelveslimit, $shelvesoffset, $loggedinuser ) unless $delflag;
+ $shelflist = GetShelves( $category, $shelveslimit, $shelvesoffset, $loggedinuser ) unless $delflag;
+ $totshelves = C4::VirtualShelves::GetShelfCount( $loggedinuser, $category ) unless $delflag;
foreach my $element ( sort { lc( $shelflist->{$a}->{'shelfname'} ) cmp lc( $shelflist->{$b}->{'shelfname'} ) } keys %$shelflist ) {
my %line;
$shelflist->{$element}->{shelf} = $element;