Browse Source

Merge branch '7.x' into 7.x-allow-viewers-based-on-content-type

pull/230/head
Nigel Banks 12 years ago
parent
commit
fdce0c6e8b
  1. 7
      includes/DublinCore.inc
  2. 5
      includes/datastream.inc
  3. 2
      includes/utilities.inc
  4. 12
      islandora.module

7
includes/DublinCore.inc

@ -39,7 +39,7 @@ class DublinCore {
* @param string $dc_xml * @param string $dc_xml
*/ */
function DublinCore($dc_xml = NULL) { function DublinCore($dc_xml = NULL) {
if (!empty($dc_string)) { if (!empty($dc_xml)) {
$this->dc = self::import_from_xml_string($dc_xml); $this->dc = self::import_from_xml_string($dc_xml);
} }
} }
@ -145,8 +145,11 @@ class DublinCore {
if ($dc_doc->loadXML($dc_xml)) { if ($dc_doc->loadXML($dc_xml)) {
$oai_dc = $dc_doc->getElementsByTagNameNS('http://purl.org/dc/elements/1.1/', '*'); $oai_dc = $dc_doc->getElementsByTagNameNS('http://purl.org/dc/elements/1.1/', '*');
$new_dc = new DublinCore(); $new_dc = new DublinCore();
foreach ($oai_dc as $child) { 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; return $new_dc;
} }

5
includes/datastream.inc

@ -41,10 +41,7 @@ function islandora_view_datastream(FedoraDatastream $datastream, $download = FAL
} }
drupal_page_is_cacheable(FALSE); drupal_page_is_cacheable(FALSE);
// Try not to load the file into PHP memory! // Try not to load the file into PHP memory!
$file = drupal_tempnam(file_directory_temp(), 'islandora'); $datastream->getContent('php://output');
$datastream->getContent($file);
readfile($file);
drupal_unlink($file);
exit(); exit();
} }

2
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()) { function islandora_prepare_new_object($namespace = NULL, $label = NULL, $datastreams = array(), $content_models = array(), $relationships = array()) {
global $user; global $user;
$tuque = islandora_get_tuque_connection(); $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->owner = isset($user->name) ? $user->name : $object->owner;
$object->label = isset($label) ? $label : $object->label; $object->label = isset($label) ? $label : $object->label;
foreach ($content_models as $content_model) { foreach ($content_models as $content_model) {

12
islandora.module

@ -31,7 +31,7 @@ define('FEDORA_METADATA_EDIT', 'edit fedora metadata');
define('FEDORA_ADD_DS', 'add fedora datastreams'); define('FEDORA_ADD_DS', 'add fedora datastreams');
define('FEDORA_INGEST', 'ingest fedora objects'); define('FEDORA_INGEST', 'ingest fedora objects');
define('FEDORA_PURGE', 'delete fedora objects and datastreams'); 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'); define('FEDORA_MANAGE', 'manage fedora items');
// Hooks // Hooks
@ -108,7 +108,7 @@ function islandora_menu() {
'page arguments' => array(2), 'page arguments' => array(2),
'type' => MENU_LOCAL_TASK, 'type' => MENU_LOCAL_TASK,
'access callback' => 'islandora_object_access_callback', '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( $items['islandora/object/%islandora_object/manage/datastreams'] = array(
'title' => 'Datastreams', 'title' => 'Datastreams',
@ -122,7 +122,7 @@ function islandora_menu() {
'page arguments' => array('islandora_object_properties_form', 2), 'page arguments' => array('islandora_object_properties_form', 2),
'type' => MENU_LOCAL_TASK, 'type' => MENU_LOCAL_TASK,
'access callback' => 'islandora_object_access_callback', 'access callback' => 'islandora_object_access_callback',
'access arguments' => array(FEDORA_MODIFY_STATE, 2), 'access arguments' => array(FEDORA_MANAGE_PROPERTIES, 2),
'weight' => -5, 'weight' => -5,
); );
$items['islandora/object/%islandora_object/delete'] = array( $items['islandora/object/%islandora_object/delete'] = array(
@ -268,9 +268,9 @@ function islandora_permission() {
'title' => t('Permanently remove objects from the repository'), 'title' => t('Permanently remove objects from the repository'),
'description' => t('Permanently remove objects from the repository.') 'description' => t('Permanently remove objects from the repository.')
), ),
FEDORA_MODIFY_STATE => array( FEDORA_MANAGE_PROPERTIES => array(
'title' => t('Change repository object states'), 'title' => t('Manage object properties'),
'description' => t('Change the state of objects in the repository (e.g. from Active to Inactive).') 'description' => t('Modify object labels, owner IDs, and states.')
), ),
FEDORA_MANAGE => array( FEDORA_MANAGE => array(
'title' => t('View object management tabs'), 'title' => t('View object management tabs'),

Loading…
Cancel
Save