/** * Import the Dublin Core Metadata stored in the descProperties datastream * * @param Omeka_Record $object The Fedora object record. * @param string $dsid The datastream ID to import. */ public function import($object, $dsid) { //Gets the url to the item's datastream content (ex: /fedora/objects/abc:defg890/datastreams/descMetadata/content) $url = $object->getMetadataUrl($dsid); $descMetadataContent = file_get_contents($url); //these are the only metadata types in the datastream $CPHMetadataTypes = explode(' ', 'Title Creator Subject Description Publisher Contributor Type Format Identifier Language Relation Rights'); $elements = $this->db->getTable('Element')->findBySet('Dublin Core'); $itemID = $object->getItem()->id; //save datastream element texts foreach ($elements as $element) { //current element is one of the types in the datastream if (in_array($element->name, $CPHMetadataTypes, true)) { $elementName = strtolower($element->name) . '> "'; $start = strpos($descMetadataContent, $elementName); $end = strpos($descMetadataContent, '" .', $start); $elementNameLength = strlen($elementName); $elementText = substr($descMetadataContent, $start + $elementNameLength, $end - $start - $elementNameLength); $checkIfEmpty = trim($elementText); //only save the element if it has content if (!empty($checkIfEmpty)) { try { $this->saveElementText($itemID, $element->id, $elementText); } catch (Exception $e) { _log($e->getMessage()); } } } } }
/** * Display an object. * * @param Omeka_Record $object The Fedora object record. * @return DOMDocument The HTML DOM for the datastream. */ function display($object, $params = array()) { $url = "{$object->getServer()->url}/objects/{$object->pid}" . "/datastreams/SCREEN/content"; $dom = new DOMDocument(); $node = $dom->createElement('img'); $dom->appendChild($node); $node->setAttribute('class', 'fedora-renderer'); $node->setAttribute('alt', 'image'); $node->setAttribute('src', $url); return $dom; }
/** * Render a datastream. * * @param Omeka_Record $object The Fedora object record. * @return DOMDocument|null The output of the renderer. */ public function display($object, $params = null) { foreach (explode(',', $object->dsids) as $dsid) { // Get mime type. $mimeType = $object->getServer()->getMimeType($object->pid, $dsid); // Try to get renderer. $renderer = $this->displayPlugins->getPlugin($mimeType); // Render. if (!is_null($renderer)) { return $renderer->display($object, $params); } } }
/** * Displays the image. * * @param Omeka_Record $object The Fedora object record. * @param string $size The size to scale the image to. * * @return DOMDocument The HTML DOM for the image. */ private function _display($object, $params = array()) { if (empty($params)) { $params = array('scale' => '400,0'); } $server = $object->getServer(); $url = "{$server->url}/{$server->getService()}/{$object->pid}" . "/methods/djatoka:jp2SDef/getRegion?" . http_build_query($params); $dom = new DOMDocument(); $node = $dom->createElement('img'); $dom->appendChild($node); $node->setAttribute('class', 'fedora-renderer'); $node->setAttribute('alt', 'image'); $node->setAttribute('src', $url); return $dom; }
/** * Displays the image. * * @param Omeka_Record $object The Fedora object record. * @param string $size The size to scale the image to. * * @return DOMDocument The HTML DOM for the image. */ private function _display($object, $params = array()) { if (empty($params)) { $params = array('scale' => '600'); } $server = $object->getServer(); $url = 'http://digital.case.edu/image-service/' . $object->pid . '/full/' . $params['scale'] . ',/0/native.jpg'; $dom = new DOMDocument(); $node = $dom->createElement('img'); $dom->appendChild($node); $node->setAttribute('class', 'fedora-renderer'); $node->setAttribute('alt', 'image'); $node->setAttribute('src', $url); return $dom; }
/** * Get XML from Fedora for the item. * * @param Omeka_Record $object The Fedora object record. * @param string $dsid The dsid to load. * @return DOMDocument The metadata XML. */ public function getMetadataXml($object, $dsid) { $url = $object->getMetadataUrl($dsid); return Zend_Registry::get('gateway')->load($url); }