You are here

function lti_tool_provider_outcomes_outcomes_manage_form in LTI Tool Provider 7

Form function for managing outcomes.

Parameters

array $form: The form.

array $form_state: The form state.

string $resource: A Resource.

Return value

array The outcomes manage form array.

1 string reference to 'lti_tool_provider_outcomes_outcomes_manage_form'
lti_tool_provider_outcomes_menu in lti_tool_provider_outcomes/lti_tool_provider_outcomes.module
Implements hook_menu().

File

lti_tool_provider_outcomes/lti_tool_provider_outcomes.admin.inc, line 285
Admin forms and menu page callbacks for LTI Tool Provider module.

Code

function lti_tool_provider_outcomes_outcomes_manage_form($form, &$form_state, $resource = NULL) {
  $form = array();
  if (isset($_SESSION['lti_tool_provider_context_info'])) {
    $consumer_id = $_SESSION['lti_tool_provider_context_info']['consumer_id'];
    $context_id = $_SESSION['lti_tool_provider_context_info']['context_id'];
    $resource_link_id = $_SESSION['lti_tool_provider_context_info']['resource_link_id'];
    $consumer = lti_tool_provider_consumer_load($consumer_id);
    if (!isset($resource)) {
      $resource = lti_tool_provider_outcomes_get_resource($consumer_id, $context_id, $resource_link_id);
    }
    $query = db_select('lti_tool_provider_outcomes', 'o')
      ->extend('PagerDefault');
    $query
      ->fields('o');
    $result = $query
      ->limit(15)
      ->condition('lti_tool_provider_outcomes_resource_entity_id_fk', $resource->lti_tool_provider_outcomes_resource_id, '=')
      ->execute();
    $form['title'] = array(
      '#type' => 'item',
      '#markup' => t('Consumer: <b>@consumer</b>', array(
        '@consumer' => $consumer->lti_tool_provider_consumer_consumer,
      )),
    );
    $form['resource_title'] = array(
      '#type' => 'item',
      '#markup' => t('Outcomes record for resource : <b>@resource</b>', array(
        '@resource' => $_SESSION['lti_tool_provider_context_info']['resource_link_title'],
      )),
    );
    $outcomes = array();
    $form['resource'] = array(
      '#type' => 'value',
      '#value' => $resource,
    );
    $form['table'] = array(
      '#tree' => TRUE,
      '#theme' => 'table',
      '#rows' => array(),
      '#header' => array(
        t('No'),
        t('Username'),
        t('Current Score'),
        t('Date Joined'),
        t('Last sent'),
        t('Score Last updated'),
      ),
      '#empty' => t('No records found.'),
    );
    $page = isset($_GET['page']) ? $_GET['page'] * 15 : 0;
    $rows = 1;
    $table_row_counter = 0;
    $rows_arr = array();
    foreach ($result as $outcome) {
      $no = array(
        '#type' => 'item',
        '#markup' => $rows + $page,
      );
      $username = array(
        '#type' => 'item',
        '#markup' => l(lti_tool_provider_outcomes_get_username($outcome->lti_tool_provider_outcomes_user_id), 'user/' . $outcome->lti_tool_provider_outcomes_user_id),
      );
      $score_arr = lti_tool_provider_outcomes_create_score_form_params($resource->lti_tool_provider_outcomes_resource_score_datatype, $resource->lti_tool_provider_outcomes_resource_score_datatype_base_value, $outcome);
      $date_joined = array(
        '#type' => 'item',
        '#markup' => '<div style=" white-space:normal;">' . format_date($outcome->lti_tool_provider_outcomes_date_joined) . "</div>",
      );
      $last_sent = array(
        '#type' => 'item',
        '#markup' => '<div style=" white-space:normal;">' . (isset($outcome->lti_tool_provider_outcomes_timestamp) ? format_date($outcome->lti_tool_provider_outcomes_timestamp) : 'Score yet to be sent') . "</div>",
      );
      $last_updated = array(
        '#type' => 'item',
        '#markup' => '<div style=" white-space:normal;">' . (isset($outcome->lti_tool_provider_outcomes_last_updated) ? format_date($outcome->lti_tool_provider_outcomes_last_updated) : 'Yet to be updated') . "</div>",
      );
      $form['table'][] = array(
        'no' => &$no,
        'username' => &$username,
        'score' => &$score_arr,
        'date_joined' => &$date_joined,
        'last_sent' => &$last_sent,
        'last_updated' => &$last_updated,
      );
      $form['table']['#rows'][] = array(
        array(
          'data' => &$no,
        ),
        array(
          'data' => &$username,
        ),
        array(
          'data' => &$score_arr,
          "width" => '100px',
        ),
        array(
          'data' => &$date_joined,
        ),
        array(
          'data' => &$last_sent,
        ),
        array(
          'data' => &$last_updated,
        ),
      );
      unset($no);
      unset($username);
      unset($score_arr);
      unset($date_joined);
      unset($last_sent);
      unset($last_updated);
      $rows++;
      $outcomes[] = $outcome;
    }
    $form['outcomes'] = array(
      '#type' => 'value',
      '#value' => $outcomes,
    );
    $form['table_pager'] = array(
      '#theme' => 'pager',
    );
    $form['submit'] = array(
      '#type' => 'submit',
      '#value' => t('Save'),
      '#submit' => array(
        'lti_tool_provider_outcomes_outcomes_manage_form_submit',
      ),
    );
    $form['back'] = array(
      '#type' => 'button',
      '#value' => t('Cancel'),
      '#executes_submit_callback' => TRUE,
      '#submit' => array(
        'lti_tool_provider_outcomes_outcomes_manage_form_cancel',
      ),
    );
  }
  else {
    $form['message'] = array(
      '#type' => 'item',
      '#markup' => t('<b> This is not a valid LTI session</b>'),
    );
  }
  return $form;
}