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.
167 lines
4.2 KiB
167 lines
4.2 KiB
12 years ago
|
<?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) {
|
||
|
|
||
|
}
|