C4::VirtualShelves - Functions for manipulating Koha virtual virtualshelves


  use C4::VirtualShelves;


This module provides functions for manipulating virtual virtualshelves, including creating and deleting virtualshelves, and adding and removing items to and from virtualshelves.


  $shelflist = &GetShelves($owner);
  $shelflist = &GetShelves($owner, $mincategory);
  $shelflist = &GetShelves($owner, $mincategory, $limit);
  ($shelfnumber, $shelfhash) = each %{$shelflist};

Looks up the virtual virtualshelves, and returns a summary. $shelflist is a reference-to-hash. The keys are the virtualshelves numbers ($shelfnumber, above), and the values ($shelfhash, above) are themselves references-to-hash, with the following keys:

mincategory : 2 if the list is for "Public", 3 for "Open". virtualshelves of the owner are always selected, whatever the category


A string. The name of the shelf.


The number of virtuals on that virtualshelves.

  (shelfnumber,shelfname,owner,category,sortfield) = &GetShelf($shelfnumber);

Looks up information about the contents of virtual virtualshelves number $shelfnumber

Returns the database's information on 'virtualshelves' table.

  $itemlist = &GetShelfContents($shelfnumber);

Looks up information about the contents of virtual virtualshelves number $shelfnumber. Sorted by a field in the biblio table. copyrightdate gives a desc sort.

Returns a reference-to-array, whose elements are references-to-hash, as returned by C4::Biblio::GetBiblioFromItemNumber.

Note: the notforloan status comes from the itemtype, and where it equals 0 it does not ensure that related items.notforloan status is likewise 0. The caller has to check any items on their own, possibly with CanBookBeIssued from C4::Circulation.

  $shelfnumber = &AddShelf( $shelfname, $owner, $category);

Creates a new virtual virtualshelves with name $shelfname, owner $owner and category $category.

Returns a code to know what's happen. * -1 : if this virtualshelves already exist. * $shelfnumber : if success.

  &AddToShelf($biblionumber, $shelfnumber);

Adds item number $biblionumber to virtual virtualshelves number $shelfnumber, unless that item is already on that shelf.

    &AddToShelfFromBiblio($biblionumber, $shelfnumber)

    this function allow to add a virtual into the shelf number $shelfnumber
    from biblionumber.

ModShelf($shelfnumber, $shelfname, $owner, $category )

Modify the value into virtualshelves table with values given on input arg.


ShelfPossibleAction($loggedinuser, $shelfnumber, $action);


$action can be "view" or "manage".

Returns 1 if the user can do the $action in the $shelfnumber shelf. Returns 0 otherwise.

  &DelFromShelf( $biblionumber, $shelfnumber);

Removes item number $biblionumber from virtual virtualshelves number $shelfnumber. If the item wasn't on that virtualshelves to begin with, nothing happens.

DelShelf (old version)
  ($status, $msg) = &DelShelf($shelfnumber);

Deletes virtual virtualshelves number $shelfnumber. The virtualshelves must be empty.

Returns a two-element array, where $status is 0 if the operation was successful, or non-zero otherwise. $msg is "Done" in case of success, or an error message giving the reason for failure.

DelShelf (current version)
  $Number = DelShelf($shelfnumber);

This function deletes the shelf number, and all of it's content.


Koha Developement team <info@koha.org>