You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
168 lines
4.2 KiB
168 lines
4.2 KiB
<?php |
|
|
|
/** |
|
* @file |
|
* Implements hooks that get tested by islandora_hooks.test |
|
*/ |
|
|
|
/** |
|
* Implements hook menu. |
|
*/ |
|
function islandora_ingest_test_menu() { |
|
return array( |
|
'test/ingest' => array( |
|
'title' => 'Ingest Form', |
|
'page callback' => 'islandora_ingest_test_ingest', |
|
'type' => MENU_LOCAL_ACTION, |
|
'access callback' => TRUE, |
|
), |
|
); |
|
} |
|
|
|
/** |
|
* Render the ingest form. |
|
*/ |
|
function islandora_ingest_test_ingest() { |
|
$connection = islandora_get_tuque_connection(); |
|
$object = $connection->repository->constructObject('test:test'); |
|
$object->label = 'New Object'; |
|
$configuration = array( |
|
'objects' => array($object), |
|
); |
|
module_load_include('inc', 'islandora', 'includes/ingest.form'); |
|
return drupal_get_form('islandora_ingest_form', $configuration); |
|
} |
|
|
|
/** |
|
* Implements hook_islandora_ingest_steps(). |
|
*/ |
|
function islandora_ingest_test_islandora_ingest_steps(array &$form_state) { |
|
return array( |
|
'islandora_ingest_test' => array( |
|
'type' => 'form', |
|
'form_id' => 'islandora_ingest_test_set_label_form', |
|
'weight' => -50, |
|
'module' => 'islandora_ingest_test', |
|
), |
|
); |
|
} |
|
|
|
/** |
|
* Implements hook_MODEL_PID_islandora_ingest_steps(). |
|
*/ |
|
function islandora_ingest_test_test_testcmodel_islandora_ingest_steps(array &$form_state) { |
|
return array( |
|
'islandora_ingest_test_testcmodel' => array( |
|
'type' => 'form', |
|
'form_id' => 'islandora_ingest_test_testcmodel_form', |
|
'weight' => -30, |
|
'module' => 'islandora_ingest_test', |
|
), |
|
); |
|
} |
|
|
|
/** |
|
* Implements hook_MODEL_PID_islandora_ingest_steps(). |
|
*/ |
|
function islandora_ingest_test_test_testcmodel2_islandora_ingest_steps(array &$form_state) { |
|
return array( |
|
'islandora_ingest_test_testcmodel2' => array( |
|
'type' => 'form', |
|
'form_id' => 'islandora_ingest_test_testcmodel2_form', |
|
'weight' => -40, |
|
'module' => 'islandora_ingest_test', |
|
), |
|
); |
|
} |
|
|
|
/** |
|
* Sets the label of the ingestable object. |
|
* |
|
* @param array $form |
|
* The Drupal form. |
|
* @param array $form_state |
|
* The Drupal form state. |
|
* |
|
* @return array |
|
* The Drupal form definition. |
|
*/ |
|
function islandora_ingest_test_set_label_form(array $form, array &$form_state) { |
|
$models = array( |
|
'test:nomorestepscmodel', |
|
'test:testcmodel', |
|
'test:testcmodel2', |
|
); |
|
$model = isset($form_state['values']['model']) ? $form_state['values']['model'] : reset($models); |
|
$shared_storage = &islandora_ingest_form_get_shared_storage($form_state); |
|
$shared_storage['models'] = array($model); |
|
return array( |
|
'#prefix' => '<div id="islandora-select-content-model-wrapper">', |
|
'#suffix' => '</div>', |
|
'label' => array( |
|
'#type' => 'textfield', |
|
'#title' => t('Label'), |
|
), |
|
'model' => array( |
|
'#type' => 'select', |
|
'#title' => t('Select a Content Model to Ingest'), |
|
'#options' => array_combine($models, $models), |
|
'#default' => $model, |
|
'#ajax' => array( |
|
'callback' => 'islandora_ingest_test_model_ajax_callback', |
|
'wrapper' => 'islandora-select-content-model-wrapper', |
|
'method' => 'replace', |
|
'effect' => 'fade', |
|
), |
|
), |
|
); |
|
} |
|
|
|
/** |
|
* Updates the model field. |
|
*/ |
|
function islandora_ingest_test_model_ajax_callback(array $form, array &$form_state) { |
|
return $form; |
|
} |
|
|
|
/** |
|
* Sets the label of the ingestable object. |
|
* |
|
* @param array $form |
|
* The Drupal form. |
|
* @param array $form_state |
|
* The Drupal form state. |
|
*/ |
|
function islandora_ingest_test_set_label_form_submit(array $form, array &$form_state) { |
|
$object = islandora_ingest_form_get_object($form_state); |
|
$object->label = $form_state['values']['label']; |
|
unset($object->models); |
|
$object->models = array($form_state['values']['model']); |
|
} |
|
|
|
/** |
|
* Test the First content model. |
|
*/ |
|
function islandora_ingest_test_testcmodel_form(array $form, array &$form_state) { |
|
return array(); |
|
} |
|
|
|
/** |
|
* Test the CModel submit. |
|
*/ |
|
function islandora_ingest_test_testcmodel_form_submit(array $form, array &$form_state) { |
|
|
|
} |
|
|
|
/** |
|
* Test the second content model. |
|
*/ |
|
function islandora_ingest_test_testcmodel2_form(array $form, array &$form_state) { |
|
return array(); |
|
} |
|
|
|
/** |
|
* Test the CModel submit. |
|
*/ |
|
function islandora_ingest_test_testcmodel2_form_submit(array $form, array &$form_state) { |
|
|
|
}
|
|
|