diff --git a/includes/DublinCore.inc b/includes/DublinCore.inc index 7c2b094c..7dc8d973 100644 --- a/includes/DublinCore.inc +++ b/includes/DublinCore.inc @@ -39,7 +39,7 @@ class DublinCore { * @param string $dc_xml */ function DublinCore($dc_xml = NULL) { - if (!empty($dc_string)) { + if (!empty($dc_xml)) { $this->dc = self::import_from_xml_string($dc_xml); } } @@ -145,8 +145,11 @@ class DublinCore { if ($dc_doc->loadXML($dc_xml)) { $oai_dc = $dc_doc->getElementsByTagNameNS('http://purl.org/dc/elements/1.1/', '*'); $new_dc = new DublinCore(); + foreach ($oai_dc as $child) { - array_push($new_dc->dc[$child->nodeName], $child->nodeValue); + if(isset($new_dc->dc[$child->nodeName])) { + array_push($new_dc->dc[$child->nodeName], $child->nodeValue); + } } return $new_dc; } diff --git a/includes/datastream.inc b/includes/datastream.inc index c6cb2780..74517d7c 100644 --- a/includes/datastream.inc +++ b/includes/datastream.inc @@ -41,10 +41,7 @@ function islandora_view_datastream(FedoraDatastream $datastream, $download = FAL } drupal_page_is_cacheable(FALSE); // Try not to load the file into PHP memory! - $file = drupal_tempnam(file_directory_temp(), 'islandora'); - $datastream->getContent($file); - readfile($file); - drupal_unlink($file); + $datastream->getContent('php://output'); exit(); } diff --git a/includes/utilities.inc b/includes/utilities.inc index 55ef7562..b2006722 100644 --- a/includes/utilities.inc +++ b/includes/utilities.inc @@ -382,7 +382,7 @@ function islandora_get_datastreams_requirements_from_content_model(FedoraObject function islandora_prepare_new_object($namespace = NULL, $label = NULL, $datastreams = array(), $content_models = array(), $relationships = array()) { global $user; $tuque = islandora_get_tuque_connection(); - $object = isset($namespace) ? $tuque->repository->constructObject($namespace) : new NewFedoraObject(NULL, $tuque->repository); + $object = isset($namespace) ? $tuque->repository->constructObject($namespace) : new IslandoraNewFedoraObject(NULL, $tuque->repository); $object->owner = isset($user->name) ? $user->name : $object->owner; $object->label = isset($label) ? $label : $object->label; foreach ($content_models as $content_model) { diff --git a/islandora.module b/islandora.module index 5e6fd7cf..f8673546 100644 --- a/islandora.module +++ b/islandora.module @@ -31,7 +31,7 @@ define('FEDORA_METADATA_EDIT', 'edit fedora metadata'); define('FEDORA_ADD_DS', 'add fedora datastreams'); define('FEDORA_INGEST', 'ingest fedora objects'); define('FEDORA_PURGE', 'delete fedora objects and datastreams'); -define('FEDORA_MODIFY_STATE', 'modify fedora state'); +define('FEDORA_MANAGE_PROPERTIES', 'manage object properties'); define('FEDORA_MANAGE', 'manage fedora items'); // Hooks @@ -108,7 +108,7 @@ function islandora_menu() { 'page arguments' => array(2), 'type' => MENU_LOCAL_TASK, 'access callback' => 'islandora_object_access_callback', - 'access arguments' => array(FEDORA_MODIFY_STATE, 2), + 'access arguments' => array(FEDORA_MANAGE, 2), ); $items['islandora/object/%islandora_object/manage/datastreams'] = array( 'title' => 'Datastreams', @@ -122,7 +122,7 @@ function islandora_menu() { 'page arguments' => array('islandora_object_properties_form', 2), 'type' => MENU_LOCAL_TASK, 'access callback' => 'islandora_object_access_callback', - 'access arguments' => array(FEDORA_MODIFY_STATE, 2), + 'access arguments' => array(FEDORA_MANAGE_PROPERTIES, 2), 'weight' => -5, ); $items['islandora/object/%islandora_object/delete'] = array( @@ -268,9 +268,9 @@ function islandora_permission() { 'title' => t('Permanently remove objects from the repository'), 'description' => t('Permanently remove objects from the repository.') ), - FEDORA_MODIFY_STATE => array( - 'title' => t('Change repository object states'), - 'description' => t('Change the state of objects in the repository (e.g. from Active to Inactive).') + FEDORA_MANAGE_PROPERTIES => array( + 'title' => t('Manage object properties'), + 'description' => t('Modify object labels, owner IDs, and states.') ), FEDORA_MANAGE => array( 'title' => t('View object management tabs'),