093 Mise en cache des pages

This commit is contained in:
Fred Tempez 2020-05-16 21:24:20 +02:00
parent 2fca58ab52
commit 54ef6d95dd

View File

@ -133,6 +133,7 @@ class common {
public static $timezone; public static $timezone;
private $url = ''; private $url = '';
private $user = []; private $user = [];
private $page = '';
/** /**
* Constructeur commun * Constructeur commun
@ -171,6 +172,10 @@ class common {
if($this->user === []) { if($this->user === []) {
$this->user = $this->getData(['user', $this->getInput('ZWII_USER_ID')]); $this->user = $this->getData(['user', $this->getInput('ZWII_USER_ID')]);
} }
// Mise ne cache des pages
$this->page = $this->readPageCache();
// Construit la liste des pages parents/enfants // Construit la liste des pages parents/enfants
if($this->hierarchy['all'] === []) { if($this->hierarchy['all'] === []) {
$pages = helper::arrayCollumn($this->getData(['page']), 'position', 'SORT_ASC'); $pages = helper::arrayCollumn($this->getData(['page']), 'position', 'SORT_ASC');
@ -371,6 +376,23 @@ class common {
public function getData($keys = []) { public function getData($keys = []) {
if (count($keys) >= 1) { if (count($keys) >= 1) {
// Lecture d'une donnée de page en cache
if ($keys[0] === 'page') {
// Décent dans les niveaux de la variable $data
$data = $this->page;
foreach($keys as $key) {
// Si aucune donnée n'existe retourne null
if(isset($data[$key]) === false) {
return null;
}
// Sinon décent dans les niveaux
else {
$data = $data[$key];
}
}
// Retourne les données
return $data;
}
//Retourne une chaine contenant le dossier à créer //Retourne une chaine contenant le dossier à créer
$folder = $this->dirData ($keys[0],'fr'); $folder = $this->dirData ($keys[0],'fr');
// Constructeur JsonDB // Constructeur JsonDB
@ -408,6 +430,26 @@ class common {
} }
} }
/**
* Lecture des fichiers de données de page et mise ne cache
* @param @return string données des pages
*/
public function readPageCache() {
// Trois tentatives
for($i = 0; $i < 3; $i++) {
$data =json_decode(file_get_contents(self::DATA_DIR.'fr/page.json'), true);
if($data) {
return($data);
}
elseif($i === 2) {
exit('Unable to read data file.');
}
// Pause de 10 millisecondes
usleep(10000);
}
}
/* /*
* Dummy function * Dummy function
* Compatibilité des modules avec v8 et v9 * Compatibilité des modules avec v8 et v9