function handle() { $result = array(); if ($this->xml) { foreach ($this->xml->{$this->ro->class}->relatedInfo as $relatedInfo) { $type = (string) $relatedInfo['type']; $identifier_resolved = identifierResolution((string) $relatedInfo->identifier, (string) $relatedInfo->identifier['type']); $result[] = array('type' => $type, 'title' => (string) $relatedInfo->title, 'identifier' => array('identifier_type' => (string) $relatedInfo->identifier['type'], 'identifier_value' => (string) $relatedInfo->identifier, 'identifier_href' => $identifier_resolved), 'relation' => array('relation_type' => (string) $relatedInfo->relation['type'], 'description' => (string) $relatedInfo->relation->description, 'url' => (string) $relatedInfo->relation->url), 'notes' => (string) $relatedInfo->notes); } } return $result; }
function handle() { $result = array(); if ($this->ro->status == 'PUBLISHED') { if ($this->index && isset($this->index['identifier_type'])) { //identifier_type, identifier_value foreach ($this->index['identifier_type'] as $key => $type) { $result[] = array('type' => $type, 'value' => $this->index['identifier_value'][$key], 'identifier' => identifierResolution($this->index['identifier_value'][$key], $type)); } } } else { $identifiers = $this->ro->getIdentifiers(); foreach ($identifiers as $identifier) { $result[] = array('type' => $identifier['identifier_type'], 'value' => $identifier['identifier'], 'identifier' => identifierResolution($identifier['identifier'], $identifier['identifier_type'])); } } return $result; }
function getSourceUrl($output = null) { $sourceUrl = ''; $query = ''; if ($this->gXPath->evaluate("count(//ro:collection/ro:citationInfo/ro:citationMetadata/ro:identifier[@type='doi'])") > 0) { $query = "//ro:collection/ro:citationInfo/ro:citationMetadata/ro:identifier[@type='doi']"; $type = 'doi'; } elseif ($this->gXPath->evaluate("count(//ro:collection/ro:citationInfo/ro:citationMetadata/ro:identifier[@type='handle'])") > 0) { $query = "//ro:collection/ro:citationInfo/ro:citationMetadata/ro:identifier[@type='handle']"; $type = 'handle'; } elseif ($this->gXPath->evaluate("count(//ro:collection/ro:citationInfo/ro:citationMetadata/ro:identifier[@type='uri'])") > 0) { $query = "//ro:collection/ro:citationInfo/ro:citationMetadata/ro:identifier[@type='uri']"; $type = 'uri'; } elseif ($this->gXPath->evaluate("count(//ro:collection/ro:citationInfo/ro:citationMetadata/ro:identifier[@type='purl'])") > 0) { $query = "//ro:collection/ro:citationInfo/ro:citationMetadata/ro:identifier[@type='purl']"; $type = 'purl'; } elseif ($this->gXPath->evaluate("count(//ro:collection/ro:identifier[@type='doi'])") > 0) { $query = "//ro:collection/ro:identifier[@type='doi']"; $type = 'doi'; } elseif ($this->gXPath->evaluate("count(//ro:collection/ro:identifier[@type='handle'])") > 0) { $query = "//ro:collection/ro:identifier[@type='handle']"; $type = 'handle'; } elseif ($this->gXPath->evaluate("count(//ro:collection/ro:identifier[@type='uri'])") > 0) { $query = "//ro:collection/ro:identifier[@type='uri']"; $type = 'uri'; } elseif ($this->gXPath->evaluate("count(//ro:collection/ro:identifier[@type='purl'])") > 0) { $query = "//ro:collection/ro:identifier[@type='purl']"; $type = 'purl'; } elseif ($this->gXPath->evaluate("count(//ro:collection/ro:citationInfo/ro:citationMetadata/ro:url)") > 0) { $query = "//ro:collection/ro:citationInfo/ro:citationMetadata/ro:url"; $type = 'url'; } elseif ($this->gXPath->evaluate("count(//ro:collection/ro:location/ro:address/ro:electronic[@type='url'])") > 0) { $query = "//ro:collection/ro:location/ro:address/ro:electronic[@type='url']"; $type = 'url'; } if ($query != '') { $urls = $this->gXPath->query($query); foreach ($urls as $url) { $sourceUrl = $url->nodeValue; if ($output == 'endNote') { $resolved = identifierResolution($sourceUrl, $type); $sourceUrl = $resolved['href']; } elseif ($output == 'coins') { if (strpos($sourceUrl, "doi.org/")) { $sourceUrl = "info:doi" . substr($sourceUrl, strpos($sourceUrl, "doi.org/") + 8); } elseif ($type == 'doi') { $sourceUrl = "info:doi" . $sourceUrl; } } } } else { if ($output == 'endNote') { $sourceUrl = portal_url(); } } return $sourceUrl; }