/** * Get Item Statuses * * This is responsible for getting holding summary information for a list of * records from the database. * * @access public * @author Mark Noble <*****@*****.**> */ function GetStatusSummaries() { global $configArray; global $interface; global $timer; global $library; $showOtherEditionsPopup = false; if ($configArray['Content']['showOtherEditionsPopup']) { if ($library) { $showOtherEditionsPopup = $library->showOtherEditionsPopup == 1; } else { $showOtherEditionsPopup = true; } } $interface->assign('showOtherEditionsPopup', $showOtherEditionsPopup); $showCopiesLineInHoldingsSummary = true; if ($library && $library->showCopiesLineInHoldingsSummary == 0) { $showCopiesLineInHoldingsSummary = false; } $interface->assign('showCopiesLineInHoldingsSummary', $showCopiesLineInHoldingsSummary); require_once ROOT_DIR . '/CatalogConnection.php'; // Try to find a copy that is available /** @var $catalog CatalogConnection */ $catalog = new CatalogConnection($configArray['Catalog']['driver']); $timer->logTime("Initialized Catalog Connection"); $summaries = $catalog->getStatusSummaries($_GET['id'], true); $timer->logTime("Retrieved status summaries"); $result = array(); $result['items'] = array(); // Loop through all the status information that came back foreach ($summaries as $id => $record) { // If we encountered errors, skip those problem records. if (PEAR_Singleton::isError($record)) { continue; } $itemResults = $record; $interface->assign('id', $id); $interface->assign('holdingsSummary', $record); $formattedHoldingsSummary = $interface->fetch('Record/holdingsSummary.tpl'); $itemResults['formattedHoldingsSummary'] = $formattedHoldingsSummary; $result['items'][] = $itemResults; } echo json_encode($result); $timer->logTime("Formatted results"); }