|
|
|
<?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) {
|
|
|
|
|
|
|
|
}
|