Nom du cookie + drapeaux ok

This commit is contained in:
Fred Tempez 2022-09-29 19:08:32 +02:00
parent ac8f65277e
commit bf1302a0a4
5 changed files with 23 additions and 23 deletions

View File

@ -501,8 +501,8 @@ class template
$lang = $langId; $lang = $langId;
break; break;
case 'selected': case 'selected':
if (isset($_COOKIE['ZWII_I18N_SITE'])) { if (isset($_COOKIE['ZWII_CONTENT'])) {
$lang = $_COOKIE['ZWII_I18N_SITE']; $lang = $_COOKIE['ZWII_CONTENT'];
} else { } else {
$lang = 'fr_FR'; $lang = 'fr_FR';
} }

View File

@ -307,9 +307,9 @@ class common
self::$i18nUI = $t['config']['i18n']['interface']; self::$i18nUI = $t['config']['i18n']['interface'];
// Déterminer la langue du contenu du site // Déterminer la langue du contenu du site
if (isset($this->input['_COOKIE']['ZWII_I18N_SITE'])) { if (isset($this->input['_COOKIE']['ZWII_CONTENT'])) {
// Déterminé par le cookie // Déterminé par le cookie
self::$i18nContent = $this->input['_COOKIE']['ZWII_I18N_SITE']; self::$i18nContent = $this->input['_COOKIE']['ZWII_CONTENT'];
setlocale(LC_TIME, self::$i18nContent . '_' . strtoupper(self::$i18nContent)); setlocale(LC_TIME, self::$i18nContent . '_' . strtoupper(self::$i18nContent));
} else { } else {
// Absence du cookie, la langue par défaut est celle de l'interface. // Absence du cookie, la langue par défaut est celle de l'interface.
@ -1256,7 +1256,8 @@ class common
// Récupérer la config de la page courante // Récupérer la config de la page courante
$blocks = explode('-', $this->getData(['page', $this->getUrl(0), 'block'])); $blocks = explode('-', $this->getData(['page', $this->getUrl(0), 'block']));
// Initialiser // Initialiser
$blockleft = $blockright = ""; $blockleft = '';
$blockright = '';
switch (sizeof($blocks)) { switch (sizeof($blocks)) {
case 1: // une colonne case 1: // une colonne
$content = 'col' . $blocks[0]; $content = 'col' . $blocks[0];
@ -2267,11 +2268,11 @@ class common
{ {
foreach (self::$languages as $key => $value) { foreach (self::$languages as $key => $value) {
if ( if (
$this->getData(['config', 'i18n', $key]) === 'site' is_dir(self::DATA_DIR . $key)
) { ) {
if ( if (
(isset($_COOKIE['ZWII_I18N_SITE']) (isset($_COOKIE['ZWII_CONTENT'])
and $_COOKIE['ZWII_I18N_SITE'] === $key and $_COOKIE['ZWII_CONTENT'] === $key
) )
) { ) {
$select = ' class="i18nFlagSelected" '; $select = ' class="i18nFlagSelected" ';
@ -2280,7 +2281,7 @@ class common
} }
echo '<li>'; echo '<li>';
echo '<a href="' . helper::baseUrl() . 'translate/i18n/' . $key . '/' . $this->getData(['config', 'i18n', $key]) . '/' . $this->getUrl(0) . '"><img ' . $select . ' alt="' . $value . '" src="' . helper::baseUrl(false) . 'core/vendor/i18n/png/' . $key . '.png"/></a>'; echo '<a href="' . helper::baseUrl() . 'translate/content/' . $key . '"><img ' . $select . ' alt="' . $value . '" src="' . helper::baseUrl(false) . 'core/vendor/i18n/png/' . $key . '.png"/></a>';
echo '</li>'; echo '</li>';
} }
} }

View File

@ -890,7 +890,7 @@ if ($this->getData(['core', 'dataVersion']) < 11600) {
$this->deleteData(['config', 'i18n', 'scriptGoogle']); $this->deleteData(['config', 'i18n', 'scriptGoogle']);
$this->deleteData(['config', 'i18n', 'showCredits']); $this->deleteData(['config', 'i18n', 'showCredits']);
$this->deleteData(['config', 'i18n', 'autoDetect']); $this->deleteData(['config', 'i18n', 'autoDetect']);
helper::deleteCookie('ZWII_I18N_SCRIPT'); helper::deleteCookie('ZWII_CONTENTSCRIPT');
// Nettoyage de fichiers inutiles // Nettoyage de fichiers inutiles
if (file_exists('core\module\user\view\import\import.help.html')) { if (file_exists('core\module\user\view\import\import.help.html')) {

View File

@ -148,7 +148,7 @@ class install extends common
); );
// Nettoyer les cookies de langue d'une précédente installation // Nettoyer les cookies de langue d'une précédente installation
helper::deleteCookie('ZWII_I18N_SITE'); helper::deleteCookie('ZWII_CONTENT');
// Créer le contenu dans la langue sélectionnée // Créer le contenu dans la langue sélectionnée
self::$i18nContent = substr(self::$i18nUI, 0, 2); self::$i18nContent = substr(self::$i18nUI, 0, 2);

View File

@ -22,7 +22,7 @@ class translate extends common
'add' => self::GROUP_ADMIN, // Ajouter une langue de contenu 'add' => self::GROUP_ADMIN, // Ajouter une langue de contenu
'edit' => self::GROUP_ADMIN, // Editer une langue de contenu 'edit' => self::GROUP_ADMIN, // Editer une langue de contenu
'delete' => self::GROUP_ADMIN, // Effacer une langue de contenu 'delete' => self::GROUP_ADMIN, // Effacer une langue de contenu
'i18n' => self::GROUP_VISITOR, 'content' => self::GROUP_VISITOR,
]; ];
// Language contents // Language contents
@ -92,7 +92,7 @@ class translate extends common
foreach (self::$languages as $key => $value) { foreach (self::$languages as $key => $value) {
// tableau des langues installées // tableau des langues installées
if (is_dir(self::DATA_DIR . $key)) { if (is_dir(self::DATA_DIR . $key)) {
self::$languagesTarget[$key] = self::$languages[$key]; self::$languagesTarget[$key] = self::$languages[$key];
} }
} }
@ -388,19 +388,18 @@ class translate extends common
* Traitement du changement de langue * Traitement du changement de langue
* Fonction utilisée par le noyau * Fonction utilisée par le noyau
*/ */
public function i18n() public function content()
{ {
// Activation du drapeau // Activation du drapeau
if ($this->getInput('ZWII_I18N_' . strtoupper($this->getUrl(3))) !== $this->getUrl(2)) { $lang = $this->getUrl(2);
// Nettoyer et stocker le choix de l'utilisateur // Changement ?
helper::deleteCookie('ZWII_I18N_SITE'); if ($this->getInput('ZWII_CONTENT') !== $lang) {
// Sélectionner // Nettoyer le cookie
setcookie('ZWII_I18N_' . strtoupper($this->getUrl(3)), $this->getUrl(2), time() + 3600, helper::baseUrl(false, false), '', helper::isHttps(), true); helper::deleteCookie('ZWII_CONTENT');
// Désactivation du drapeau, langue FR par défaut // Stocker le choix
} else { setcookie('ZWII_CONTENT', $lang, time() + 3600, helper::baseUrl(false, false), '', helper::isHttps(), true);
setcookie('ZWII_I18N_SITE', 'fr', time() + 3600, helper::baseUrl(false, false), '', helper::isHttps(), true);
} }
// Valeurs en sortie // Valeurs en sortie
$this->addOutput([ $this->addOutput([
'redirect' => helper::baseUrl() . $this->getData(['locale', $this->getUrl(2), 'homePageId']) 'redirect' => helper::baseUrl() . $this->getData(['locale', $this->getUrl(2), 'homePageId'])