From ae151e6bd0b7727301c50eaa13dcaac7f5914810 Mon Sep 17 00:00:00 2001 From: jonathangreen Date: Thu, 31 May 2012 13:47:11 -0300 Subject: [PATCH] Updated some things. --- admin/islandora.admin.inc | 121 ++-------- admin/islandora.solutionpacks.inc | 210 ------------------ islandora.module | 4 +- .../includes/image_process.inc | 14 +- 4 files changed, 31 insertions(+), 318 deletions(-) delete mode 100644 admin/islandora.solutionpacks.inc diff --git a/admin/islandora.admin.inc b/admin/islandora.admin.inc index 691f7b61..7018efa1 100644 --- a/admin/islandora.admin.inc +++ b/admin/islandora.admin.inc @@ -26,118 +26,35 @@ '#type' => 'textfield', '#title' => t('Fedora base URL'), '#default_value' => variable_get('islandora_base_url', 'http://localhost:8080/fedora'), - '#description' => t('The URL to use for REST-type connections'), + '#description' => t('The URL to use for REST connections'), '#required' => TRUE, '#weight' => -16, ); - - - $form['islandora_repository_url'] = array( - '#type' => 'textfield', - '#title' => t('Fedora RISearch URL'), - '#default_value' => variable_get('islandora_repository_url', 'http://localhost:8080/fedora/risearch'), - '#description' => t('The url of the Fedora server'), '#required' => TRUE, - '#weight' => -14 - ); - - $form['islandora_soap_url'] = array( - '#type' => 'textfield', - '#title' => t('Fedora SOAP Url'), - '#default_value' => variable_get('islandora_soap_url', 'http://localhost:8080/fedora/services/access?wsdl'), - '#description' => t('The URL to use for SOAP connections'), - '#required' => TRUE, - '#weight' => -12, - ); - - $form['islandora_soap_manage_url'] = array( - '#type' => 'textfield', - '#title' => t('Fedora SOAP management URL'), - '#default_value' => variable_get('fedora_soap_manage_url', 'http://localhost:8080/fedora/wsdl?api=API-M'), '#description' => t('The URL to use for SOAP API-M connections'), - '#required' => TRUE, - '#weight' => -10 - ); // will allow admin user to remove namepsace restrictions if not explicitly disallowed in settings.php - if (variable_get('allow_open_namespace', TRUE)) { - $form['islandora_namespace'] = array( - '#type' => 'fieldset', - ); - - $form['islandora_namespace']['islandora_namespace_restriction_enforced'] = array( - '#weight' => -1, - '#type' => 'radios', - '#title' => t('Enforce namespace restrictions'), - '#options' => array( - TRUE => t('Enabled'), - FALSE => t('Disabled') - ), - '#description' => t('Allow administrator to restrict user\'s access to the PID namepaces listed below'), - '#default_value' => variable_get('islandora_namespace_restriction_enforced', TRUE) - ); - - $form['islandora_namespace']['fedora_pids_allowed'] = array( - '#type' => 'textfield', - '#title' => t('PID namespaces allowed in this Drupal install'), - '#default_value' => variable_get('islandora_pids_allowed', 'default: demo: changeme: islandora: ilives: islandora-book: books: newspapers: '), - '#description' => t('A space separated list of PID namespaces that users are permitted to access from this Drupal installation.
This could be more than a simple namespace ie demo:mydemos.'), - '#weight' => 0 - ); - } - else { - $form['islandora_pids_allowed'] = array( - '#type' => 'textfield', - '#title' => t('PID namespaces allowed in this Drupal install'), - '#default_value' => variable_get('islandora_pids_allowed', 'default: demo: changeme: islandora: ilives: islandora-book: books: newspapers: '), - '#description' => t('A space separated list of PID namespaces that users are permitted to access from this Drupal installation.
This could be more than a simple namespace ie demo:mydemos.'), - '#weight' => 0 - ); - } - - //have tabs options (like disable) - $form['tabs'] = array( - '#type' => 'fieldset', - '#title' => t('Tabs Configuration'), - '#description' => t('Configure the tabs avaialble when viewing Fedora objects.'), - '#collapsible' => TRUE, - '#collapsed' => TRUE, - ); - //when checked show object details tab - $form['tabs']['islandora_repository_show_object_details_tab'] = array( - '#type' => 'checkbox', - '#title' => t('Show Object Details Tab'), - '#default_value' => variable_get('islandora_repository_show_object_details_tab', TRUE), - '#description' => t("When enabled, the 'Object Details' tab will be visible to users with the correct permissions when viewing an object in the repository"), - ); - - $form['advanced'] = array( + $form['islandora_namespace'] = array( '#type' => 'fieldset', - '#title' => t('Advanced configuration options'), - '#description' => t('Advanced configuration. Under normal circumstances these will not be touched'), - '#collapsible' => TRUE, - '#collapsed' => TRUE, ); - - - $form['advanced']['islandora_object_restrict_datastreams'] = array( - '#type' => 'checkbox', - '#title' => t('Restrict Access to Fedora Object Datastreams'), - '#default_value' => variable_get('islandora_object_restrict_datastreams', FALSE), - '#description' => t('When enabled, restricts access to fedora object datastreams that are not listed in the Islandora Content Model for the object (unless the user is an administrator).'), + $form['islandora_namespace']['islandora_namespace_restriction_enforced'] = array( + '#weight' => -1, + '#type' => 'radios', + '#title' => t('Enforce namespace restrictions'), + '#options' => array( + TRUE => t('Enabled'), + FALSE => t('Disabled') + ), + '#description' => t('Allow administrator to restrict user\'s access to the PID namepaces listed below'), + '#default_value' => variable_get('islandora_namespace_restriction_enforced', FALSE), ); - - - //Export functionality - //$form['advanced']['module']['islandora_export_area'] = array( - // '#type' => 'textfield', - // '#title' => t('Export area'), - // '#default_value' => variable_get('islandora_export_area', file_directory_path() . '/fedora_export_area'), - // '#description' => t("Path to the export area. It must be accessible by druapl (i.e. apache user)."), - // '#required' => TRUE, - //); - - $form['#attributes'] = array('enctype' => "multipart/form-data"); + $form['islandora_namespace']['islandora_pids_allowed'] = array( + '#type' => 'textfield', + '#title' => t('PID namespaces allowed in this Drupal install'), + '#default_value' => variable_get('islandora_pids_allowed', 'default: demo: changeme: ilives: islandora-book: books: newspapers: '), + '#description' => t('A space separated list of PID namespaces that users are permitted to access from this Drupal installation.
This could be more than a simple namespace ie demo:mydemos.
islandora: is reserved and is always allowed.'), + '#weight' => 0, + ); return system_settings_form($form); diff --git a/admin/islandora.solutionpacks.inc b/admin/islandora.solutionpacks.inc deleted file mode 100644 index b6c40412..00000000 --- a/admin/islandora.solutionpacks.inc +++ /dev/null @@ -1,210 +0,0 @@ - $solution_pack_info) { - $objects = array(); - foreach ($solution_pack_info as $field => $value) { - switch ($field) { - case 'title': - $solution_pack_name = $value; - break; - case 'objects': - $objects = $value; - break; - } - } - $output .= drupal_get_form('fedora_repository_solution_pack_form_' . $solution_pack_module, $solution_pack_module, $solution_pack_name, $objects); - } - - return $output; -} - -/** - * Check for installed objects and add a 'Update' or 'Install' button if some objects are missing. - * @param array $solution_pack - */ -function fedora_repository_solution_pack_form(&$form_state, $solution_pack_module, $solution_pack_name, $objects = array()) { - - // Check each object to see if it is in the repository. - module_load_include('inc', 'fedora_repository', 'api/fedora_item'); - global $base_path; - $needs_update = FALSE; - $needs_install = FALSE; - $form = array(); - - $form['solution_pack_module'] = array( - '#type' => 'hidden', - '#value' => $solution_pack_module, - ); - - if (!$form_state['submitted']) { - $form['solution_pack_name'] = array( - '#type' => 'markup', - '#value' => t($solution_pack_name), - '#prefix' => '

