RW mise en page des modules + améliorations
This commit is contained in:
parent
8d00613ce9
commit
e05f0d1bef
@ -22,10 +22,10 @@ class JsonDb extends \Prowebcraft\Dot
|
|||||||
public function __construct($config = [])
|
public function __construct($config = [])
|
||||||
{
|
{
|
||||||
$this->config = array_merge([
|
$this->config = array_merge([
|
||||||
'name' => 'data.json',
|
'name' => 'data.json',
|
||||||
/* 'backup' => 5,*/
|
'backup' => 5,
|
||||||
'dir' => getcwd(),
|
'dir' => getcwd(),
|
||||||
/* 'template' => getcwd() . DIRECTORY_SEPARATOR . 'data.template.json'*/
|
'template' => getcwd() . DIRECTORY_SEPARATOR . 'data.template.json'
|
||||||
], $config);
|
], $config);
|
||||||
$this->loadData();
|
$this->loadData();
|
||||||
parent::__construct();
|
parent::__construct();
|
||||||
@ -100,7 +100,8 @@ class JsonDb extends \Prowebcraft\Dot
|
|||||||
*/
|
*/
|
||||||
protected function loadData($reload = false) {
|
protected function loadData($reload = false) {
|
||||||
if ($this->data === null || $reload) {
|
if ($this->data === null || $reload) {
|
||||||
$this->db = $this->config['dir'] . DIRECTORY_SEPARATOR . $this->config['name'];
|
// $this->db = $this->config['dir'] . DIRECTORY_SEPARATOR . $this->config['name'];
|
||||||
|
$this->db = $this->config['dir'] . $this->config['name'];
|
||||||
/*
|
/*
|
||||||
if (!file_exists($this->db)) {
|
if (!file_exists($this->db)) {
|
||||||
$templateFile = $this->config['template'];
|
$templateFile = $this->config['template'];
|
||||||
@ -123,9 +124,6 @@ class JsonDb extends \Prowebcraft\Dot
|
|||||||
if (!$this->data === null) {
|
if (!$this->data === null) {
|
||||||
throw new \InvalidArgumentException('Database file ' . $this->db
|
throw new \InvalidArgumentException('Database file ' . $this->db
|
||||||
. ' contains invalid json object. Please validate or remove file');
|
. ' contains invalid json object. Please validate or remove file');
|
||||||
|
|
||||||
trigger_error ('Crash jsonDB : Database file ' . $this->db
|
|
||||||
. ' contains invalid json object. Please validate or remove file',E_USER_ERROR);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return $this->data;
|
return $this->data;
|
||||||
@ -137,6 +135,4 @@ class JsonDb extends \Prowebcraft\Dot
|
|||||||
public function save() {
|
public function save() {
|
||||||
file_put_contents($this->db, json_encode($this->data, JSON_UNESCAPED_UNICODE|JSON_PRETTY_PRINT));
|
file_put_contents($this->db, json_encode($this->data, JSON_UNESCAPED_UNICODE|JSON_PRETTY_PRINT));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -145,8 +145,14 @@ class common {
|
|||||||
];
|
];
|
||||||
public static $timezone;
|
public static $timezone;
|
||||||
private $url = '';
|
private $url = '';
|
||||||
|
// Données de site
|
||||||
private $user = [];
|
private $user = [];
|
||||||
private $page = '';
|
private $core = [];
|
||||||
|
private $config = [];
|
||||||
|
private $page = [];
|
||||||
|
private $module = [];
|
||||||
|
private $admin = [];
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Constructeur commun
|
* Constructeur commun
|
||||||
@ -186,8 +192,13 @@ class common {
|
|||||||
$this->user = $this->getData(['user', $this->getInput('ZWII_USER_ID')]);
|
$this->user = $this->getData(['user', $this->getInput('ZWII_USER_ID')]);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Mise en cache des pages
|
// Mise en cache des pages et des modules
|
||||||
$this->page = $this->getPageCache();
|
$this->page = $this->getCache('page');
|
||||||
|
$this->module = $this->getCache('module');
|
||||||
|
$this->core = $this->getCache('core');
|
||||||
|
$this->config = $this->getCache('config');
|
||||||
|
$this->theme = $this->getCache('theme');
|
||||||
|
$this->admin = $this->getCache('admin');
|
||||||
|
|
||||||
// Construit la liste des pages parents/enfants
|
// Construit la liste des pages parents/enfants
|
||||||
if($this->hierarchy['all'] === []) {
|
if($this->hierarchy['all'] === []) {
|
||||||
@ -362,10 +373,14 @@ 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') {
|
/**
|
||||||
|
* Lecture dans le cache, page et module
|
||||||
|
*/
|
||||||
|
if ($keys[0] === 'page' ||
|
||||||
|
$keys[0] === 'module' ) {
|
||||||
// Décent dans les niveaux de la variable $data
|
// Décent dans les niveaux de la variable $data
|
||||||
$data = $this->page;
|
$data = array_merge ($this->page , $this->module);
|
||||||
foreach($keys as $key) {
|
foreach($keys as $key) {
|
||||||
// Si aucune donnée n'existe retourne null
|
// Si aucune donnée n'existe retourne null
|
||||||
if(isset($data[$key]) === false) {
|
if(isset($data[$key]) === false) {
|
||||||
@ -379,6 +394,10 @@ class common {
|
|||||||
// Retourne les données
|
// Retourne les données
|
||||||
return $data;
|
return $data;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Lecture directe
|
||||||
|
*/
|
||||||
//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
|
||||||
@ -418,19 +437,15 @@ class common {
|
|||||||
* Lecture des fichiers de données de page et mise ne cache
|
* Lecture des fichiers de données de page et mise ne cache
|
||||||
* @param @return string données des pages
|
* @param @return string données des pages
|
||||||
*/
|
*/
|
||||||
public function getPageCache() {
|
public function getCache($data) {
|
||||||
// Trois tentatives
|
$folder = $this->dirData ($data,'fr');
|
||||||
for($i = 0; $i < 3; $i++) {
|
// Constructeur JsonDB
|
||||||
$data =json_decode(file_get_contents(self::DATA_DIR.'fr/page.json'), true);
|
$db = new \Prowebcraft\JsonDb([
|
||||||
if($data) {
|
'name' => $data . '.json',
|
||||||
return($data);
|
'dir' => $folder
|
||||||
}
|
]);
|
||||||
elseif($i === 2) {
|
$tempData = $db->get($data);
|
||||||
exit('Erreur fatale : impossible d\'accéder aux pages');
|
return [$data => $tempData];
|
||||||
}
|
|
||||||
// Pause de 10 millisecondes
|
|
||||||
usleep(10000);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -586,7 +601,7 @@ class common {
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
elseif($i === 2) {
|
elseif($i === 2) {
|
||||||
exit('Impossible de lire les données à importer.');
|
throw new \ErrorException('Import des données impossible.');
|
||||||
}
|
}
|
||||||
// Pause de 10 millisecondes
|
// Pause de 10 millisecondes
|
||||||
usleep(10000);
|
usleep(10000);
|
||||||
@ -1986,7 +2001,7 @@ class core extends common {
|
|||||||
]);
|
]);
|
||||||
} else {
|
} else {
|
||||||
if ( $this->getData(['config','page403']) !== 'none'
|
if ( $this->getData(['config','page403']) !== 'none'
|
||||||
AND $this->getData(['page',$this->getData(['config','page403'])]))
|
AND $this->getData(['page',$this->getData(['config','page403'])]))
|
||||||
{
|
{
|
||||||
header('Location:' . helper::baseUrl() . $this->getData(['config','page403']));
|
header('Location:' . helper::baseUrl() . $this->getData(['config','page403']));
|
||||||
} else {
|
} else {
|
||||||
@ -1998,8 +2013,8 @@ class core extends common {
|
|||||||
}
|
}
|
||||||
} elseif ($this->output['content'] === '') {
|
} elseif ($this->output['content'] === '') {
|
||||||
http_response_code(404);
|
http_response_code(404);
|
||||||
if ( $this->getData(['config','page404']) !== 'none'
|
if ( $this->getData(['config','page404']) !== 'none'
|
||||||
AND $this->getData(['page',$this->getData(['config','page404'])]))
|
AND $this->getData(['page',$this->getData(['config','page404'])]))
|
||||||
{
|
{
|
||||||
header('Location:' . helper::baseUrl() . $this->getData(['config','page404']));
|
header('Location:' . helper::baseUrl() . $this->getData(['config','page404']));
|
||||||
} else {
|
} else {
|
||||||
|
Loading…
Reference in New Issue
Block a user