1.19.03
- jsonDB upgrade - Supprime le change de $siteContent dans la gestion d'un espace
This commit is contained in:
parent
ed2b2c2826
commit
6d19f6ebad
@ -1,4 +1,4 @@
|
|||||||
# ZwiiCampus 1.19.02
|
# ZwiiCampus 1.19.03
|
||||||
|
|
||||||
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é.
|
||||||
|
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Created by PhpStorm.
|
* Created by PhpStorm.
|
||||||
* User: Andrey Mistulov
|
* User: Andrey Mistulov
|
||||||
@ -112,44 +113,63 @@ class JsonDb extends \Prowebcraft\Dot
|
|||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Local database upload
|
* Charge les données depuis un fichier JSON.
|
||||||
* @param bool $reload Reboot data?
|
*
|
||||||
* @return array|mixed|null
|
* @param bool $reload Force le rechargement des données si true
|
||||||
|
*
|
||||||
|
* @return array|null Les données chargées ou null si le fichier n'existe pas
|
||||||
|
*
|
||||||
|
* @throws \RuntimeException En cas d'erreur lors de la création de la sauvegarde
|
||||||
|
* @throws \InvalidArgumentException Si le fichier contient des données JSON invalides
|
||||||
*/
|
*/
|
||||||
protected function loadData($reload = false)
|
protected function loadData($reload = false): ?array
|
||||||
{
|
{
|
||||||
if ($this->data === null || $reload) {
|
if ($this->data === null || $reload) {
|
||||||
$this->db = $this->config['dir'] . $this->config['name'];
|
$this->db = $this->config['dir'] . $this->config['name'];
|
||||||
|
|
||||||
if (!file_exists($this->db)) {
|
if (!file_exists($this->db)) {
|
||||||
return null; // Rebuild database manage by CMS
|
return null; // Rebuild database managed by CMS
|
||||||
} else {
|
}
|
||||||
|
|
||||||
if ($this->config['backup']) {
|
if ($this->config['backup']) {
|
||||||
|
$backup_path = $this->config['dir'] . DIRECTORY_SEPARATOR . $this->config['name'] . '.backup';
|
||||||
|
|
||||||
try {
|
try {
|
||||||
copy($this->config['dir'] . DIRECTORY_SEPARATOR . $this->config['name'], $this->config['dir'] . DIRECTORY_SEPARATOR . $this->config['name'] . '.backup');
|
if (!copy($this->db, $backup_path)) {
|
||||||
|
throw new \RuntimeException('Échec de la création de la sauvegarde');
|
||||||
|
}
|
||||||
} catch (\Exception $e) {
|
} catch (\Exception $e) {
|
||||||
error_log('Erreur de chargement : ' . $e);
|
throw new \RuntimeException('Erreur de sauvegarde : ' . $e->getMessage());
|
||||||
exit('Erreur de chargement : ' . $e);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
$this->data = json_decode(file_get_contents($this->db), true);
|
$file_contents = file_get_contents($this->db);
|
||||||
if (!$this->data === null) {
|
|
||||||
throw new \InvalidArgumentException('Le fichier ' . $this->db
|
$this->data = json_decode($file_contents, true);
|
||||||
. ' contient des données invalides.');
|
|
||||||
|
if ($this->data === null) {
|
||||||
|
throw new \InvalidArgumentException('Le fichier ' . $this->db . ' contient des données invalides.');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return $this->data;
|
return $this->data;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Save database
|
* Charge les données depuis un fichier JSON.
|
||||||
|
*
|
||||||
|
* @param bool $reload Force le rechargement des données si true
|
||||||
|
*
|
||||||
|
* @return array|null Les données chargées ou null si le fichier n'existe pas
|
||||||
|
*
|
||||||
|
* @throws \RuntimeException En cas d'erreur lors de la création de la sauvegarde
|
||||||
|
* @throws \InvalidArgumentException Si le fichier contient des données JSON invalides
|
||||||
*/
|
*/
|
||||||
public function save(): void
|
public function save(): void
|
||||||
{
|
{
|
||||||
if ($this->data === null) {
|
if ($this->data === null) {
|
||||||
throw new \RuntimeException('Tentative de sauvegarde de données nulles');
|
throw new \RuntimeException('Tentative de sauvegarde de données nulles');
|
||||||
}
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
$encoded_data = json_encode($this->data, JSON_UNESCAPED_UNICODE | JSON_FORCE_OBJECT | JSON_THROW_ON_ERROR);
|
$encoded_data = json_encode($this->data, JSON_UNESCAPED_UNICODE | JSON_FORCE_OBJECT | JSON_THROW_ON_ERROR);
|
||||||
} catch (\JsonException $e) {
|
} catch (\JsonException $e) {
|
||||||
|
@ -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.19.02';
|
const ZWII_VERSION = '1.19.03';
|
||||||
|
|
||||||
// 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/';
|
||||||
|
@ -180,7 +180,7 @@ class course extends common
|
|||||||
$this->initData('theme', $courseId);
|
$this->initData('theme', $courseId);
|
||||||
|
|
||||||
// Pointer RFM sur le dossier de l'espace
|
// Pointer RFM sur le dossier de l'espace
|
||||||
self::$siteContent = $courseId;
|
// self::$siteContent = $courseId;
|
||||||
// Ordonne les pages par position
|
// Ordonne les pages par position
|
||||||
$this->buildHierarchy();
|
$this->buildHierarchy();
|
||||||
|
|
||||||
@ -319,7 +319,7 @@ class course extends common
|
|||||||
$this->initDB('page', $courseId);
|
$this->initDB('page', $courseId);
|
||||||
|
|
||||||
// Pointer RFM sur le dossier de l'espace
|
// Pointer RFM sur le dossier de l'espace
|
||||||
self::$siteContent = $courseId;
|
// self::$siteContent = $courseId;
|
||||||
|
|
||||||
// Ordonne les pages par position
|
// Ordonne les pages par position
|
||||||
$this->buildHierarchy();
|
$this->buildHierarchy();
|
||||||
@ -378,7 +378,7 @@ class course extends common
|
|||||||
$this->initDB('page', $courseId);
|
$this->initDB('page', $courseId);
|
||||||
|
|
||||||
// Pointer RFM sur le dossier de l'espace
|
// Pointer RFM sur le dossier de l'espace
|
||||||
self::$siteContent = $courseId;
|
// self::$siteContent = $courseId;
|
||||||
|
|
||||||
// Ordonne les pages par position
|
// Ordonne les pages par position
|
||||||
$this->buildHierarchy();
|
$this->buildHierarchy();
|
||||||
@ -1740,7 +1740,7 @@ class course extends common
|
|||||||
$this->initDB('page', $courseId);
|
$this->initDB('page', $courseId);
|
||||||
|
|
||||||
// Pointer RFM sur le dossier de l'espace
|
// Pointer RFM sur le dossier de l'espace
|
||||||
self::$siteContent = $courseId;
|
// self::$siteContent = $courseId;
|
||||||
|
|
||||||
// Ordonne les pages par position
|
// Ordonne les pages par position
|
||||||
$this->buildHierarchy();
|
$this->buildHierarchy();
|
||||||
|
Loading…
x
Reference in New Issue
Block a user