From 09ff6035dfa142a2bcfeda9caee0ed51a5bc27cc Mon Sep 17 00:00:00 2001 From: mroy Date: Tue, 7 Dec 2010 12:39:40 -0600 Subject: [PATCH] modified to include isMemberOf and isPartOf in addition to isMemberOfCollection in mods:relatedItem --- workflow_client/plugins/mods_extend.inc | 48 +++++++++++++------------ 1 file changed, 26 insertions(+), 22 deletions(-) diff --git a/workflow_client/plugins/mods_extend.inc b/workflow_client/plugins/mods_extend.inc index caf13aff..575974e0 100644 --- a/workflow_client/plugins/mods_extend.inc +++ b/workflow_client/plugins/mods_extend.inc @@ -65,35 +65,39 @@ class mods_extend extends Process { break; } } - - $collections= $relsExtDom->getElementsByTagName('isMemberOfCollection'); - for ($i=0; $i < $collections->length; $i++) { - $collection = $collections->item($i); - list(, $ident) = explode('/', $collection->getAttribute('rdf:resource')); + + $relationships = array('isMemberOfCollection','isMemberOf','isPartOf'); + foreach ($relationships as $relationship) + { + $collections= $relsExtDom->getElementsByTagName($relationship); + for ($i=0; $i < $collections->length; $i++) { + $collection = $collections->item($i); + list(, $ident) = explode('/', $collection->getAttribute('rdf:resource')); - $collection = new fedora_item($ident); - $dc = new SimpleXMLElement($collection->get_datastream_dissemination('DC'), NULL, FALSE, 'http://purl.org/dc/elements/1.1/'); + $collection = new fedora_item($ident); + $dc = new SimpleXMLElement($collection->get_datastream_dissemination('DC'), NULL, FALSE, 'http://purl.org/dc/elements/1.1/'); - $relatedItem = $modsDom->createElement('mods:relatedItem'); - $relatedItem->setAttribute('type', 'host'); - $titleInfo = $modsDom->createElement('mods:titleInfo'); - $title = $modsDom->createElement('mods:title', $dc->title); - $titleInfo->appendChild($title); - $relatedItem->appendChild($titleInfo); + $relatedItem = $modsDom->createElement('mods:relatedItem'); + $relatedItem->setAttribute('type', 'host'); + $titleInfo = $modsDom->createElement('mods:titleInfo'); + $title = $modsDom->createElement('mods:title', $dc->title); + $titleInfo->appendChild($title); + $relatedItem->appendChild($titleInfo); - $identifier = $modsDom->createElement('mods:identifier', $ident); - $identifier->setAttribute('type', 'pid'); - $relatedItem->appendChild($identifier); + $identifier = $modsDom->createElement('mods:identifier', $ident); + $identifier->setAttribute('type', 'pid'); + $relatedItem->appendChild($identifier); - $ident = preg_replace('/^.*\:/', '10719/', $ident); + $ident = preg_replace('/^.*\:/', '10719/', $ident); - $identifier = $modsDom->createElement('mods:identifier', $ident); - $identifier->setAttribute('type', 'hdl'); - $relatedItem->appendChild($identifier); + $identifier = $modsDom->createElement('mods:identifier', $ident); + $identifier->setAttribute('type', 'hdl'); + $relatedItem->appendChild($identifier); - $modsRoot->appendChild($relatedItem); + $modsRoot->appendChild($relatedItem); + } } - + $identifier = $modsDom->createElement('mods:identifier', $pid); $identifier->setAttribute('type', 'pid'); $modsRoot->appendChild($identifier);