From ec02f77f52658ecf7c2d1d262cfbe2ca82dd6e00 Mon Sep 17 00:00:00 2001 From: mitchmac Date: Fri, 22 Mar 2013 16:30:22 -0300 Subject: [PATCH] Site wide UUID toggle --- includes/admin.form.inc | 7 +++++++ includes/ingest.form.inc | 4 ++++ 2 files changed, 11 insertions(+) diff --git a/includes/admin.form.inc b/includes/admin.form.inc index d3bccd5a..9bfbdabd 100644 --- a/includes/admin.form.inc +++ b/includes/admin.form.inc @@ -108,6 +108,13 @@ function islandora_repository_admin(array $form, array &$form_state) { '#required' => TRUE, ); + $form['islandora_tabs']['islandora_general']['islandora_uuid_generate'] = array( + '#type' => 'checkbox', + '#title' => t('UUID PID Generation'), + '#default_value' => variable_get('islandora_uuid_generate', FALSE), + '#description' => t('Generate Fedora object PIDs with UUID v4 ID'), + ); + $form['islandora_tabs']['islandora_namespace'] = array( '#type' => 'fieldset', '#title' => t('Namespaces'), diff --git a/includes/ingest.form.inc b/includes/ingest.form.inc index 9434e9e4..f59742af 100644 --- a/includes/ingest.form.inc +++ b/includes/ingest.form.inc @@ -497,6 +497,10 @@ function islandora_ingest_form_ingest_button(array &$form_state) { function islandora_ingest_form_submit(array $form, array &$form_state) { foreach ($form_state['islandora']['objects'] as $object) { try { + if (variable_get('islandora_uuid_generate', FALSE)) { + $pid_parts = explode(':', $object->id); + $object->id = $object->repository->getNextIdentifier($pid_parts[0], TRUE); + } islandora_add_object($object); $form_state['redirect'] = "islandora/object/{$object->id}"; }