function _opigno_tincan_learning_path_send_statemets_certificate in Opigno TinCan API 8
Same name and namespace in other branches
- 3.x modules/opigno_tincan_learning_path/opigno_tincan_learning_path.module \_opigno_tincan_learning_path_send_statemets_certificate()
Sends statements certificate.
Parameters
\Drupal\group\Entity\Group $group: Group.
Throws
\Exception
1 call to _opigno_tincan_learning_path_send_statemets_certificate()
- _opigno_tincan_learning_path_create_and_send_training_statements in modules/
opigno_tincan_learning_path/ opigno_tincan_learning_path.module - Creates and sends training statement.
File
- modules/
opigno_tincan_learning_path/ opigno_tincan_learning_path.module, line 158 - Contains opigno_tincan_learning_path.module.
Code
function _opigno_tincan_learning_path_send_statemets_certificate(Group $group) {
/****
* - When user get a certificate
* Actor: user
* Verb: activitystrea.ms/received
* Object: Opigno/Certificate
* Result: None
* Context: Training
*/
$certificate_id = $group
->get('field_certificate')->target_id;
if (!$certificate_id) {
// There is no certificate.
return;
}
$certificate = OpignoCertificate::load($certificate_id);
$statement = new Statement();
// Set Actor.
OpignoTinCanApiStatements::setActor($statement);
// Set verb.
OpignoTinCanApiStatements::setVerb($statement, OpignoTincanApiTinCanVerbs::$received);
// Set certificate entity.
$url = Url::fromRoute('entity.opigno_certificate.canonical', [
'opigno_certificate' => $certificate
->id(),
], [
'absolute' => TRUE,
])
->toString();
$statement
->setObject([
'id' => $url,
'definition' => [
'name' => [
'en-US' => 'Certificate for: ' . $group
->label(),
],
'type' => OpignoTincanApiTinCanActivityDefinitionTypes::$certificate,
],
]);
// Context creation.
$context = new Context();
// Get parents.
$parent_ids = [
$group
->id(),
];
OpignoTinCanApiStatements::contextSetGrouping($context, $parent_ids, OpignoTincanApiTinCanActivityDefinitionTypes::$group);
// Set statement context.
$statement
->setContext($context);
// Sending statement.
OpignoTinCanApiStatements::sendStatement($statement);
}