Compare commits
5 Commits
20c09d8b0a
...
a8891b310f
Author | SHA1 | Date | |
---|---|---|---|
a8891b310f | |||
59de6bc32f | |||
3a25c33e3a | |||
eff57bf0ab | |||
a634445dde |
@ -1,4 +1,4 @@
|
|||||||
# ZwiiCampus 1.14.00
|
# ZwiiCampus 1.14.05
|
||||||
|
|
||||||
ZwiiCampus (Learning Management System) est logiciel auteur destiné à mettre en ligne des tutoriels. Il dispose de plusieurs modalités d'ouverture et d'accès des contenus. Basé sur la version 13 du CMS Zwii, la structure logicielle est solide, le framework de Zwii est éprouvé.
|
ZwiiCampus (Learning Management System) est logiciel auteur destiné à mettre en ligne des tutoriels. Il dispose de plusieurs modalités d'ouverture et d'accès des contenus. Basé sur la version 13 du CMS Zwii, la structure logicielle est solide, le framework de Zwii est éprouvé.
|
||||||
|
|
||||||
|
@ -519,6 +519,22 @@ class core extends common
|
|||||||
header(header: 'Location:' . helper::baseUrl(true) . 'swap/' . self::$siteContent);
|
header(header: 'Location:' . helper::baseUrl(true) . 'swap/' . self::$siteContent);
|
||||||
exit();
|
exit();
|
||||||
}
|
}
|
||||||
|
/**
|
||||||
|
* 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é
|
||||||
|
* stocke la progression dans la base des inscriptions
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
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'));
|
||||||
|
$this->setData(['enrolment', self::$siteContent, $this->getUser('id'), 'progress', self::$userProgress ]);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -51,7 +51,7 @@ class common
|
|||||||
const ACCESS_TIMER = 1800;
|
const ACCESS_TIMER = 1800;
|
||||||
|
|
||||||
// Numéro de version
|
// Numéro de version
|
||||||
const ZWII_VERSION = '1.14.04';
|
const ZWII_VERSION = '1.14.05';
|
||||||
|
|
||||||
// URL autoupdate
|
// URL autoupdate
|
||||||
const ZWII_UPDATE_URL = 'https://forge.chapril.org/ZwiiCMS-Team/campus-update/raw/branch/master/';
|
const ZWII_UPDATE_URL = 'https://forge.chapril.org/ZwiiCMS-Team/campus-update/raw/branch/master/';
|
||||||
@ -174,8 +174,11 @@ class common
|
|||||||
public static $dialog;
|
public static $dialog;
|
||||||
// Langue de l'interface sélectionnée
|
// Langue de l'interface sélectionnée
|
||||||
public static $i18nUI = 'fr_FR';
|
public static $i18nUI = 'fr_FR';
|
||||||
// Langues de contenu
|
|
||||||
|
// Espace, contenu sélectionné
|
||||||
public static $siteContent = 'home';
|
public static $siteContent = 'home';
|
||||||
|
// Progression d'un participant
|
||||||
|
public static $userProgress = '';
|
||||||
|
|
||||||
public static $languages = [
|
public static $languages = [
|
||||||
'de' => 'Deutsch',
|
'de' => 'Deutsch',
|
||||||
|
@ -734,8 +734,16 @@ class course extends common
|
|||||||
$this->getData(['user', $userId, 'tags']),
|
$this->getData(['user', $userId, 'tags']),
|
||||||
template::button('userReport' . $userId, [
|
template::button('userReport' . $userId, [
|
||||||
'href' => helper::baseUrl() . 'course/userReport/' . $courseId . '/' . $userId,
|
'href' => helper::baseUrl() . 'course/userReport/' . $courseId . '/' . $userId,
|
||||||
'value' => $viewPages ? min(round(($viewPages * 100) / $sumPages, 1), 100) . ' %' : '0%',
|
/** La lecture de la progression s'effectue selon la nouvelle méthode (progression dans la base des enrolements)
|
||||||
'disable' => empty($viewPages)
|
* Soit avec l'ancienne méthode qui consiste à recalculer la progression.
|
||||||
|
* TRANSITOIRE A SUPPRIMER EN FIN D'ANNEE
|
||||||
|
**/
|
||||||
|
'value' => array_key_exists('progress', $userValue)
|
||||||
|
? $userValue['progress']
|
||||||
|
: ($viewPages ? min(round(($viewPages * 100) / $sumPages, 1), 100) . ' %' : '0%'),
|
||||||
|
'disable' => empty($userValue['datePageView']),
|
||||||
|
//'value' => $viewPages ? min(round(($viewPages * 100) / $sumPages, 1), 100) . ' %' : '0%',
|
||||||
|
//'disable' => empty($viewPages)
|
||||||
]),
|
]),
|
||||||
template::button('userDelete' . $userId, [
|
template::button('userDelete' . $userId, [
|
||||||
'class' => 'userDelete buttonRed',
|
'class' => 'userDelete buttonRed',
|
||||||
@ -1358,6 +1366,9 @@ class course extends common
|
|||||||
// Liste des inscrits dans le contenu sélectionné.
|
// Liste des inscrits dans le contenu sélectionné.
|
||||||
$users = $this->getData(['enrolment', $courseId]);
|
$users = $this->getData(['enrolment', $courseId]);
|
||||||
|
|
||||||
|
// Obtient les statistiques de l'ensemble de la cohorte
|
||||||
|
$reports = $this->getReport($courseId);
|
||||||
|
|
||||||
if (is_array($users)) {
|
if (is_array($users)) {
|
||||||
// Tri du tableau par défaut par $userId
|
// Tri du tableau par défaut par $userId
|
||||||
ksort($users);
|
ksort($users);
|
||||||
@ -1388,8 +1399,8 @@ class course extends common
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Progression
|
// Progression
|
||||||
$viewPages = $this->getData(['enrolment', $courseId, $userId, 'history']) !== null ?
|
$viewPages = array_key_exists($userId, $reports) ?
|
||||||
count(array_keys($this->getData(['enrolment', $courseId, $userId, 'history']))) :
|
count($reports[$userId]) :
|
||||||
0;
|
0;
|
||||||
|
|
||||||
// Construction du tableau
|
// Construction du tableau
|
||||||
@ -1402,7 +1413,14 @@ class course extends common
|
|||||||
: $this->getData(['enrolment', $courseId, $userId, 'lastPageView']) . ' (supprimée)',
|
: $this->getData(['enrolment', $courseId, $userId, 'lastPageView']) . ' (supprimée)',
|
||||||
helper::dateUTF8('%d/%d/%Y', $this->getData(['enrolment', $courseId, $userId, 'datePageView'])),
|
helper::dateUTF8('%d/%d/%Y', $this->getData(['enrolment', $courseId, $userId, 'datePageView'])),
|
||||||
helper::dateUTF8('%H:%M', $this->getData(['enrolment', $courseId, $userId, 'datePageView'])),
|
helper::dateUTF8('%H:%M', $this->getData(['enrolment', $courseId, $userId, 'datePageView'])),
|
||||||
number_format(min(round(($viewPages * 100) / $sumPages, 1) / 100, 1), 2, ',')
|
/** La lecture de la progression s'effectue selon la nouvelle méthode (progression dans la base des enrolements)
|
||||||
|
* Soit avec l'ancienne méthode qui consiste à recalculer la progression.
|
||||||
|
* TRANSITOIRE A SUPPRIMER EN FIN D'ANNEE
|
||||||
|
**/
|
||||||
|
array_key_exists('progress', $userValue)
|
||||||
|
? $userValue['progress']
|
||||||
|
: ($viewPages ? min(round(($viewPages * 100) / $sumPages, 1), 100) . ' %' : '0%'),
|
||||||
|
//number_format(min(round(($viewPages * 100) / $sumPages, 1) / 100, 1), 2, ','),
|
||||||
];
|
];
|
||||||
|
|
||||||
// Synthèse des historiques
|
// Synthèse des historiques
|
||||||
@ -2052,6 +2070,33 @@ class course extends common
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Méthode externe 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
|
* Compte les pages d'un espace
|
||||||
@ -2076,7 +2121,9 @@ class course extends common
|
|||||||
$courseId,
|
$courseId,
|
||||||
$userId,
|
$userId,
|
||||||
[
|
[
|
||||||
'history' => [],
|
'lastPageView' => '',
|
||||||
|
'datePageView' => '',
|
||||||
|
'progress' => '',
|
||||||
]
|
]
|
||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
@ -2116,7 +2163,7 @@ class course extends common
|
|||||||
/**
|
/**
|
||||||
* Lit le contenu des fichiers de traces au format CS et renvoie un tableau associatif
|
* 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 = [];
|
$data = [];
|
||||||
|
Loading…
Reference in New Issue
Block a user