/** * 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()); } } } } }
/** * 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); }