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'); } }
/** * @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; }