function lti_tool_provider_outcomes_create_outcome in LTI Tool Provider 7
Create or update an Outcome.
This function is invoked during LTI launch. If record exists, it updates the outcome. If record does not exist, a new record is created.
Parameters
string $result_sourcedid: Result source DID of the request.
string $context_id: Context ID of the incoming request.
string $resource_id: Resource Link ID of the request.
int $user_id: User Entity UID.
2 calls to lti_tool_provider_outcomes_create_outcome()
- lti_tool_provider_outcomes_lti_tool_provider_create_account_alter in lti_tool_provider_outcomes/
lti_tool_provider_outcomes.module - Implements hook_lti_tool_provider_create_account_alter().
- lti_tool_provider_outcomes_lti_tool_provider_launch_alter in lti_tool_provider_outcomes/
lti_tool_provider_outcomes.module - Implements hook_lti_tool_provider_launch_alter().
File
- lti_tool_provider_outcomes/
lti_tool_provider_outcomes.module, line 188
Code
function lti_tool_provider_outcomes_create_outcome($result_sourcedid, $context_id, $resource_id, $user_id) {
$results_arr = array();
$query = new EntityFieldQuery();
$query
->entityCondition('entity_type', 'lti_tool_provider_outcomes')
->propertyCondition('lti_tool_provider_outcomes_user_id', $user_id)
->propertyCondition('lti_tool_provider_outcomes_resource_entity_id_fk', $resource_id);
$result = $query
->execute();
if (!empty($result)) {
// Outcome already exists.
$entities = entity_load('lti_tool_provider_outcomes', array_keys($result['lti_tool_provider_outcomes']));
foreach ($entities as $entity) {
$entity->lti_tool_provider_outcomes_result_sourcedid = $result_sourcedid;
entity_get_controller('lti_tool_provider_outcomes')
->save($entity);
}
}
else {
$entity = new stdClass();
$entity->lti_tool_provider_outcomes_id = 0;
$entity->lti_tool_provider_outcomes_resource_entity_id_fk = $resource_id;
$entity->lti_tool_provider_outcomes_result_sourcedid = $result_sourcedid;
$entity->lti_tool_provider_outcomes_user_id = $user_id;
$entity->lti_tool_provider_outcomes_score = '0.0';
entity_get_controller('lti_tool_provider_outcomes')
->save($entity);
}
drupal_set_message(t('Successfully updated outcome'));
}