/**
  * Import metadata.
  *
  * @param Omeka_Record $object The Fedora object record.
  * @param string $dsid The dsid to import.
  */
 public function import($object, $dsid)
 {
     // Get object parent item.
     $item = $object->getItem();
     // Get metadata XML for the datastream.
     $xml = new DOMXPath($this->getMetadataXml($object, $dsid));
     // Get DC elements.
     $elements = $this->db->getTable('Element')->findBySet('Dublin Core');
     // Run queries and write texts.
     foreach ($elements as $element) {
         // Execute for the element.
         $queries = $this->getQueries($element->name);
         $nodes = $this->queryAll($xml, $queries);
         // Write new element texts.
         foreach ($nodes as $node) {
             $text = new ElementText();
             $text->record_id = $item->id;
             $text->record_type = 'Item';
             $text->element_id = $element->id;
             $text->html = 0;
             $text->text = $node->nodeValue;
             $text->save();
         }
     }
 }
 /**
  * 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());
                 }
             }
         }
     }
 }