forked from ZwiiCMS-Team/ZwiiCMS
Translate édition des locales ok
This commit is contained in:
parent
8510eb2798
commit
b357076a6f
@ -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'
|
||||
]);
|
||||
}
|
||||
|
@ -1,188 +0,0 @@
|
||||
|
||||
<?php echo template::formOpen('translateForm'); ?>
|
||||
<div class="row">
|
||||
<div class="col12">
|
||||
<div class="block">
|
||||
<h4>Identité du site
|
||||
<span id="localeHelpButton" class="helpDisplayButton" title="Cliquer pour consulter l'aide en ligne">
|
||||
<a href="https://doc.zwiicms.fr/localisation-et-identite" target="_blank">
|
||||
<?php echo template::ico('help', ['margin' => 'left']);?>
|
||||
</a>
|
||||
</span>
|
||||
</h4>
|
||||
<div class="row">
|
||||
<div class="col12">
|
||||
<?php echo template::text('localeTitle', [
|
||||
'label' => '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.'
|
||||
]); ?>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col12">
|
||||
<?php echo template::textarea('localeMetaDescription', [
|
||||
'label' => '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.'
|
||||
]); ?>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col12">
|
||||
<div class="block">
|
||||
<h4>Assignation des pages spéciales
|
||||
<span id="localeHelpButton" class="helpDisplayButton" title="Cliquer pour consulter l'aide en ligne">
|
||||
<a href="https://doc.zwiicms.fr/localisation-et-identite" target="_blank">
|
||||
<?php echo template::ico('help', ['margin' => 'left']);?>
|
||||
</a>
|
||||
</span>
|
||||
</h4>
|
||||
<div class="row">
|
||||
<div class="col4">
|
||||
<?php echo template::select('localeHomePageId', helper::arrayColumn($module::$pagesList, 'title', 'SORT_ASC'), [
|
||||
'label' => 'Accueil du site',
|
||||
'selected' =>$this->getData(['locale', 'homePageId']),
|
||||
'help' => 'La première page que vos visiteurs verront.'
|
||||
]); ?>
|
||||
</div>
|
||||
<div class="col4">
|
||||
<?php echo template::select('localePage403', array_merge(['none' => '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.'
|
||||
]); ?>
|
||||
</div>
|
||||
<div class="col4">
|
||||
<?php echo template::select('localePage404', array_merge(['none' => '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.'
|
||||
]); ?>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col4">
|
||||
<?php echo template::select('localeLegalPageId', array_merge(['none' => '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.'
|
||||
]); ?>
|
||||
</div>
|
||||
<div class="col4">
|
||||
<?php echo template::select('localeSearchPageId', array_merge(['none' => '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.'
|
||||
]); ?>
|
||||
</div>
|
||||
<div class="col4">
|
||||
<?php
|
||||
echo template::select('localePage302', array_merge(['none' => '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.'
|
||||
]); ?>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col12">
|
||||
<div class="block">
|
||||
<h4>Etiquettes des pages spéciales
|
||||
<span id="labelHelpButton" class="helpDisplayButton" title="Cliquer pour consulter l'aide en ligne">
|
||||
<a href="https://doc.zwiicms.fr/etiquettes-des-pages-speciales" target="_blank">
|
||||
<?php echo template::ico('help', ['margin' => 'left']);?>
|
||||
</a>
|
||||
</span>
|
||||
</h4>
|
||||
<div class="row">
|
||||
<div class="col6">
|
||||
<?php echo template::text('localeLegalPageLabel', [
|
||||
'label' => 'Mentions légales',
|
||||
'placeholder' => 'Mentions légales',
|
||||
'value' => $this->getData(['locale', 'legalPageLabel'])
|
||||
]); ?>
|
||||
</div>
|
||||
<div class="col6">
|
||||
<?php echo template::text('localeSearchPageLabel', [
|
||||
'label' => 'Rechercher',
|
||||
'placeholder' => 'Rechercher',
|
||||
'value' => $this->getData(['locale', 'searchPageLabel'])
|
||||
]); ?>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col6">
|
||||
<?php echo template::text('localeSitemapPageLabel', [
|
||||
'label' => 'Plan du site',
|
||||
'placeholder' => 'Plan du site',
|
||||
'value' => $this->getData(['locale', 'sitemapPageLabel']),
|
||||
]); ?>
|
||||
</div>
|
||||
<div class="col6">
|
||||
<?php echo template::text('localeCookiesFooterText', [
|
||||
'label' => 'Cookies',
|
||||
'value' => $this->getData(['locale', 'cookies', 'cookiesFooterText']),
|
||||
'placeHolder' => 'Cookies'
|
||||
]); ?>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col12">
|
||||
<div class="block">
|
||||
<h4>Message d'acceptation des Cookies
|
||||
<span id="specialeHelpButton" class="helpDisplayButton" title="Cliquer pour consulter l'aide en ligne">
|
||||
<a href="https://doc.zwiicms.fr/cookies" target="_blank">
|
||||
<?php echo template::ico('help', ['margin' => 'left']);?>
|
||||
</a>
|
||||
</span>
|
||||
</h4>
|
||||
<div class="row">
|
||||
<div class="col6">
|
||||
<?php echo template::text('localeCookiesTitleText', [
|
||||
'help' => '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'
|
||||
]); ?>
|
||||
</div>
|
||||
<div class="col6">
|
||||
<?php echo template::text('localeCookiesButtonText', [
|
||||
'label' => 'Bouton de validation',
|
||||
'value' => $this->getData(['locale', 'cookies', 'buttonValidLabel']),
|
||||
'placeHolder' => 'J\'ai compris'
|
||||
]); ?>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col8">
|
||||
<?php echo template::textarea('localeCookiesZwiiText', [
|
||||
'help' => '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.'
|
||||
]); ?>
|
||||
</div>
|
||||
|
||||
<div class="col4">
|
||||
<?php echo template::text('localeCookiesLinkMlText', [
|
||||
'help' => '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'
|
||||
]); ?>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<?php echo template::formClose(); ?>
|
@ -1,5 +1,18 @@
|
||||
|
||||
<?php echo template::formOpen('translateForm'); ?>
|
||||
<?php echo template::formOpen('translateLocaleForm'); ?>
|
||||
|
||||
<div class="row">
|
||||
<div class="col1">
|
||||
<?php echo template::button('translateFormBack', [
|
||||
'class' => 'buttonGrey',
|
||||
'href' => helper::baseUrl() . 'translate',
|
||||
'value' => template::ico('left')
|
||||
]); ?>
|
||||
</div>
|
||||
<div class="col2 offset9">
|
||||
<?php echo template::submit('translateFormSubmit'); ?>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col12">
|
||||
<div class="block">
|
||||
@ -14,7 +27,7 @@
|
||||
<div class="col12">
|
||||
<?php echo template::text('localeTitle', [
|
||||
'label' => '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.'
|
||||
]); ?>
|
||||
</div>
|
||||
@ -23,7 +36,7 @@
|
||||
<div class="col12">
|
||||
<?php echo template::textarea('localeMetaDescription', [
|
||||
'label' => '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.'
|
||||
]); ?>
|
||||
</div>
|
||||
@ -45,21 +58,21 @@
|
||||
<div class="col4">
|
||||
<?php echo template::select('localeHomePageId', helper::arrayColumn($module::$pagesList, 'title', 'SORT_ASC'), [
|
||||
'label' => '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.'
|
||||
]); ?>
|
||||
</div>
|
||||
<div class="col4">
|
||||
<?php echo template::select('localePage403', array_merge(['none' => '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.'
|
||||
]); ?>
|
||||
</div>
|
||||
<div class="col4">
|
||||
<?php echo template::select('localePage404', array_merge(['none' => '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.'
|
||||
]); ?>
|
||||
</div>
|
||||
@ -68,14 +81,14 @@
|
||||
<div class="col4">
|
||||
<?php echo template::select('localeLegalPageId', array_merge(['none' => '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.'
|
||||
]); ?>
|
||||
</div>
|
||||
<div class="col4">
|
||||
<?php echo template::select('localeSearchPageId', array_merge(['none' => '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.'
|
||||
]); ?>
|
||||
</div>
|
||||
@ -83,7 +96,7 @@
|
||||
<?php
|
||||
echo template::select('localePage302', array_merge(['none' => '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.'
|
||||
]); ?>
|
||||
</div>
|
||||
@ -106,14 +119,14 @@
|
||||
<?php echo template::text('localeLegalPageLabel', [
|
||||
'label' => 'Mentions légales',
|
||||
'placeholder' => 'Mentions légales',
|
||||
'value' => $this->getData(['locale', 'legalPageLabel'])
|
||||
'value' => $module::$locales[$this->getUrl(2)]['locale']['legalPageLabel']
|
||||
]); ?>
|
||||
</div>
|
||||
<div class="col6">
|
||||
<?php echo template::text('localeSearchPageLabel', [
|
||||
'label' => 'Rechercher',
|
||||
'placeholder' => 'Rechercher',
|
||||
'value' => $this->getData(['locale', 'searchPageLabel'])
|
||||
'value' => $module::$locales[$this->getUrl(2)]['locale']['searchPageLabel']
|
||||
]); ?>
|
||||
</div>
|
||||
</div>
|
||||
@ -122,13 +135,13 @@
|
||||
<?php echo template::text('localeSitemapPageLabel', [
|
||||
'label' => 'Plan du site',
|
||||
'placeholder' => 'Plan du site',
|
||||
'value' => $this->getData(['locale', 'sitemapPageLabel']),
|
||||
'value' => $module::$locales[$this->getUrl(2)]['locale']['sitemapPageLabel'],
|
||||
]); ?>
|
||||
</div>
|
||||
<div class="col6">
|
||||
<?php echo template::text('localeCookiesFooterText', [
|
||||
'label' => 'Cookies',
|
||||
'value' => $this->getData(['locale', 'cookies', 'cookiesFooterText']),
|
||||
'value' => $module::$locales[$this->getUrl(2)]['locale']['cookies']['cookiesFooterText'],
|
||||
'placeHolder' => 'Cookies'
|
||||
]); ?>
|
||||
</div>
|
||||
@ -151,14 +164,14 @@
|
||||
<?php echo template::text('localeCookiesTitleText', [
|
||||
'help' => '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'
|
||||
]); ?>
|
||||
</div>
|
||||
<div class="col6">
|
||||
<?php echo template::text('localeCookiesButtonText', [
|
||||
'label' => 'Bouton de validation',
|
||||
'value' => $this->getData(['locale', 'cookies', 'buttonValidLabel']),
|
||||
'value' => $module::$locales[$this->getUrl(2)]['locale']['cookies']['buttonValidLabel'],
|
||||
'placeHolder' => 'J\'ai compris'
|
||||
]); ?>
|
||||
</div>
|
||||
@ -168,7 +181,7 @@
|
||||
<?php echo template::textarea('localeCookiesZwiiText', [
|
||||
'help' => '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.'
|
||||
]); ?>
|
||||
</div>
|
||||
@ -177,7 +190,7 @@
|
||||
<?php echo template::text('localeCookiesLinkMlText', [
|
||||
'help' => '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'
|
||||
]); ?>
|
||||
</div>
|
||||
|
@ -26,7 +26,7 @@
|
||||
</div>
|
||||
<div class="col1">
|
||||
<?php echo template::button('translateButton', [
|
||||
'href' => helper::baseUrl() . 'translate/copy',
|
||||
'href' => helper::baseUrl() . 'translate/add',
|
||||
'value' => template::ico('plus'),
|
||||
'class' => 'buttonGreen',
|
||||
'help' => 'Ajouter une langue de contenu'
|
||||
|
Loading…
Reference in New Issue
Block a user