You are here

function lti_tool_provider_outcomes_lti_tool_provider_launch_alter in LTI Tool Provider 7

Implements hook_lti_tool_provider_launch_alter().

File

lti_tool_provider_outcomes/lti_tool_provider_outcomes.module, line 478

Code

function lti_tool_provider_outcomes_lti_tool_provider_launch_alter(&$launch_info, $account) {
  if (isset($launch_info['context_id']) && isset($launch_info['resource_link_id']) && isset($launch_info['resource_link_title'])) {

    // Set the resultvalue_sourcedids in the launch info.
    $launch_info['resultvalue_sourcedids'] = isset($launch_info['ext_ims_lis_resultvalue_sourcedids']) ? $launch_info['ext_ims_lis_resultvalue_sourcedids'] : 'decimal';

    // Create or update the resource.
    $launch_info['resource_id'] = lti_tool_provider_outcomes_get_set_resource($launch_info['consumer_id'], $launch_info['context_id'], $launch_info['resource_link_id'], $launch_info['resource_link_title'], $launch_info['resultvalue_sourcedids']);
    if (isset($launch_info['ext_ims_lis_basic_outcome_url']) || isset($launch_info['lis_outcome_service_url'])) {

      // Update the consumer with the outcomes service url.
      if (isset($launch_info['ext_ims_lis_basic_outcome_url'])) {
        lti_tool_provider_outcomes_update_outcome_service_url($launch_info['consumer_id'], $launch_info['ext_ims_lis_basic_outcome_url'], TRUE);
      }
      else {
        lti_tool_provider_outcomes_update_outcome_service_url($launch_info['consumer_id'], $launch_info['lis_outcome_service_url'], FALSE);
      }
      if (isset($launch_info['lis_result_sourcedid'])) {

        // Create or update the outcome.
        lti_tool_provider_outcomes_create_outcome($launch_info['lis_result_sourcedid'], $launch_info['context_id'], $launch_info['resource_id'], $account->uid);
      }
    }
  }
}