Browse Source

Edit form correctly shows up in the right spot.

pull/3/merge
Nigel Banks 14 years ago
parent
commit
f6541b26c7
  1. 234
      fedora_repository.module
  2. 187
      formClass.inc
  3. 2
      plugins/fedoraObject.inc

234
fedora_repository.module

@ -118,7 +118,7 @@ function fedora_repository_ingest_object($collection_pid=NULL, $collection_label
} }
function fedora_repository_ingest_form_submit($form, &$form_state) { function fedora_repository_ingest_form_submit($form, &$form_state) {
//only validate the form if the submit button was pressed (other buttons may be used for AHAH //only validate the form if the submit button was pressed (other buttons may be used for AHAH
if (module_exists('xml_form_api')) { if (module_exists('xml_form_api')) {
module_load_include('inc', 'xml_form_api', 'XMLForm'); module_load_include('inc', 'xml_form_api', 'XMLForm');
$form = new XMLForm($form_state); $form = new XMLForm($form_state);
@ -170,7 +170,7 @@ function fedora_repository_ingest_form_submit($form, &$form_state) {
} }
function fedora_repository_ingest_form_validate($form, &$form_state) { function fedora_repository_ingest_form_validate($form, &$form_state) {
//only validate the form if the submit button was pressed (other buttons may be used for AHAH //only validate the form if the submit button was pressed (other buttons may be used for AHAH
if ($form_state['clicked_button']['#id'] == 'edit-submit') { if ($form_state['clicked_button']['#id'] == 'edit-submit') {
switch ($form_state['storage']['step']) { switch ($form_state['storage']['step']) {
case 1: case 1:
@ -179,13 +179,13 @@ function fedora_repository_ingest_form_validate($form, &$form_state) {
break; break;
case 2: case 2:
// XML based form. // XML based form.
if (module_exists('xml_form_api')) { if (module_exists('xml_form_api')) {
module_load_include('inc', 'xml_form_api', 'XMLForm'); module_load_include('inc', 'xml_form_api', 'XMLForm');
$xml_form = new XMLForm($form_state); $xml_form = new XMLForm($form_state);
$xml_form->validate($form, $form_state); $xml_form->validate($form, $form_state);
} }
// Get the uploaded file. // Get the uploaded file.
$validators = array(); $validators = array();
if (!empty($_FILES['files']['name']['ingest-file-location'])) { if (!empty($_FILES['files']['name']['ingest-file-location'])) {
@ -234,7 +234,7 @@ function fedora_repository_ingest_form_validate($form, &$form_state) {
function fedora_repository_ingest_form(&$form_state, $collection_pid, $collection_label = NULL, $content_model = NULL) { function fedora_repository_ingest_form(&$form_state, $collection_pid, $collection_label = NULL, $content_model = NULL) {
module_load_include('inc', 'fedora_repository', 'formClass'); module_load_include('inc', 'fedora_repository', 'formClass');
// For the sake of easily maintaining the module in different core versions create our own form_values variable. // For the sake of easily maintaining the module in different core versions create our own form_values variable.
if (empty($form_state['storage']['step'])) { if (empty($form_state['storage']['step'])) {
$form_state['storage']['step'] = 1; $form_state['storage']['step'] = 1;
} }
@ -263,7 +263,7 @@ function fedora_repository_purge_object_form(&$form_state, $pid, $referrer = NUL
); );
} }
if (!isset($form_state['storage']['confirm'])) { if (!isset($form_state['storage']['confirm'])) {
// do your normal $form definition here // do your normal $form definition here
$form['submit'] = array( $form['submit'] = array(
@ -275,12 +275,12 @@ function fedora_repository_purge_object_form(&$form_state, $pid, $referrer = NUL
if (!empty($collectionPid)) { if (!empty($collectionPid)) {
$collectionPid = $_SESSION['fedora_collection']; $collectionPid = $_SESSION['fedora_collection'];
} }
//$form['#redirect'] = $referrer; //$form['#redirect'] = $referrer;
return $form; return $form;
} }
else { else {
// ALSO do $form definition here. Your final submit handler (after user clicks Yes, I Confirm) will only see $form_state info defined here. Form you create here passed as param1 to confirm_form // ALSO do $form definition here. Your final submit handler (after user clicks Yes, I Confirm) will only see $form_state info defined here. Form you create here passed as param1 to confirm_form
return confirm_form($form, 'Confirm Purge Object', $referrer, 'Are you sure you want to delete this object? This action cannot be undone.', 'Delete', 'Cancel'); //Had better luck leaving off last param 'name' return confirm_form($form, 'Confirm Purge Object', $referrer, 'Are you sure you want to delete this object? This action cannot be undone.', 'Delete', 'Cancel'); //Had better luck leaving off last param 'name'
} }
@ -380,17 +380,17 @@ function add_stream_form_validate($form, &$form_state) {
return FALSE; return FALSE;
} }
$validators = array( $validators = array(
// 'file_validate_is_image' => array(), // 'file_validate_is_image' => array(),
// 'file_validate_image_resolution' => array('85x85'), // 'file_validate_image_resolution' => array('85x85'),
// 'file_validate_size' => array(30 * 1024), // 'file_validate_size' => array(30 * 1024),
); );
$fileObject = file_save_upload('add-stream-file-location', $validators); $fileObject = file_save_upload('add-stream-file-location', $validators);
// Move the uploaded file to Drupal's files directory. // Move the uploaded file to Drupal's files directory.
file_move($fileObject->filepath, 0, 'FILE_EXISTS_RENAME'); file_move($fileObject->filepath, 0, 'FILE_EXISTS_RENAME');
$form_state['values']['add-stream-file-location'] = $fileObject->filepath; $form_state['values']['add-stream-file-location'] = $fileObject->filepath;
// TODO: Add error checking here. // TODO: Add error checking here.
$form_state['rebuild'] = FALSE; $form_state['rebuild'] = FALSE;
} }
@ -421,7 +421,7 @@ function fedora_repository_purge_object_form_submit($form, &$form_state) {
$form_state['rebuild'] = TRUE; // along with this $form_state['rebuild'] = TRUE; // along with this
} }
else { else {
// this is where you do your processing after they have pressed the confirm button // this is where you do your processing after they have pressed the confirm button
$params = array( $params = array(
"pid" => $pid, "pid" => $pid,
"logMessage" => "Purged", "logMessage" => "Purged",
@ -475,7 +475,7 @@ function fedora_repository_purge_stream_form(&$form_state, $pid, $dsId) {
function fedora_repository_purge_stream_form_submit($form, &$form_state) { function fedora_repository_purge_stream_form_submit($form, &$form_state) {
global $base_url; global $base_url;
module_load_include('inc', 'fedora_repository', 'api/fedora_item'); module_load_include('inc', 'fedora_repository', 'api/fedora_item');
//$client = getSoapClient(variable_get('fedora_soap_manage_url', 'http://localhost:8080/fedora/services/management?wsdl')); //$client = getSoapClient(variable_get('fedora_soap_manage_url', 'http://localhost:8080/fedora/services/management?wsdl'));
$pid = $form_state['values']['pid']; $pid = $form_state['values']['pid'];
$item = new Fedora_Item($pid); $item = new Fedora_Item($pid);
$dsid = $form_state['values']['dsid']; $dsid = $form_state['values']['dsid'];
@ -498,21 +498,21 @@ function fedora_repository_replace_stream($pid, $dsId, $dsLabel, $collectionName
} }
function fedora_repository_replace_stream_form(&$form_state, $pid, $dsId, $dsLabel) { function fedora_repository_replace_stream_form(&$form_state, $pid, $dsId, $dsLabel) {
//module_load_module_load_include('hp', ''Fedora_Repository'', 'config', 'fedora_repository', ''); //module_load_module_load_include('hp', ''Fedora_Repository'', 'config', 'fedora_repository', '');
module_load_include('inc', 'Fedora_Repository', 'formClass'); module_load_include('inc', 'Fedora_Repository', 'formClass');
//$client = getSoapClient(variable_get('fedora_soap_manage_url', 'http://localhost:8080/fedora/services/management?wsdl')); //$client = getSoapClient(variable_get('fedora_soap_manage_url', 'http://localhost:8080/fedora/services/management?wsdl'));
$replaceDataStreamForm = new formClass(); $replaceDataStreamForm = new formClass();
return $replaceDataStreamForm->createReplaceDataStreamForm($pid, $dsId, $dsLabel, $form_state); return $replaceDataStreamForm->createReplaceDataStreamForm($pid, $dsId, $dsLabel, $form_state);
} }
function fedora_repository_replace_stream_form_validate($form, &$form_state) { function fedora_repository_replace_stream_form_validate($form, &$form_state) {
// If a file was uploaded, process it. // If a file was uploaded, process it.
if (isset($_FILES['files']) && is_uploaded_file($_FILES['files']['tmp_name']['file'])) { if (isset($_FILES['files']) && is_uploaded_file($_FILES['files']['tmp_name']['file'])) {
// attempt to save the uploaded file // attempt to save the uploaded file
$file = file_save_upload('file', array(), file_directory_path()); $file = file_save_upload('file', array(), file_directory_path());
// set error is file was not uploaded // set error is file was not uploaded
if (!$file) { if (!$file) {
form_set_error('file', 'Error uploading file.'); form_set_error('file', 'Error uploading file.');
return; return;
@ -526,7 +526,7 @@ function fedora_repository_replace_stream_form_validate($form, &$form_state) {
return; return;
} }
// set files to form_state, to process when form is submitted // set files to form_state, to process when form is submitted
$form_state['values']['file'] = $file; $form_state['values']['file'] = $file;
} }
} }
@ -537,7 +537,7 @@ function fedora_repository_replace_stream_form_submit($form, &$form_state) {
$pid = $form_state['values']['pid']; $pid = $form_state['values']['pid'];
$dsid = $form_state['values']['dsId']; $dsid = $form_state['values']['dsId'];
$dsLabel = $form_state['values']['dsLabel']; $dsLabel = $form_state['values']['dsLabel'];
// Remove the original file extension from the label and add the new one // Remove the original file extension from the label and add the new one
$indexOfDot = strrpos($dsLabel, '.'); //use strrpos to get the last dot $indexOfDot = strrpos($dsLabel, '.'); //use strrpos to get the last dot
if ($indexOfDot !== FALSE) { if ($indexOfDot !== FALSE) {
$dsLabel = substr($dsLabel, 0, $indexOfDot); $dsLabel = substr($dsLabel, 0, $indexOfDot);
@ -595,7 +595,7 @@ function fedora_repository_edit_qdc_form(&$form_state, $pid, $dsId = NULL) {
module_load_include('inc', 'fedora_repository', 'ConnectionHelper'); module_load_include('inc', 'fedora_repository', 'ConnectionHelper');
$soapHelper = new ConnectionHelper(); $soapHelper = new ConnectionHelper();
$client = $soapHelper->getSoapClient(variable_get('fedora_soap_url', 'http://localhost:8080/fedora/services/access?wsdl')); $client = $soapHelper->getSoapClient(variable_get('fedora_soap_url', 'http://localhost:8080/fedora/services/access?wsdl'));
// Check if there is a custom edit metadata function defined in the content model. // Check if there is a custom edit metadata function defined in the content model.
$breadcrumbs = array(); $breadcrumbs = array();
$objectHelper = new ObjectHelper(); $objectHelper = new ObjectHelper();
@ -609,16 +609,19 @@ function fedora_repository_edit_qdc_form(&$form_state, $pid, $dsId = NULL) {
} }
if (empty($output)) { if (empty($output)) {
// There is no custom function, so just load the standard QDC form. // There is no custom function, so just load the standard QDC form.
$metaDataForm = new formClass(); $metaDataForm = new formClass();
//currently we only edit the dc metadata. If you defined a custom form with a custom handler you are sol for now. //currently we only edit the dc metadata. If you defined a custom form with a custom handler you are sol for now.
return $metaDataForm->createMetaDataForm($pid, $dsId, $client); return $metaDataForm->createMetaDataForm($pid, $dsId, $client, $form_state);
} }
return $output; return $output;
} }
function fedora_repository_edit_qdc_form_validate($form, &$form_state) { function fedora_repository_edit_qdc_form_validate($form, &$form_state) {
if (isset($form_state['storage']['step']) && $form_state['storage']['step'] == 1) {
$form_state['storage']['step']++;
$form_state['rebuild'] = TRUE;
}
} }
/** /**
@ -631,28 +634,33 @@ function fedora_repository_edit_qdc_form_validate($form, &$form_state) {
* @return * @return
*/ */
function fedora_repository_edit_qdc_form_submit($form, &$form_state) { function fedora_repository_edit_qdc_form_submit($form, &$form_state) {
module_load_include('inc', 'fedora_repository', 'ConnectionHelper'); if (true) {
global $base_url;
if (strstr($form_state['clicked_button']['#id'], 'edit-submit')) { }
else {
//$client = getSoapClient(variable_get('fedora_soap_manage_url', 'http://localhost:8080/fedora/services/management?wsdl')); module_load_include('inc', 'fedora_repository', 'ConnectionHelper');
$soap_helper = new ConnectionHelper(); global $base_url;
$client = $soap_helper->getSoapClient(variable_get('fedora_soap_manage_url', 'http://localhost:8080/fedora/services/management?wsdl')); if (strstr($form_state['clicked_button']['#id'], 'edit-submit')) {
// Check the content model for a custom edit metadata form submit function. //$client = getSoapClient(variable_get('fedora_soap_manage_url', 'http://localhost:8080/fedora/services/management?wsdl'));
if (isset($form_state['values']['pid'])) { $soap_helper = new ConnectionHelper();
module_load_include('inc', 'fedora_repository', 'ContentModel'); $client = $soap_helper->getSoapClient(variable_get('fedora_soap_manage_url', 'http://localhost:8080/fedora/services/management?wsdl'));
if (($cm = ContentModel::loadFromObject($form_state['values']['pid'])) !== FALSE) {
return $cm->handleEditMetadataForm($form_state['values']['form_id'], $form_state, $client); // Check the content model for a custom edit metadata form submit function.
if (isset($form_state['values']['pid'])) {
module_load_include('inc', 'fedora_repository', 'ContentModel');
if (($cm = ContentModel::loadFromObject($form_state['values']['pid'])) !== FALSE) {
return $cm->handleEditMetadataForm($form_state['values']['form_id'], $form_state, $client);
}
} }
}
module_load_include('inc', 'fedora_repository', 'formClass'); module_load_include('inc', 'fedora_repository', 'formClass');
$metaDataForm = new formClass(); $metaDataForm = new formClass();
$return_value = $metaDataForm->updateMetaData($form_state['values']['form_id'], $form_state['values'], $client); $return_value = $metaDataForm->updateMetaData($form_state['values']['form_id'], $form_state['values'], $client);
$form_state['redirect'] = $base_url . '/fedora/repository/' . $form_state['values']['pid']; $form_state['redirect'] = $base_url . '/fedora/repository/' . $form_state['values']['pid'];
return $return_value; return $return_value;
}
} }
} }
@ -748,7 +756,7 @@ function fedora_repository_get_items($pid = NULL, $dsId = NULL, $collection = NU
return ' '; return ' ';
} }
if (!fedora_repository_access(OBJECTHELPER::$OBJECT_HELPER_VIEW_FEDORA, $pid, $user)) { if (!fedora_repository_access(OBJECTHELPER::$OBJECT_HELPER_VIEW_FEDORA, $pid, $user)) {
//drupal_set_message(t("You do not have access to Fedora objects within the attempted namespace or access to Fedora denied"), 'error'); //drupal_set_message(t("You do not have access to Fedora objects within the attempted namespace or access to Fedora denied"), 'error');
if (user_access('access administration pages')) { if (user_access('access administration pages')) {
drupal_set_message(t("PIDs may be added to allowed namespaces, or all namespace restrictions removed !here", array('!here' => l('here', 'admin/settings/fedora_repository'))), 'warning'); drupal_set_message(t("PIDs may be added to allowed namespaces, or all namespace restrictions removed !here", array('!here' => l('here', 'admin/settings/fedora_repository'))), 'warning');
@ -769,7 +777,7 @@ function fedora_repository_get_items($pid = NULL, $dsId = NULL, $collection = NU
return ' '; return ' ';
} }
if ($dsId != NULL && $dsId != '-') { //if we have a dsID return the stream otherwise query for a collection of objects if ($dsId != NULL && $dsId != '-') { //if we have a dsID return the stream otherwise query for a collection of objects
//probably should check pid as well here. //probably should check pid as well here.
return makeObject($pid, $dsId); return makeObject($pid, $dsId);
} }
@ -777,12 +785,12 @@ function fedora_repository_get_items($pid = NULL, $dsId = NULL, $collection = NU
module_load_include('inc', 'fedora_repository', 'CollectionClass'); module_load_include('inc', 'fedora_repository', 'CollectionClass');
$collectionClass = new CollectionClass(); $collectionClass = new CollectionClass();
//if(!isset($pageNumber)){ //if(!isset($pageNumber)){
// $pageNumber=0; // $pageNumber=0;
//} //}
//if(!isset($limit)){ //if(!isset($limit)){
// $limit=20; // $limit=20;
//} //}
module_load_include('inc', 'fedora_repository', 'ContentModel'); module_load_include('inc', 'fedora_repository', 'ContentModel');
module_load_include('inc', 'fedora_repository', 'plugins/fedoraObject'); module_load_include('inc', 'fedora_repository', 'plugins/fedoraObject');
@ -791,15 +799,15 @@ function fedora_repository_get_items($pid = NULL, $dsId = NULL, $collection = NU
drupal_set_breadcrumb(array_reverse($breadcrumbs)); drupal_set_breadcrumb(array_reverse($breadcrumbs));
$offset = $limit * $page_number; $offset = $limit * $page_number;
//$results = $collectionClass->getRelatedObjects($pid, $limit, $offset, NULL); //updated so we can do paging in query not in xslt //$results = $collectionClass->getRelatedObjects($pid, $limit, $offset, NULL); //updated so we can do paging in query not in xslt
//$results = $collectionClass->getRelatedItems($pid, NULL); //$results = $collectionClass->getRelatedItems($pid, NULL);
$content_models = $objectHelper->get_content_models_list($pid); $content_models = $objectHelper->get_content_models_list($pid);
// Each content model may return either a tabset array or plain HTML. If it's HTML, stick it in a tab. // Each content model may return either a tabset array or plain HTML. If it's HTML, stick it in a tab.
$cmodels_tabs = array( $cmodels_tabs = array(
'#type' => 'tabset', '#type' => 'tabset',
); );
foreach ($content_models as $content_model) { foreach ($content_models as $content_model) {
//$content_model_fieldsets = $objectHelper->createExtraFieldsets($pid, $content_model, $pageNumber); //$content_model_fieldsets = $objectHelper->createExtraFieldsets($pid, $content_model, $pageNumber);
$content_model_fieldset = $content_model->displayExtraFieldset($pid, $page_number); $content_model_fieldset = $content_model->displayExtraFieldset($pid, $page_number);
if (is_array($content_model_fieldset)) { if (is_array($content_model_fieldset)) {
$cmodels_tabs = array_merge($cmodels_tabs, $content_model_fieldset); $cmodels_tabs = array_merge($cmodels_tabs, $content_model_fieldset);
@ -812,17 +820,17 @@ function fedora_repository_get_items($pid = NULL, $dsId = NULL, $collection = NU
); );
} }
} }
// Add a 'manage object' tab for all objects, where detailed list of content is shown. // Add a 'manage object' tab for all objects, where detailed list of content is shown.
$obj = new FedoraObject($pid); $obj = new FedoraObject($pid);
$object_details = $obj->showFieldSets(); $object_details = $obj->showFieldSets();
$cmodels_tabs = array_merge($cmodels_tabs, $object_details); $cmodels_tabs = array_merge($cmodels_tabs, $object_details);
//$content .= $objectHelper //$content .= $objectHelper
//$content .= $objectHelper->parseContent($results, $pid, $dsId, $collection, $pageNumber); //$content .= $objectHelper->parseContent($results, $pid, $dsId, $collection, $pageNumber);
//the below is for islandlives we should be able to do this in the xslt though //the below is for islandlives we should be able to do this in the xslt though
//$css=$path.'/stylesheets/container-large.css'; //$css=$path.'/stylesheets/container-large.css';
//drupal_add_css($css); //drupal_add_css($css);
return tabs_render($cmodels_tabs); return tabs_render($cmodels_tabs);
} }
@ -849,8 +857,8 @@ function fedora_object_as_attachment($pid, $dsId, $label=NULL, $version=NULL) {
} }
function repository_page($pid = NULL, $dsId = NULL, $collection = NULL, $pageNumber = NULL) { function repository_page($pid = NULL, $dsId = NULL, $collection = NULL, $pageNumber = NULL) {
//do security check at fedora_repository_get_items function as it has to be called there in case //do security check at fedora_repository_get_items function as it has to be called there in case
//someone trys to come in a back door. //someone trys to come in a back door.
return fedora_repository_get_items($pid, $dsId, $collection, $pageNumber); return fedora_repository_get_items($pid, $dsId, $collection, $pageNumber);
} }
@ -860,7 +868,7 @@ function repository_service($pid = NULL, $servicePid = NULL, $serviceMethod = NU
global $user; global $user;
if (!fedora_repository_access(OBJECTHELPER::$OBJECT_HELPER_VIEW_FEDORA, $pid, $user)) { if (!fedora_repository_access(OBJECTHELPER::$OBJECT_HELPER_VIEW_FEDORA, $pid, $user)) {
//drupal_set_message(t("You do not have access to Fedora objects within the attempted namespace or access to Fedora denied"), 'error'); //drupal_set_message(t("You do not have access to Fedora objects within the attempted namespace or access to Fedora denied"), 'error');
drupal_access_denied(); drupal_access_denied();
if (user_access('access administration pages')) { if (user_access('access administration pages')) {
drupal_set_message(t("PIDs may be added to allowed namespaces, or all namespace restrictions removed !here", array('!here' => l('here', 'admin/settings/fedora_repository'))), 'error'); drupal_set_message(t("PIDs may be added to allowed namespaces, or all namespace restrictions removed !here", array('!here' => l('here', 'admin/settings/fedora_repository'))), 'error');
@ -908,7 +916,7 @@ function fedora_repository_search($op = 'search', $keys = NULL) {
} }
case 'search': case 'search':
if (user_access('view fedora collection')) { if (user_access('view fedora collection')) {
//demo search string ?operation=gfindObjects&indexName=DemoOnLucene&query=fgs.DS.first.text%3Achristmas&hitPageStart=11&hitPageSize=10 //demo search string ?operation=gfindObjects&indexName=DemoOnLucene&query=fgs.DS.first.text%3Achristmas&hitPageStart=11&hitPageSize=10
$resultData = NULL; $resultData = NULL;
$numberOfHitsPerPage = NULL; $numberOfHitsPerPage = NULL;
$index = strpos($keys, '.'); $index = strpos($keys, '.');
@ -937,7 +945,7 @@ function fedora_repository_search($op = 'search', $keys = NULL) {
$xmlDoc->load($path . '/searchTerms.xml'); $xmlDoc->load($path . '/searchTerms.xml');
$nodeList = $xmlDoc->getElementsByTagName('default'); $nodeList = $xmlDoc->getElementsByTagName('default');
if (!$type) { if (!$type) {
//$type = 'dc.description'; //$type = 'dc.description';
$type = $nodeList->item(0)->nodeValue; $type = $nodeList->item(0)->nodeValue;
} }
$nodeList = $xmlDoc->getElementsByTagName('number_of_results'); $nodeList = $xmlDoc->getElementsByTagName('number_of_results');
@ -952,12 +960,12 @@ function fedora_repository_search($op = 'search', $keys = NULL) {
else { else {
$searchQuery = $keys; $searchQuery = $keys;
} }
//$searchQuery.=" AND (PID:vre OR PID:vre:ref OR PID:demo OR PID:changeme)"; //$searchQuery.=" AND (PID:vre OR PID:vre:ref OR PID:demo OR PID:changeme)";
$searchUrl = variable_get('fedora_fgsearch_url', 'http://localhost:8080/fedoragsearch/rest'); $searchUrl = variable_get('fedora_fgsearch_url', 'http://localhost:8080/fedoragsearch/rest');
$searchString = '?operation=gfindObjects&indexName=' . $indexName . '&restXslt=copyXml&query=' . $searchQuery; $searchString = '?operation=gfindObjects&indexName=' . $indexName . '&restXslt=copyXml&query=' . $searchQuery;
$searchString .= '&hitPageSize=' . $numberOfHitsPerPage . '&hitPageStart=' . $startPage; $searchString .= '&hitPageSize=' . $numberOfHitsPerPage . '&hitPageStart=' . $startPage;
//$searchString = htmlentities(urlencode($searchString)); //$searchString = htmlentities(urlencode($searchString));
$searchUrl .= $searchString; $searchUrl .= $searchString;
$objectHelper = new ObjectHelper(); $objectHelper = new ObjectHelper();
$resultData = do_curl($searchUrl); $resultData = do_curl($searchUrl);
@ -998,7 +1006,7 @@ function fedora_repository_search_page($resultData) {
return $out; return $out;
} }
//inject into xsl stylesheet //inject into xsl stylesheet
$proc->setParameter('', 'searchToken', drupal_get_token('search_form')); //token generated by Drupal, keeps tack of what tab etc we are on $proc->setParameter('', 'searchToken', drupal_get_token('search_form')); //token generated by Drupal, keeps tack of what tab etc we are on
$proc->setParameter('', 'searchUrl', url('search') . '/fedora_repository'); //needed in our xsl $proc->setParameter('', 'searchUrl', url('search') . '/fedora_repository'); //needed in our xsl
$proc->setParameter('', 'objectsPage', base_path()); $proc->setParameter('', 'objectsPage', base_path());
@ -1052,7 +1060,7 @@ function fedora_repository_search_page($resultData) {
* allows the advanced search form in drupal * allows the advanced search form in drupal
*/ */
function fedora_repository_form_alter(&$form, &$form_state, $form_id) { function fedora_repository_form_alter(&$form, &$form_state, $form_id) {
// Advanced node search form // Advanced node search form
module_load_include('inc', 'fedora_repository', 'SearchClass'); module_load_include('inc', 'fedora_repository', 'SearchClass');
$path = drupal_get_path('module', 'fedora_repository'); $path = drupal_get_path('module', 'fedora_repository');
if ($form_id == 'search_form' && arg(1) == 'fedora_repository' && user_access('use advanced search')) { if ($form_id == 'search_form' && arg(1) == 'fedora_repository' && user_access('use advanced search')) {
@ -1066,7 +1074,7 @@ function fedora_repository_form_alter(&$form, &$form_state, $form_id) {
$default_value = substr($default_value, $index + 1); $default_value = substr($default_value, $index + 1);
} }
$form['basic']['inline']['keys']['#default_value'] = $default_value; $form['basic']['inline']['keys']['#default_value'] = $default_value;
// Keyword boxes: // Keyword boxes:
$form['advanced'] = array( $form['advanced'] = array(
'#type' => 'fieldset', '#type' => 'fieldset',
'#title' => t('Advanced search'), '#title' => t('Advanced search'),
@ -1106,7 +1114,7 @@ function fedora_repository_form_alter(&$form, &$form_state, $form_id) {
* *
*/ */
function fedora_repository_search_validate($form, &$form_state) { function fedora_repository_search_validate($form, &$form_state) {
// Initialise using any existing basic search keywords. // Initialise using any existing basic search keywords.
$keys = $form_state['values']['processed_keys']; $keys = $form_state['values']['processed_keys'];
if (isset($form_state['values']['type'])) { if (isset($form_state['values']['type'])) {
@ -1122,26 +1130,26 @@ function fedora_repository_search_validate($form, &$form_state) {
} }
function fedora_repository_block($op = 'list', $delta = 0, $edit = array()) { function fedora_repository_block($op = 'list', $delta = 0, $edit = array()) {
// The $op parameter determines what piece of information is being requested. // The $op parameter determines what piece of information is being requested.
switch ($op) { switch ($op) {
case 'list': case 'list':
// If $op is "list", we just need to return a list of block descriptions. // If $op is "list", we just need to return a list of block descriptions.
// This is used to provide a list of possible blocks to the administrator, // This is used to provide a list of possible blocks to the administrator,
// end users will not see these descriptions. // end users will not see these descriptions.
$blocks[0] = array( $blocks[0] = array(
'info' => t('Repository advanced search block'), 'info' => t('Repository advanced search block'),
); );
return $blocks; return $blocks;
case 'configure': case 'configure':
// If $op is "configure", we need to provide the administrator with a // If $op is "configure", we need to provide the administrator with a
// configuration form. The $delta parameter tells us which block is being // configuration form. The $delta parameter tells us which block is being
// configured. In this example, we'll allow the administrator to customize // configured. In this example, we'll allow the administrator to customize
// the text of the first block. // the text of the first block.
$form = array(); $form = array();
switch ($delta) { switch ($delta) {
case 0: case 0:
// All we need to provide is a text field, Drupal will take care of // All we need to provide is a text field, Drupal will take care of
// the other block configuration options and the save button. // the other block configuration options and the save button.
$form['fedora_repository_advanced_block_repeat'] = array( $form['fedora_repository_advanced_block_repeat'] = array(
'#type' => 'textfield', '#type' => 'textfield',
'#title' => t('Number of times to repeat search fields'), '#title' => t('Number of times to repeat search fields'),
@ -1153,25 +1161,25 @@ function fedora_repository_block($op = 'list', $delta = 0, $edit = array()) {
} }
return $form; return $form;
case 'save': case 'save':
// If $op is "save", we need to save settings from the configuration form. // If $op is "save", we need to save settings from the configuration form.
// Since the first block is the only one that allows configuration, we // Since the first block is the only one that allows configuration, we
// need to check $delta to make sure we only save it. // need to check $delta to make sure we only save it.
switch ($delta) { switch ($delta) {
case 0: case 0:
// Have Drupal save the string to the database. // Have Drupal save the string to the database.
variable_set('fedora_repository_advanced_block_repeat', $edit['fedora_repository_advanced_block_repeat']); variable_set('fedora_repository_advanced_block_repeat', $edit['fedora_repository_advanced_block_repeat']);
break; break;
} }
case 'view': default: case 'view': default:
// If $op is "view", then we need to generate the block for display // If $op is "view", then we need to generate the block for display
// purposes. The $delta parameter tells us which block is being requested. // purposes. The $delta parameter tells us which block is being requested.
switch ($delta) { switch ($delta) {
case 0: case 0:
// The subject is displayed at the top of the block. Note that it // The subject is displayed at the top of the block. Note that it
// should be passed through t() for translation. // should be passed through t() for translation.
$block['subject'] = t('Repository Advanced Search'); $block['subject'] = t('Repository Advanced Search');
// The content of the block is typically generated by calling a custom // The content of the block is typically generated by calling a custom
// function. // function.
$block['content'] = drupal_get_form('fedora_repository_mnpl_advanced_search_form'); $block['content'] = drupal_get_form('fedora_repository_mnpl_advanced_search_form');
break; break;
} }
@ -1262,7 +1270,7 @@ function fedora_repository_demo_objects_form() {
'#description' => t('Install demo image and document collections and content models.'), '#description' => t('Install demo image and document collections and content models.'),
); );
$demo_objects = array(); $demo_objects = array();
// Check if the top-level islandora collection exists. If not, display a button to ingest. // Check if the top-level islandora collection exists. If not, display a button to ingest.
$form['install_demos']['demo_collections'] = array( $form['install_demos']['demo_collections'] = array(
'#type' => 'checkboxes', '#type' => 'checkboxes',
@ -1285,7 +1293,7 @@ function fedora_repository_demo_objects_form() {
} }
if (empty($demo_objects[$available_demo]->objectProfile)) { if (empty($demo_objects[$available_demo]->objectProfile)) {
//The demo objects collection does not exist in the repository, display a button to ingest them. //The demo objects collection does not exist in the repository, display a button to ingest them.
$form['install_demos']['demo_collections']['#options'][$available_demo] = $available_demo_desc; $form['install_demos']['demo_collections']['#options'][$available_demo] = $available_demo_desc;
} }
else { else {
@ -1293,7 +1301,7 @@ function fedora_repository_demo_objects_form() {
} }
} }
// Check if the SmileyStuff collectoin exists, and if it has a COLLECTION_VIEW datastream. If it doesn't then we can add it. // Check if the SmileyStuff collectoin exists, and if it has a COLLECTION_VIEW datastream. If it doesn't then we can add it.
$smiley_stuff = new Fedora_Item('demo:SmileyStuff'); $smiley_stuff = new Fedora_Item('demo:SmileyStuff');
if (!empty($smiley_stuff->objectProfile)) { if (!empty($smiley_stuff->objectProfile)) {
@ -1359,12 +1367,12 @@ function fedora_repository_demo_objects_form_submit($form, &$form_state) {
} }
// Install a collection object that points to all content model objects // Install a collection object that points to all content model objects
try { try {
$cmodel_collection_xml = Fedora_Item::create_object_FOXML('islandora:ContentModelCollection'); $cmodel_collection_xml = Fedora_Item::create_object_FOXML('islandora:ContentModelCollection');
$cmodel_collection = Fedora_Item::ingest_from_FOXML($cmodel_collection_xml); $cmodel_collection = Fedora_Item::ingest_from_FOXML($cmodel_collection_xml);
//$dc = new Dublin_Core(new Fedora_Item('islandora:ContentModelCollection')); //$dc = new Dublin_Core(new Fedora_Item('islandora:ContentModelCollection'));
$dc = new Dublin_Core($cmodel_collection); $dc = new Dublin_Core($cmodel_collection);
$dc->set_element('dc:title', array('Installed Content Model')); $dc->set_element('dc:title', array('Installed Content Model'));
$dc->save(); $dc->save();
@ -1402,7 +1410,7 @@ function fedora_repository_demo_objects_form_submit($form, &$form_state) {
$new_item->add_relationship('hasModel', 'islandora:collectionCModel', FEDORA_MODEL_URI); $new_item->add_relationship('hasModel', 'islandora:collectionCModel', FEDORA_MODEL_URI);
$cp = $new_item->add_datastream_from_file(drupal_get_path('module', 'fedora_repository') . '/collection_policies/COLLECTION-COLLECTION POLICY.xml', 'COLLECTION_POLICY', 'Collection Policy', 'text/xml', 'X'); $cp = $new_item->add_datastream_from_file(drupal_get_path('module', 'fedora_repository') . '/collection_policies/COLLECTION-COLLECTION POLICY.xml', 'COLLECTION_POLICY', 'Collection Policy', 'text/xml', 'X');
// $cv = $new_item->add_datastream_from_file( drupal_get_path('module', 'fedora_repository') . '/collection_views/COLLECTION_VIEW.xml', 'COLLECTION_VIEW', 'Collection View.xml', 'text/xml', 'X'); // $cv = $new_item->add_datastream_from_file( drupal_get_path('module', 'fedora_repository') . '/collection_views/COLLECTION_VIEW.xml', 'COLLECTION_VIEW', 'Collection View.xml', 'text/xml', 'X');
$tn = $new_item->add_datastream_from_file(drupal_get_path('module', 'fedora_repository') . '/images/Gnome-emblem-photos.png', 'TN', 'Thumbnail.png', 'image/png', 'M'); $tn = $new_item->add_datastream_from_file(drupal_get_path('module', 'fedora_repository') . '/images/Gnome-emblem-photos.png', 'TN', 'Thumbnail.png', 'image/png', 'M');
try { try {
$new_item = Fedora_Item::ingest_new_item('islandora:pdf_collection', 'A', 'PDF Collection'); $new_item = Fedora_Item::ingest_new_item('islandora:pdf_collection', 'A', 'PDF Collection');
@ -1464,7 +1472,7 @@ function fedora_repository_demo_objects_form_submit($form, &$form_state) {
} }
function fedora_repository_required_fedora_objects() { function fedora_repository_required_fedora_objects() {
// array( 'path-to-foxml-file', 'pid', 'dsid', 'path-to-datastream-file', int dsversion, boolean required) // array( 'path-to-foxml-file', 'pid', 'dsid', 'path-to-datastream-file', int dsversion, boolean required)
$module_path = drupal_get_path('module', 'fedora_repository'); $module_path = drupal_get_path('module', 'fedora_repository');
return array( return array(
'fedora_repository' => array( 'fedora_repository' => array(
@ -1643,8 +1651,8 @@ function fedora_repository_elements() {
} }
function fedora_repository_expand_time($element) { function fedora_repository_expand_time($element) {
// Default to current time, check default_value but set value so that if // Default to current time, check default_value but set value so that if
// default value is present it will override value // default value is present it will override value
if (empty($element['#default_value'])) { if (empty($element['#default_value'])) {
$element['#value'] = array( $element['#value'] = array(
'hour' => intval(format_date(time(), 'custom', 'h')), 'hour' => intval(format_date(time(), 'custom', 'h')),
@ -1698,16 +1706,16 @@ function fedora_repository_remove_item_from_basket($pid) {
$pids = empty($_SESSION['basket']['processed']) ? array() : $_SESSION['basket']['processed']; $pids = empty($_SESSION['basket']['processed']) ? array() : $_SESSION['basket']['processed'];
$objectHelper = new ObjectHelper(); $objectHelper = new ObjectHelper();
// getting child PIDs if any // getting child PIDs if any
$cpids = $objectHelper->get_child_pids(array($pid)); $cpids = $objectHelper->get_child_pids(array($pid));
if (array_key_exists($pid, $pids)) { if (array_key_exists($pid, $pids)) {
// remove item from basket // remove item from basket
unset($_SESSION['basket']['processed'][$pid]); unset($_SESSION['basket']['processed'][$pid]);
} }
if (!empty($cpids)) { // there are children if (!empty($cpids)) { // there are children
foreach ($cpids as $child_pid => $value) { foreach ($cpids as $child_pid => $value) {
// remove child item from basket recursively // remove child item from basket recursively
fedora_repository_remove_item_from_basket($child_pid); fedora_repository_remove_item_from_basket($child_pid);
} }
} }
@ -1860,7 +1868,7 @@ function fedora_repository_basket_form_submit($form, &$form_state) {
$msg .= ":<br/>" . implode("<br/>", $log); $msg .= ":<br/>" . implode("<br/>", $log);
drupal_set_message($msg, $success ? 'info' : 'error'); drupal_set_message($msg, $success ? 'info' : 'error');
//_fedora_repository_empty_basket(); //_fedora_repository_empty_basket();
} }
else { else {
drupal_set_message(t("No objects selected or basket empty"), 'error'); drupal_set_message(t("No objects selected or basket empty"), 'error');
@ -1875,7 +1883,7 @@ function fedora_repository_basket_form_submit($form, &$form_state) {
function _fedora_repository_get_basket_pids() { function _fedora_repository_get_basket_pids() {
// Set empty defaults if basket elements are missing // Set empty defaults if basket elements are missing
$_SESSION['basket'] = isset($_SESSION['basket']) ? $_SESSION['basket'] : array('processed' => array(), 'unprocessed' => array()); $_SESSION['basket'] = isset($_SESSION['basket']) ? $_SESSION['basket'] : array('processed' => array(), 'unprocessed' => array());
$_SESSION['basket']['processed'] = isset($_SESSION['basket']['processed']) ? $_SESSION['basket']['processed'] : array(); $_SESSION['basket']['processed'] = isset($_SESSION['basket']['processed']) ? $_SESSION['basket']['processed'] : array();
$_SESSION['basket']['unprocessed'] = isset($_SESSION['basket']['unprocessed']) ? $_SESSION['basket']['unprocessed'] : array(); $_SESSION['basket']['unprocessed'] = isset($_SESSION['basket']['unprocessed']) ? $_SESSION['basket']['unprocessed'] : array();
@ -1885,7 +1893,7 @@ function _fedora_repository_get_basket_pids() {
module_load_include('inc', 'fedora_repository', 'ObjectHelper'); module_load_include('inc', 'fedora_repository', 'ObjectHelper');
$ob = new ObjectHelper(); $ob = new ObjectHelper();
foreach ($_SESSION['basket']['unprocessed'] as $pid) { foreach ($_SESSION['basket']['unprocessed'] as $pid) {
// Check if the pid already exists in the tree // Check if the pid already exists in the tree
if (array_key_exists($pid, $pids)) { if (array_key_exists($pid, $pids)) {
continue; continue;
} }
@ -1978,18 +1986,18 @@ function fedora_repository_batch_reingest_object($object, &$context) {
if (!validPid($pid)) { if (!validPid($pid)) {
return NULL; return NULL;
} }
// Does the object exist? If so, purge it. // Does the object exist? If so, purge it.
$item = new Fedora_Item($pid); $item = new Fedora_Item($pid);
if ($item->exists()) { if ($item->exists()) {
$item->purge(t('Remove during re-install batch job')); $item->purge(t('Remove during re-install batch job'));
} }
// Ingest the object from the source file. // Ingest the object from the source file.
if (!empty($object['foxml_file'])) { if (!empty($object['foxml_file'])) {
$foxml_file = $object['foxml_file']; $foxml_file = $object['foxml_file'];
$new_item = Fedora_Item::ingest_from_FOXML_file($foxml_file); $new_item = Fedora_Item::ingest_from_FOXML_file($foxml_file);
if ($new_item->exists()) { if ($new_item->exists()) {
// Batch operation was successful. // Batch operation was successful.
$context['message'][] = "$new_item->pid installed."; $context['message'][] = "$new_item->pid installed.";
} }
} }

187
formClass.inc

@ -696,93 +696,140 @@ class formClass {
/** /**
* Creates a drupal form to edit either the QDC or DC datastream * Creates a drupal form to edit either the QDC or DC datastream
*/ */
function createMetaDataForm($pid, $dsId = NULL, $client) { function createMetaDataForm($pid, $dsId = NULL, $client, &$form_state) {
if (!isset($dsId)) { if (module_exists('islandora_content_model_forms')) {
$dsId = 'QDC'; // Get the content model.
$content_model = ContentModel::loadFromObject($pid);
$form_names = islandora_content_model_get_form_names($content_model->pid);
} }
if (isset($form_state['storage']['step']) || (isset($form_names) && count($form_names) > 0)) {
//$client = getSoapClient(variable_get('fedora_soap_url', 'http://localhost:8080/fedora/services/access?wsdl')); // Form Exists...
$params = array('pid' => "$pid", 'dsID' => "$dsId", 'asOfDateTime' => ""); $form_state['storage']['step'] = isset($form_state['storage']['step']) ? $form_state['storage']['step'] : 1;
try { switch ($form_state['storage']['step']) {
$object = $client->__soapCAll('getDatastreamDissemination', array('parameters' => $params)); case 1:
} catch (Exception $e) { $form['indicator'] = array(
return array(); '#type' => 'fieldset',
'#title' => t('Choose edit form.')
);
$form['indicator']['forms'] = array(
'#type' => 'select',
'#title' => t('Forms'),
'#options' => $form_names,
'#description' => t('Select the form to populate the metadata of the new object.')
);
$form['submit'] = array(
'#type' => 'submit',
'#submit' => array('fedora_repository_edit_qdc_form_submit'),
'#value' => 'Next'
);
return $form;
case 2:
// XML Forms
module_load_include('inc', 'xml_form_api', 'XMLForm');
$xml_form = new XMLForm($form_state);
if (isset($form_state['values']['forms']) || $xml_form->isInitialized()) {
if (!$xml_form->isInitialized()) {
module_load_include('inc', 'xml_form_api', 'XMLFormDefinition');
module_load_include('inc', 'xml_form_builder', 'FormBuilder');
$form_name = $form_state['values']['forms'];
$definition = FormBuilder::GetFormDefinition($form_name);
$form = XMLFormDefinition::GetDrupalForm($definition);
$properties = XMLFormDefinition::GetFormProperties($definition);
$document = new XMLDocument($properties['document']['root'], $properties['document']['namespaces'], $properties['document']['schema']);
$xml_form->initialize($form, $document);
}
return $xml_form->toArray();
}
break;
}
} }
else {
if (!isset($dsId)) {
$dsId = 'QDC';
}
//$client = getSoapClient(variable_get('fedora_soap_url', 'http://localhost:8080/fedora/services/access?wsdl'));
$params = array('pid' => "$pid", 'dsID' => "$dsId", 'asOfDateTime' => "");
try {
$object = $client->__soapCAll('getDatastreamDissemination', array('parameters' => $params));
} catch (Exception $e) {
return array();
}
$content = $object->dissemination->stream; $content = $object->dissemination->stream;
$content = trim($content); $content = trim($content);
$doc = new DOMDocument(); $doc = new DOMDocument();
if (!$doc->loadXML($content)) { if (!$doc->loadXML($content)) {
echo "error loading xml"; echo "error loading xml";
} }
$oai_dc = $doc->getElementsByTagName('dc'); $oai_dc = $doc->getElementsByTagName('dc');
$dcItems = $oai_dc->item(0)->getElementsByTagName('*'); $dcItems = $oai_dc->item(0)->getElementsByTagName('*');
$form = array(); $form = array();
for ($i = 0; $i < $dcItems->length; $i++) { for ($i = 0; $i < $dcItems->length; $i++) {
$name = $dcItems->item($i)->nodeName; $name = $dcItems->item($i)->nodeName;
if ($name == 'dc:description') { if ($name == 'dc:description') {
$form["$name" . '-' . "$i"] = array( $form["$name" . '-' . "$i"] = array(
'#title' => $name, '#title' => $name,
'#type' => 'textarea', '#type' => 'textarea',
'#default_value' => $dcItems->item($i)->nodeValue, '#default_value' => $dcItems->item($i)->nodeValue,
'#description' => 'Dublin Core ' . substr($dcItems->item($i)->nodeName, 3) '#description' => 'Dublin Core ' . substr($dcItems->item($i)->nodeName, 3)
); );
} }
elseif ($name == 'dc:title') { elseif ($name == 'dc:title') {
$form["$name" . '-' . "$i"] = array( $form["$name" . '-' . "$i"] = array(
'#title' => $name,
'#type' => 'textfield',
'#required' => 'TRUE',
'#default_value' => $dcItems->item($i)->nodeValue,
'#description' => 'Dublin Core ' . substr($dcItems->item($i)->nodeName, 3)
);
}
else {
if ($oai_dc->item(0)->nodeName != $dcItems->item($i)->parentNode->nodeName) {
$description = strstr($name, ':');
$form['app_' . "$name" . '-' . "$i"] = array(
'#title' => $name, '#title' => $name,
'#type' => 'textfield', '#type' => 'textfield',
'#required' => 'TRUE',
'#default_value' => $dcItems->item($i)->nodeValue, '#default_value' => $dcItems->item($i)->nodeValue,
'#description' => 'Dublin Core ' . substr($description, 1) '#description' => 'Dublin Core ' . substr($dcItems->item($i)->nodeName, 3)
); );
} }
else { else {
$field_type = 'textfield'; if ($oai_dc->item(0)->nodeName != $dcItems->item($i)->parentNode->nodeName) {
$value = $dcItems->item($i)->nodeValue; $description = strstr($name, ':');
if ($name == 'dc:coverage') { $form['app_' . "$name" . '-' . "$i"] = array(
$value = ''; '#title' => $name,
'#type' => 'textfield',
'#default_value' => $dcItems->item($i)->nodeValue,
'#description' => 'Dublin Core ' . substr($description, 1)
);
} }
if ($name == 'dc:rights') { else {
$field_type = 'textarea'; $field_type = 'textfield';
$value = $dcItems->item($i)->nodeValue;
if ($name == 'dc:coverage') {
$value = '';
}
if ($name == 'dc:rights') {
$field_type = 'textarea';
}
$description = strstr($name, ':');
$form["$name" . '-' . "$i"] = array(
'#title' => $name,
'#type' => $field_type,
'#default_value' => $value,
'#description' => 'Dublin Core ' . substr($description, 1)
);
} }
$description = strstr($name, ':');
$form["$name" . '-' . "$i"] = array(
'#title' => $name,
'#type' => $field_type,
'#default_value' => $value,
'#description' => 'Dublin Core ' . substr($description, 1)
);
} }
} }
}
$form['pid'] = array( $form['pid'] = array(
'#type' => 'hidden', '#type' => 'hidden',
'#value' => "$pid" '#value' => "$pid"
); );
$form['dsid'] = array( $form['dsid'] = array(
'#type' => 'hidden', '#type' => 'hidden',
'#value' => "$dsId" '#value' => "$dsId"
); );
$form['submit'] = array( $form['submit'] = array(
'#type' => 'submit', '#type' => 'submit',
'#value' => t('Update Metadata'), '#value' => t('Update Metadata'),
); );
return $form; return $form;
}
} }
/** /**

2
plugins/fedoraObject.inc

@ -15,6 +15,7 @@ class FedoraObject {
$objectHelper = new ObjectHelper(); $objectHelper = new ObjectHelper();
$tabset = array(); $tabset = array();
$show_purge_tab = (!empty($_POST['form_id']) && $_POST['form_id'] == 'fedora_repository_purge_object_form'); $show_purge_tab = (!empty($_POST['form_id']) && $_POST['form_id'] == 'fedora_repository_purge_object_form');
$show_edit_tab = (!empty($_POST['form_id']) && $_POST['form_id'] == 'fedora_repository_edit_qdc_form');
$purge_form = drupal_get_form('fedora_repository_purge_object_form', $this->pid, check_plain(substr(request_uri(), strlen(base_path())))); $purge_form = drupal_get_form('fedora_repository_purge_object_form', $this->pid, check_plain(substr(request_uri(), strlen(base_path()))));
$tabset['fedora_object_details'] = array( $tabset['fedora_object_details'] = array(
@ -41,6 +42,7 @@ class FedoraObject {
$tabset['fedora_object_details']['tabset']['edit'] = array( $tabset['fedora_object_details']['tabset']['edit'] = array(
'#type' => 'tabpage', '#type' => 'tabpage',
'#title' => t('Edit'), '#title' => t('Edit'),
'#selected' => $show_edit_tab,
'#content' => $editform, '#content' => $editform,
); );
} }

Loading…
Cancel
Save