+sub GetShelvesSummary {
+ my ($owner, $mincategory, $limit) = @_;
+ ($mincategory and $mincategory =~ /^\d+$/) or $mincategory = 2;
+ ( $limit and $limit =~ /^\d+$/) or $limit = 10;
+ my $query = qq(
+ SELECT
+ virtualshelves.shelfnumber,
+ virtualshelves.shelfname,
+ owner,
+ CONCAT(firstname, ' ', surname) AS name,
+ virtualshelves.category,
+ count(virtualshelfcontents.biblionumber) AS count
+ FROM virtualshelves
+ LEFT JOIN virtualshelfcontents ON virtualshelves.shelfnumber = virtualshelfcontents.shelfnumber
+ LEFT JOIN borrowers ON virtualshelves.owner = borrowers.borrowernumber
+ WHERE owner=? OR category>=?
+ GROUP BY virtualshelves.shelfnumber
+ ORDER BY virtualshelves.category, borrowers.surname, borrowers.firstname, virtualshelves.shelfname
+ LIMIT ?
+ );
+ my $sth = $dbh->prepare($query);
+ $sth->execute($owner,$mincategory,$limit);
+ return $sth->fetchall_arrayref({});
+ # Probably NOT the final implementation since it is still bulky (repeated hash keys).
+ # might like an array of rows of delimited values:
+ # 1|2||0|blacklist|112
+ # 2|6|Josh Ferraro|51|en_fuego|106
+}
+