initialisation reste l'affichage

This commit is contained in:
Fred Tempez 2024-10-20 17:59:08 +02:00
parent 4c88d7a71d
commit a634445dde
3 changed files with 54 additions and 7 deletions

View File

@ -511,10 +511,10 @@ class core extends common
* */
if (
$this->isConnected() === false
and self::$siteContent !== 'home'
$this->isConnected() === false
and self::$siteContent !== 'home'
and $this->getData(['course', self::$siteContent, 'enrolment']) > 0
) {
) {
$_SESSION['ZWII_SITE_CONTENT'] = 'home';
header(header: 'Location:' . helper::baseUrl(true) . 'swap/' . self::$siteContent);
exit();
@ -573,6 +573,20 @@ class core extends common
$this->getData(['page', $this->getUrl(0), 'title']);
}
/**
* Récupère les statistiques de l'utilisateur non admin
* en dehors de home
* et si la connextion est nécessaire et que le membre est connecté
*
*/
if (
$this->isConnected() === true
and self::$siteContent !== 'home'
and $this->getData(['course', self::$siteContent, 'enrolment']) > 0
) {
$course = new course();
self::$userProgress = $course->userProgress(self::$siteContent, $this->getUser('id'));
}
// Importe le style de la page principale
$inlineStyle[] = $this->getData(['page', $this->getUrl(0), 'css']) === null ? '' : $this->getData(['page', $this->getUrl(0), 'css']);

View File

@ -174,8 +174,11 @@ class common
public static $dialog;
// Langue de l'interface sélectionnée
public static $i18nUI = 'fr_FR';
// Langues de contenu
// Espace, contenu sélectionné
public static $siteContent = 'home';
// Progression d'un participant
public static $userProgress = '';
public static $languages = [
'de' => 'Deutsch',

View File

@ -1358,6 +1358,9 @@ class course extends common
// Liste des inscrits dans le contenu sélectionné.
$users = $this->getData(['enrolment', $courseId]);
// Obtient les statistiques de l'ensemble de la cohorte
$reports = $this->getReport($courseId);
if (is_array($users)) {
// Tri du tableau par défaut par $userId
ksort($users);
@ -1388,8 +1391,8 @@ class course extends common
}
// Progression
$viewPages = $this->getData(['enrolment', $courseId, $userId, 'history']) !== null ?
count(array_keys($this->getData(['enrolment', $courseId, $userId, 'history']))) :
$viewPages = array_key_exists($userId, $reports) ?
count($reports[$userId]) :
0;
// Construction du tableau
@ -2052,6 +2055,33 @@ class course extends common
}
}
/**
* Méthode pour afficher la progression dans les espaces.
*
* @param mixed $courseId
* @param mixed $userId
* @return string Ratio de pages vues
*/
public function userProgress($courseId, $userId): string
{
// Obtient les statistiques de l'ensemble de la cohorte
$reports = $this->getReport($courseId, $userId);
// Nombre de pages dans l'espace
$viewPages = array_key_exists($userId, $reports) ?
count($reports[$userId]) :
0;
// Nombre de pages vues
$sumPages = $this->countPages($this->getData(['page']));
// Calcule le ratio
$ratio = number_format(min(round(($viewPages * 100) / $sumPages, 1) / 100, 1), 2, ',');
return $ratio;
}
/**
*
* Compte les pages d'un espace
@ -2116,7 +2146,7 @@ class course extends common
/**
* Lit le contenu des fichiers de traces au format CS et renvoie un tableau associatif
*/
public function getReport($courseId, $userId = null)
private function getReport($courseId, $userId = null)
{
$data = [];