From b357076a6f36fc0b83b81fc295e7414b33dc6619 Mon Sep 17 00:00:00 2001 From: Fred Tempez Date: Tue, 27 Sep 2022 11:25:05 +0200 Subject: [PATCH] =?UTF-8?q?Translate=20=C3=A9dition=20des=20locales=20ok?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- core/module/translate/translate.php | 32 +++- core/module/translate/view/add/add.php | 188 --------------------- core/module/translate/view/edit/edit.php | 47 ++++-- core/module/translate/view/index/index.php | 2 +- 4 files changed, 61 insertions(+), 208 deletions(-) diff --git a/core/module/translate/translate.php b/core/module/translate/translate.php index 09d9178f..b33901e2 100644 --- a/core/module/translate/translate.php +++ b/core/module/translate/translate.php @@ -24,7 +24,7 @@ class translate extends common { 'i18n' => self::GROUP_VISITOR, ]; - // Language content + // Language contents public static $translateOptions = []; // Page pour la configuration dans la langue public static $pagesList = []; @@ -35,6 +35,8 @@ class translate extends common { public static $languagesTarget = []; // Activation du bouton de copie public static $siteTranslate = true; + // Localisation en cours d'édition + public static $locales = []; //UI // Fichiers des langues de l'interface @@ -264,6 +266,16 @@ class translate extends common { public function edit() { + // Jeton incorrect + if ($this->getUrl(3) !== $_SESSION['csrf']) { + // Valeurs en sortie + $this->addOutput([ + 'redirect' => helper::baseUrl() . 'translate', + 'state' => false, + 'notification' => 'Action non autorisée' + ]); + } + // Soumission du formulaire if($this->isPost()) { @@ -322,6 +334,22 @@ class translate extends common { // Préparation de l'affichage du formulaire //----------------------------------------- + // Récupération des locales de la langue sélectionnée + // Lire les locales sans passer par les méthodes + + // Vérifier la conformité de l'URL + if (array_key_exists($this->getUrl(2), self::$languages) ) { + self::$locales [$this->getUrl(2)] = json_decode(file_get_contents(self::DATA_DIR . $this->getUrl(2) . '/locale.json'), true); + } else { + // Bidouillage de l'URL, on sort + // Valeurs en sortie + $this->addOutput([ + 'redirect' => helper::baseUrl() . 'translate', + 'notification' => 'URL incorrecte', + 'state' => false + ]); + } + // Générer la liste des pages disponibles self::$pagesList = $this->getData(['page']); foreach(self::$pagesList as $page => $pageId) { @@ -342,7 +370,7 @@ class translate extends common { // Valeurs en sortie $this->addOutput([ - 'title' => 'Edition', + 'title' => 'Paramètres de la localisation ' . self::$languages[$this->getUrl(2)], 'view' => 'edit' ]); } diff --git a/core/module/translate/view/add/add.php b/core/module/translate/view/add/add.php index be232938..e69de29b 100644 --- a/core/module/translate/view/add/add.php +++ b/core/module/translate/view/add/add.php @@ -1,188 +0,0 @@ - - -
-
-
-

Identité du site - - - 'left']);?> - - -

-
-
- 'Titre du site' , - 'value' => $this->getData(['locale', 'title']), - 'help' => 'Il apparaît dans la barre de titre et les partages sur les réseaux sociaux.' - ]); ?> -
-
-
-
- 'Description du site', - 'value' => $this->getData(['locale', 'metaDescription']), - 'help' => 'La description d\'une page participe à son référencement, chaque page doit disposer d\'une description différente.' - ]); ?> -
-
-
-
-
-
-
-
-

Assignation des pages spéciales - - - 'left']);?> - - -

-
-
- 'Accueil du site', - 'selected' =>$this->getData(['locale', 'homePageId']), - 'help' => 'La première page que vos visiteurs verront.' - ]); ?> -
-
- 'Page par défaut'],helper::arrayColumn($module::$orphansList, 'title', 'SORT_ASC')), [ - 'label' => 'Accès interdit, erreur 403', - 'selected' =>$this->getData(['locale', 'page403']), - 'help' => 'Cette page ne doit pas apparaître dans l\'arborescence du menu. Créez une page orpheline.' - ]); ?> -
-
- 'Page par défaut'],helper::arrayColumn($module::$orphansList, 'title', 'SORT_ASC')), [ - 'label' => 'Page inexistante, erreur 404', - 'selected' =>$this->getData(['locale', 'page404']), - 'help' => 'Cette page ne doit pas apparaître dans l\'arborescence du menu. Créez une page orpheline.' - ]); ?> -
-
-
-
- 'Aucune'] , helper::arrayColumn($module::$pagesList, 'title', 'SORT_ASC') ) , [ - 'label' => 'Mentions légales', - 'selected' => $this->getData(['locale', 'legalPageId']), - 'help' => 'Les mentions légales sont obligatoires en France. Une option du pied de page ajoute un lien discret vers cette page.' - ]); ?> -
-
- 'Aucune'] , helper::arrayColumn($module::$pagesList, 'title', 'SORT_ASC') ) , [ - 'label' => 'Recherche dans le site', - 'selected' => $this->getData(['locale', 'searchPageId']), - 'help' => 'Sélectionnez une page contenant le module \'Recherche\'. Une option du pied de page ajoute un lien discret vers cette page.' - ]); ?> -
-
- 'Page par défaut'],helper::arrayColumn($module::$orphansList, 'title', 'SORT_ASC')), [ - 'label' => 'Site en maintenance', - 'selected' =>$this->getData(['locale', 'page302']), - 'help' => 'Cette page ne doit pas apparaître dans l\'arborescence du menu. Créez une page orpheline.' - ]); ?> -
-
-
-
-
-
-
-
-

