Compare commits
No commits in common. "a8891b310f164536c19f38123dc45da9ba5bccbb" and "20c09d8b0a61456bdb912d97c0a313fe95587471" have entirely different histories.
a8891b310f
...
20c09d8b0a
@ -1,4 +1,4 @@
|
||||
# ZwiiCampus 1.14.05
|
||||
# ZwiiCampus 1.14.00
|
||||
|
||||
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é.
|
||||
|
||||
|
@ -511,30 +511,14 @@ 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();
|
||||
}
|
||||
/**
|
||||
* 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;
|
||||
|
||||
// Numéro de version
|
||||
const ZWII_VERSION = '1.14.05';
|
||||
const ZWII_VERSION = '1.14.04';
|
||||
|
||||
// URL autoupdate
|
||||
const ZWII_UPDATE_URL = 'https://forge.chapril.org/ZwiiCMS-Team/campus-update/raw/branch/master/';
|
||||
@ -174,11 +174,8 @@ class common
|
||||
public static $dialog;
|
||||
// Langue de l'interface sélectionnée
|
||||
public static $i18nUI = 'fr_FR';
|
||||
|
||||
// Espace, contenu sélectionné
|
||||
// Langues de contenu
|
||||
public static $siteContent = 'home';
|
||||
// Progression d'un participant
|
||||
public static $userProgress = '';
|
||||
|
||||
public static $languages = [
|
||||
'de' => 'Deutsch',
|
||||
|
@ -734,16 +734,8 @@ class course extends common
|
||||
$this->getData(['user', $userId, 'tags']),
|
||||
template::button('userReport' . $userId, [
|
||||
'href' => helper::baseUrl() . 'course/userReport/' . $courseId . '/' . $userId,
|
||||
/** 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
|
||||
**/
|
||||
'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)
|
||||
'value' => $viewPages ? min(round(($viewPages * 100) / $sumPages, 1), 100) . ' %' : '0%',
|
||||
'disable' => empty($viewPages)
|
||||
]),
|
||||
template::button('userDelete' . $userId, [
|
||||
'class' => 'userDelete buttonRed',
|
||||
@ -1366,9 +1358,6 @@ 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);
|
||||
@ -1399,8 +1388,8 @@ class course extends common
|
||||
}
|
||||
|
||||
// Progression
|
||||
$viewPages = array_key_exists($userId, $reports) ?
|
||||
count($reports[$userId]) :
|
||||
$viewPages = $this->getData(['enrolment', $courseId, $userId, 'history']) !== null ?
|
||||
count(array_keys($this->getData(['enrolment', $courseId, $userId, 'history']))) :
|
||||
0;
|
||||
|
||||
// Construction du tableau
|
||||
@ -1413,14 +1402,7 @@ class course extends common
|
||||
: $this->getData(['enrolment', $courseId, $userId, 'lastPageView']) . ' (supprimée)',
|
||||
helper::dateUTF8('%d/%d/%Y', $this->getData(['enrolment', $courseId, $userId, 'datePageView'])),
|
||||
helper::dateUTF8('%H:%M', $this->getData(['enrolment', $courseId, $userId, 'datePageView'])),
|
||||
/** 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, ','),
|
||||
number_format(min(round(($viewPages * 100) / $sumPages, 1) / 100, 1), 2, ',')
|
||||
];
|
||||
|
||||
// Synthèse des historiques
|
||||
@ -2070,33 +2052,6 @@ 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
|
||||
@ -2121,9 +2076,7 @@ class course extends common
|
||||
$courseId,
|
||||
$userId,
|
||||
[
|
||||
'lastPageView' => '',
|
||||
'datePageView' => '',
|
||||
'progress' => '',
|
||||
'history' => [],
|
||||
]
|
||||
]);
|
||||
}
|
||||
@ -2163,7 +2116,7 @@ class course extends common
|
||||
/**
|
||||
* Lit le contenu des fichiers de traces au format CS et renvoie un tableau associatif
|
||||
*/
|
||||
private function getReport($courseId, $userId = null)
|
||||
public function getReport($courseId, $userId = null)
|
||||
{
|
||||
|
||||
$data = [];
|
||||
|
Loading…
Reference in New Issue
Block a user