function opigno_learning_path_get_score in Opigno Learning path 8
Same name and namespace in other branches
- 3.x opigno_learning_path.module \opigno_learning_path_get_score()
Calculates learning path score.
Parameters
int $gid: Training group ID.
int $uid: User ID.
bool $current_attempt: Current attempt flag.
int $latest_cert_date: Latest certification date.
Return value
int Score.
Throws
\Drupal\Component\Plugin\Exception\InvalidPluginDefinitionException
\Drupal\Component\Plugin\Exception\PluginException
\Drupal\Component\Plugin\Exception\PluginNotFoundException
4 calls to opigno_learning_path_get_score()
- opigno_learning_path_save_achievements in ./
opigno_learning_path.module - Stores training achievements data.
- Progress::getProgressBuildAchievementsPage in src/
Progress.php - Get get progress for achievements page.
- Progress::getProgressBuildGroupPage in src/
Progress.php - Get get progress for group page.
- StepsBlock::build in src/
Plugin/ Block/ StepsBlock.php - Builds and returns the renderable array for this block plugin.
File
- ./
opigno_learning_path.module, line 3432 - Contains opigno_learning_path.module.
Code
function opigno_learning_path_get_score($gid, $uid, $current_attempt = FALSE, $latest_cert_date = NULL) {
$steps = !$current_attempt ? opigno_learning_path_get_steps($gid, $uid, NULL, $latest_cert_date) : opigno_learning_path_get_steps_current_attempt($gid, $uid);
$mandatory_steps = array_filter($steps, function ($step) {
return $step['mandatory'];
});
if (!empty($mandatory_steps)) {
$score = round(array_sum(array_map(function ($step) {
return $step['best score'];
}, $mandatory_steps)) / count($mandatory_steps));
}
else {
$score = 0;
}
return $score;
}