Drupal modules for browsing and managing Fedora-based digital repositories.
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

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