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:
Fred Tempez 2025-01-01 15:58:45 +01:00
parent fb06720a00
commit 65c9aa167d
3 changed files with 47 additions and 60 deletions

View File

@ -526,6 +526,8 @@ class layout extends common
$this->getUser('group') === self::GROUP_MEMBER
&& $this->getData(['theme', 'menu', 'userReport']) === true
&& self::$siteContent !== 'home'
// Pas de statistiques pour les espaces ouverts
&& $this->getData(['course', self::$siteContent, 'enrolment']) >= 1
) {
$itemsRight .= '<li>' . template::ico('chart-line', [
'help' => 'Rapport des consultations',
@ -1246,7 +1248,6 @@ class layout extends common
if ($style) {
echo '<style type="text/css">' . helper::minifyCss(htmlspecialchars_decode($style)) . '</style>';
}
}
}
}

View File

@ -29,7 +29,7 @@ class course extends common
'usersReportExport' => self::GROUP_EDITOR, //fait
'userDelete' => self::GROUP_EDITOR, //Fait
'userReport' => self::GROUP_MEMBER, //Fait
'userReportExport' => self::GROUP_MEMBER, //Fait
'userReportExport' => self::GROUP_EDITOR, //Fait
'backup' => self::GROUP_EDITOR, // Fait
'restore' => self::GROUP_EDITOR, //Fait
'reset' => self::GROUP_EDITOR,
@ -337,7 +337,7 @@ class course extends common
// Valeurs en sortie
$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'
]);
}
@ -396,7 +396,7 @@ class course extends common
// Valeurs en sortie
$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'
]);
}
@ -462,7 +462,6 @@ class course extends common
$success = $this->deleteDir(self::DATA_DIR . $courseId);
$this->deleteData(['course', $courseId]);
$this->deleteData(['enrolment', $courseId]);
}
// Dossier du gestionnaire de fichier
if (is_dir(self::FILE_DIR . 'source/' . $courseId)) {
@ -476,7 +475,6 @@ class course extends common
'state' => $success
]);
}
}
/**
@ -551,7 +549,6 @@ class course extends common
'title' => helper::translate('Ajouter une catégorie'),
'view' => 'categoryAdd'
]);
}
public function categoryEdit()
@ -618,7 +615,6 @@ class course extends common
'state' => $state
]);
}
}
public function users()
@ -847,7 +843,6 @@ class course extends common
if (is_array($suscribers)) {
$suscribers = array_keys($suscribers);
$users = array_diff_key($users, array_flip($suscribers));
}
// 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, 'tags']),
];
}
// 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, 'tags']),
];
}
}
@ -1124,7 +1117,6 @@ class course extends common
'notification' => helper::translate('Espace réinitialisé'),
'state' => true
]);
}
/*
@ -1230,7 +1222,6 @@ class course extends common
'notification' => helper::translate($message),
'state' => $state,
]);
}
/**
@ -1244,7 +1235,9 @@ class course extends common
// Accès limité au propriétaire ou éditeurs inscrits ou admin
if (
// Droits consentis
$this->permissionControl(__FUNCTION__, $courseId) === false
// Le compte du membre doit etre celui de l'url
and $this->getUser('id') !== $this->getUrl(3)
) {
// Valeurs en sortie
@ -1330,13 +1323,13 @@ class course extends common
// Valeurs en sortie
$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',
'vendor' => [
"plotly"
]
]);
}
public function usersReportExport()
@ -1347,7 +1340,6 @@ class course extends common
// Accès limité au propriétaire ou éditeurs inscrits ou admin
if (
$this->permissionControl(__FUNCTION__, $courseId) === false
and $this->getUser('id') !== $this->getUrl(3)
) {
// Valeurs en sortie
$this->addOutput([
@ -1452,7 +1444,6 @@ class course extends common
'notification' => 'Création ' . basename($filename) . ' dans le dossier "Export"',
'state' => true,
]);
}
}
}
@ -1552,8 +1543,6 @@ class course extends common
'notification' => 'Création ' . basename($filename) . ' dans le dossier "Export"',
'state' => true,
]);
}
// Génération du message d'inscription
@ -1658,7 +1647,6 @@ class course extends common
'notification' => helper::translate('Désinscription'),
'state' => true,
]);
}
}
@ -1724,7 +1712,6 @@ class course extends common
'notification' => $message,
]);
}
}
// Générer un fichier externe contenant le contenu des pages
@ -1854,10 +1841,9 @@ class course extends common
// Valeurs en sortie
$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'
]);
}
// 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')) {
$courseData = json_decode(file_get_contents(self::TEMP_DIR . $tempFolder . '/course.json'), true);
// Lire l'id du cours
$courseIds = array_keys($courseData);
;
$courseIds = array_keys($courseData);;
$courseId = $courseIds[0];
$success = true;
} else {
@ -1989,7 +1974,6 @@ class course extends common
'state' => $success,
'notification' => $notification,
]);
}
// Valeurs en sortie
@ -1998,7 +1982,6 @@ class course extends common
'state' => $success,
'notification' => $notification,
]);
}
// Valeurs en sortie
$this->addOutput([
@ -2113,7 +2096,8 @@ class course extends common
* @param mixed $userId id de l'utilisateur
* @return float nombre de pages vues
*/
public function setUserProgress($courseId, $userId): float {
public function setUserProgress($courseId, $userId): float
{
// Stocke le rapport en CSV
$file = fopen(common::DATA_DIR . $courseId . '/report.csv', 'a+');
fputcsv($file, [$userId, $this->getUrl(0), time()], ';');

View File

@ -12,6 +12,8 @@
'href' => helper::baseUrl() . 'course/userReportExport/' . $this->getUrl(2) . '/' . $this->getUrl(3),
'value' => template::ico('download'),
'help' => 'Exporter rapport',
// Le memebre ne peut pas exporter
'disabled' => $this->getUser('group') === self::GROUP_MEMBER
]) ?>
</div>
</div>