static function getObjectPoolByRIQuery($object_pool_query = null) { $object_query_results = FedoraObject::getRIQueryResults('apiary:SpecimenBinders', $object_pool_query); $sxml = new SimpleXMLElement($object_query_results); $object_pool_pid = array(); foreach ($sxml->xpath('//@uri') as $uri) { array_push($object_pool_pid, substr(strstr($uri, '/'), 1)); } return $object_pool_pid; }
static function setImageStatus($image_pid, $status_type, $status) { global $user; $datastream_name = "status"; $datastream_label = "Image Status"; $dom = FedoraObject::getManagedXMLDom($image_pid, $datastream_name); if ($dom != false) { $dom->getElementsByTagName($status_type)->item(0)->nodeValue = $status; $dom->getElementsByTagName($status_type . 'UpdatedBy')->item(0)->nodeValue = $user->name; } else { //Shouldn't be able to get here as a lock is needed before a status can be updated. return false; } //We don't get here if we fail $success = FedoraObject::createManagedXMLDom($image_pid, $datastream_name, $datastream_label, $dom); if ($success) { include_once drupal_get_path('module', 'apiary_project') . '/workflow/include/search.php'; $search_instance = new search(); $search_instance->index($image_pid); return $dom; } else { //can't update this datastream! return false; } }
/** * @param FedoraObject $entity * @param string $entityPid * * @return string */ function checkForReplacedEntity($repository, $entity, $entityPid, $entityTitle, &$replacementPids, $logFile) { if (array_key_exists($entityPid, $replacementPids)) { return $replacementPids[$entityPid]; } $entityMods = $entity->getDatastream('MODS'); $entityDoc = new DOMDocument(); if (!$entityDoc->loadXML($entityMods->content)) { echo "Could not load XML for {$entityPid}"; return array($entityPid, $entityTitle); } $personNotes = $entityDoc->getElementsByTagNameNS("http://marmot.org/local_mods_extension", 'personNotes')->item(0); $newEntityPid = null; if ($personNotes != null) { $personNotes = $personNotes->textContent; if (strlen($personNotes) > 0) { if (strpos($personNotes, 'replace_old') != false) { if (preg_match('/(evld:\\d+)/', $personNotes, $matches)) { $newEntityPid = $matches[1]; } } } } $placeNotes = $entityDoc->getElementsByTagNameNS("http://marmot.org/local_mods_extension", 'placeNotes')->item(0); if ($placeNotes != null) { $placeNotes = $placeNotes->textContent; if (strlen($placeNotes) > 0) { if (strpos($placeNotes, 'replace_old') != false) { if (preg_match('/(evld:\\d+)/', $placeNotes, $matches)) { $newEntityPid = $matches[1]; } } } } $abstract = $entityDoc->getElementsByTagNameNS("http://www.loc.gov/mods/v3", 'abstract')->item(0); if ($abstract != null) { $abstract = $abstract->textContent; if (strlen($abstract) > 0) { if (strpos($abstract, 'replace_old') != false) { if (preg_match('/(evld:\\d+)/', $abstract, $matches)) { $newEntityPid = $matches[1]; } } } } if ($newEntityPid == null) { $replacementPids[$entityPid] = array($entityPid, $entityTitle); } else { list($oldNamespace, $oldId) = explode(':', $entityPid); list($newNamespace, $newId) = explode(':', $newEntityPid); if ($oldNamespace != $newNamespace) { //echo("--Warning namespace for replacement PID changed $entityPid to $newEntityPid using old namespace<br/>\r\n"); $newEntityPid = $oldNamespace . ':' . $newId; } $newEntity = getFedoraObjectByPid($repository, $newEntityPid); echo "--Changing Entity ({$entityPid}) {$entityTitle} to ({$newEntityPid}) {$newEntity->label}<br/>\r\n"; fwrite($logFile, "--Changing Entity ({$entityPid}) {$entityTitle} to ({$newEntityPid}) {$newEntity->label}\r\n"); $replacementPids[$entityPid] = array($newEntityPid, $newEntity->label); } return $replacementPids[$entityPid]; }
static function unlockSpecimen($specimen_pid = null) { global $user; $timestamp = date("YmdHis"); if ($specimen_pid == null) { $specimen_pid = $this->pid; } if ($specimen_pid != null && $specimen_pid != '') { //returns specimenMetadata_record return FedoraObject::getMetadata_record($specimen_pid, 'specimenMetadata', 'specimenMetadata_record', 'api'); } else { return false; } return $locked; }
/** * @param $fileToLoad * @param $datastream * @param $datastreamLabel * @param $mimeType * @param FedoraObject $fedoraObject * @param $datastreamFile */ function addDatastream($fileToLoad, $datastream, $datastreamLabel, $mimeType, $fedoraObject, $datastreamFile) { $imageDatastream = $fedoraObject->constructDatastream($datastream); $imageDatastream->label = $datastreamLabel; $imageDatastream->mimetype = $mimeType; set_time_limit(1600); $imageDatastream->setContentFromFile($fileToLoad); $fedoraObject->ingestDatastream($imageDatastream); unset($imageDatastream); fwrite($datastreamFile, " {$fileToLoad} uploaded\r\n"); }