/** * Responds to the Identify verb. * * Appends the Identify element for the repository to the response. */ public function identify() { if ($this->error) { return; } /* according to the schema, this order of elements is required for the response to validate */ $elements = array('repositoryName' => get_option('oaipmh_repository_name'), 'baseURL' => OAI_PMH_BASE_URL, 'protocolVersion' => self::OAI_PMH_PROTOCOL_VERSION, 'adminEmail' => get_option('administrator_email'), 'earliestDatestamp' => OaiPmhRepository_Date::unixToUtc(0), 'deletedRecord' => 'no', 'granularity' => self::OAI_GRANULARITY_STRING); $identify = $this->createElementWithChildren($this->document->documentElement, 'Identify', $elements); // Publish support for compression, if appropriate // This defers to compression set in Omeka's paths.php if (extension_loaded('zlib') && ini_get('zlib.output_compression')) { $gzip = $this->document->createElement('compression', 'gzip'); $deflate = $this->document->createElement('compression', 'deflate'); $identify->appendChild($gzip); $identify->appendChild($deflate); } $description = $this->document->createElement('description'); $identify->appendChild($description); OaiPmhRepository_OaiIdentifier::describeIdentifier($description); $toolkitDescription = $this->document->createElement('description'); $identify->appendChild($toolkitDescription); $this->describeToolkit($toolkitDescription); }
/** * Helper to get the earlieast datestamp of the repository. * * @return string OAI-PMH date stamp. */ private function _getEarliestDatestamp() { $earliestItem = get_record('Item', array('public' => 1, 'sort_field' => 'added', 'sort_dir' => 'a')); return $earliestItem ? OaiPmhRepository_Date::dbToUtc($earliestItem->added) : OaiPmhRepository_Date::unixToUtc(0); }