Etiquettes des pages spéciales - - - 'left']);?> - - -

-
-
- 'Mentions légales', - 'placeholder' => 'Mentions légales', - 'value' => $this->getData(['locale', 'legalPageLabel']) - ]); ?> -
-
- 'Rechercher', - 'placeholder' => 'Rechercher', - 'value' => $this->getData(['locale', 'searchPageLabel']) - ]); ?> -
-
-
-
- 'Plan du site', - 'placeholder' => 'Plan du site', - 'value' => $this->getData(['locale', 'sitemapPageLabel']), - ]); ?> -
-
- 'Cookies', - 'value' => $this->getData(['locale', 'cookies', 'cookiesFooterText']), - 'placeHolder' => 'Cookies' - ]); ?> -
-
-
-
-
-
-
-
-

Message d'acceptation des Cookies - - - 'left']);?> - - -

-
-
- 'Saisissez le titre de la fenêtre de gestion des cookies.', - 'label' => 'Titre de la fenêtre', - 'value' => $this->getData(['locale', 'cookies', 'titleLabel']), - 'placeHolder' => 'Gérer les cookies' - ]); ?> -
-
- 'Bouton de validation', - 'value' => $this->getData(['locale', 'cookies', 'buttonValidLabel']), - 'placeHolder' => 'J\'ai compris' - ]); ?> -
-
-
-
- 'Saisissez le message pour les cookies déposés par ZwiiCMS, nécessaires au fonctionnement et qui ne nécessitent pas de consentement.', - 'label' => 'Cookies Zwii', - 'value' => $this->getData(['locale', 'cookies', 'mainLabel']), - 'placeHolder' => 'Ce site utilise des cookies nécessaires à son fonctionnement, ils permettent de fluidifier son fonctionnement par exemple en mémorisant les données de connexion, la langue que vous avez choisie ou la validation de ce message.' - ]); ?> -
- -
- 'Saisissez le texte du lien vers les mentions légales,la page doit être définie dans la configuration du site.', - 'label' => 'Lien page des mentions légales.', - 'value' => $this->getData(['locale', 'cookies', 'linkLegalLabel']), - 'placeHolder' => 'Consulter les mentions légales' - ]); ?> -
-
-
-
-
- \ No newline at end of file diff --git a/core/module/translate/view/edit/edit.php b/core/module/translate/view/edit/edit.php index be232938..94c1f1ce 100644 --- a/core/module/translate/view/edit/edit.php +++ b/core/module/translate/view/edit/edit.php @@ -1,5 +1,18 @@ - + + +
+
+ 'buttonGrey', + 'href' => helper::baseUrl() . 'translate', + 'value' => template::ico('left') + ]); ?> +
+
+ +
+
@@ -14,7 +27,7 @@
'Titre du site' , - 'value' => $this->getData(['locale', 'title']), + 'value' => $module::$locales[$this->getUrl(2)]['locale']['title'], 'help' => 'Il apparaît dans la barre de titre et les partages sur les réseaux sociaux.' ]); ?>
@@ -23,7 +36,7 @@
'Description du site', - 'value' => $this->getData(['locale', 'metaDescription']), + 'value' => $module::$locales[$this->getUrl(2)]['locale']['metaDescription'], 'help' => 'La description d\'une page participe à son référencement, chaque page doit disposer d\'une description différente.' ]); ?>
@@ -45,21 +58,21 @@
'Accueil du site', - 'selected' =>$this->getData(['locale', 'homePageId']), + 'selected' =>$module::$locales[$this->getUrl(2)]['locale'][ 'homePageId'], 'help' => 'La première page que vos visiteurs verront.' ]); ?>
'Page par défaut'],helper::arrayColumn($module::$orphansList, 'title', 'SORT_ASC')), [ 'label' => 'Accès interdit, erreur 403', - 'selected' =>$this->getData(['locale', 'page403']), + 'selected' =>$module::$locales[$this->getUrl(2)]['locale']['page403'], 'help' => 'Cette page ne doit pas apparaître dans l\'arborescence du menu. Créez une page orpheline.' ]); ?>
'Page par défaut'],helper::arrayColumn($module::$orphansList, 'title', 'SORT_ASC')), [ 'label' => 'Page inexistante, erreur 404', - 'selected' =>$this->getData(['locale', 'page404']), + 'selected' =>$module::$locales[$this->getUrl(2)]['locale']['page404'], 'help' => 'Cette page ne doit pas apparaître dans l\'arborescence du menu. Créez une page orpheline.' ]); ?>
@@ -68,14 +81,14 @@
'Aucune'] , helper::arrayColumn($module::$pagesList, 'title', 'SORT_ASC') ) , [ 'label' => 'Mentions légales', - 'selected' => $this->getData(['locale', 'legalPageId']), + 'selected' => $module::$locales[$this->getUrl(2)]['locale']['legalPageId'], 'help' => 'Les mentions légales sont obligatoires en France. Une option du pied de page ajoute un lien discret vers cette page.' ]); ?>
'Aucune'] , helper::arrayColumn($module::$pagesList, 'title', 'SORT_ASC') ) , [ 'label' => 'Recherche dans le site', - 'selected' => $this->getData(['locale', 'searchPageId']), + 'selected' => $module::$locales[$this->getUrl(2)]['locale']['searchPageId'], 'help' => 'Sélectionnez une page contenant le module \'Recherche\'. Une option du pied de page ajoute un lien discret vers cette page.' ]); ?>
@@ -83,7 +96,7 @@ 'Page par défaut'],helper::arrayColumn($module::$orphansList, 'title', 'SORT_ASC')), [ 'label' => 'Site en maintenance', - 'selected' =>$this->getData(['locale', 'page302']), + 'selected' =>$module::$locales[$this->getUrl(2)]['locale']['page302'], 'help' => 'Cette page ne doit pas apparaître dans l\'arborescence du menu. Créez une page orpheline.' ]); ?>
@@ -106,14 +119,14 @@ 'Mentions légales', 'placeholder' => 'Mentions légales', - 'value' => $this->getData(['locale', 'legalPageLabel']) + 'value' => $module::$locales[$this->getUrl(2)]['locale']['legalPageLabel'] ]); ?>
'Rechercher', 'placeholder' => 'Rechercher', - 'value' => $this->getData(['locale', 'searchPageLabel']) + 'value' => $module::$locales[$this->getUrl(2)]['locale']['searchPageLabel'] ]); ?>
@@ -122,13 +135,13 @@ 'Plan du site', 'placeholder' => 'Plan du site', - 'value' => $this->getData(['locale', 'sitemapPageLabel']), + 'value' => $module::$locales[$this->getUrl(2)]['locale']['sitemapPageLabel'], ]); ?>
'Cookies', - 'value' => $this->getData(['locale', 'cookies', 'cookiesFooterText']), + 'value' => $module::$locales[$this->getUrl(2)]['locale']['cookies']['cookiesFooterText'], 'placeHolder' => 'Cookies' ]); ?>
@@ -151,14 +164,14 @@ 'Saisissez le titre de la fenêtre de gestion des cookies.', 'label' => 'Titre de la fenêtre', - 'value' => $this->getData(['locale', 'cookies', 'titleLabel']), + 'value' => $module::$locales[$this->getUrl(2)]['locale']['cookies']['titleLabel'], 'placeHolder' => 'Gérer les cookies' ]); ?>
'Bouton de validation', - 'value' => $this->getData(['locale', 'cookies', 'buttonValidLabel']), + 'value' => $module::$locales[$this->getUrl(2)]['locale']['cookies']['buttonValidLabel'], 'placeHolder' => 'J\'ai compris' ]); ?>
@@ -168,7 +181,7 @@ 'Saisissez le message pour les cookies déposés par ZwiiCMS, nécessaires au fonctionnement et qui ne nécessitent pas de consentement.', 'label' => 'Cookies Zwii', - 'value' => $this->getData(['locale', 'cookies', 'mainLabel']), + 'value' => $module::$locales[$this->getUrl(2)]['locale']['cookies']['mainLabel'], 'placeHolder' => 'Ce site utilise des cookies nécessaires à son fonctionnement, ils permettent de fluidifier son fonctionnement par exemple en mémorisant les données de connexion, la langue que vous avez choisie ou la validation de ce message.' ]); ?> @@ -177,7 +190,7 @@ 'Saisissez le texte du lien vers les mentions légales,la page doit être définie dans la configuration du site.', 'label' => 'Lien page des mentions légales.', - 'value' => $this->getData(['locale', 'cookies', 'linkLegalLabel']), + 'value' => $module::$locales[$this->getUrl(2)]['locale']['cookies']['linkLegalLabel'], 'placeHolder' => 'Consulter les mentions légales' ]); ?> diff --git a/core/module/translate/view/index/index.php b/core/module/translate/view/index/index.php index c4a2f024..0b4a77a4 100644 --- a/core/module/translate/view/index/index.php +++ b/core/module/translate/view/index/index.php @@ -26,7 +26,7 @@
helper::baseUrl() . 'translate/copy', + 'href' => helper::baseUrl() . 'translate/add', 'value' => template::ico('plus'), 'class' => 'buttonGreen', 'help' => 'Ajouter une langue de contenu'