errors[] = 'Invalid \$iiif_userid.'; $iiif->triggerError(500); } // Creating $userdata for use in do_search() $userdata[0] = $iiif_user; setup_user($iiif_user); // Extract request details $iiif->parseUrl($_SERVER["REQUEST_URI"] ?? ""); if ($iiif->getRequest("api") == "root") { # Root level request - send information file only $iiif->infodoc(); } elseif ($iiif->getRequest("api") == "image") { $iiif->processImageRequest(); } elseif ($iiif->getRequest("api") == "presentation") { $iiif->processPresentationRequest(); } else { $iiif->errorcode = 404; $iiif->errors[] = "Bad request. Valid options are 'manifest', 'sequence' or 'canvas' e.g. "; $iiif->errors[] = "For the manifest: " . $iiif->rooturl . $iiif->getRequest("id") . "/manifest"; $iiif->errors[] = "For a sequence : " . $iiif->rooturl . $iiif->getRequest("id") . "/sequence"; $iiif->errors[] = "For a canvas : " . $iiif->rooturl . $iiif->getRequest("id") . "/canvas/"; } // Send the response if ($iiif->isValidRequest()) { if (function_exists("http_response_code")) { http_response_code(200); # Send OK } header("Access-Control-Allow-Origin: *"); header("Access-Control-Allow-Headers: Accept"); if ($iiif->is_image_response()) { $iiif->renderImage(); } else { header('Content-Type: application/ld+json;profile="http://iiif.io/api/image/3/context.json"'); foreach ($iiif->headers as $iiif_header) { header($iiif_header); } if (defined('JSON_PRETTY_PRINT')) { echo json_encode($iiif->getResponse(), JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE); } else { echo json_encode($iiif->getResponse()); } } } elseif (count($iiif->errors) > 0) { $iiif->triggerError(); }