', - '#suffix' => '

', - ); - $form['objects'] = array( - '#type' => 'fieldset', - '#title' => "Objects", - '#weight' => 10, - '#attributes' => array('class' => 'collapsed'), - '#collapsible' => TRUE, - '#collapsed' => TRUE, - ); - $table_header = array('PID', 'Status'); - $table_rows = array(); - - foreach ($objects as $object) { - $datastreams = NULL; - if (isset($object['pid'])) { - $pid = $object['pid']; - - $item = new Fedora_Item($pid); - $table_row = array($object['pid']); - $object_status = t('Up-to-date'); - if (!$item->exists()) { - $object_status = 'Missing'; - $needs_install = TRUE; - } - else { - if (isset($object['dsid']) && isset($object['datastream_file']) && isset($object['dsversion'])) { - $datastreams = array( - array( - 'dsid' => $object['dsid'], - 'datastream_file' => $object['datastream_file'], - 'dsversion' => $object['dsversion'], - ), - ); - } - elseif (!empty($object['datastreams'])) { - $datastreams = $object['datastreams']; - } - if (!empty($datastreams) && is_array($datastreams)) { - foreach ($datastreams as $ds) { - $ds_list = $item->get_datastreams_list_as_array(); - if (!array_key_exists($ds['dsid'], $ds_list)) { - $needs_update = TRUE; - $object_status = 'Missing datastream'; - break; - } - elseif (isset($ds['dsversion'])) { - // Check if the datastream is versioned and needs updating. - $installed_version = fedora_repository_get_islandora_datastream_version($item, $ds['dsid']); - $available_version = fedora_repository_get_islandora_datastream_version(NULL, NULL, $ds['datastream_file']); - - if ($available_version > $installed_version) { - $needs_update = TRUE; - $object_status = 'Out of date'; - break; - } - } - } - } - } - array_push($table_row, $object_status); - $table_rows[] = $table_row; - } - } - $form['objects']['table'] = array( - '#type' => 'markup', - '#value' => theme_table($table_header, $table_rows), - ); - } - - $form['install_status'] = array( - '#type' => 'markup', - '#prefix' => '' . t('Object status:') . ' ', - '#suffix' => ' ', - ); - if (!$needs_install && !$needs_update) { - $form['install_status']['#value'] = theme_image('misc/watchdog-ok.png') . t('All required objects are installed and up-to-date.'); - $submit_button_text = t("Force Reinstallation of Fedora Objects"); - - } - else { - $form['install_status']['#value'] = theme_image('misc/watchdog-warning.png') . t('Some objects must be re-ingested. See Objects list for details.'); - $submit_button_text = t("Install Fedora Objects"); - - } - $form['submit'] = array( - '#value' => $submit_button_text, - '#type' => 'submit', - '#name' => $solution_pack_module, - ); - - $form['#submit'] = array( - 'fedora_repository_solution_pack_form_submit', - ); - return $form; -} - -function fedora_repository_solution_pack_form_submit($form, &$form_state) { - $what = $form_state; - $module_name = $form_state['values']['solution_pack_module']; - - // This should be replaced with module_invoke - //$solution_pack_info = call_user_func($module_name . '_required_fedora_objects'); - $solution_pack_info = module_invoke($module_name, 'required_fedora_objects'); - - $batch = array( - 'title' => t('Installing / updating solution pack objects'), - 'file' => drupal_get_path('module', 'fedora_repository') . '/fedora_repository.module', - 'operations' => array(), - ); - - - foreach ($solution_pack_info[$module_name]['objects'] as $object) { - // Add this object to the batch job queue. - $batch['operations'][] = array('fedora_repository_batch_reingest_object', array($object)); - } - batch_set($batch); -} - -function solution_pack_add_form($form_name, $form_xml) { - $result = db_result(db_query('Select name from {xml_forms} where name = "%s"', $form_name)); - if (!$result) { - $object = new stdClass(); - $object->name = $form_name; - $object->form = $form_xml; - $result = drupal_write_record('xml_forms', $object); - drupal_set_message(t("Added @name", array("@name" => $form_name))); - } -} - -function solution_pack_add_form_association($content_model, $form_name) { - $result = db_result(db_query('Select content_model from {islandora_content_model_forms} where content_model = "%s" and form_name = "%s"', - $content_model, $form_name)); - if (!$result) { - $object = new stdClass(); - $object->content_model = $content_model; - $object->form_name = $form_name; - $object->dsid = 'MODS'; - $object->title_field = "['titleInfo']['title']"; - $object->transform = 'mods_to_dc.xsl'; - $result = drupal_write_record('islandora_content_model_forms', $object); - drupal_set_message(t("Added association between @cm and @name", array("@cm" => $content_model, "@name"=>$form_name))); - } -} diff --git a/islandora.module b/islandora.module index 50cb36ba..ac1aaa14 100644 --- a/islandora.module +++ b/islandora.module @@ -322,7 +322,7 @@ function islandora_purge_object($form, &$form_state, $pid) { $parent = islandora_datastream_get_parents($object); $key = array_keys($parent); - if(count($key) > 0) { + if (count($key) > 0) { $redirect = "islandora/object/$key[0]"; } else { @@ -516,7 +516,7 @@ function islandora_view_object($object_id = NULL) { drupal_set_message(t('there was an error loading the view for islandora object %s', array('%s' => $object_id)), 'error'); return ""; } - drupal_alter('islandora_display',$arr); + drupal_alter('islandora_display', $arr); $output = ""; foreach ($arr as $key => $value) { $output .= $value; //if we have multiple modules handle one cmodel we need to iterate over multiple diff --git a/islandora_basic_image/includes/image_process.inc b/islandora_basic_image/includes/image_process.inc index bcf729df..3435f26c 100644 --- a/islandora_basic_image/includes/image_process.inc +++ b/islandora_basic_image/includes/image_process.inc @@ -1,11 +1,17 @@ $object->id)),'error'); + if (!isset($object['OBJ'])) { + drupal_set_message(t('Could not create image derivatives for %s. No image file was uploaded.', array('%s' => $object->id)),'error'); return ""; } $ext = $mime_class->getExtension($object['OBJ']->mimeType); @@ -32,7 +38,7 @@ function islandora_basic_image_create_derivative($file, $width, $height) { $image = image_load($real_path); if (!empty($image)) { $scale = image_scale($image, $width, $height, TRUE); - if($scale){ + if ($scale) { return image_save($image); } }