1.16 Nom des espaces en clair dans la gestion des espaces
Lecture des statitiques par les membres : - pas depuis un espace ouvert - pas d'export pour les membres
This commit is contained in:
parent
fb06720a00
commit
65c9aa167d
@ -526,11 +526,13 @@ class layout extends common
|
|||||||
$this->getUser('group') === self::GROUP_MEMBER
|
$this->getUser('group') === self::GROUP_MEMBER
|
||||||
&& $this->getData(['theme', 'menu', 'userReport']) === true
|
&& $this->getData(['theme', 'menu', 'userReport']) === true
|
||||||
&& self::$siteContent !== 'home'
|
&& self::$siteContent !== 'home'
|
||||||
|
// Pas de statistiques pour les espaces ouverts
|
||||||
|
&& $this->getData(['course', self::$siteContent, 'enrolment']) >= 1
|
||||||
) {
|
) {
|
||||||
$itemsRight .= '<li>' . template::ico('chart-line', [
|
$itemsRight .= '<li>' . template::ico('chart-line', [
|
||||||
'help' => 'Rapport des consultations',
|
'help' => 'Rapport des consultations',
|
||||||
'margin' => 'all',
|
'margin' => 'all',
|
||||||
'href' => helper::baseUrl() . 'course/userReport/' . self::$siteContent . '/' .$this->getUser('id')
|
'href' => helper::baseUrl() . 'course/userReport/' . self::$siteContent . '/' . $this->getUser('id')
|
||||||
]) . '</li>';
|
]) . '</li>';
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1246,7 +1248,6 @@ class layout extends common
|
|||||||
if ($style) {
|
if ($style) {
|
||||||
echo '<style type="text/css">' . helper::minifyCss(htmlspecialchars_decode($style)) . '</style>';
|
echo '<style type="text/css">' . helper::minifyCss(htmlspecialchars_decode($style)) . '</style>';
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -29,7 +29,7 @@ class course extends common
|
|||||||
'usersReportExport' => self::GROUP_EDITOR, //fait
|
'usersReportExport' => self::GROUP_EDITOR, //fait
|
||||||
'userDelete' => self::GROUP_EDITOR, //Fait
|
'userDelete' => self::GROUP_EDITOR, //Fait
|
||||||
'userReport' => self::GROUP_MEMBER, //Fait
|
'userReport' => self::GROUP_MEMBER, //Fait
|
||||||
'userReportExport' => self::GROUP_MEMBER, //Fait
|
'userReportExport' => self::GROUP_EDITOR, //Fait
|
||||||
'backup' => self::GROUP_EDITOR, // Fait
|
'backup' => self::GROUP_EDITOR, // Fait
|
||||||
'restore' => self::GROUP_EDITOR, //Fait
|
'restore' => self::GROUP_EDITOR, //Fait
|
||||||
'reset' => self::GROUP_EDITOR,
|
'reset' => self::GROUP_EDITOR,
|
||||||
@ -109,7 +109,7 @@ class course extends common
|
|||||||
? sprintf('%s %s', $this->getData(['user', $this->getData(['course', $courseId, 'author']), 'firstname']), $this->getData(['user', $this->getData(['course', $courseId, 'author']), 'lastname']))
|
? sprintf('%s %s', $this->getData(['user', $this->getData(['course', $courseId, 'author']), 'firstname']), $this->getData(['user', $this->getData(['course', $courseId, 'author']), 'lastname']))
|
||||||
: '';
|
: '';
|
||||||
$categorieUrl = helper::baseUrl() . 'course/swap/' . $courseId;
|
$categorieUrl = helper::baseUrl() . 'course/swap/' . $courseId;
|
||||||
$info = sprintf(' <a href="%s">%s</a><br />Auteur : %s<br />Id : %s<br />', $categorieUrl, $this->getData(['course', $courseId, 'title']), $author, $courseId, );
|
$info = sprintf(' <a href="%s">%s</a><br />Auteur : %s<br />Id : %s<br />', $categorieUrl, $this->getData(['course', $courseId, 'title']), $author, $courseId,);
|
||||||
$enrolment = sprintf(
|
$enrolment = sprintf(
|
||||||
'Accès : %s<br />Inscription : %s<br />',
|
'Accès : %s<br />Inscription : %s<br />',
|
||||||
self::$courseAccess[$this->getData(['course', $courseId, 'access'])],
|
self::$courseAccess[$this->getData(['course', $courseId, 'access'])],
|
||||||
@ -337,7 +337,7 @@ class course extends common
|
|||||||
|
|
||||||
// Valeurs en sortie
|
// Valeurs en sortie
|
||||||
$this->addOutput([
|
$this->addOutput([
|
||||||
'title' => sprintf('%s id : %s', helper::translate('Éditer l\'espace'), $this->getUrl(2)),
|
'title' => sprintf('%s %s (%s)', helper::translate('Editer l\'espace'), $this->getData(['course', $courseId, 'title' ]), $this->getUrl(2)),
|
||||||
'view' => 'edit'
|
'view' => 'edit'
|
||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
@ -396,7 +396,7 @@ class course extends common
|
|||||||
|
|
||||||
// Valeurs en sortie
|
// Valeurs en sortie
|
||||||
$this->addOutput([
|
$this->addOutput([
|
||||||
'title' => sprintf('%s id : %s', helper::translate('Gérer l\'espace'), $this->getUrl(2)),
|
'title' => sprintf('%s %s (%s)', helper::translate('Gérer l\'espace'), $this->getData(['course', $courseId, 'title' ]), $this->getUrl(2)),
|
||||||
'view' => 'manage'
|
'view' => 'manage'
|
||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
@ -462,7 +462,6 @@ class course extends common
|
|||||||
$success = $this->deleteDir(self::DATA_DIR . $courseId);
|
$success = $this->deleteDir(self::DATA_DIR . $courseId);
|
||||||
$this->deleteData(['course', $courseId]);
|
$this->deleteData(['course', $courseId]);
|
||||||
$this->deleteData(['enrolment', $courseId]);
|
$this->deleteData(['enrolment', $courseId]);
|
||||||
|
|
||||||
}
|
}
|
||||||
// Dossier du gestionnaire de fichier
|
// Dossier du gestionnaire de fichier
|
||||||
if (is_dir(self::FILE_DIR . 'source/' . $courseId)) {
|
if (is_dir(self::FILE_DIR . 'source/' . $courseId)) {
|
||||||
@ -476,7 +475,6 @@ class course extends common
|
|||||||
'state' => $success
|
'state' => $success
|
||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -551,7 +549,6 @@ class course extends common
|
|||||||
'title' => helper::translate('Ajouter une catégorie'),
|
'title' => helper::translate('Ajouter une catégorie'),
|
||||||
'view' => 'categoryAdd'
|
'view' => 'categoryAdd'
|
||||||
]);
|
]);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public function categoryEdit()
|
public function categoryEdit()
|
||||||
@ -618,7 +615,6 @@ class course extends common
|
|||||||
'state' => $state
|
'state' => $state
|
||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public function users()
|
public function users()
|
||||||
@ -726,8 +722,8 @@ class course extends common
|
|||||||
$reportButton = template::button('userReport' . $userId, [
|
$reportButton = template::button('userReport' . $userId, [
|
||||||
'href' => helper::baseUrl() . 'course/userReport/' . $courseId . '/' . $userId,
|
'href' => helper::baseUrl() . 'course/userReport/' . $courseId . '/' . $userId,
|
||||||
'value' => (array_key_exists('progress', $userValue) && is_int($userValue['progress']))
|
'value' => (array_key_exists('progress', $userValue) && is_int($userValue['progress']))
|
||||||
? template::ico('chart-line',['margin' => 'right']) . number_format($userValue['progress']) . ' %'
|
? template::ico('chart-line', ['margin' => 'right']) . number_format($userValue['progress']) . ' %'
|
||||||
: template::ico('chart-line',['margin' => 'right']) . ($viewPages ? min(round(($viewPages * 100) / $sumPages, 1), 100) . ' %' : '0%'),
|
: template::ico('chart-line', ['margin' => 'right']) . ($viewPages ? min(round(($viewPages * 100) / $sumPages, 1), 100) . ' %' : '0%'),
|
||||||
'disable' => empty($userValue['datePageView']),
|
'disable' => empty($userValue['datePageView']),
|
||||||
]);
|
]);
|
||||||
} else {
|
} else {
|
||||||
@ -847,7 +843,6 @@ class course extends common
|
|||||||
if (is_array($suscribers)) {
|
if (is_array($suscribers)) {
|
||||||
$suscribers = array_keys($suscribers);
|
$suscribers = array_keys($suscribers);
|
||||||
$users = array_diff_key($users, array_flip($suscribers));
|
$users = array_diff_key($users, array_flip($suscribers));
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Tri du tableau par défaut par $userId
|
// Tri du tableau par défaut par $userId
|
||||||
@ -899,7 +894,6 @@ class course extends common
|
|||||||
$this->getData(['user', $userId, 'lastname']),
|
$this->getData(['user', $userId, 'lastname']),
|
||||||
$this->getData(['user', $userId, 'tags']),
|
$this->getData(['user', $userId, 'tags']),
|
||||||
];
|
];
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Ajoute les effectifs aux profils du sélecteur
|
// Ajoute les effectifs aux profils du sélecteur
|
||||||
@ -1063,7 +1057,6 @@ class course extends common
|
|||||||
$this->getData(['user', $userId, 'lastname']),
|
$this->getData(['user', $userId, 'lastname']),
|
||||||
$this->getData(['user', $userId, 'tags']),
|
$this->getData(['user', $userId, 'tags']),
|
||||||
];
|
];
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1124,7 +1117,6 @@ class course extends common
|
|||||||
'notification' => helper::translate('Espace réinitialisé'),
|
'notification' => helper::translate('Espace réinitialisé'),
|
||||||
'state' => true
|
'state' => true
|
||||||
]);
|
]);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -1230,7 +1222,6 @@ class course extends common
|
|||||||
'notification' => helper::translate($message),
|
'notification' => helper::translate($message),
|
||||||
'state' => $state,
|
'state' => $state,
|
||||||
]);
|
]);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -1244,7 +1235,9 @@ class course extends common
|
|||||||
|
|
||||||
// Accès limité au propriétaire ou éditeurs inscrits ou admin
|
// Accès limité au propriétaire ou éditeurs inscrits ou admin
|
||||||
if (
|
if (
|
||||||
|
// Droits consentis
|
||||||
$this->permissionControl(__FUNCTION__, $courseId) === false
|
$this->permissionControl(__FUNCTION__, $courseId) === false
|
||||||
|
// Le compte du membre doit etre celui de l'url
|
||||||
and $this->getUser('id') !== $this->getUrl(3)
|
and $this->getUser('id') !== $this->getUrl(3)
|
||||||
) {
|
) {
|
||||||
// Valeurs en sortie
|
// Valeurs en sortie
|
||||||
@ -1330,13 +1323,13 @@ class course extends common
|
|||||||
|
|
||||||
// Valeurs en sortie
|
// Valeurs en sortie
|
||||||
$this->addOutput([
|
$this->addOutput([
|
||||||
'title' => helper::translate('Rapport des consultations : ') . $this->getData(['user', $userId, 'firstname']) . ' ' . $this->getData(['user', $userId, 'lastname']),
|
'title' => sprintf(helper::translate('Rapport des consultations : %s'), $this->getData(['course', $courseId, 'title'])) .
|
||||||
|
sprintf(helper::translate('%s Participant : %s %s'), '<br />', $this->getData(['user', $userId, 'firstname']), $this->getData(['user', $userId, 'lastname'])),
|
||||||
'view' => 'userReport',
|
'view' => 'userReport',
|
||||||
'vendor' => [
|
'vendor' => [
|
||||||
"plotly"
|
"plotly"
|
||||||
]
|
]
|
||||||
]);
|
]);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public function usersReportExport()
|
public function usersReportExport()
|
||||||
@ -1347,7 +1340,6 @@ class course extends common
|
|||||||
// Accès limité au propriétaire ou éditeurs inscrits ou admin
|
// Accès limité au propriétaire ou éditeurs inscrits ou admin
|
||||||
if (
|
if (
|
||||||
$this->permissionControl(__FUNCTION__, $courseId) === false
|
$this->permissionControl(__FUNCTION__, $courseId) === false
|
||||||
and $this->getUser('id') !== $this->getUrl(3)
|
|
||||||
) {
|
) {
|
||||||
// Valeurs en sortie
|
// Valeurs en sortie
|
||||||
$this->addOutput([
|
$this->addOutput([
|
||||||
@ -1452,7 +1444,6 @@ class course extends common
|
|||||||
'notification' => 'Création ' . basename($filename) . ' dans le dossier "Export"',
|
'notification' => 'Création ' . basename($filename) . ' dans le dossier "Export"',
|
||||||
'state' => true,
|
'state' => true,
|
||||||
]);
|
]);
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1552,8 +1543,6 @@ class course extends common
|
|||||||
'notification' => 'Création ' . basename($filename) . ' dans le dossier "Export"',
|
'notification' => 'Création ' . basename($filename) . ' dans le dossier "Export"',
|
||||||
'state' => true,
|
'state' => true,
|
||||||
]);
|
]);
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Génération du message d'inscription
|
// Génération du message d'inscription
|
||||||
@ -1658,7 +1647,6 @@ class course extends common
|
|||||||
'notification' => helper::translate('Désinscription'),
|
'notification' => helper::translate('Désinscription'),
|
||||||
'state' => true,
|
'state' => true,
|
||||||
]);
|
]);
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1724,7 +1712,6 @@ class course extends common
|
|||||||
'notification' => $message,
|
'notification' => $message,
|
||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Générer un fichier externe contenant le contenu des pages
|
// Générer un fichier externe contenant le contenu des pages
|
||||||
@ -1854,10 +1841,9 @@ class course extends common
|
|||||||
|
|
||||||
// Valeurs en sortie
|
// Valeurs en sortie
|
||||||
$this->addOutput([
|
$this->addOutput([
|
||||||
'title' => sprintf('%s id : %s', helper::translate('Export des pages de l\'espace'), $this->getUrl(2)),
|
'title' => sprintf('%s %s (%s)', helper::translate('Export des pages de l\'espace'), $this->getData(['course', $courseId, 'title' ]), $this->getUrl(2)),
|
||||||
'view' => 'export'
|
'view' => 'export'
|
||||||
]);
|
]);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Fonction utilisé par l'export en html pour corriger les URL des ressources
|
// Fonction utilisé par l'export en html pour corriger les URL des ressources
|
||||||
@ -1931,8 +1917,7 @@ class course extends common
|
|||||||
if (file_exists(self::TEMP_DIR . $tempFolder . '/course.json')) {
|
if (file_exists(self::TEMP_DIR . $tempFolder . '/course.json')) {
|
||||||
$courseData = json_decode(file_get_contents(self::TEMP_DIR . $tempFolder . '/course.json'), true);
|
$courseData = json_decode(file_get_contents(self::TEMP_DIR . $tempFolder . '/course.json'), true);
|
||||||
// Lire l'id du cours
|
// Lire l'id du cours
|
||||||
$courseIds = array_keys($courseData);
|
$courseIds = array_keys($courseData);;
|
||||||
;
|
|
||||||
$courseId = $courseIds[0];
|
$courseId = $courseIds[0];
|
||||||
$success = true;
|
$success = true;
|
||||||
} else {
|
} else {
|
||||||
@ -1989,7 +1974,6 @@ class course extends common
|
|||||||
'state' => $success,
|
'state' => $success,
|
||||||
'notification' => $notification,
|
'notification' => $notification,
|
||||||
]);
|
]);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Valeurs en sortie
|
// Valeurs en sortie
|
||||||
@ -1998,7 +1982,6 @@ class course extends common
|
|||||||
'state' => $success,
|
'state' => $success,
|
||||||
'notification' => $notification,
|
'notification' => $notification,
|
||||||
]);
|
]);
|
||||||
|
|
||||||
}
|
}
|
||||||
// Valeurs en sortie
|
// Valeurs en sortie
|
||||||
$this->addOutput([
|
$this->addOutput([
|
||||||
@ -2113,9 +2096,10 @@ class course extends common
|
|||||||
* @param mixed $userId id de l'utilisateur
|
* @param mixed $userId id de l'utilisateur
|
||||||
* @return float nombre de pages vues
|
* @return float nombre de pages vues
|
||||||
*/
|
*/
|
||||||
public function setUserProgress($courseId, $userId): float {
|
public function setUserProgress($courseId, $userId): float
|
||||||
|
{
|
||||||
// Stocke le rapport en CSV
|
// Stocke le rapport en CSV
|
||||||
$file = fopen(common::DATA_DIR . $courseId. '/report.csv', 'a+');
|
$file = fopen(common::DATA_DIR . $courseId . '/report.csv', 'a+');
|
||||||
fputcsv($file, [$userId, $this->getUrl(0), time()], ';');
|
fputcsv($file, [$userId, $this->getUrl(0), time()], ';');
|
||||||
fclose($file);
|
fclose($file);
|
||||||
|
|
||||||
|
@ -12,6 +12,8 @@
|
|||||||
'href' => helper::baseUrl() . 'course/userReportExport/' . $this->getUrl(2) . '/' . $this->getUrl(3),
|
'href' => helper::baseUrl() . 'course/userReportExport/' . $this->getUrl(2) . '/' . $this->getUrl(3),
|
||||||
'value' => template::ico('download'),
|
'value' => template::ico('download'),
|
||||||
'help' => 'Exporter rapport',
|
'help' => 'Exporter rapport',
|
||||||
|
// Le memebre ne peut pas exporter
|
||||||
|
'disabled' => $this->getUser('group') === self::GROUP_MEMBER
|
||||||
]) ?>
|
]) ?>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
Loading…
Reference in New Issue
Block a user