function lti_tool_provider_outcomes_send_results in LTI Tool Provider 7
Send results to the Consumer.
Parameters
string $mode: The scope of results to retrieve.
string $return_url: To customise return page when URL is accessed.
1 string reference to 'lti_tool_provider_outcomes_send_results'
- 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.sync.inc, line 18
Code
function lti_tool_provider_outcomes_send_results($mode, $return_url = '') {
global $user;
// Consumer_id based on the context.
$uid = $user->uid;
$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);
$url = $consumer->lti_tool_provider_consumer_outcomes_url;
if (!isset($url)) {
drupal_set_message(t('Unable to send results. No Outcome URL is avaliable'), 'error');
drupal_goto($return_url);
}
switch ($mode) {
case 'user':
// For outcome of current user.
$resource = lti_tool_provider_outcomes_get_resource($consumer_id, $context_id, $resource_link_id);
lti_tool_provider_outcomes_send_outcome_for_user($resource, $consumer, $uid);
drupal_goto($return_url);
// For all outcomes in current resource.
case 'resource':
$resource = lti_tool_provider_outcomes_get_resource($consumer_id, $context_id, $resource_link_id);
$batch_send = array(
'title' => t('Sending outcomes.'),
'operations' => array(
array(
'lti_tool_provider_outcomes_batch_send',
array(
$resource,
$consumer,
),
),
),
'finished' => 'lti_tool_provider_outcomes_batch_finished',
'init_message' => t('Sending outcomes.'),
'error_message' => t('Encountered an error while sending outcomes.'),
'file' => drupal_get_path('module', 'lti_tool_provider_outcomes') . '/lti_tool_provider_outcomes.sync.inc',
);
batch_set($batch_send);
batch_process($return_url);
// For all outcomes of all resources in current context.
case 'context':
$resources = lti_tool_provider_outcomes_get_resources_for_context($consumer_id, $context_id);
$operations = array();
foreach ($resources as $resource) {
$operations[] = array(
'lti_tool_provider_outcomes_batch_send',
array(
$resource,
$consumer,
),
);
}
$batch_send = array(
'title' => t('Sending outcomes.'),
'operations' => $operations,
'finished' => 'lti_tool_provider_outcomes_batch_finished',
'init_message' => t('Sending outcomes.'),
'error_message' => t('Encountered an error while sending outcomes.'),
'file' => drupal_get_path('module', 'lti_tool_provider_outcomes') . '/lti_tool_provider_outcomes.sync.inc',
);
batch_set($batch_send);
batch_process($return_url);
}
}