You are here

function lti_tool_provider_outcomes_get_score in LTI Tool Provider 7

Get a users outcomes score.

Parameters

$user_id: The user, defaults to current user if not specified.

Return value

string|NULL Score of the current user based on the LTI session.

File

lti_tool_provider_outcomes/lti_tool_provider_outcomes.module, line 365

Code

function lti_tool_provider_outcomes_get_score($user_id = NULL) {
  if (isset($_SESSION['lti_tool_provider_context_info'])) {
    if ($user_id == NULL) {
      global $user;
      $user_id = $user->uid;
    }
    $entity_type = 'lti_tool_provider_outcomes';
    $resource = lti_tool_provider_outcomes_get_resource($_SESSION['lti_tool_provider_context_info']['consumer_id'], $_SESSION['lti_tool_provider_context_info']['context_id'], $_SESSION['lti_tool_provider_context_info']['resource_link_id']);
    if (isset($resource)) {
      $query = new EntityFieldQuery();
      $query
        ->entityCondition('entity_type', $entity_type)
        ->propertyCondition('lti_tool_provider_outcomes_user_id', $user_id)
        ->propertyCondition('lti_tool_provider_outcomes_resource_entity_id_fk', $resource->lti_tool_provider_outcomes_resource_id);
      $result = $query
        ->execute();
      if (!empty($result[$entity_type])) {
        $outcomes = entity_load($entity_type, array_keys($result[$entity_type]));
        foreach ($outcomes as $outcome) {
          return $outcome->lti_tool_provider_outcomes_score;
        }
      }
      else {
        drupal_set_message(t('Unable to retrieve score, please contact your local adminstrator'));
      }
    }
    else {
      drupal_set_message(t('Unable to retrieve score, please contact your local adminstrator'));
    }
  }
  else {
    drupal_set_message(t('Unable to get score: No LTI session'), 'error');
  }
  return NULL;
}