From 4260762fc098e10cc0eecaa989183d8133c5b053 Mon Sep 17 00:00:00 2001 From: Nigel Banks Date: Thu, 8 Sep 2011 00:24:20 +0100 Subject: [PATCH 1/2] Added set_datastream_state function. --- api/fedora_item.inc | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/api/fedora_item.inc b/api/fedora_item.inc index 1ef687ec..683b31e6 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 (key_exists($state, $valid_states)) { + $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)) { From 1681e031f3bd97c187a5ee752029c0aed2de992e Mon Sep 17 00:00:00 2001 From: Nigel Banks Date: Thu, 8 Sep 2011 13:32:13 +0100 Subject: [PATCH 2/2] Fixed datastream state check. --- api/fedora_item.inc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/api/fedora_item.inc b/api/fedora_item.inc index 683b31e6..07fa7ec2 100644 --- a/api/fedora_item.inc +++ b/api/fedora_item.inc @@ -800,7 +800,7 @@ class Fedora_Item { function set_datastream_state($dsid, $state, $log_message = 'Modified by Islandora API', $quiet = FALSE) { $valid_states = array('A', 'D', 'I'); - if (key_exists($state, $valid_states)) { + if (array_search($state, $valid_states) !== FALSE) { $params = array( 'pid' => $this->pid, 'dsID' => $dsid,