Ejemplo n.º 1
0
 /**
  * Get Holding
  *
  * This is responsible for retrieving the holding information of a certain
  * record.
  *
  * @param   OverDriveRecordDriver  $overDriveRecordDriver   The record id to retrieve the holdings for
  * @return  mixed               An associative array with the following keys:
  *                              availability (boolean), status, location,
  *                              reserve, callnumber, duedate, number,
  *                              holding summary, holding notes
  *                              If an error occurs, return a PEAR_Error
  * @access  public
  */
 public function getHoldings($overDriveRecordDriver)
 {
     global $user;
     global $configArray;
     /** @var OverDriveAPIProductFormats[] $items */
     $items = $overDriveRecordDriver->getItems();
     //Add links as needed
     $availability = $overDriveRecordDriver->getAvailability();
     $addCheckoutLink = false;
     $addPlaceHoldLink = false;
     foreach ($availability as $availableFrom) {
         if ($availableFrom->copiesAvailable > 0) {
             $addCheckoutLink = true;
         } else {
             $addPlaceHoldLink = true;
         }
     }
     foreach ($items as $key => $item) {
         $item->links = array();
         if ($addCheckoutLink) {
             if ($configArray['OverDrive']['interfaceVersion'] == 1) {
                 $checkoutLink = "return VuFind.OverDrive.checkoutOverDriveItem('{$overDriveRecordDriver->getUniqueID()}', '{$item->numericId}');";
             } else {
                 $checkoutLink = "return VuFind.OverDrive.checkoutOverDriveItemOneClick('{$overDriveRecordDriver->getUniqueID()}', '{$item->numericId}');";
             }
             $item->links[] = array('onclick' => $checkoutLink, 'text' => 'Check Out', 'overDriveId' => $overDriveRecordDriver->getUniqueID(), 'formatId' => $item->numericId, 'action' => 'CheckOut');
         } else {
             if ($addPlaceHoldLink) {
                 $item->links[] = array('onclick' => "return VuFind.OverDrive.placeOverDriveHold('{$overDriveRecordDriver->getUniqueID()}', '{$item->numericId}');", 'text' => 'Place Hold', 'overDriveId' => $overDriveRecordDriver->getUniqueID(), 'formatId' => $item->numericId, 'action' => 'Hold');
             }
         }
         $items[$key] = $item;
     }
     return $items;
 }