private function getHooplaCover($id)
 {
     require_once ROOT_DIR . '/RecordDrivers/HooplaDriver.php';
     $driver = new HooplaRecordDriver($id);
     /** @var File_MARC_Data_Field[] $linkFields */
     $linkFields = $driver->getMarcRecord()->getFields('856');
     foreach ($linkFields as $linkField) {
         if ($linkField->getIndicator(1) == 4 && $linkField->getIndicator(2) == 2) {
             $coverUrl = $linkField->getSubfield('u')->getData();
             return $this->processImageURL($coverUrl, true);
         }
     }
     return false;
 }
Example #2
0
 function launch()
 {
     global $interface;
     if (isset($_REQUEST['searchId'])) {
         $_SESSION['searchId'] = $_REQUEST['searchId'];
         $interface->assign('searchId', $_SESSION['searchId']);
     } else {
         if (isset($_SESSION['searchId'])) {
             $interface->assign('searchId', $_SESSION['searchId']);
         }
     }
     $this->id = strip_tags($_REQUEST['id']);
     $interface->assign('id', $this->id);
     $recordDriver = new HooplaRecordDriver($this->id);
     if (!$recordDriver->isValid()) {
         $interface->setTemplate('../Record/invalidRecord.tpl');
         $interface->display('layout.tpl');
         die;
     } else {
         $interface->assign('recordDriver', $recordDriver);
         $summaryActions = $recordDriver->getActions();
         $interface->assign('summaryActions', $summaryActions);
         //Load the citations
         $this->loadCitations($recordDriver);
         // Retrieve User Search History
         $interface->assign('lastsearch', isset($_SESSION['lastSearchURL']) ? $_SESSION['lastSearchURL'] : false);
         //Get Next/Previous Links
         $searchSource = isset($_REQUEST['searchSource']) ? $_REQUEST['searchSource'] : 'local';
         $searchObject = SearchObjectFactory::initSearchObject();
         $searchObject->init($searchSource);
         $searchObject->getNextPrevLinks();
         // Set Show in Main Details Section options for templates
         // (needs to be set before moreDetailsOptions)
         global $library;
         foreach ($library->showInMainDetails as $detailoption) {
             $interface->assign($detailoption, true);
         }
         $interface->setPageTitle($recordDriver->getTitle());
         $interface->assign('moreDetailsOptions', $recordDriver->getMoreDetailsOptions());
         // Display Page
         $interface->assign('sidebar', 'Hoopla/full-record-sidebar.tpl');
         $interface->assign('moreDetailsTemplate', 'GroupedWork/moredetails-accordion.tpl');
         $interface->setTemplate('view.tpl');
         $interface->display('layout.tpl');
     }
 }
Example #3
0
 /**
  * @param $id
  * @return ExternalEContentDriver|MarcRecord|null|OverDriveRecordDriver|PublicEContentDriver|RestrictedEContentDriver
  */
 static function initRecordDriverById($id)
 {
     if (isset(RecordDriverFactory::$recordDrivers[$id])) {
         return RecordDriverFactory::$recordDrivers[$id];
     }
     $recordInfo = explode(':', $id);
     $recordType = $recordInfo[0];
     $recordId = $recordInfo[1];
     disableErrorHandler();
     if ($recordType == 'overdrive') {
         require_once ROOT_DIR . '/RecordDrivers/OverDriveRecordDriver.php';
         $recordDriver = new OverDriveRecordDriver($recordId);
     } elseif ($recordType == 'public_domain_econtent') {
         require_once ROOT_DIR . '/RecordDrivers/PublicEContentDriver.php';
         $recordDriver = new PublicEContentDriver($recordId);
     } elseif ($recordType == 'external_econtent') {
         require_once ROOT_DIR . '/RecordDrivers/ExternalEContentDriver.php';
         $recordDriver = new ExternalEContentDriver($recordId);
     } elseif ($recordType == 'restricted_econtent') {
         require_once ROOT_DIR . '/RecordDrivers/RestrictedEContentDriver.php';
         $recordDriver = new RestrictedEContentDriver($recordId);
     } elseif ($recordType == 'hoopla') {
         require_once ROOT_DIR . '/RecordDrivers/HooplaDriver.php';
         $recordDriver = new HooplaRecordDriver($recordId);
         if (!$recordDriver->isValid()) {
             global $logger;
             $logger->log("Unable to load record driver for hoopla record {$recordId}", PEAR_LOG_WARNING);
             $recordDriver = null;
         }
     } elseif ($recordType == 'ils') {
         require_once ROOT_DIR . '/RecordDrivers/MarcRecord.php';
         $recordDriver = new MarcRecord($recordId);
         if (!$recordDriver->isValid()) {
             global $logger;
             $logger->log("Unable to load record driver for {$recordId}", PEAR_LOG_WARNING);
             $recordDriver = null;
         }
     } else {
         global $logger;
         $logger->log("Unknown record type " . $recordType, PEAR_LOG_ERR);
         $recordDriver = null;
     }
     enableErrorHandler();
     RecordDriverFactory::$recordDrivers[$id] = $recordDriver;
     return $recordDriver;
 }