You are here

function library_transaction_form in Library 5.2

Same name and namespace in other branches
  1. 6.2 library.pages.inc \library_transaction_form()
  2. 6 library.pages.inc \library_transaction_form()
  3. 7 library.pages.inc \library_transaction_form()
1 string reference to 'library_transaction_form'
library_menu in ./library.module
Implementation of hook_menu().

File

./library.pages.inc, line 4

Code

function library_transaction_form(&$form_state, $item = NULL) {
  $aid = arg(3);
  $patron_id = arg(4);
  $form = array();
  global $user;
  if ($aid) {
    $action = library_get_action($aid);
  }
  if ($patron_id) {
    $patron = node_load($patron_id);
  }
  $action_list = array();
  $aids = array();
  if ($item) {
    if ($item->in_circulation == LIBRARY_REFERENCE_ONLY) {
      $action_array = variable_get('library_links_display_reference', array());
    }
    else {
      if ($item->library_status == LIBRARY_ITEM_AVAILABLE) {
        $action_array = variable_get('library_links_display_available', array());
      }
      else {
        $action_array = variable_get('library_links_display_unavailable', array());
      }
    }
    foreach ($action_array as $aid) {
      $aids[] = $aid;
    }
  }
  foreach (library_actions($aids, $user) as $key => $value) {
    $action_list[$key] = $value['name'];
  }
  if (user_access('administer transactions')) {
    $form['action_aid'] = array(
      '#type' => 'select',
      '#title' => t('Action'),
      '#default_value' => $action->aid ? $action->aid : '',
      '#options' => $action_list,
      '#required' => TRUE,
    );
  }
  else {
    $form['action_aid'] = array(
      '#type' => 'select',
      '#title' => t('Action'),
      '#default_value' => $action->aid ? $action->aid : '',
      '#options' => array(
        $action->aid => $action->name,
      ),
      '#required' => TRUE,
      '#disabled' => TRUE,
    );
  }
  $form['item_id'] = library_autocomplete_input($item);
  if (user_access('view patron content')) {
    $form['patron_id'] = array(
      '#type' => 'textfield',
      '#title' => t('Patron'),
      '#default_value' => $patron ? $patron->title . ' [nid:' . $patron->nid . ']' : '',
      '#autocomplete_path' => 'patrons/autocomplete',
      '#required' => TRUE,
    );
  }
  elseif ($patron) {
    $form['patron_id'] = array(
      '#type' => 'item',
      '#title' => t('Patron'),
      '#value' => $patron ? $patron->title . ' [nid:' . $patron->nid . ']' : '',
    );
  }
  else {
    $user_patron = patron_load_by_uid($user->uid);
    if (is_object($user_patron)) {
      $form['patron_id'] = array(
        '#type' => 'item',
        '#title' => t('Patron'),
        '#value' => $user_patron ? $user_patron->title . ' [nid:' . $user_patron->nid . ']' : '',
      );
    }
    else {
      form_set_error('', t('You do not have sufficient permission to perform a library transaction.'));
    }
  }
  $form['notes'] = array(
    '#type' => 'textarea',
    '#title' => t('Message'),
    '#required' => FALSE,
    '#maxlength' => 250,
    '#default_value' => '',
    '#description' => t('If you are reserving an item, make sure to include the date and time you would like it to be ready.'),
  );
  $form['submit'] = array(
    '#type' => 'submit',
    '#value' => t('Save'),
  );
  $form['#validate'][] = 'library_transaction_form_validate';
  $form['#submit'][] = 'library_transaction_form_submit';
  return $form;
}