Browse Source

Changed formClass to render the XML Based form if xml_forms is enabled.

pull/3/merge
Nigel Banks 14 years ago
parent
commit
192a15cd3f
  1. 58
      formClass.inc

58
formClass.inc

@ -37,12 +37,12 @@ class formClass {
); );
$items['admin/settings/fedora_repository/demoobjects'] = array( $items['admin/settings/fedora_repository/demoobjects'] = array(
'title' => t('Solution Packs'), 'title' => t('Solution Packs'),
'description' => t('Install content models and collections required by installed solution packs.'), 'description' => t('Install content models and collections required by installed solution packs.'),
'page callback' => 'fedora_repository_solution_packs_page', 'page callback' => 'fedora_repository_solution_packs_page',
'access arguments' => array('add fedora datastreams'), 'access arguments' => array('add fedora datastreams'),
'file' => 'fedora_repository.solutionpacks.inc', 'file' => 'fedora_repository.solutionpacks.inc',
'type' => MENU_LOCAL_TASK, 'type' => MENU_LOCAL_TASK,
); );
$items['islandoracm.xsd'] = array( $items['islandoracm.xsd'] = array(
@ -241,8 +241,7 @@ class formClass {
$form['fedora_repository_url'] = array( $form['fedora_repository_url'] = array(
'#type' => 'textfield', '#type' => 'textfield',
'#title' => t('Fedora RISearch URL'), '#title' => t('Fedora RISearch URL'),
'#default_value' => variable_get('fedora_repository_url', '#default_value' => variable_get('fedora_repository_url', 'http://localhost:8080/fedora/risearch'),
'http://localhost:8080/fedora/risearch'),
'#description' => t('The url of the Fedora server'), '#required' => TRUE, '#description' => t('The url of the Fedora server'), '#required' => TRUE,
'#weight' => 0 '#weight' => 0
); );
@ -500,6 +499,10 @@ class formClass {
$modelsForForm["$identifier"] = "$name"; $modelsForForm["$identifier"] = "$name";
} }
if (module_exists('islandora_content_model_forms') && isset($contentModels[0])) {
$form_names = islandora_content_model_get_form_names($contentModels[0]->pid);
}
switch ($form_state['storage']['step']) { switch ($form_state['storage']['step']) {
case 1: case 1:
$form['indicator'] = array( $form['indicator'] = array(
@ -514,14 +517,36 @@ class formClass {
//'#description' => t('Content models available in this collection. A content model defines what is allowed in a collection and what to do with a file when it is uploaded (An example may creating a thumbnail from an image.).') //'#description' => t('Content models available in this collection. A content model defines what is allowed in a collection and what to do with a file when it is uploaded (An example may creating a thumbnail from an image.).')
'#description' => t('Content models define datastream composition, relationships between this and other content models, and the mandatory behaviors associated with each digital object.<br /> Additional information may be found <a href="https://wiki.duraspace.org/display/FEDORACREATE/Content+Models+Overview">here.</a> ') '#description' => t('Content models define datastream composition, relationships between this and other content models, and the mandatory behaviors associated with each digital object.<br /> Additional information may be found <a href="https://wiki.duraspace.org/display/FEDORACREATE/Content+Models+Overview">here.</a> ')
); );
if (isset($form_names) && count($form_names) >= 1) {
$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.')
);
}
break; break;
case 2: case 2:
module_load_include('inc', 'fedora_repository', 'MimeClass'); // Why this include? --Zac, 2010-09-17 module_load_include('inc', 'fedora_repository', 'MimeClass'); // Why this include? --Zac, 2010-09-17
$contentModelPid = ContentModel::getPidFromIdentifier($form_state['values']['models']); $contentModelPid = ContentModel::getPidFromIdentifier($form_state['values']['models']);
$contentModelDsid = ContentModel::getDSIDFromIdentifier($form_state['values']['models']); $contentModelDsid = ContentModel::getDSIDFromIdentifier($form_state['values']['models']);
if (isset($form_state['values']['forms'])) {
if (($cm = ContentModel::loadFromModel($contentModelPid, $contentModelDsid)) !== FALSE) { module_load_include('inc', 'xml_form_api', 'XMLForm');
$xml_form = new XMLForm($form_state);
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);
}
$form = $xml_form->toArray();
}
else if (($cm = ContentModel::loadFromModel($contentModelPid, $contentModelDsid)) !== FALSE) {
$form = $cm->buildIngestForm($form, $form_state); $form = $cm->buildIngestForm($form, $form_state);
if ($form === FALSE) { if ($form === FALSE) {
@ -577,7 +602,6 @@ class formClass {
if (!empty($newElements)) { if (!empty($newElements)) {
$available_dsids = array_merge($available_dsids, $newElements); $available_dsids = array_merge($available_dsids, $newElements);
} }
} }
} }
@ -640,19 +664,19 @@ class formClass {
); );
if (!empty($unused_dsids)) { if (!empty($unused_dsids)) {
$dsidsForForm = array(); $dsidsForForm = array();
foreach ($unused_dsids as $dsid){ foreach ($unused_dsids as $dsid) {
$dsidsForForm[$dsid]=$dsid; $dsidsForForm[$dsid] = $dsid;
} }
$form['stream_id'] = array( $form['stream_id'] = array(
'#type' => 'select', '#type' => 'select',
'#title' => t('Datastream ID'), '#title' => t('Datastream ID'),
'#default_value' => variable_get('feed_item_length', 'teaser'), '#default_value' => variable_get('feed_item_length', 'teaser'),
'#weight' => '-1', '#weight' => '-1',
'#description' => t('Datastream IDs defined by the content model.'), '#description' => t('Datastream IDs defined by the content model.'),
); );
$form['stream_id']['#options'] = array_combine($unused_dsids, $unused_dsids); $form['stream_id']['#options'] = array_combine($unused_dsids, $unused_dsids);
} }
else { else {
$form['stream_id'] = array( $form['stream_id'] = array(
'#title' => 'Datastream ID', '#title' => 'Datastream ID',

Loading…
Cancel
Save