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;
break;
case 'selected':
if (isset($_COOKIE['ZWII_I18N_SITE'])) {
$lang = $_COOKIE['ZWII_I18N_SITE'];
if (isset($_COOKIE['ZWII_CONTENT'])) {
$lang = $_COOKIE['ZWII_CONTENT'];
} else {
$lang = 'fr_FR';
}

View File

@ -307,9 +307,9 @@ class common
self::$i18nUI = $t['config']['i18n']['interface'];
// 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
self::$i18nContent = $this->input['_COOKIE']['ZWII_I18N_SITE'];
self::$i18nContent = $this->input['_COOKIE']['ZWII_CONTENT'];
setlocale(LC_TIME, self::$i18nContent . '_' . strtoupper(self::$i18nContent));
} else {
// 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
$blocks = explode('-', $this->getData(['page', $this->getUrl(0), 'block']));
// Initialiser
$blockleft = $blockright = "";
$blockleft = '';
$blockright = '';
switch (sizeof($blocks)) {
case 1: // une colonne
$content = 'col' . $blocks[0];
@ -2267,11 +2268,11 @@ class common
{
foreach (self::$languages as $key => $value) {
if (
$this->getData(['config', 'i18n', $key]) === 'site'
is_dir(self::DATA_DIR . $key)
) {
if (
(isset($_COOKIE['ZWII_I18N_SITE'])
and $_COOKIE['ZWII_I18N_SITE'] === $key
(isset($_COOKIE['ZWII_CONTENT'])
and $_COOKIE['ZWII_CONTENT'] === $key
)
) {
$select = ' class="i18nFlagSelected" ';
@ -2280,7 +2281,7 @@ class common
}
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>';
}
}

View File

@ -890,7 +890,7 @@ if ($this->getData(['core', 'dataVersion']) < 11600) {
$this->deleteData(['config', 'i18n', 'scriptGoogle']);
$this->deleteData(['config', 'i18n', 'showCredits']);
$this->deleteData(['config', 'i18n', 'autoDetect']);
helper::deleteCookie('ZWII_I18N_SCRIPT');
helper::deleteCookie('ZWII_CONTENTSCRIPT');
// Nettoyage de fichiers inutiles
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
helper::deleteCookie('ZWII_I18N_SITE');
helper::deleteCookie('ZWII_CONTENT');
// Créer le contenu dans la langue sélectionnée
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
'edit' => self::GROUP_ADMIN, // Editer une langue de contenu
'delete' => self::GROUP_ADMIN, // Effacer une langue de contenu
'i18n' => self::GROUP_VISITOR,
'content' => self::GROUP_VISITOR,
];
// Language contents
@ -92,7 +92,7 @@ class translate extends common
foreach (self::$languages as $key => $value) {
// tableau des langues installées
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
* Fonction utilisée par le noyau
*/
public function i18n()
public function content()
{
// Activation du drapeau
if ($this->getInput('ZWII_I18N_' . strtoupper($this->getUrl(3))) !== $this->getUrl(2)) {
// Nettoyer et stocker le choix de l'utilisateur
helper::deleteCookie('ZWII_I18N_SITE');
// Sélectionner
setcookie('ZWII_I18N_' . strtoupper($this->getUrl(3)), $this->getUrl(2), time() + 3600, helper::baseUrl(false, false), '', helper::isHttps(), true);
// Désactivation du drapeau, langue FR par défaut
} else {
setcookie('ZWII_I18N_SITE', 'fr', time() + 3600, helper::baseUrl(false, false), '', helper::isHttps(), true);
$lang = $this->getUrl(2);
// Changement ?
if ($this->getInput('ZWII_CONTENT') !== $lang) {
// Nettoyer le cookie
helper::deleteCookie('ZWII_CONTENT');
// Stocker le choix
setcookie('ZWII_CONTENT', $lang, time() + 3600, helper::baseUrl(false, false), '', helper::isHttps(), true);
}
// Valeurs en sortie
$this->addOutput([
'redirect' => helper::baseUrl() . $this->getData(['locale', $this->getUrl(2), 'homePageId'])