diff --git a/core/core.php b/core/core.php index 0610673..2a77370 100644 --- a/core/core.php +++ b/core/core.php @@ -50,7 +50,7 @@ class common const ACCESS_TIMER = 1800; // Numéro de version - const ZWII_VERSION = '1.4.02'; + const ZWII_VERSION = '1.4.03'; // URL autoupdate const ZWII_UPDATE_URL = 'https://forge.chapril.org/ZwiiCMS-Team/campus-update/raw/branch/master/'; diff --git a/core/module/course/course.php b/core/module/course/course.php index 08a4339..627c3ad 100644 --- a/core/module/course/course.php +++ b/core/module/course/course.php @@ -35,6 +35,7 @@ class course extends common 'userHistory' => self::GROUP_EDITOR, 'usersHistoryExport' => self::GROUP_EDITOR, 'userHistoryExport' => self::GROUP_EDITOR, + 'courseBackup' =>self::GROUP_ADMIN, ]; public static $courseAccess = [ @@ -94,9 +95,8 @@ class course extends common $description = sprintf('%s
%s
%s
', $courseValue['description'], $access, $enrolment); self::$courses[] = [ $courseValue['title'], - $author, - $description, - '' . $categorieUrl . '', + //$author, + '' . $description. '', template::button('categoryUser' . $courseId, [ 'href' => helper::baseUrl() . 'course/users/' . $courseId, 'value' => template::ico('users'), @@ -107,6 +107,17 @@ class course extends common 'value' => template::ico('pencil'), 'help' => 'Éditer' ]), + template::button('courseDownload' . $courseId, [ + 'href' => helper::baseUrl() . 'course/courseBackup/' . $courseId, + 'value' => template::ico('download'), + 'help' => 'Sauvegarder' + ]), + template::button('courseUpload' . $courseId, [ + 'href' => helper::baseUrl() . 'course', + 'value' => template::ico('upload'), + 'help' => 'Restaurer', + 'disabled' => true, + ]), template::button('courseDelete' . $courseId, [ 'class' => 'courseDelete buttonRed', 'href' => helper::baseUrl() . 'course/delete/' . $courseId, @@ -547,7 +558,7 @@ class course extends common $viewPages = $this->getData(['enrolment', $courseId, $userId, 'history']) !== null ? count(array_keys($this->getData(['enrolment', $courseId, $userId, 'history']))) : 0; - + // Construction du tableau self::$courseUsers[] = [ $userId, @@ -1290,6 +1301,9 @@ class course extends common } } + /** + * Désinscription d'un participant + */ public function unsuscribe() { // Désincription du contenu ouvert ou du contenu sélectionné @@ -1312,6 +1326,41 @@ class course extends common } } + /** + * Sauvegarde d'un cours sans option + */ + + public function courseBackup() { + $courseId = $this->getUrl(2); + + // Participants avec historiques + $enrolment = $this->getData(['enrolment', $courseId]); + // Générer un fichier dans le dossier de l'espace + file_put_contents(self::DATA_DIR . $courseId . '/enrolment.json', json_encode($enrolment, JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES | JSON_PRETTY_PRINT)); + + // Idem pour la catégorie + $enrolment = $this->getData(['category']); + // Générer un fichier dans le dossier de l'espace + file_put_contents(self::DATA_DIR . $courseId . '/enrolment.json', json_encode($enrolment, JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES | JSON_PRETTY_PRINT)); + + // Génère une archive ZIP + $this->makeZip(self::TEMP_DIR . $courseId . '-' . date('Y-m-d-H-i-s', time()) . '.zip', self::DATA_DIR . $courseId); + + if (!is_dir(self::FILE_DIR . 'source/backup')){ + mkdir(self::FILE_DIR . 'source/backup'); + } + + copy (self::TEMP_DIR . $courseId . '-' . date('Y-m-d-H-i-s', time()) . '.zip', self::FILE_DIR . 'source/backup/' . $courseId . '-' . date('Y-m-d-H-i-s', time()) . '.zip' ); + + // Valeurs en sortie + $this->addOutput([ + 'redirect' => helper::baseUrl() . 'course', + 'state' => true, + 'notification' => helper::translate('Sauvegarde générée avec succès'), + ]); + + } + /** * Autorise l'accès à un contenu diff --git a/core/module/course/view/index/index.js.php b/core/module/course/view/index/index.js.php index 5f3fba6..244f660 100644 --- a/core/module/course/view/index/index.js.php +++ b/core/module/course/view/index/index.js.php @@ -28,6 +28,11 @@ $(document).ready(function () { }, locale: 'fr', "columnDefs": [ + { + target: 2, + orderable: false, + searchable: false + }, { target: 3, orderable: false, diff --git a/core/module/course/view/index/index.php b/core/module/course/view/index/index.php index ee6ecd1..f489571 100644 --- a/core/module/course/view/index/index.php +++ b/core/module/course/view/index/index.php @@ -25,7 +25,7 @@ - 'dataTables']); ?> + 'dataTables']); ?>