);
// Builds metadata object (to be encoded as JSON)
- function buildMetadata($id, $itemPath, $bookId, $server) {
+ function buildMetadata($id, $itemPath, $subPrefix, $server) {
$response = array();
- if (! $bookId) {
- $bookId = $id;
+ if (! $subPrefix) {
+ $subPrefix = $id;
}
- $subItemPath = $itemPath . '/' . $bookId;
+ $subItemPath = $itemPath . '/' . $subPrefix;
if ("" == $id) {
$this->BRFatal("No identifier specified!");
$this->BRfatal("File metadata not found!");
}
- $imageStackInfo = $this->findImageStack($bookId, $filesData);
+ $imageStackInfo = $this->findImageStack($subPrefix, $filesData);
if ($imageStackInfo['imageFormat'] == 'unknown') {
$this->BRfatal('Couldn\'t find image stack');
}
// Internet Archive specific
$response['itemId'] = $id; // $$$ renamed
- $response['bookId'] = $bookId; // $$$ renamed
+ $response['subPrefix'] = $subPrefix; // $$$ renamed
$response['itemPath'] = $itemPath;
$response['zip'] = $imageStackFile;
$response['server'] = $server;
}
}
}
-
+
return array('imageFormat' => 'unknown', 'archiveFormat' => 'unknown', 'imageStackFile' => 'unknown');
}
// e.g. http://ia311213.us.archive.org/BookReader/BookReaderImages.php?zip=/0/items/coloritsapplicat00andriala/coloritsapplicat00andriala_jp2.zip&file=coloritsapplicat00andriala_jp2/coloritsapplicat00andriala_0009.jp2&scale=8&rotate=0
- $filePath = $this->imageFilePath($leafNum, $metadata['bookId'], $metadata['imageFormat']);
+ $filePath = $this->imageFilePath($leafNum, $metadata['subPrefix'], $metadata['imageFormat']);
$url = 'http://' . $metadata['server'] . '/BookReader/BookReaderImages.php?zip=' . $metadata['zip'] . '&file=' . $filePath;
if ($scale !== null) {
function previewURL($page, $metadata) {
$query = array(
'id' => $metadata['itemId'],
- 'bookId' => $metadata['bookId'],
+ 'subPrefix' => $metadata['subPrefix'],
'itemPath' => $metadata['itemPath'],
'server' => $metadata['server'],
'page' => $page,
return 'http://' . $metadata['server'] . '/BookReader/BookReaderPreview.php?' . http_build_query($query, '', '&');
}
- function imageFilePath($leafNum, $bookId, $format) {
- return sprintf("%s_%s/%s_%04d.%s", $bookId, $format, $bookId, intval($leafNum), $format);
+ function imageFilePath($leafNum, $subPrefix, $format) {
+ $pathParts = pathinfo($subPrefix);
+ $almostIdentifier = $pathParts['filename'];
+ return sprintf("%s_%s/%s_%04d.%s", $almostIdentifier, $format, $almostIdentifier, intval($leafNum), $format);
}
// Parse date from _meta.xml to integer
function processRequest($requestEnv) {
$id = $requestEnv['itemId']; // $$$ renamed
$itemPath = $requestEnv['itemPath'];
- $bookId = $requestEnv['bookId']; // $$$ renamed
+ $subPrefix = $requestEnv['subPrefix']; // $$$ renamed
$server = $requestEnv['server'];
// Check if we're on a dev vhost and point to JSIA in the user's public_html on the datanode
$server .= ':80/~testflip';
}
- $this->emitResponse( $this->buildMetadata($id, $itemPath, $bookId, $server) );
+ $this->emitResponse( $this->buildMetadata($id, $itemPath, $subPrefix, $server) );
}
function checkPrivs($filename) {