From 617351290dc75fe594aa24fd8979b9c5b8dc3134 Mon Sep 17 00:00:00 2001 From: Fred Tempez Date: Sat, 17 Oct 2020 17:18:41 +0200 Subject: [PATCH 1/5] init --- core/core.php | 40 ++++++++++++++++++++++++---------------- 1 file changed, 24 insertions(+), 16 deletions(-) diff --git a/core/core.php b/core/core.php index 81709e99..1925e554 100644 --- a/core/core.php +++ b/core/core.php @@ -151,6 +151,8 @@ class common { private $url = ''; // Données de site private $user = []; + private $core = []; + private $config = []; private $page = []; private $module = []; @@ -167,17 +169,24 @@ class common { $this->input['_COOKIE'] = $_COOKIE; } + // Mise en cache des pages et des modules + $this->page = $this->getCache('page'); + $this->module = $this->getCache('module'); + $this->config = $this->getCache('config'); + $this->core = $this->getCache('core'); + // 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) { @@ -193,10 +202,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'); @@ -375,15 +380,18 @@ class common { * Lecture dans le cache, page et module */ if ($keys[0] === 'page' || - $keys[0] === 'module' ) { + $keys[0] === 'module' || + $keys[0] === 'core' || + $keys[0] === 'config' || + $keys[0] === 'page') { // Décent dans les niveaux de la variable $data - $data = array_merge ($this->page , $this->module); + $data = array_merge ($this->page , $this->module, $this->user, $this->config, $this->core); 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 + // Sinon descend dans les niveaux else { $data = $data[$key]; } @@ -2857,4 +2865,4 @@ class layout extends common { } } -} \ No newline at end of file +} From b6023ede0f6099f29daae2ddec1497df627f4e5a Mon Sep 17 00:00:00 2001 From: Fred Tempez Date: Sun, 18 Oct 2020 08:51:02 +0200 Subject: [PATCH 2/5] engine ok --- core/core.php | 108 ++++++++++++++++---------------------------------- 1 file changed, 34 insertions(+), 74 deletions(-) diff --git a/core/core.php b/core/core.php index 1925e554..b4416740 100644 --- a/core/core.php +++ b/core/core.php @@ -156,6 +156,21 @@ class common { 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 @@ -169,11 +184,16 @@ class common { $this->input['_COOKIE'] = $_COOKIE; } - // Mise en cache des pages et des modules - $this->page = $this->getCache('page'); - $this->module = $this->getCache('module'); - $this->config = $this->getCache('config'); - $this->core = $this->getCache('core'); + // 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 && @@ -186,7 +206,7 @@ class common { 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) { @@ -328,13 +348,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,41 +391,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' || - $keys[0] === 'core' || - $keys[0] === 'config' || - $keys[0] === 'page') { - // Décent dans les niveaux de la variable $data - $data = array_merge ($this->page , $this->module, $this->user, $this->config, $this->core); - foreach($keys as $key) { - // Si aucune donnée n'existe retourne null - if(isset($data[$key]) === false) { - return null; - } - // Sinon descend 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]); @@ -437,22 +422,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 @@ -967,14 +936,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]); @@ -1019,12 +984,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 { From 34aac7834aed3eb55be85b8e307e2362c4fe3f89 Mon Sep 17 00:00:00 2001 From: Fred Tempez Date: Sun, 25 Oct 2020 09:47:33 +0100 Subject: [PATCH 3/5] merge 10304 --- CHANGES.md | 4 ++++ core/layout/common.css | 23 ++++++++++++++++------- 2 files changed, 20 insertions(+), 7 deletions(-) diff --git a/CHANGES.md b/CHANGES.md index ba56e1c5..85029382 100755 --- a/CHANGES.md +++ b/CHANGES.md @@ -13,6 +13,10 @@ - Limiter l'édition des articles et des commentaires à l'id de l'éditeur - Approbation des commentaires +## version 10.3.04 +- Correction : + - Position des entrées de menu sur les écrans de smartphone. + ## version 10.3.03 - Correction : - Localisation, affichage des accents, LC_TIME devient LC_ALL diff --git a/core/layout/common.css b/core/layout/common.css index b9a1e83b..ef6e4d48 100755 --- a/core/layout/common.css +++ b/core/layout/common.css @@ -386,22 +386,22 @@ td > .col12 { @media (max-width: 768px) { #bar { text-align: center; - padding: 0; - margin: 0; + padding: 0 1; + margin: 0 1; } #bar ul { height: auto; } #bar #barSelectPage { - width: 50% ; - font-size: 0.6em; + width: 40% ; + font-size: 1em; } #bar #barLeft { - font-size: 1.6em; + font-size: 1.2em; float : none; } #bar #barRight { - font-size: 1.6em; + font-size: 1.4em; } #bar #displayUsername { display: none; @@ -552,8 +552,17 @@ nav::before { body > nav { margin:0; } - nav #toggle { + nav #toggle, + nav #menuLeft { display: block; + float: none; + } + nav #menuLeft { + flex-direction: column; + float: none; + } + nav #menuRight { + font-size: 2em; } nav #menu { display: none; From c88fbe4092a2b5cf908c0c749d8b5e153f71c15b Mon Sep 17 00:00:00 2001 From: fredtempez Date: Tue, 27 Oct 2020 21:21:30 +0100 Subject: [PATCH 4/5] =?UTF-8?q?blacklist=20non=20cr=C3=A9=C3=A9=20+=20une?= =?UTF-8?q?=20seule=20variable=20des=20description=20des=20donn=C3=A9es?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- core/core.php | 13 +------------ 1 file changed, 1 insertion(+), 12 deletions(-) diff --git a/core/core.php b/core/core.php index cd1fcac1..e8a8a189 100644 --- a/core/core.php +++ b/core/core.php @@ -56,15 +56,6 @@ class common { 'theme', 'user' ]; - public static $dataStage = [ - 'config', - 'core', - 'module', - 'page', - 'user', - 'theme', - 'admin' - ]; public static $accessList = [ 'user', 'theme', @@ -170,8 +161,6 @@ class common { 'blacklist' => '' ]; - - /** * Constructeur commun */ @@ -209,7 +198,7 @@ class common { // 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'); From 159c7f82e20c5fb1c62fdf1ea34d848cce05a664 Mon Sep 17 00:00:00 2001 From: Fred Tempez Date: Wed, 4 Nov 2020 20:56:23 +0100 Subject: [PATCH 5/5] Captcha simple : addition simple --- core/class/template.class.php | 5 +++-- core/module/config/view/index/index.php | 2 +- 2 files changed, 4 insertions(+), 3 deletions(-) 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/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.' ]); ?>