diff --git a/api/fedora_item.inc b/api/fedora_item.inc index 1ef687ec..07fa7ec2 100644 --- a/api/fedora_item.inc +++ b/api/fedora_item.inc @@ -1,11 +1,9 @@ resultList->objectFields); if (count($resultelements->resultList->objectFields) < $max_results - || count($resultelements->resultList->objectFields) == 0) { + || count($resultelements->resultList->objectFields) == 0) { $done = TRUE; } foreach ($resultelements->resultList->objectFields as $obj) { @@ -586,7 +584,7 @@ class Fedora_Item { // Verify the array format and that it isn't empty. if (!empty($relationships)) { $relsextxml = '' - . ''; + . ''; foreach ($relationships as $rel) { if (empty($rel['subject']) || empty($rel['predicate']) || empty($rel['object']) || $rel['subject'] != 'info:fedora/' . $this->pid) { @@ -800,6 +798,19 @@ class Fedora_Item { return self::soap_call('modifyDatastreamByValue', $params, $quiet); } + function set_datastream_state($dsid, $state, $log_message = 'Modified by Islandora API', $quiet = FALSE) { + $valid_states = array('A', 'D', 'I'); + if (array_search($state, $valid_states) !== FALSE) { + $params = array( + 'pid' => $this->pid, + 'dsID' => $dsid, + 'dsState' => $state, + 'logMessage' => $log_message, + ); + return self::soap_call('setDatastreamState', $params, $quiet); + } + } + /** * Soap call * @param type $function_name @@ -826,6 +837,7 @@ class Fedora_Item { case 'purgeDatastream': case 'purgeObject': case 'modifyObject': + case 'setDatastreamState': $soap_client = self::$connection_helper->getSoapClient(variable_get('fedora_soap_manage_url', 'http://localhost:8080/fedora/services/management?wsdl')); try { if (!empty($soap_client)) {