(bug #4491) fix weird code in search scripts
[koha.git] / C4 / VirtualShelves.pm
index eaebb54..1d0e4ab 100644 (file)
@@ -27,6 +27,7 @@ use C4::Context;
 use C4::Circulation;
 use C4::Debug;
 use C4::Members;
+require C4::Auth;
 
 use vars qw($VERSION @ISA @EXPORT @EXPORT_OK);
 
@@ -48,7 +49,6 @@ BEGIN {
         );
 }
 
-use C4::Auth qw(get_session);
 
 my $dbh = C4::Context->dbh;
 
@@ -252,7 +252,7 @@ from C4::Circulation.
 
 =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 = ?");
@@ -264,8 +264,8 @@ sub GetShelfContents ($$;$$) {
                ($sortfield) = $sth2->fetchrow_array;
        }
     my $query =
-       " SELECT vc.biblionumber, vc.shelfnumber, vc.dateadded,
-                               biblio.*, biblioitems.itemtype, itemtypes.*
+       " SELECT vc.biblionumber, vc.shelfnumber, vc.dateadded, itemtypes.*,
+                               biblio.*, biblioitems.itemtype, biblioitems.publicationyear
          FROM   virtualshelfcontents vc
                 LEFT JOIN biblio      ON      vc.biblionumber =      biblio.biblionumber
                 LEFT JOIN biblioitems ON  biblio.biblionumber = biblioitems.biblionumber
@@ -277,9 +277,11 @@ sub GetShelfContents ($$;$$) {
                $query .= " DESC " if ($sortfield eq 'copyrightdate');
                push (@params, $sortfield);
        }
-       $query .= " LIMIT ?, ? ";
-       push (@params, ($offset ? $offset : 0));
-       push (@params, $row_count);
+    if($row_count){
+          $query .= " LIMIT ?, ? ";
+          push (@params, ($offset ? $offset : 0));
+          push (@params, $row_count);
+    }
     my $sth3 = $dbh->prepare($query);
        $sth3->execute(@params);
        return ($sth3->fetchall_arrayref({}), $total);
@@ -471,6 +473,7 @@ sub ShelfPossibleAction {
     $sth->execute($shelfnumber);
     my ( $owner, $category ) = $sth->fetchrow;
        my $borrower = GetMemberDetails($user);
+       return 0 if not defined($user);
        return 1 if ( $category >= 3);                                                  # open list
     return 1 if (($category >= 2) and
                                defined($action) and $action eq 'view');        # public list, anybody can view
@@ -544,7 +547,7 @@ This function is used in conjunction with the 'Lists' button in masthead.inc.
 sub RefreshShelvesSummary ($$$) {
        
        my ($sessionID, $loggedinuser, $row_count) = @_;
-       my $session = get_session($sessionID);
+       my $session = C4::Auth::get_session($sessionID);
        my ($total, $totshelves, $barshelves, $pubshelves);
 
        ($barshelves, $totshelves) = GetRecentShelves(1, $row_count, $loggedinuser);