diff --git a/BatchIngest.inc b/BatchIngest.inc
deleted file mode 100644
index 77ab6bf7..00000000
--- a/BatchIngest.inc
+++ /dev/null
@@ -1,264 +0,0 @@
-pid != "islandora:collectionCModel") {
- $cm_options[$content_model->pid] = $content_model->name;
- $name_mappings[] = $content_model->pid . '^' . $content_model->pid_namespace;
- }
- }
- $mappings = implode('~~~', $name_mappings);
- $form['#attributes']['enctype'] = 'multipart/form-data';
-
- $form['titlebox'] = array(
- '#type' => 'item',
- '#value' => t("Batch ingest into $collection_pid"),
- );
-
- $form['collection_pid'] = array(
- '#type' => 'hidden',
- '#value' => $collection_pid,
- );
- $form['namespace_mappings'] = array(
- '#type' => 'hidden',
- '#value' => $mappings,
- );
- $form['content_model'] = array(
- '#title' => "Choose content model to be associated with objects ingested",
- '#type' => 'select',
- '#options' => $cm_options,
- '#required' => TRUE,
- '#description' => t("Content models describe the behaviours of objects with which they are associated."),
- );
- $form['indicator']['file-location'] = array(
- '#type' => 'file',
- '#title' => t('Upload zipped folder'),
- '#size' => 48,
- '#description' => t('The zipped folder should contain all files necessary to build objects.
- Related files must have the same filename, but with differing extensions to indicate mimetypes.
- ie. myFile.xml and myFile.jpg'),
- );
-
- $form['submit'] = array(
- '#type' => 'submit',
- '#value' => t('Create Objects ')
- );
-
-
- return($form);
-}
-
-/**
- * @param array $form
- * @param array $form_state
- */
-function batch_creation_form_validate($form, &$form_state) {
-
- $field_name = 'file-location';
- if (isset($_FILES['files']) && is_uploaded_file($_FILES['files']['tmp_name'][$field_name])) {
- $file = file_save_upload($field_name);
- if ($file->filemime != 'application/zip') {
- form_set_error($field_name, 'Input file must be a .zip file');
- return;
- }
- if (!$file) {
- form_set_error($field_name, 'Error uploading file.');
- return;
- }
- $form_state['values']['file'] = $file;
- }
- else {
- // set error
- form_set_error($field_name, 'Error uploading file.');
- return;
- }
-}
-
-function batch_creation_form_submit($form, &$form_state) {
- module_load_include('inc', 'fedora_repository', 'ContentModel');
- module_load_include('inc', 'fedora_repository', 'api/fedora_item');
- global $user;
- $namespace_mappings = array();
- $content_model = $form_state['values']['content_model'];
- $metadata = $form_state['values']['metadata_type'];
- $collection_pid = $form_state['values']['collection_pid'];
- $namespace_process = explode('~~~', $form_state['values']['namespace_mappings']);
- foreach ($namespace_process as $line) {
- $line_parts = explode('^', $line);
- $namespace_mappings[$line_parts[0]] = $line_parts[1];
- }
- $namespace = $namespace_mappings[$content_model];
- $namespace = preg_replace('/:.*/', '', $namespace);
- $dir_name = "temp" . $user->uid;
- $tmp_dir = file_directory_path() . '/' . $dir_name . '/';
- mkdir($tmp_dir);
- $file = $form_state['values']['file'];
- $fileName = $file->filepath;
- $file_list = array();
- $cmdString = "unzip -q -o -d $tmp_dir \"$fileName\"";
- system($cmdString, $retVal);
- $dirs = array();
- $do_not_add = array('.', '..', '__MACOSX');
- array_push($dirs, $tmp_dir);
- $files = scandir($tmp_dir);
- foreach ($files as $file) {
- if (is_dir("$tmp_dir/$file") & !in_array($file, $do_not_add)) {
- array_push($dirs, $tmp_dir . $file);
- }
- }
- foreach ($dirs as $directory) {
- if ($inputs = opendir($directory)) {
- while (FALSE !== ($file_name = readdir($inputs))) {
- if (!in_array($file_name, $do_not_add) && is_dir($file_name) == FALSE) {
- $ext = strrchr($file_name, '.');
- $base = preg_replace("/$ext$/", '', $file_name);
- $ext = substr($ext, 1);
- if ($ext) {
- if ($directory[strlen($directory)-1] != '/'){
- $directory .= '/';
- }
- $file_list[$base][$ext] = "$directory" . $file_name;
- }
- }
- }
- closedir($inputs);
- }
- }
-
- if (($cm = ContentModel::loadFromModel($content_model, 'ISLANDORACM')) === FALSE) {
- drupal_set_message("$content_model not found", "error");
- return;
- }
-
- $batch = array(
- 'title' => 'Ingesting Objects',
- 'operations' => array(),
- 'file' => drupal_get_path('module', 'fedora_repository') . '/BatchIngest.inc',
- );
-
-
- foreach ($file_list as $label => $object_files) {
- $batch['operations'][] = array('create_batch_objects', array($label, $content_model, $object_files, $collection_pid, $namespace, $metadata));
- }
- $batch['operations'][] = array('recursive_directory_delete', array($tmp_dir));
- batch_set($batch);
- batch_process();
-}
-
-/**
- *
- * @param $label
- * @param $content_model
- * @param $object_files
- * @param $collection_pid
- * @param $namespace
- * @param $metadata
- */
-function create_batch_objects($label, $content_model, $object_files, $collection_pid, $namespace, $metadata) {
- module_load_include('inc', 'fedora_repository', 'ContentModel');
- module_load_include('inc', 'fedora_repository', 'MimeClass');
- module_load_include('inc', 'fedora_reppository', 'api/fedora_item');
-
- $cm = ContentModel::loadFromModel($content_model, 'ISLANDORACM');
- $allowed_mime_types = $cm->getMimetypes();
- $mime_helper = new MimeClass();
- $pid = fedora_item::get_next_PID_in_namespace($namespace);
-
- $item = Fedora_item::ingest_new_item($pid, 'A', $label, $owner);
- $item->add_relationship('hasModel', $content_model, FEDORA_MODEL_URI);
- $item->add_relationship('isMemberOfCollection', $collection_pid);
- if ($object_files['xml']) {
- $data = file_get_contents($object_files['xml']);
- $xml = simplexml_load_string($data);
- $identifier = $xml->getName();
- if ($identifier == 'dc') {
- $item->modify_datastream_by_value($data, 'DC', "Dublin Core", 'text/xml');
- }
- if ($identifier == 'mods') {
- $item->add_datastream_from_string($mods_xml, 'MODS');
- $dc_xml = batch_create_dc_from_mods($mods_xml);
- $item->modify_datastream_by_value($dc_xml, 'DC', "Dublin Core", 'text/xml');
- }
- }
-
- unset($object_files['xml']);
- foreach ($object_files as $ext => $filename) {
- $file_mimetype = $mime_helper->get_mimetype($filename);
- if (in_array($file_mimetype, $allowed_mime_types)) {
- $added = $cm->execIngestRules($filename, $file_mimetype);
- }
- else {
- $item->purge("$pid $label not ingested. $file_mimetype not permitted in objects associated with $content_model");
- continue;
- }
- $item->add_datastream_from_file($filename, "Source_File");
-
- if (!empty($_SESSION['fedora_ingest_files'])) {
- foreach ($_SESSION['fedora_ingest_files'] as $dsid => $datastream_file) {
- $item->add_datastream_from_file($datastream_file, $dsid);
- }
- }
- }
-}
-
-/**
- * transforms mods to dc
- * @param $mods_xml
- * @return
- */
-function batch_create_dc_from_mods($mods_xml) {
- $path = drupal_get_path('module', 'fedora_repository');
- module_load_include('inc', 'fedora_repository', 'ObjectHelper');
- module_load_include('inc', 'fedora_repository', 'CollectionClass');
-
- if ($xmlstr == NULL || strlen($xmlstr) < 5) {
- return " ";
- }
-
- try {
- $proc = new XsltProcessor();
- } catch (Exception $e) {
- drupal_set_message(t('@e', array('@e' => check_plain($e->getMessage()))), 'error');
- return " ";
- }
-
- $xsl = new DomDocument();
- $xsl->load($path . '/xsl/mods_to_dc.xsl');
- $input = new DomDocument();
- $input->loadXML(trim($xmlstr));
- $xsl = $proc->importStylesheet($xsl);
- $newdom = $proc->transformToDoc($input);
- $dc_xml = $newdom->saveXML();
-
- return $dc_xml;
-}
-
-/**
- *
- * @param $dir
- * @return
- */
-function recursive_directory_delete($dir) {
- if (!file_exists($dir))
- return TRUE;
- if (!is_dir($dir))
- return unlink($dir);
- foreach (scandir($dir) as $item) {
- if ($item == '.' || $item == '..')
- continue;
- if (!recursive_directory_delete($dir . DIRECTORY_SEPARATOR . $item))
- return FALSE;
- }
- return rmdir($dir);
-}
\ No newline at end of file
diff --git a/CollectionClass.inc b/CollectionClass.inc
index 82e4739e..2af37522 100644
--- a/CollectionClass.inc
+++ b/CollectionClass.inc
@@ -517,7 +517,7 @@ class CollectionClass {
$show_ingest_tab = (!empty($_POST['form_id']) && $_POST['form_id'] == 'fedora_repository_ingest_form');
$add_to_collection = $this->getIngestInterface();
- $show_batch_tab = TRUE;
+ $show_batch_tab = FALSE;
$policy = CollectionPolicy::loadFromCollection($this->pid, TRUE);
$content_models = $policy->getContentModels();
if (count($content_models) == 1 && $content_models[0]->pid == "islandora:collectionCModel") {
@@ -547,16 +547,7 @@ class CollectionClass {
// This will be the content of the tab.
'#content' => $add_to_collection,
);
- if (user_access('manage collections')) {
- $tabset['add_collection_tab'] = array(
- // #type and #title are the minimum requirements.
- '#type' => 'tabpage',
- '#title' => t('Manage This Collection'),
- // This will be the content of the tab.
- '#content' => drupal_get_form('collection_management_form', $this->pid, $content_models),
- '#selected' => FALSE,
- );
- }
+
if ($show_batch_tab && user_access('create batch process')) {
$tabset['batch_ingest_tab'] = array(
// #type and #title are the minimum requirements.
diff --git a/CollectionManagement.inc b/CollectionManagement.inc
deleted file mode 100644
index 39d33456..00000000
--- a/CollectionManagement.inc
+++ /dev/null
@@ -1,401 +0,0 @@
-objectProfile->objLabel;
- $new_content_models = get_content_models_as_option_array();
- $cm_options = array();
- $name_mappings = array();
- foreach ($content_models as $content_model) {
- if ($content_model->pid != "islandora:collectionCModel") {
- $item = new fedora_item($content_model->pid);
- $cm_name = $item->objectProfile->objLabel;
- $cm_options[$content_model->pid] = $cm_name;
- }
- }
- if (!empty($cm_options)) {
- $show_delete = TRUE;
- }
-
-
- $content_models = get_content_models_as_option_array();
- $form['child_creation'] = array(
- '#title' => "Create Child Collection",
- '#type' => 'fieldset',
- '#collapsible' => TRUE,
- '#collapsed' => TRUE,
- );
-
- $form['child_creation']['titlebox'] = array(
- '#type' => 'item',
- '#value' => t("Create New Child Collection within $this_collection_pid"),
- );
-
- $form['child_creation']['collection_name'] = array(
- '#title' => "Collection Name",
- '#type' => 'textfield',
- '#description' => t("Human readable name for this collection"),
- );
-
- $form['child_creation']['new_collection_pid'] = array(
- '#title' => "Collection PID",
- '#type' => 'textfield',
- '#size' => 15,
- '#description' => t("Unique PID for this collection.
Pids take the general form of namespace:collection eg islandora:pamphlets"),
- );
- if (!$restricted) {
- $form['child_creation']['collection_namespace'] = array(
- '#title' => "Collection Namespace",
- '#type' => 'textfield',
- '#size' => 15,
- '#default_value' => 'default',
- '#description' => t("Namespace for objects in this collection."),
- );
- }
- else {
- $form['child_creation']['collection_namespace'] = array(
- '#title' => "Collection Namespace",
- '#type' => 'select',
- '#options' => $allowed,
- '#default_value' => 'default',
- '#description' => t("Namespace for objects in this collection."),
- );
- }
- $form['parent_collection'] = array(
- '#type' => 'hidden',
- '#value' => $this_collection_pid,
- );
-
- $form['collection_pid'] = array(
- '#type' => 'hidden',
- '#value' => $this_collection_pid,
- );
- $form['child_creation']['content_models'] = array(
- '#title' => "Choose allowable content models for this collection",
- '#type' => 'checkboxes',
- '#options' => $content_models,
- '#description' => t("Content models describe the behaviours of objects with which they are associated."),
- );
-
-
- $form['child_creation']['submit'] = array(
- '#type' => 'submit',
- '#value' => t('Create Collection'),
- '#id' => 'create_class'
- );
- $form['manage_collection_policy'] = array(
- '#title' => "Manage Collection Policies",
- '#type' => 'fieldset',
- '#collapsible' => TRUE,
- '#collapsed' => TRUE,
- );
-
- $form['manage_collection_policy']['add'] = array(
- '#title' => "Add Content Model",
- '#type' => 'fieldset',
- '#collapsible' => TRUE,
- '#collapsed' => $show_delete,
- );
-
-
- $form ['manage_collection_policy']['add']['content_model_to_add'] = array(
- '#title' => "Choose Content Model",
- '#type' => 'select',
- '#options' => array_diff_key($content_models, $cm_options),
- '#description' => t("Choose content model to add to this collection policy."),
- );
-
- $form ['manage_collection_policy']['add']['new_cp_namespace'] = array(
- '#title' => "Choose Namespace",
- '#type' => 'textfield',
- '#size' => 15,
- '#description' => t("Choose namespace for objects in this collection associated with this content model"),
- );
- $form['manage_collection_policy']['add']['submit'] = array(
- '#type' => 'submit',
- '#value' => t('Add Content Model to Collection Policy'),
- '#id' => 'add_cm'
- );
-
- if ($show_delete) {
- $form['manage_collection_policy']['remove'] = array(
- '#title' => "Delete Content Model",
- '#type' => 'fieldset',
- '#collapsible' => TRUE,
- '#collapsed' => TRUE,
- );
-
- $form ['manage_collection_policy']['remove']['content_models_to_remove'] = array(
- '#title' => "Choose Content Model to Remove",
- '#type' => 'checkboxes',
- '#options' => $cm_options,
- '#description' => t("Choose content models to remove from this collection policy."),
- );
-
-
- $form['manage_collection_policy']['remove']['submit'] = array(
- '#type' => 'submit',
- '#value' => t('Remove Content Collection Policy'),
- '#id' => 'remove_cm'
- );
- }
- $form['change_cmodel'] = array(
- '#title' => "Change Content Models",
- '#type' => 'fieldset',
- '#collapsible' => TRUE,
- '#collapsed' => TRUE,
- );
- $form['change_cmodel']['titlebox'] = array(
- '#type' => 'item',
- '#value' => t("Change Content Models within $this_collection_pid"),
- );
-
- $form['change_cmodel']['current_content_model'] = array(
- '#title' => "Choose content model to be changed",
- '#type' => 'select',
- '#options' => $cm_options,
- '#description' => t("All objects in this collection with the selected content model will be changed."),
- );
- $form['change_cmodel']['new_content_model'] = array(
- '#title' => "Choose new content model",
- '#type' => 'select',
- '#options' => $new_content_models,
- '#description' => t("The new content model to be assigned to selected objects."),
- );
- $form['change_cmodel']['collection_pid'] = array(
- '#type' => 'hidden',
- '#value' => $this_collection_pid,
- );
- $form['change_cmodel']['submit'] = array(
- '#type' => 'submit',
- '#value' => t('Change Content Model Associations'),
- '#id' => 'change_model',
- );
- if (user_access('delete entire collections')) {
- $form['delete_collection'] = array(
- '#title' => "Permanently Delete $collection_name",
- '#type' => 'fieldset',
- '#description' => t("Clicking this button will delete all objects within $collection_name.
This action cannot be undone."),
- '#collapsible' => TRUE,
- '#collapsed' => TRUE,
- );
- $form['delete_collection']['confirm'] = array(
- '#title' => "Are you sure?",
- '#type' => 'fieldset',
- '#description' => t('Clicking the delete button will permanantly remove all objects from this collection.
This action cannot be undone. '),
- '#collapsible' => TRUE,
- '#collapsed' => TRUE,
- );
-
- $form['delete_collection']['confirm']['submit'] = array(
- '#type' => 'submit',
- '#value' => t('Delete this collection'),
- '#id' => 'delete_collection',
- );
- }
- return($form);
-}
-
-/**
- * collection creation form validate
- * @param array $form
- * @param array $form_state
- */
-function collection_management_form_validate($form, &$form_state) {
- if ($form_state['clicked_button']['#id'] == 'create_class') {
- module_load_include('inc', 'fedora_repository', 'api/fedora_item');
- module_load_include('inc', 'fedora_repository', 'api/fedora_utils');
- $pid = $form_state['values']['new_collection_pid'];
- $item = new fedora_item($pid);
- if ($item->exists()) {
- form_set_error('new_collection_pid', t("$pid already exists within your repository. the PID must be unique"));
- return;
- }
- if (!valid_pid($pid)) {
- form_set_error('new_collection_pid', t("$pid is not a valid identifier"));
- return;
- }
- }
- if ($form_state['clicked_button']['#id'] == 'add_cm') {
- if (!valid_pid($form_state['values']['new_cp_namespace'])) {
- form_set_error('new_cp_namespace', t("Namespace must be a valid PID"));
- return;
- }
- }
-}
-
-/**
- * collection creation form submit
- * @global type $user
- * @param type $form
- * @param type $form_state
- */
-function collection_management_form_submit($form, &$form_state) {
- module_load_include('inc', 'fedora_repository', 'api/fedora_collection');
- module_load_include('inc', 'fedora_repository', 'api/fedora_item');
- module_load_include('inc', 'fedora_repository', 'api/dublin_core');
- global $user;
- $collection_pid = $form_state['values']['parent_collection'];
- $policy = CollectionPolicy::loadFromCollection($collection_pid, TRUE);
- if ($form_state['clicked_button']['#id'] == 'create_class') {
- $module_path = drupal_get_path('module', 'fedora_repository');
- $thumbnail = drupal_get_path('module', 'Fedora_Repository') . '/images/Crystal_Clear_filesystem_folder_grey.png';
- $new_collection_pid = $form_state['values']['new_collection_pid'];
- $new_collection_label = $form_state['values']['collection_name'];
- $pid_namespace = $form_state['values']['collection_namespace'];
- $all_cModels = get_content_models_as_option_array();
- $collection_policy = '
-
-
-
-
-
-
- isMemberOfCollection
-';
- $content_models = $form_state['values']['content_models'];
- $collection_policy_xml = simplexml_load_string($collection_policy);
- foreach ($content_models as $content_model) {
- if ($content_model) {
- $node = $collection_policy_xml->content_models->addChild('content_model');
- $node->addAttribute('dsid', 'ISLANDORACM');
- $node->addAttribute('name', $all_cModels[$content_model]);
- $node->addAttribute('namespace', $pid_namespace . ':1');
- $node->addAttribute('pid', $content_model);
- }
- }
- $item = fedora_item::ingest_new_item($new_collection_pid, 'A', $new_collection_label, $user->name);
- $item->add_relationship('isMemberOfCollection', $collection_pid, RELS_EXT_URI);
- $item->add_relationship('hasModel', 'islandora:collectionCModel', FEDORA_MODEL_URI);
- $item->add_datastream_from_string($collection_policy_xml->saveXML(), 'COLLECTION_POLICY');
- $item->add_datastream_from_file($thumbnail, 'TN');
- drupal_goto("/fedora/repository/$new_collection_pid");
- }
-
- if ($form_state['clicked_button']['#id'] == 'add_cm') {
-
- $cp_namespace = $form_state['values']['new_cp_namespace'];
- $cp_content_model = $form_state['values']['content_model_to_add'];
- $policy->addModel(ContentModel::loadFromModel($cp_content_model), $cp_namespace);
- $policy->saveToFedora();
- drupal_set_message("Collection model successfully added");
- }
-
- if ($form_state['clicked_button']['#id'] == 'remove_cm') {
- $candidates = $form_state['values']['content_models_to_remove'];
- $count = 0;
- foreach ($candidates as $candidate) {
- if (is_string($candidate)) {
- $policy->removeModel(ContentModel::loadFromModel($candidate));
- $count++;
- }
- }
- if ($count > 0) {
- $policy->saveToFedora();
- if ($count > 1) {
- $s = 's';
- }
- drupal_set_message("$count collection model$s removed");
- }
- }
-
- if ($form_state['clicked_button']['#id'] == 'change_model') {
- $current_content_model = $form_state['values']['current_content_model'];
- $new_content_model = $form_state['values']['new_content_model'];
-
- $add_to_policy = TRUE;
- $policy_cms = $policy->getContentModels();
- foreach ($policy_cms as $policy_cm) {
- if ($policy_cm->pid == $current_content_model) {
- $namespace = $policy_cm->pid_namespace;
- }
- if ($policy_cm->pid == $new_content_model) {
- $add_to_policy = FALSE;
- }
- }
- if ($add_to_policy) {
- $policy->addModel(ContentModel::loadFromModel($new_content_model), $namespace);
- $policy->saveToFedora();
- }
- $query = "select \$object from <#ri>
- where (\$object
- and \$object
- and \$object )";
- $query = htmlentities(urlencode($query));
- $content = '';
-
- $url = variable_get('fedora_repository_url', 'http://localhost:8080/fedora/risearch');
- $url .= "?type=tuples&flush=TRUE&format=csv&limit=$limit&offset=$offset&lang=itql&stream=on&query=" . $query;
- $content .= do_curl($url);
- $results = explode("\n", $content);
- $object_pids = preg_replace('/^info:fedora\/|"object"/', '', $results);
- $count = 0;
- foreach ($object_pids as $object_pid) {
- if (!$object_pid) {
- continue;
- }
- $item = new fedora_item($object_pid);
- $item->purge_relationship('hasModel', $current_content_model);
- $item->add_relationship('hasModel', $new_content_model, FEDORA_MODEL_URI);
- $count++;
- }
- drupal_set_message("$current_content_model changed to $new_content_model on $count objects");
- }
-
- if ($form_state['clicked_button']['#id'] == 'delete_collection') {
- $collection_name = $form_state['values']['collection_name'];
- $pids = get_related_items_as_array($collection_pid, 'isMemberOfCollection');
-
- $batch = array(
- 'title' => "Deleting Objects from $name",
- 'operations' => array(),
- 'file' => drupal_get_path('module', 'fedora_repository') . '/CollectionManagement.inc',
- );
-
-
- foreach ($pids as $pid) {
-
- $batch['operations'][] = array('delete_objects_as_batch', array($pid));
- }
-
- batch_set($batch);
- batch_process('/fedora/repository');
- }
-}
-
-/**
- * deletes PID if pid is not collection
- * @param $pid
- */
-function delete_objects_as_batch($pid) {
- module_load_include('inc', 'fedora_repository', 'api/fedora_item');
- $name = $user->name;
- $item_to_delete = new Fedora_Item($pid);
- $models = $item_to_delete->get_models();
- foreach ($models as $model) {
- if ($model['object'] != 'islandora:collectionCModel') {
- $item_to_delete->purge("$object purged by $name");
- }
- }
-}
\ No newline at end of file
diff --git a/ObjectHelper.inc b/ObjectHelper.inc
index 70f73d4b..8321c0ea 100644
--- a/ObjectHelper.inc
+++ b/ObjectHelper.inc
@@ -19,9 +19,6 @@ class ObjectHelper {
public static $INGEST_FEDORA_OBJECTS = 'ingest new fedora objects';
public static $EDIT_TAGS_DATASTREAM = 'edit tags datastream';
public static $VIEW_DETAILED_CONTENT_LIST = 'view detailed list of content';
- public static $MANAGE_COLLECTIONS = 'manage collections';
- public static $DELETE_ENTIRE_COLLECTIONS = 'delete entire collections';
- public static $CREATE_BATCH_PROCESS = 'create batch process';
public static $DISPLAY_ALWAYS = 0;
public static $DISPLAY_NEVER = 1;
public static $DISPLAY_NO_MODEL_OUTPUT = 2;
diff --git a/fedora_repository.module b/fedora_repository.module
index 56859edb..f0ca2eaf 100644
--- a/fedora_repository.module
+++ b/fedora_repository.module
@@ -55,8 +55,8 @@ function fedora_repository_purge_object($pid = NULL, $name = NULL) {
return '';
}
$output = t('Are you sure you wish to purge object %name %pid!
This cannot be undone
', array(
- '%name' => $name,
- '%pid' => $pid)
+ '%name' => $name,
+ '%pid' => $pid)
);
$output .= drupal_get_form('fedora_repository_purge_object_form', $pid);
@@ -435,7 +435,7 @@ function add_stream_form_validate($form, &$form_state) {
return FALSE;
}
if (!(preg_match("/^[a-zA-Z]/", $dsid))) {
- form_set_error('', t("Data stream ID (@dsid) has to start with a letter.", array( '@dsid' => check_plain($dsid))));
+ form_set_error('', t("Data stream ID (@dsid) has to start with a letter.", array('@dsid' => check_plain($dsid))));
return FALSE;
}
if (strlen($dsLabel) > 64) {
@@ -482,7 +482,7 @@ function fedora_repository_purge_stream($pid = NULL, $dsId = NULL, $name = NULL)
}
$output = t('Are you sure you wish to purge this datastream %name
', array(
- '%name' => $name)
+ '%name' => $name)
);
$output .= drupal_get_form('fedora_repository_purge_stream_form', $pid, $dsId);
return $output;
@@ -995,8 +995,9 @@ function fedora_repository_get_items($pid = NULL, $dsId = NULL, $collection = NU
}
}
}
- $cmodels_tabs = array_merge($cmodels_tabs, $object_details);
+ $hook_tabs = module_invoke_all('islandora_tabs', $content_models, $pid);
+ $cmodels_tabs = array_merge($cmodels_tabs, $object_details, $hook_tabs);
return tabs_render($cmodels_tabs);
}
diff --git a/xsl/convertQDC.xsl b/xsl/convertQDC.xsl
index e7e0d627..c2bb50f0 100644
--- a/xsl/convertQDC.xsl
+++ b/xsl/convertQDC.xsl
@@ -21,7 +21,7 @@
=
- |
+