diff --git a/core/class/template.class.php b/core/class/template.class.php index c7a2acc1..02795ca2 100644 --- a/core/class/template.class.php +++ b/core/class/template.class.php @@ -47,7 +47,7 @@ class template { 'id' => $nameId, 'name' => $nameId, 'value' => '', - 'limit' => false + 'limit' => false // captcha simple ], $attributes); // Captcha quatre opérations @@ -58,7 +58,8 @@ class template { // Tirage de l'opération mt_srand((float) microtime()*1000000); - $operator = mt_rand (1, 4); + // Captcha simple limité à l'addition + $operator = $attributes['limit'] ? mt_rand (1, 4) : 1; // Limite si multiplication ou division if ($operator > 2) { diff --git a/core/core.php b/core/core.php index c37c518b..9f2bdd68 100644 --- a/core/core.php +++ b/core/core.php @@ -57,15 +57,6 @@ class common { 'theme', 'user' ]; - public static $dataStage = [ - 'config', - 'core', - 'module', - 'page', - 'user', - 'theme', - 'admin' - ]; public static $accessList = [ 'user', 'theme', @@ -156,9 +147,24 @@ class common { private $url = ''; // Données de site private $user = []; + private $core = []; + private $config = []; private $page = []; private $module = []; + // Descripteur de données Entrées / Sorties + // Liste ici tous les fichiers de données + private $dataFiles = [ + 'page' => '', + 'module' => '', + 'core' => '', + 'config' => '', + 'page' => '', + 'user' => '', + 'theme' => '', + 'admin' => '', + 'blacklist' => '' + ]; /** * Constructeur commun @@ -172,20 +178,32 @@ class common { $this->input['_COOKIE'] = $_COOKIE; } + // Instanciation de la classe des entrées / sorties + // Récupére les descripteurs + foreach ($this->dataFiles as $keys => $value) { + // Constructeur JsonDB + $this->dataFiles[$keys] = new \Prowebcraft\JsonDb([ + 'name' => $keys . '.json', + 'dir' => $this->dirData ($keys,'fr') + ]);; + } + + // Import version 9 if (file_exists(self::DATA_DIR . 'core.json') === true && - $this->getData(['core','dataVersion']) < 10000) { - $keepUsers = isset($_SESSION['KEEP_USERS']) ? $_SESSION['KEEP_USERS'] : false; - $this->importData($keepUsers); - unset ($_SESSION['KEEP_USERS']); - // Réinstaller htaccess - copy('core/module/install/ressource/.htaccess', self::DATA_DIR . '.htaccess'); - common::$importNotices [] = "Importation réalisée avec succès" ; - //echo ''; + $this->getData(['core','dataVersion']) < 10000) { + $keepUsers = isset($_SESSION['KEEP_USERS']) ? $_SESSION['KEEP_USERS'] : false; + $this->importData($keepUsers); + unset ($_SESSION['KEEP_USERS']); + // Réinstaller htaccess + copy('core/module/install/ressource/.htaccess', self::DATA_DIR . '.htaccess'); + common::$importNotices [] = "Importation réalisée avec succès" ; + //echo ''; } + // Installation fraîche, initialisation des modules manquants // La langue d'installation par défaut est fr - foreach (self::$dataStage as $stageId) { + foreach ($this->dataFiles as $stageId => $item) { $folder = $this->dirData ($stageId, 'fr'); if (file_exists($folder . $stageId .'.json') === false) { $this->initData($stageId,'fr'); @@ -198,10 +216,6 @@ class common { $this->user = $this->getData(['user', $this->getInput('ZWII_USER_ID')]); } - // Mise en cache des pages et des modules - $this->page = $this->getCache('page'); - $this->module = $this->getCache('module'); - // Construit la liste des pages parents/enfants if($this->hierarchy['all'] === []) { $pages = helper::arrayCollumn($this->getData(['page']), 'position', 'SORT_ASC'); @@ -328,13 +342,9 @@ class common { * @param array $keys Clé(s) des données */ public function deleteData($keys) { - //Retourne une chaine contenant le dossier à créer - $folder = $this->dirData ($keys[0],'fr'); - // Constructeur JsonDB - $db = new \Prowebcraft\JsonDb([ - 'name' => $keys[0] . '.json', - 'dir' => $folder - ]); + // Descripteur + $db = $this->dataFiles[$keys[0]]; + // Aiguillage switch(count($keys)) { case 1: $db->delete($keys[0]); @@ -375,38 +385,10 @@ class common { public function getData($keys = []) { if (count($keys) >= 1) { - - /** - * Lecture dans le cache, page et module - */ - if ($keys[0] === 'page' || - $keys[0] === 'module' ) { - // Décent dans les niveaux de la variable $data - $data = array_merge ($this->page , $this->module); - 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; - } - /** * Lecture directe */ - //Retourne une chaine contenant le dossier à créer - $folder = $this->dirData ($keys[0],'fr'); - // Constructeur JsonDB - $db = new \Prowebcraft\JsonDb([ - 'name' => $keys[0] . '.json', - 'dir' => $folder - ]); + $db = $this->dataFiles[$keys[0]]; switch(count($keys)) { case 1: $tempData = $db->get($keys[0]); @@ -434,22 +416,6 @@ class common { } } - - /** - * Lecture des fichiers de données de page et mise ne cache - * @param @return string données des pages - */ - public function getCache($data) { - $folder = $this->dirData ($data,'fr'); - // Constructeur JsonDB - $db = new \Prowebcraft\JsonDb([ - 'name' => $data . '.json', - 'dir' => $folder - ]); - $tempData = $db->get($data); - return [$data => $tempData]; - } - /* * Dummy function * Compatibilité des modules avec v8 et v9 @@ -964,14 +930,10 @@ class common { return false; } - //Retourne une chaine contenant le dossier à créer - $folder = $this->dirData ($keys[0],'fr'); - // Constructeur JsonDB - $db = new \Prowebcraft\JsonDb([ - 'name' => $keys[0] . '.json', - 'dir' => $folder - ]); + // Descripteur + $db = $this->dataFiles[$keys[0]]; + // Aiguillage switch(count($keys)) { case 2: $db->set($keys[0],$keys[1]); @@ -1016,12 +978,7 @@ class common { if (!file_exists(self::DATA_DIR . '/' . $lang)) { mkdir (self::DATA_DIR . '/' . $lang); } - $folder = $this->dirData ($module,$lang); - // Constructeur JsonDB - $db = new \Prowebcraft\JsonDb([ - 'name' => $module . '.json', - 'dir' => $folder - ]); + $db = $this->dataFiles[$module]; if ($sampleSite === true) { $db->set($module,init::$siteData[$module]); } else { @@ -2906,4 +2863,4 @@ class layout extends common { } } -} \ No newline at end of file +} diff --git a/core/module/config/view/index/index.php b/core/module/config/view/index/index.php index 677013c4..ed0b90fe 100644 --- a/core/module/config/view/index/index.php +++ b/core/module/config/view/index/index.php @@ -102,7 +102,7 @@
$this->getData(['config','captchaStrong']), - 'help' => 'Option recommandée pour sécuriser la connexion. S\'applique à tous les captchas du site.' + 'help' => 'Option recommandée pour sécuriser la connexion. S\'applique à tous les captchas du site. Le captcha simple se limite à une addition de nombres de 0 à 10. Le captcha renforcé utilise quatre opérations de nombres de 0 à 20.' ]); ?>