Move function to get session points to GamificationUtils - refs BT#9901 #TMI

1.10.x
Angel Fernando Quiroz Campos 11 years ago
parent 5000347932
commit 02973c5fb0
  1. 49
      main/inc/lib/GamificationUtils.php
  2. 37
      main/inc/lib/sessionmanager.lib.php
  3. 2
      main/inc/lib/userportal.lib.php

@ -29,12 +29,55 @@ class GamificationUtils
}
foreach ($sessions as $session) {
$points += SessionManager::getPointsFromGamification(
$session['id']
);
$points += self::getSessionPoints($session['id'], $userId);
}
return $points;
}
/**
* Get the achieved points for a user in a session
* @param int $sessionId The session id
* @param int $userId The user ID
* @return int The count of points
*/
public static function getSessionPoints($sessionId, $userId)
{
$totalPoints = 0;
$courses = SessionManager::get_course_list_by_session_id($sessionId);
if (empty($courses)) {
return 0;
}
foreach ($courses as $course) {
$learnPathListObject = new LearnpathList(
$userId,
$course['code'],
$sessionId
);
$learnPaths = $learnPathListObject->get_flat_list();
$score = 0;
foreach ($learnPaths as $learnPathId => $learnPathInfo) {
if (empty($learnPathInfo['seriousgame_mode'])) {
continue;
}
$learnPath = new learnpath(
$course['code'],
$learnPathId,
$userId
);
$score += $learnPath->getCalculateScore($sessionId);
}
$totalPoints += $score;
}
return $totalPoints / count($courses);
}
}

@ -7041,41 +7041,4 @@ class SessionManager
return $progress / count($courses);
}
/**
* Get the achieved points in a session when gamification mode is activated
* @param int $sessionId The session id
* @return int The count of points
*/
public static function getPointsFromGamification($sessionId)
{
$totalPoints = 0;
$userId = api_get_user_id();
$courses = SessionManager::get_course_list_by_session_id($sessionId);
if (empty($courses)) {
return 0;
}
foreach ($courses as $course) {
$learnPathListObject = new LearnpathList($userId, $course['code'], $sessionId);
$learnPaths = $learnPathListObject->get_flat_list();
$score = 0;
foreach ($learnPaths as $learnPathId => $learnPathInfo) {
if (empty($learnPathInfo['seriousgame_mode'])) {
continue;
}
$learnPath = new learnpath($course['code'], $learnPathId, $userId);
$score += $learnPath->getCalculateScore($sessionId);
}
$totalPoints += $score;
}
return $totalPoints / count($courses);
}
}

@ -1264,7 +1264,7 @@ class IndexManager
if ($gamificationModeIsActive) {
$params['stars'] = SessionManager::getNumberOfStarsFromGamification($params['id']);
$params['progress'] = SessionManager::getProgressFromGamification($params['id']);
$params['points'] = SessionManager::getPointsFromGamification($params['id']);
$params['points'] = GamificationUtils::getSessionPoints($params['id'], $this->user_id);
}
$this->tpl->assign('session', $params);

Loading…
Cancel
Save