BEGIN {
# set the version for version checking
- $VERSION = 3.02;
+ $VERSION = 3.07.00.049;
require Exporter;
@ISA = qw(Exporter);
@EXPORT = qw(
}
-my $dbh = C4::Context->dbh;
-
=head1 NAME
C4::VirtualShelves - Functions for manipulating Koha virtual shelves
my ($category, $row_count, $offset, $owner) = @_;
my @params;
my $total = _shelf_count($owner, $category);
+ my $dbh = C4::Context->dbh;
my $query = qq{
SELECT vs.shelfnumber, vs.shelfname,vs.owner,
bo.surname,bo.firstname,vs.category,vs.sortfield,
sub GetAllShelves {
my ($category,$owner,$adding_allowed) = @_;
my @params;
+ my $dbh = C4::Context->dbh;
my $query = 'SELECT vs.* FROM virtualshelves vs ';
if($category==1) {
$query.= qq{
sub GetSomeShelfNames {
my ($owner, $purpose, $adding_allowed)= @_;
my ($bar, $pub, @params);
+ my $dbh = C4::Context->dbh;
my $bquery = 'SELECT vs.shelfnumber, vs.shelfname FROM virtualshelves vs ';
my $limit= ShelvesMax($purpose);
=cut
-sub GetShelf ($) {
+sub GetShelf {
my ($shelfnumber) = @_;
+ my $dbh = C4::Context->dbh;
my $query = qq(
SELECT shelfnumber, shelfname, owner, category, sortfield,
allow_add, allow_delete_own, allow_delete_other
=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 = ?");
" SELECT vc.biblionumber, vc.shelfnumber, vc.dateadded, itemtypes.*,
biblio.*, biblioitems.itemtype, biblioitems.publicationyear as year, biblioitems.publishercode, biblioitems.place, biblioitems.size, biblioitems.pages
FROM virtualshelfcontents vc
- LEFT JOIN biblio ON vc.biblionumber = biblio.biblionumber
+ JOIN biblio ON vc.biblionumber = biblio.biblionumber
LEFT JOIN biblioitems ON biblio.biblionumber = biblioitems.biblionumber
LEFT JOIN itemtypes ON biblioitems.itemtype = itemtypes.itemtype
WHERE vc.shelfnumber=? ";
sub AddShelf {
my ($hashref, $owner)= @_;
+ my $dbh = C4::Context->dbh;
#initialize missing hash values to silence warnings
foreach('shelfname','category', 'sortfield', 'allow_add', 'allow_delete_own', 'allow_delete_other' ) {
sub AddToShelf {
my ($biblionumber, $shelfnumber, $borrowernumber) = @_;
return unless $biblionumber;
+ my $dbh = C4::Context->dbh;
my $query = qq(
SELECT *
FROM virtualshelfcontents
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)
sub ModShelf {
my ($shelfnumber,$hashref) = @_;
+ my $dbh = C4::Context->dbh;
my $query= "SELECT * FROM virtualshelves WHERE shelfnumber=?";
my $sth = $dbh->prepare($query);
return 0 unless defined($shelfnumber);
+ my $dbh = C4::Context->dbh;
my $query = qq/
SELECT IFNULL(owner,0) AS owner, category, allow_add, allow_delete_own, allow_delete_other, IFNULL(sh.borrowernumber,0) AS borrowernumber
FROM virtualshelves vs
$sth->execute($user, $shelfnumber);
my $shelf= $sth->fetchrow_hashref;
- return 0 unless $shelf && ($shelf->{category}==2 || $shelf->{owner}==$user || $shelf->{borrowernumber}==$user);
+ return 0 unless $shelf && ($shelf->{category}==2 || $shelf->{owner}==$user || ($user && $shelf->{borrowernumber}==$user));
if($action eq 'view') {
#already handled in the above condition
return 1;
sub DelFromShelf {
my ($bibref, $shelfnumber, $user) = @_;
+ my $dbh = C4::Context->dbh;
my $query = qq(SELECT allow_delete_own, allow_delete_other FROM virtualshelves WHERE shelfnumber=?);
my $sth= $dbh->prepare($query);
$sth->execute($shelfnumber);
sub DelShelf {
my ($shelfnumber)= @_;
return unless $shelfnumber && $shelfnumber =~ /^\d+$/;
+ my $dbh = C4::Context->dbh;
my $sth = $dbh->prepare("DELETE FROM virtualshelves WHERE shelfnumber=?");
return $sth->execute($shelfnumber);
}
my @params;
# Find out how many shelves total meet the submitted criteria...
+ my $dbh = C4::Context->dbh;
my $query = "SELECT count(*) FROM virtualshelves vs ";
if($category==1) {
$query.= qq{
$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)= @_;
+ my $dbh = C4::Context->dbh;
my $query = qq(
SELECT DISTINCT shelfnumber
FROM virtualshelves