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.
422 lines
12 KiB
422 lines
12 KiB
8 years ago
|
<?php
|
||
|
/**
|
||
|
* @file
|
||
|
* Contains the ILL forms.
|
||
|
*/
|
||
|
|
||
|
/**
|
||
|
* A form to wrap the different steps of our multi step form.
|
||
|
*
|
||
|
* @param array $form
|
||
|
* An array representing a Drupal form.
|
||
|
* @param array $form_state
|
||
|
* An array containing the Drupal form state.
|
||
|
*
|
||
|
* @return array
|
||
|
* An array representing the bibliographic form.
|
||
|
*/
|
||
|
function upei_roblib_ill_form($form, &$form_state) {
|
||
|
if (!isset($form_state['values'])) {
|
||
|
$form_name = 'upei_roblib_ill_request_form';
|
||
|
}
|
||
|
else {
|
||
|
$form_name = 'upei_roblib_ill_auth_form';
|
||
|
}
|
||
|
$form_state['step'] = $form_name;
|
||
|
return $form_name === 'upei_roblib_ill_request_form' ? upei_roblib_ill_request_form($form, $form_state) :
|
||
|
upei_roblib_ill_auth_form($form, $form_state);
|
||
|
}
|
||
|
|
||
|
|
||
|
/**
|
||
|
* Validation for the upei_roblib_ill_form form.
|
||
|
*
|
||
|
* @param array $form
|
||
|
* An array representing a Drupal form.
|
||
|
* @param array $form_state
|
||
|
* An array containing the Drupal form state.
|
||
|
*/
|
||
|
function upei_roblib_ill_form_validate($form, &$form_state) {
|
||
|
if ($form_state['step'] == 'upei_roblib_ill_request_form' && empty($form_state['values']['doi']) && empty($form_state['values']['Title']) &&
|
||
|
empty($form_state['values']['ArtcleTitle'])
|
||
|
) {
|
||
|
form_set_error('Title', t('One of "DOI", "Title" or "Article Title" values must be provided'));
|
||
|
}
|
||
|
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Submit handler for the upei_roblib_ill_form form.
|
||
|
*
|
||
|
* @param array $form
|
||
|
* An array representing a Drupal form.
|
||
|
* @param array $form_state
|
||
|
* An array containing the Drupal form state.
|
||
|
*/
|
||
|
function upei_roblib_ill_form_submit($form, &$form_state) {
|
||
|
module_load_include('inc', 'upei_roblib_ill', 'includes/relais');
|
||
|
$form_state['storage'][$form_state['step']] = $form_state['values'];
|
||
|
switch ($form_state['step']) {
|
||
|
case 'upei_roblib_ill_request_form':
|
||
|
if ($form_state['clicked_button']['#value'] != 'lookup DOI') {
|
||
|
$form_state['step'] = 'upei_roblib_ill_auth_form';
|
||
|
$form_state['rebuild'] = TRUE;
|
||
|
}
|
||
|
break;
|
||
|
case 'upei_roblib_ill_auth_form':
|
||
|
//process the form
|
||
|
drupal_set_message('completed form');
|
||
|
$aid = upei_roblib_ill_authenticate($form_state['values']['campus_id']);
|
||
|
if (isset($aid)) {
|
||
|
upei_roblib_ill_add_request($form_state, $aid);
|
||
|
}
|
||
|
else {
|
||
|
drupal_set_message(t("Error authenticating with Relais"), 'error');
|
||
|
}
|
||
|
break;
|
||
|
}
|
||
|
|
||
|
}
|
||
|
|
||
|
|
||
|
/**
|
||
|
* The patron portion of the ILL form.
|
||
|
*
|
||
|
* The campus_id and email portion are also used in a request for an Relais aid.
|
||
|
*
|
||
|
* @param array $form
|
||
|
* An array representing a Drupal form.
|
||
|
* @param array $form_state
|
||
|
* An array containing the Drupal form state.
|
||
|
*
|
||
|
* @return array
|
||
|
* An array representing the bibliographic form.
|
||
|
*/
|
||
|
function upei_roblib_ill_auth_form($form, &$form_state) {
|
||
|
$_REQUEST;
|
||
|
|
||
|
$form['FirstName'] = array(
|
||
|
'#type' => 'textfield',
|
||
|
'#title' => t('Your First Name'),
|
||
|
'#size' => 50,
|
||
|
'#required' => TRUE,
|
||
|
);
|
||
|
$form['Surname'] = array(
|
||
|
'#type' => 'textfield',
|
||
|
'#title' => t('Your Last Name'),
|
||
|
'#size' => 50,
|
||
|
'#required' => TRUE,
|
||
|
);
|
||
|
$form['campus_id'] = array(
|
||
|
'#type' => 'textfield',
|
||
|
'#title' => t('Your Campus ID'),
|
||
|
'#size' => 50,
|
||
|
'#required' => TRUE,
|
||
|
);
|
||
|
$patron_types = array(
|
||
|
'None' => t('None'),
|
||
|
'UPEI Faculty/Staff' => t('UPEI Faculty/Staff'),
|
||
|
'UPEI Graduate Student' => t('UPEI Graduate Student'),
|
||
|
'UPEI Undergraduate Student' => t('UPEI Undergraduate Student'),
|
||
|
'UPEI Honours Undergraduate Student' => t('UPEI Honours Undergraduate Student'),
|
||
|
'UPEI Alumni Premiere member' => t('UPEI Alumni Premiere member'),
|
||
|
'UPEI Alumni member' => t('UPEI Alumni member'),
|
||
|
'Public Borrower' => t('Public Borrower'),
|
||
|
);
|
||
|
$departments = array(
|
||
|
'Applied Human Sciences' => t('Applied Human Sciences'),
|
||
|
'AVC - Biomedical Sciences' => t('AVC - Biomedical Sciences'),
|
||
|
'AVC - Companion Animals' => t('AVC - Companion Animals'),
|
||
|
'AVC - Health Management' => t('AVC - Health Management'),
|
||
|
'AVC - Pathology/Microbiology' => t('AVC - Pathology/Microbiology'),
|
||
|
'AVC - Lobster Science' => t('AVC - Lobster Science'),
|
||
|
'Biology' => t('Biology'),
|
||
|
'Business' => t('Business'),
|
||
|
'Chemistry' => t('Chemistry'),
|
||
|
'Classics' => t('Classics'),
|
||
|
'Diversity and Social Justice Studies' => t('Diversity and Social Justice Studies'),
|
||
|
'Economics' => t('Economics'),
|
||
|
'Education' => t('Education'),
|
||
|
'English' => t('English'),
|
||
|
'Engineering' => t('Engineering'),
|
||
|
'Environmental Studies' => t('Environmental Studies'),
|
||
|
'Fine Arts' => t('Fine Arts'),
|
||
|
'History' => t('History'),
|
||
|
'Island Studies' => t('Island Studies'),
|
||
|
'Island Studies (Masters)' => t('Island Studies (Masters)'),
|
||
|
'Robertson Library' => t('Robertson Library'),
|
||
|
'Robertson Library' => t('Robertson Library'),
|
||
|
'Mathematical and Computational Sciences' => t('Mathematical and Computational Sciences'),
|
||
|
'Modern Languages' => t('Modern Languages'),
|
||
|
'Music' => t('Music'),
|
||
|
'Nursing' => t('Nursing'),
|
||
|
'Philosophy' => t('Philosophy'),
|
||
|
'Physics' => t('Physics'),
|
||
|
'Political Science' => t('Political Science'),
|
||
|
'Psychology' => t('Psychology'),
|
||
|
'Religious Studies' => t('Religious Studies'),
|
||
|
'Sociology/Anthropology' => t('Sociology/Anthropology'),
|
||
|
'Other' => t('Other (Please add to the Notes field)'),
|
||
|
);
|
||
|
$form['patron_type'] = array(
|
||
|
'#type' => 'select',
|
||
|
'#title' => t('Your Patron Type'),
|
||
|
'#options' => $patron_types,
|
||
|
'#required' => TRUE,
|
||
|
);
|
||
|
$form['Department'] = array(
|
||
|
'#type' => 'select',
|
||
|
'#title' => t('Your Department'),
|
||
|
'#options' => $departments,
|
||
|
'#required' => TRUE,
|
||
|
);
|
||
|
$form['DeliveryAddress'] = array(
|
||
|
'#type' => 'textfield',
|
||
|
'#title' => t('Your Email'),
|
||
|
'#size' => 50,
|
||
|
|
||
|
'#required' => TRUE,
|
||
|
);
|
||
|
$form['InstitutionName'] = array(
|
||
|
'#type' => 'textfield',
|
||
|
'#title' => t('Name of Institution'),
|
||
|
'#size' => 50,
|
||
|
'#default_value' => 'University of Prince Edward Island',
|
||
|
'#required' => TRUE,
|
||
|
);
|
||
|
$form['LibraryName'] = array(
|
||
|
'#type' => 'textfield',
|
||
|
'#title' => t('Name of Institution'),
|
||
|
'#size' => 50,
|
||
|
'#default_value' => 'Robertson Library',
|
||
|
'#required' => TRUE,
|
||
|
);
|
||
|
$form['notes'] = array(
|
||
|
'#type' => 'textarea',
|
||
|
'#title' => t('Notes'),
|
||
|
'#size' => 50,
|
||
|
'#required' => FALSE,
|
||
|
);
|
||
|
$form['certify'] = array(
|
||
|
'#type' => 'checkbox',
|
||
|
'#description' => 'I hereby certify that this item is being sought for a fair dealing purpose and any copying will be in accordance with the Copyright Act. ',
|
||
|
'#size' => 50,
|
||
|
'#required' => TRUE,
|
||
|
);
|
||
|
$form['submit'] = array(
|
||
|
'#type' => 'submit',
|
||
|
'#value' => 'Submit',
|
||
|
);
|
||
|
|
||
|
return $form;
|
||
|
|
||
|
}
|
||
|
|
||
|
|
||
|
/**
|
||
|
* The bibliographic portion of the ILL form.
|
||
|
*
|
||
|
* @param array $form
|
||
|
* An array representing a Drupal form.
|
||
|
* @param array $form_state
|
||
|
* An array containing the Drupal form state.
|
||
|
*
|
||
|
* @return array
|
||
|
* An array representing the bibliographic form.
|
||
|
*/
|
||
|
function upei_roblib_ill_request_form($form, &$form_state) {
|
||
|
module_load_include('inc', 'upei_roblib_ill', 'includes/utilities');
|
||
|
$form['#prefix'] = '<div id="upei-roblib-ill-request-form">';
|
||
|
$form['#suffix'] = '</div>';
|
||
|
$genre = empty(upei_roblib_ill_get_request_variable('genre')) ? 'article' : upei_roblib_ill_get_request_variable('genre');
|
||
|
//$values = isset($form_state['multistep_values']['upei_roblib_ill_request']) ? orm_state['multistep_values']['ra$fte_the_room'] : array();
|
||
|
$form['Genre'] = array(
|
||
|
'#type' => 'select',
|
||
|
'#title' => t('Genre'),
|
||
|
'#default_value' => $genre,
|
||
|
'#options' => array(
|
||
|
'article' => t('Journal Article'),
|
||
|
'book' => t('Book'),
|
||
|
'chapter' => t('Book Chapter'),
|
||
|
),
|
||
|
'#required' => TRUE,
|
||
|
);
|
||
|
$form['doi'] = array(
|
||
|
'#type' => 'textfield',
|
||
|
'#title' => t('DOI'),
|
||
|
'#default_value' => upei_roblib_ill_get_request_variable('doi'),
|
||
|
'#description' => 'DOI, if you provide a DOI we will attempt to lookup the record for you',
|
||
|
'#size' => 50,
|
||
|
'#states' => array(
|
||
|
'visible' => array(
|
||
|
':input[name="Genre"]' => array('value' => 'article'),
|
||
|
),
|
||
|
),
|
||
|
'#required' => FALSE,
|
||
|
);
|
||
|
$form['doi_button'] = array(
|
||
|
'#type' => 'submit',
|
||
|
'#value' => 'lookup DOI',
|
||
|
'#ajax' => array(
|
||
|
'callback' => 'upei_roblib_ill_doi_callback',
|
||
|
'method' => 'replace',
|
||
|
'wrapper' => 'upei-roblib-ill-request-form',
|
||
|
'effect' => 'fade',
|
||
|
),
|
||
|
'#states' => array(
|
||
|
'visible' => array(
|
||
|
':input[name="Genre"]' => array('value' => 'article'),
|
||
|
),
|
||
|
),
|
||
|
'#required' => FALSE,
|
||
|
);
|
||
|
$form['Title'] = array(
|
||
|
'#type' => 'textfield',
|
||
|
'#title' => t('Source Title'),
|
||
|
'#default_value' => upei_roblib_ill_get_request_variable('title'),
|
||
|
'#description' => 'Journal or Book Title',
|
||
|
'#size' => 50,
|
||
|
'#required' => FALSE,
|
||
|
);
|
||
|
$form['ArticleTitle'] = array(
|
||
|
'#type' => 'textfield',
|
||
|
'#title' => t('Title'),
|
||
|
'#default_value' => upei_roblib_ill_get_request_variable('atitle'),
|
||
|
'#description' => 'Article or Chapter Title',
|
||
|
'#size' => 50,
|
||
|
'#states' => array(
|
||
|
'visible' => array(
|
||
|
':input[name="Genre"]' => array('value' => 'article'),
|
||
|
),
|
||
|
),
|
||
|
'#required' => FALSE,
|
||
|
);
|
||
|
|
||
|
$form['ISSN'] = array(
|
||
|
'#type' => 'textfield',
|
||
|
'#title' => t('ISSN'),
|
||
|
'#default_value' => upei_roblib_ill_get_request_variable('issn'),
|
||
|
'#size' => 50,
|
||
|
'#states' => array(
|
||
|
'visible' => array(
|
||
|
':input[name="Genre"]' => array('value' => 'article'),
|
||
|
),
|
||
|
),
|
||
|
'#required' => FALSE,
|
||
|
);
|
||
|
$form['ArticleAuthor'] = array(
|
||
|
'#type' => 'textfield',
|
||
|
'#title' => t('Author'),
|
||
|
'#default_value' => upei_roblib_ill_get_request_variable('author'),
|
||
|
'#size' => 50,
|
||
|
'#required' => FALSE,
|
||
|
'#description' => 'Article or Chapter Author',
|
||
|
'#states' => array(
|
||
|
'invisible' => array(
|
||
|
':input[name="Genre"]' => array('value' => 'book'),
|
||
|
),
|
||
|
),
|
||
|
);
|
||
|
$form['Author'] = array(
|
||
|
'#type' => 'textfield',
|
||
|
'#title' => t('Book Author'),
|
||
|
'#default_value' => upei_roblib_ill_get_request_variable('author'),
|
||
|
'#size' => 50,
|
||
|
'#required' => FALSE,
|
||
|
'#states' => array(
|
||
|
'invisible' => array(
|
||
|
':input[name="Genre"]' => array('value' => t('article')),
|
||
|
),
|
||
|
),
|
||
|
);
|
||
|
$form['ISBN'] = array(
|
||
|
'#type' => 'textfield',
|
||
|
'#title' => t('ISBN'),
|
||
|
'#default_value' => upei_roblib_ill_get_request_variable('isbn'),
|
||
|
'#size' => 50,
|
||
|
'#states' => array(
|
||
|
'invisible' => array(
|
||
|
':input[name="Genre"]' => array('value' => 'article'),
|
||
|
),
|
||
|
),
|
||
|
'#required' => FALSE,
|
||
|
);
|
||
|
$form['SubTitle'] = array(
|
||
|
'#type' => 'hidden',
|
||
|
'#title' => t('Sub Title'),
|
||
|
'#default_value' => upei_roblib_ill_get_request_variable('ubtitle'),
|
||
|
'#size' => 50,
|
||
|
'#required' => FALSE,
|
||
|
);
|
||
|
$form['SeriesTitle'] = array(
|
||
|
'#type' => 'hidden',
|
||
|
'#title' => t('Series Title'),
|
||
|
'#default_value' => upei_roblib_ill_get_request_variable('stitle'),
|
||
|
'#size' => 50,
|
||
|
'#required' => FALSE,
|
||
|
);
|
||
|
|
||
|
$form['Volume'] = array(
|
||
|
'#type' => 'textfield',
|
||
|
'#title' => t('Volume'),
|
||
|
'#default_value' => upei_roblib_ill_get_request_variable('volume'),
|
||
|
'#size' => 50,
|
||
|
'#required' => FALSE,
|
||
|
'#states' => array(
|
||
|
'visible' => array(
|
||
|
':input[name="Genre"]' => array('value' => 'article'),
|
||
|
),
|
||
|
),
|
||
|
);
|
||
|
$form['Issue'] = array(
|
||
|
'#type' => 'textfield',
|
||
|
'#title' => t('Issue'),
|
||
|
'#default_value' => upei_roblib_ill_get_request_variable('issue'),
|
||
|
'#size' => 50,
|
||
|
'#required' => FALSE,
|
||
|
'#states' => array(
|
||
|
'visible' => array(
|
||
|
':input[name="Genre"]' => array('value' => 'article'),
|
||
|
),
|
||
|
),
|
||
|
);
|
||
|
$form['ImageOrPageNumber'] = array(
|
||
|
'#type' => 'textfield',
|
||
|
'#title' => t('Start Page'),
|
||
|
'#default_value' => upei_roblib_ill_get_request_variable('spage'),
|
||
|
'#size' => 50,
|
||
|
'#required' => FALSE,
|
||
|
'#states' => array(
|
||
|
'invisible' => array(
|
||
|
':input[name="Genre"]' => array('value' => 'book'),
|
||
|
),
|
||
|
),
|
||
|
);
|
||
|
$form['PagesRequested'] = array(
|
||
|
'#type' => 'textfield',
|
||
|
'#title' => t('End Page'),
|
||
|
'#default_value' => upei_roblib_ill_get_request_variable('epage'),
|
||
|
'#size' => 50,
|
||
|
'#required' => FALSE,
|
||
|
'#states' => array(
|
||
|
'invisible' => array(
|
||
|
':input[name="Genre"]' => array('value' => 'book'),
|
||
|
),
|
||
|
),
|
||
|
);
|
||
|
$form['Date'] = array(
|
||
|
'#type' => 'textfield',
|
||
|
'#title' => t('Date'),
|
||
|
'#default_value' => upei_roblib_ill_get_request_variable('date'),
|
||
|
'#size' => 50,
|
||
|
'#required' => FALSE,
|
||
|
);
|
||
|
$form['next'] = array(
|
||
|
'#type' => 'submit',
|
||
|
'#value' => t('Next')
|
||
|
);
|
||
|
$form_state['stage'] = 'upei_roblib_ill_auth';
|
||
|
return $form;
|
||
|
|
||
|
}
|