/** * Save any changes to custom metadata * * @param int $post_id The ID of the post being saved. */ function humcore_deposit_metabox_save($post_id) { /* * We need to verify this came from our screen and with proper authorization, * because the save_post action can be triggered at other times. */ // Check if our nonce is set. if (!isset($_POST['deposit_metabox_noncename'])) { return $post_id; } // Verify that the nonce is valid. if (!wp_verify_nonce($_POST['deposit_metabox_noncename'], 'humcore_deposit_metabox')) { return $post_id; } // If this is an autosave, our form has not been submitted, so we don't want to do anything. if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE) { return $post_id; } // Check the user's permissions. if (isset($_POST['post_type']) && 'page' == $_POST['post_type']) { if (!current_user_can('edit_page', $post_id)) { return $post_id; } } else { if (!current_user_can('edit_post', $post_id)) { return $post_id; } } // Make sure that at least the ID is set. if (!isset($_POST['aggregator_id'])) { return $post_id; } global $fedora_api, $solr_client; $aggregator_metadata = json_decode(get_post_meta($post_id, '_deposit_metadata', true), true); $current_groups = $aggregator_metadata['group']; $current_group_ids = $aggregator_metadata['group_ids']; $current_subjects = $aggregator_metadata['subject']; $current_subject_ids = $aggregator_metadata['subject_ids']; $current_keywords = $aggregator_metadata['keyword']; $current_keyword_ids = $aggregator_metadata['keyword_ids']; // No changes allowed. // $aggregator_metadata['id'] = sanitize_text_field( $_POST['aggregator_id'] ); // $aggregator_metadata['pid'] = sanitize_text_field( $_POST['aggregator_pid'] ); // $aggregator_metadata['creator'] = sanitize_text_field( $_POST['aggregator_creator'] ); // Sanitize user input. $aggregator_metadata['title'] = sanitize_text_field(stripslashes($_POST['aggregator_title_unchanged'])); $aggregator_metadata['title_unchanged'] = wp_kses(stripslashes($_POST['aggregator_title_unchanged']), array('b' => array(), 'em' => array(), 'strong' => array())); $aggregator_metadata['abstract'] = sanitize_text_field(stripslashes($_POST['aggregator_abstract_unchanged'])); $aggregator_metadata['abstract_unchanged'] = wp_kses(stripslashes($_POST['aggregator_abstract_unchanged']), array('b' => array(), 'em' => array(), 'strong' => array())); $aggregator_metadata['genre'] = sanitize_text_field($_POST['aggregator_genre']); $aggregator_metadata['organization'] = sanitize_text_field(stripslashes($_POST['aggregator_organization'])); $aggregator_metadata['institution'] = sanitize_text_field(stripslashes($_POST['aggregator_institution'])); $aggregator_metadata['conference_title'] = sanitize_text_field(stripslashes($_POST['aggregator_conference_title'])); $aggregator_metadata['conference_organization'] = sanitize_text_field(stripslashes($_POST['aggregator_conference_organization'])); // No changes allowed. //$aggregator_metadata['committee_deposit'] = sanitize_text_field( $_POST['aggregator_committee_deposit'] ); //$aggregator_metadata['committee_id'] = sanitize_text_field( $_POST['aggregator_committee_id'] ); //$aggregator_metadata['submitter'] = sanitize_text_field( $_POST['aggregator_submitter'] ); $aggregator_metadata['authors'] = array(); $authors = array(); $authors = array_map(function ($given, $family, $fullname, $uni, $role, $affiliation) { return array('given' => sanitize_text_field(stripslashes($given)), 'family' => sanitize_text_field(stripslashes($family)), 'fullname' => sanitize_text_field(stripslashes($fullname)), 'uni' => sanitize_text_field(stripslashes($uni)), 'role' => sanitize_text_field(stripslashes($role)), 'affiliation' => sanitize_text_field(stripslashes($affiliation))); }, $_POST['aggregator_author_given'], $_POST['aggregator_author_family'], $_POST['aggregator_author_fullname'], $_POST['aggregator_author_uni'], $_POST['aggregator_author_role'], $_POST['aggregator_author_affiliation']); foreach ($authors as $author) { if (!empty($author['given']) || !empty($author['family']) || !empty($author['fullname'])) { $aggregator_metadata['authors'][] = $author; } } $aggregator_metadata['author_info'] = humcore_deposits_format_author_info($aggregator_metadata['authors']); $aggregator_metadata['group'] = array(); $aggregator_metadata['group_ids'] = array(); if (!empty($_POST['aggregator_group'])) { foreach ($_POST['aggregator_group'] as $group_id) { $group = groups_get_group(array('group_id' => sanitize_text_field($group_id))); if (!empty($group)) { $aggregator_metadata['group'][] = $group->name; $aggregator_metadata['group_ids'][] = $group_id; } } } $aggregator_metadata['subject'] = array(); if (!empty($_POST['aggregator_subject'])) { foreach ($_POST['aggregator_subject'] as $subject) { $aggregator_metadata['subject'][] = sanitize_text_field(stripslashes($subject)); } if ($aggregator_metadata['subject'] != $current_subjects) { $term_ids = array(); $aggregator_metadata['subject_ids'] = array(); foreach ($_POST['aggregator_subject'] as $subject) { $term_key = term_exists($subject, 'humcore_deposit_subject'); if (!is_wp_error($term_key)) { $term_ids[] = intval($term_key['term_id']); } else { error_log('*****WP Admin HumCORE Deposit Meta Update Subject Error*****' . var_export($term_key, true)); } } // Support add and remove. $term_taxonomy_ids = wp_set_object_terms($post_id, $term_ids, 'humcore_deposit_subject'); $aggregator_metadata['subject_ids'] = $term_taxonomy_ids; } } $aggregator_metadata['keyword'] = array(); if (!empty($_POST['aggregator_keyword'])) { foreach ($_POST['aggregator_keyword'] as $keyword) { $aggregator_metadata['keyword'][] = sanitize_text_field(stripslashes($keyword)); } if ($aggregator_metadata['keyword'] != $current_keywords) { $term_ids = array(); $aggregator_metadata['keyword_ids'] = array(); foreach ($_POST['aggregator_keyword'] as $keyword) { $term_key = term_exists($keyword, 'humcore_deposit_tag'); if (empty($term_key)) { $term_key = wp_insert_term(strtolower(sanitize_text_field($keyword)), 'humcore_deposit_tag'); } if (!is_wp_error($term_key)) { $term_ids[] = intval($term_key['term_id']); } else { error_log('*****WP Admin HumCORE Deposit Meta Update Keyword Error*****' . var_export($term_key, true)); } } // Support add and remove. $term_taxonomy_ids = wp_set_object_terms($post_id, $term_ids, 'humcore_deposit_tag'); $aggregator_metadata['keyword_ids'] = $term_taxonomy_ids; } } $aggregator_metadata['type_of_resource'] = sanitize_text_field($_POST['aggregator_type_of_resource']); $aggregator_metadata['language'] = sanitize_text_field($_POST['aggregator_language']); $aggregator_metadata['notes'] = sanitize_text_field(stripslashes($_POST['aggregator_notes'])); $aggregator_metadata['notes_unchanged'] = sanitize_text_field(stripslashes($_POST['aggregator_notes_unchanged'])); $aggregator_metadata['notes_unchanged'] = wp_kses(stripslashes($_POST['aggregator_notes_unchanged']), array('b' => array(), 'em' => array(), 'strong' => array())); $aggregator_metadata['type_of_license'] = sanitize_text_field($_POST['aggregator_type_of_license']); // No changes allowed. // $aggregator_metadata['record_content_source'] = sanitize_text_field( $_POST['aggregator_record_content_source'] ); // $aggregator_metadata['record_creation_date'] = sanitize_text_field( $_POST['aggregator_record_creation_date'] ); // $aggregator_metadata['member_of'] = sanitize_text_field( $_POST['aggregator_member_of'] ); $aggregator_metadata['publication-type'] = sanitize_text_field($_POST['aggregator_publication-type']); $aggregator_metadata['publisher'] = sanitize_text_field(stripslashes($_POST['aggregator_publisher'])); $aggregator_metadata['date'] = sanitize_text_field($_POST['aggregator_date']); $aggregator_metadata['date_issued'] = sanitize_text_field($_POST['aggregator_date_issued']); $aggregator_metadata['doi'] = sanitize_text_field($_POST['aggregator_doi']); $aggregator_metadata['book_journal_title'] = sanitize_text_field(stripslashes($_POST['aggregator_book_journal_title'])); $aggregator_metadata['book_author'] = sanitize_text_field(stripslashes($_POST['aggregator_book_author'])); $aggregator_metadata['chapter'] = sanitize_text_field($_POST['aggregator_chapter']); $aggregator_metadata['volume'] = sanitize_text_field($_POST['aggregator_volume']); $aggregator_metadata['issue'] = sanitize_text_field($_POST['aggregator_issue']); $aggregator_metadata['start_page'] = sanitize_text_field($_POST['aggregator_start_page']); $aggregator_metadata['end_page'] = sanitize_text_field($_POST['aggregator_end_page']); $aggregator_metadata['isbn'] = sanitize_text_field($_POST['aggregator_isbn']); $aggregator_metadata['issn'] = sanitize_text_field($_POST['aggregator_issn']); $aggregator_metadata['handle'] = sanitize_text_field($_POST['aggregator_handle']); $aggregator_metadata['deposit_doi'] = sanitize_text_field($_POST['aggregator_deposit_doi']); // No changes allowed. // $aggregator_metadata['record_identifier'] = sanitize_text_field( $_POST['aggregator_record_identifier'] ); $json_aggregator_metadata = json_encode($aggregator_metadata, JSON_HEX_APOS); // Update the meta field in the database. $post_meta_ID = update_post_meta($post_id, '_deposit_metadata', wp_slash($json_aggregator_metadata)); if (defined('CORE_ERROR_LOG') && '' != CORE_ERROR_LOG) { humcore_write_error_log('WP Admin HumCORE Deposit Meta Update', $json_aggregator_metadata); } // Reindex solr doc. $resource_file_metadata = json_decode(get_post_meta($post_id, '_deposit_file_metadata', true), true); if (!empty($resource_file_metadata)) { $resource_pid = $resource_file_metadata['files'][0]['pid']; $resource_datastream_id = $resource_file_metadata['files'][0]['datastream_id']; $resource_filename = $resource_file_metadata['files'][0]['filename']; $resource_filetype = $resource_file_metadata['files'][0]['filetype']; $resource_filesize = $resource_file_metadata['files'][0]['filesize']; $resource_fileloc = $resource_file_metadata['files'][0]['fileloc']; $check_resource_filetype = wp_check_filetype($resource_filename, wp_get_mime_types()); $resource_file_prefix = str_replace($resource_filename, '', $resource_fileloc); $resource_MODS_file = $resource_file_prefix . 'MODS.' . $resource_filename . '.xml'; $thesePids = array($aggregator_metadata['pid'], $resource_pid); $metadata_MODS = create_mods_xml($aggregator_metadata); $file_write_status = file_put_contents($resource_MODS_file, $metadata_MODS); $upload_MODS = $fedora_api->upload(array('file' => $resource_MODS_file)); if (is_wp_error($upload_MODS)) { echo 'Error - uploadMODS : ' . esc_html($upload_MODS->get_error_message()); error_log(sprintf('*****WP Admin HumCORE Deposit Error***** - uploadMODS : %1$s-%2$s', $upload_MODS->get_error_code(), $upload_MODS->get_error_message())); } $mContent = $fedora_api->modify_datastream(array('pid' => $thesePids[0], 'dsID' => 'descMetadata', 'dsLocation' => $upload_MODS, 'dsLabel' => $aggregator_metadata['title'], 'mimeType' => 'text/xml', 'content' => false)); if (is_wp_error($mContent)) { echo esc_html('Error - mContent : ' . $mContent->get_error_message()); error_log(sprintf('*****WP Admin HumCORE Deposit Error***** - mContent : %1$s-%2$s', $mContent->get_error_code(), $mContent->get_error_message())); } $resource_Xml = create_resource_xml($aggregator_metadata, $resource_filetype); $rContent = $fedora_api->modify_datastream(array('pid' => $thesePids[1], 'dsID' => 'DC', 'mimeType' => 'text/xml', 'content' => $resource_Xml)); if (is_wp_error($rContent)) { echo 'Error - rContent : ' . esc_html($rContent->get_error_message()); error_log(sprintf('*****WP Admin HumCORE Deposit Error***** - rContent : %1$s-%2$s', $rContent->get_error_code(), $rContent->get_error_message())); } try { if (preg_match('~^audio/|^image/|^video/~', $check_resource_filetype['type'])) { $sResult = $solr_client->create_humcore_document('', $aggregator_metadata); } else { $sResult = $solr_client->create_humcore_extract($resource_fileloc, $aggregator_metadata); } } catch (Exception $e) { echo '<h3>', __('An error occurred while depositing your file!', 'humcore_domain'), '</h3>'; error_log(sprintf('*****WP Admin HumCORE Deposit Error***** - solr : %1$s-%2$s', $e->getCode(), $e->getMessage())); return $post_id; } // Handle doi metadata changes. if (!empty($aggregator_metadata['deposit_doi'])) { $creators = array(); foreach ($aggregator_metadata['authors'] as $author) { if ('author' === $author['role'] && !empty($author['fullname'])) { $creators[] = $author['fullname']; } } $creator_list = implode(',', $creators); $eStatus = humcore_modify_handle($aggregator_metadata['deposit_doi'], $aggregator_metadata['title'], $creator_list, $aggregator_metadata['genre'], $aggregator_metadata['date_issued'], $aggregator_metadata['publisher']); if (false === $eStatus) { echo '<h3>', __('There was an EZID API error, the DOI was not sucessfully published.', 'humcore_domain'), '</h3><br />'; } } } return $post_id; }
/** * Prepare the metadata sent to Fedora and Solr from $_POST input. * * @param array $nextPids Array of fedora pids. * @return array metadata content */ function prepare_metadata($nextPids) { global $fedora_api; /** * Prepare the metadata to be sent to Fedora and Solr. */ $metadata = array(); $metadata['id'] = $nextPids[0]; $metadata['pid'] = $nextPids[0]; $metadata['creator'] = 'HumCORE'; $metadata['title'] = wp_strip_all_tags(stripslashes($_POST['deposit-title-unchanged'])); $metadata['title_unchanged'] = wp_kses(stripslashes($_POST['deposit-title-unchanged']), array('b' => array(), 'em' => array(), 'strong' => array())); $metadata['abstract'] = wp_strip_all_tags(stripslashes($_POST['deposit-abstract-unchanged'])); $metadata['abstract_unchanged'] = wp_kses(stripslashes($_POST['deposit-abstract-unchanged']), array('b' => array(), 'em' => array(), 'strong' => array())); $metadata['genre'] = sanitize_text_field($_POST['deposit-genre']); $metadata['committee_deposit'] = sanitize_text_field($_POST['deposit-on-behalf-flag']); $metadata['committee_id'] = sanitize_text_field($_POST['deposit-committee']); $metadata['submitter'] = bp_loggedin_user_id(); /** * Get committee or author metadata. */ if ('yes' === $metadata['committee_deposit']) { $committee = groups_get_group(array('group_id' => $metadata['committee_id'])); $metadata['organization'] = 'MLA'; $metadata['authors'][] = array('fullname' => $committee->name, 'given' => '', 'family' => '', 'uni' => $committee->slug, 'role' => 'creator', 'affiliation' => 'MLA'); } else { $user_id = bp_loggedin_user_id(); $user_firstname = get_the_author_meta('first_name', $user_id); $user_lastname = get_the_author_meta('last_name', $user_id); $user_affiliation = bp_get_profile_field_data(array('field' => 2, 'user_id' => $user_id)); $metadata['organization'] = $user_affiliation; $metadata['authors'][] = array('fullname' => bp_get_loggedin_user_fullname(), 'given' => $user_firstname, 'family' => $user_lastname, 'uni' => bp_get_loggedin_user_username(), 'role' => 'author', 'affiliation' => $user_affiliation); } if ((empty($metadata['committee_deposit']) || 'yes' !== $metadata['committee_deposit']) && (!empty($_POST['deposit-other-authors-first-name']) && !empty($_POST['deposit-other-authors-last-name']))) { $other_authors = array_map(function ($first_name, $last_name) { return array('first_name' => sanitize_text_field($first_name), 'last_name' => sanitize_text_field($last_name)); }, $_POST['deposit-other-authors-first-name'], $_POST['deposit-other-authors-last-name']); foreach ($other_authors as $author_array) { if (!empty($author_array['first_name']) && !empty($author_array['last_name'])) { $mla_user = bp_activity_find_mentions($author_array['first_name'] . $author_array['last_name']); if (!empty($mla_user)) { foreach ($mla_user as $mla_userid => $mla_username) { break; } // Only one, right? $author_name = bp_core_get_user_displayname($mla_userid); $author_firstname = get_the_author_meta('first_name', $mla_userid); $author_lastname = get_the_author_meta('last_name', $mla_userid); $author_affiliation = bp_get_profile_field_data(array('field' => 2, 'user_id' => $mla_userid)); $author_uni = $mla_username; } else { $author_firstname = $author_array['first_name']; $author_lastname = $author_array['last_name']; $author_name = trim($author_firstname . ' ' . $author_lastname); $author_uni = ''; $author_affiliation = ''; } $metadata['authors'][] = array('fullname' => $author_name, 'given' => $author_firstname, 'family' => $author_lastname, 'uni' => $author_uni, 'role' => 'author', 'affiliation' => $author_affiliation); } } } usort($metadata['authors'], function ($a, $b) { return strcasecmp($a['family'], $b['family']); }); /** * Format author info for solr. */ $metadata['author_info'] = humcore_deposits_format_author_info($metadata['authors']); if (!empty($metadata['genre']) && in_array($metadata['genre'], array('Dissertation', 'Technical Report', 'Thesis')) && !empty($_POST['deposit-institution'])) { $metadata['institution'] = sanitize_text_field($_POST['deposit-institution']); } else { if (!empty($metadata['genre']) && in_array($metadata['genre'], array('Dissertation', 'Technical Report', 'Thesis')) && empty($_POST['deposit-institution'])) { $metadata['institution'] = $metadata['organization']; } } if (!empty($metadata['genre']) && ('Conference proceeding' == $metadata['genre'] || 'Conference paper' == $metadata['genre']) && !empty($_POST['deposit-conference-title'])) { $metadata['conference_title'] = sanitize_text_field($_POST['deposit-conference-title']); $metadata['conference_organization'] = sanitize_text_field($_POST['deposit-organization']); } $metadata['group'] = array(); if (!empty($_POST['deposit-group'])) { foreach ($_POST['deposit-group'] as $group_id) { $group = groups_get_group(array('group_id' => sanitize_text_field($group_id))); $metadata['group'][] = $group->name; $metadata['group_ids'][] = $group_id; } } $metadata['subject'] = array(); if (!empty($_POST['deposit-subject'])) { foreach ($_POST['deposit-subject'] as $subject) { $metadata['subject'][] = sanitize_text_field(stripslashes($subject)); // Subject ids will be set later. } } $metadata['keyword'] = array(); if (!empty($_POST['deposit-keyword'])) { foreach ($_POST['deposit-keyword'] as $keyword) { $metadata['keyword'][] = sanitize_text_field(stripslashes($keyword)); // Keyword ids will be set later. } } $metadata['type_of_resource'] = sanitize_text_field($_POST['deposit-resource-type']); $metadata['language'] = 'English'; $metadata['notes'] = sanitize_text_field(stripslashes($_POST['deposit-notes-unchanged'])); // Where do they go in MODS? $metadata['notes_unchanged'] = wp_kses(stripslashes($_POST['deposit-notes-unchanged']), array('b' => array(), 'em' => array(), 'strong' => array())); $metadata['type_of_license'] = sanitize_text_field($_POST['deposit-license-type']); $metadata['record_content_source'] = 'HumCORE'; $metadata['record_creation_date'] = gmdate('Y-m-d\\TH:i:s\\Z'); $metadata['member_of'] = $fedora_api->collectionPid; if (!empty($_POST['deposit-publication-type'])) { $metadata['publication-type'] = sanitize_text_field($_POST['deposit-publication-type']); // Not stored in solr. } else { $metadata['publication-type'] = 'none'; } if ('journal-article' == $metadata['publication-type']) { $metadata['publisher'] = sanitize_text_field($_POST['deposit-journal-publisher']); $metadata['date'] = sanitize_text_field($_POST['deposit-journal-publish-date']); if (!empty($metadata['date'])) { $temp_date = preg_replace('~^(winter(?:/|)|spring(?:/|)|summer(?:/|)|fall(?:/|)|autumn(?:/|))+\\s(\\d{4})$~i', 'Jan $2', $metadata['date']); $metadata['date_issued'] = date('Y', strtotime(preg_replace('/^(\\d{4})$/', 'Jan $1', $temp_date))); } else { $metadata['date_issued'] = date('Y', strtotime('today')); } $metadata['book_journal_title'] = sanitize_text_field($_POST['deposit-journal-title']); $metadata['volume'] = sanitize_text_field($_POST['deposit-journal-volume']); $metadata['issue'] = sanitize_text_field($_POST['deposit-journal-issue']); $metadata['start_page'] = sanitize_text_field($_POST['deposit-journal-start-page']); $metadata['end_page'] = sanitize_text_field($_POST['deposit-journal-end-page']); $metadata['issn'] = sanitize_text_field($_POST['deposit-journal-issn']); $metadata['doi'] = sanitize_text_field($_POST['deposit-journal-doi']); } elseif ('book' == $metadata['publication-type']) { $metadata['publisher'] = sanitize_text_field($_POST['deposit-book-publisher']); $metadata['date'] = sanitize_text_field($_POST['deposit-book-publish-date']); if (!empty($metadata['date'])) { $temp_date = preg_replace('~^(winter(?:/|)|spring(?:/|)|summer(?:/|)|fall(?:/|)|autumn(?:/|))+\\s(\\d{4})$~i', 'Jan $2', $metadata['date']); $metadata['date_issued'] = date('Y', strtotime(preg_replace('/^(\\d{4})$/', 'Jan $1', $temp_date))); } else { $metadata['date_issued'] = date('Y', strtotime('today')); } $metadata['book_journal_title'] = sanitize_text_field($_POST['deposit-book-title']); $metadata['book_author'] = sanitize_text_field($_POST['deposit-book-author']); $metadata['chapter'] = sanitize_text_field($_POST['deposit-book-chapter']); $metadata['start_page'] = sanitize_text_field($_POST['deposit-book-start-page']); $metadata['end_page'] = sanitize_text_field($_POST['deposit-book-end-page']); $metadata['isbn'] = sanitize_text_field($_POST['deposit-book-isbn']); $metadata['doi'] = sanitize_text_field($_POST['deposit-book-doi']); } elseif ('conference-proceeding' == $metadata['publication-type']) { $metadata['publisher'] = sanitize_text_field($_POST['deposit-proceeding-publisher']); $metadata['date'] = sanitize_text_field($_POST['deposit-proceeding-publish-date']); if (!empty($metadata['date'])) { $temp_date = preg_replace('~^(winter(?:/|)|spring(?:/|)|summer(?:/|)|fall(?:/|)|autumn(?:/|))+\\s(\\d{4})$~i', 'Jan $2', $metadata['date']); $metadata['date_issued'] = date('Y', strtotime(preg_replace('/^(\\d{4})$/', 'Jan $1', $temp_date))); } else { $metadata['date_issued'] = date('Y', strtotime('today')); } $metadata['book_journal_title'] = sanitize_text_field($_POST['deposit-proceeding-title']); $metadata['start_page'] = sanitize_text_field($_POST['deposit-proceeding-start-page']); $metadata['end_page'] = sanitize_text_field($_POST['deposit-proceeding-end-page']); $metadata['doi'] = sanitize_text_field($_POST['deposit-proceeding-doi']); } elseif ('none' == $metadata['publication-type']) { $metadata['date'] = sanitize_text_field($_POST['deposit-non-published-date']); if (!empty($metadata['date'])) { $temp_date = preg_replace('~^(winter(?:/|)|spring(?:/|)|summer(?:/|)|fall(?:/|)|autumn(?:/|))+\\s(\\d{4})$~i', 'Jan $2', $metadata['date']); $metadata['date_issued'] = date('Y', strtotime(preg_replace('/^(\\d{4})$/', 'Jan $1', $temp_date))); } else { $metadata['date_issued'] = date('Y', strtotime('today')); } } /** * Mint and reserve a DOI. */ $creators = array(); foreach ($metadata['authors'] as $author) { if ('author' === $author['role'] && !empty($author['fullname'])) { $creators[] = $author['fullname']; } } $creator_list = implode(',', $creators); $deposit_doi = humcore_create_handle($metadata['title'], $nextPids[0], $creator_list, $metadata['genre'], $metadata['date_issued'], $metadata['publisher']); if (!$deposit_doi) { $metadata['handle'] = sprintf(bp_get_root_domain() . '/deposits/item/%s/', $nextPids[0]); $metadata['deposit_doi'] = ''; // Not stored in solr. } else { $metadata['handle'] = 'http://dx.doi.org/' . str_replace('doi:', '', $deposit_doi); $metadata['deposit_doi'] = $deposit_doi; // Not stored in solr. } return $metadata; }