forked from ZwiiCMS-Team/ZwiiCMS
Modif cookies WIP
This commit is contained in:
parent
36e4cd8253
commit
efc324c3db
@ -153,7 +153,7 @@ class common {
|
|||||||
'pt' => 'Portugais (pt)',
|
'pt' => 'Portugais (pt)',
|
||||||
];
|
];
|
||||||
// Langue courante
|
// Langue courante
|
||||||
public static $i18nSite;
|
public static $i18n;
|
||||||
public static $timezone;
|
public static $timezone;
|
||||||
private $url = '';
|
private $url = '';
|
||||||
// Données de site
|
// Données de site
|
||||||
@ -192,13 +192,15 @@ class common {
|
|||||||
$this->input['_COOKIE'] = $_COOKIE;
|
$this->input['_COOKIE'] = $_COOKIE;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Déterminer la langue sélectionnée si traduction manuelle ('site')
|
// Déterminer la langue sélectionnée pour le chargement des fichiers de données
|
||||||
if (isset($this->input['_COOKIE']['ZWII_I18N_SITE'])
|
if (isset($this->input['_COOKIE']['ZWII_I18N_SITE'])
|
||||||
) {
|
) {
|
||||||
self::$i18nSite = $this->input['_COOKIE']['ZWII_I18N_SITE'];
|
self::$i18n = $this->input['_COOKIE']['ZWII_I18N_SITE'];
|
||||||
setlocale (LC_TIME, self::$i18nSite . '_' . strtoupper (self::$i18nSite) );
|
setlocale (LC_TIME, self::$i18n . '_' . strtoupper (self::$i18n) );
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
self::$i18nSite = 'fr';
|
//setcookie('ZWII_I18N_SITE' , 'fr', time() + 3600, helper::baseUrl(false, false) , '', helper::isHttps(), true);
|
||||||
|
self::$i18n = 'fr';
|
||||||
}
|
}
|
||||||
|
|
||||||
// Instanciation de la classe des entrées / sorties
|
// Instanciation de la classe des entrées / sorties
|
||||||
@ -207,7 +209,7 @@ class common {
|
|||||||
// Constructeur JsonDB
|
// Constructeur JsonDB
|
||||||
$this->dataFiles[$keys] = new \Prowebcraft\JsonDb([
|
$this->dataFiles[$keys] = new \Prowebcraft\JsonDb([
|
||||||
'name' => $keys . '.json',
|
'name' => $keys . '.json',
|
||||||
'dir' => $this->dataPath ($keys,self::$i18nSite),
|
'dir' => $this->dataPath ($keys,self::$i18n),
|
||||||
'backup' => file_exists('site/data/.backup')
|
'backup' => file_exists('site/data/.backup')
|
||||||
]);;
|
]);;
|
||||||
}
|
}
|
||||||
@ -228,9 +230,9 @@ class common {
|
|||||||
// Installation fraîche, initialisation des modules manquants
|
// Installation fraîche, initialisation des modules manquants
|
||||||
// La langue d'installation par défaut est fr
|
// La langue d'installation par défaut est fr
|
||||||
foreach ($this->dataFiles as $stageId => $item) {
|
foreach ($this->dataFiles as $stageId => $item) {
|
||||||
$folder = $this->dataPath ($stageId, self::$i18nSite);
|
$folder = $this->dataPath ($stageId, self::$i18n);
|
||||||
if (file_exists($folder . $stageId .'.json') === false) {
|
if (file_exists($folder . $stageId .'.json') === false) {
|
||||||
$this->initData($stageId,self::$i18nSite);
|
$this->initData($stageId,self::$i18n);
|
||||||
common::$coreNotices [] = $stageId ;
|
common::$coreNotices [] = $stageId ;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -258,10 +260,9 @@ class common {
|
|||||||
* Le cookie est prioritaire sur le navigateur
|
* Le cookie est prioritaire sur le navigateur
|
||||||
* la traduction est celle de la langue du drapeau
|
* la traduction est celle de la langue du drapeau
|
||||||
* */
|
* */
|
||||||
|
if ($this->getInput('ZWII_I18N_SCRIPT')
|
||||||
if (isset($_COOKIE['googtrans'])
|
AND $this->getInput('ZWII_I18N_SCRIPT') !== substr($_SERVER["HTTP_ACCEPT_LANGUAGE"],0,2 ) ) {
|
||||||
AND substr($_COOKIE['googtrans'],4,2) !== substr($_SERVER["HTTP_ACCEPT_LANGUAGE"],0,2 ) ) {
|
setrawcookie('googtrans', '/fr/'.$this->getInput('ZWII_I18N_SCRIPT'), time() + 3600, helper::baseUrl());
|
||||||
setrawcookie('googtrans', '/fr/'.substr($_COOKIE['googtrans'],4,2), time() + 3600, helper::baseUrl());
|
|
||||||
} else {
|
} else {
|
||||||
setrawcookie('googtrans', '/fr/'.substr( $_SERVER["HTTP_ACCEPT_LANGUAGE"],0,2 ), time() + 3600, helper::baseUrl());
|
setrawcookie('googtrans', '/fr/'.substr( $_SERVER["HTTP_ACCEPT_LANGUAGE"],0,2 ), time() + 3600, helper::baseUrl());
|
||||||
}
|
}
|
||||||
@ -530,7 +531,7 @@ class common {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// La clef est une chaine
|
// La clef est une chaîne
|
||||||
else {
|
else {
|
||||||
foreach($this->input as $type => $values) {
|
foreach($this->input as $type => $values) {
|
||||||
// Champ obligatoire
|
// Champ obligatoire
|
||||||
@ -2213,14 +2214,13 @@ class core extends common {
|
|||||||
|
|
||||||
// Chargement de la bibliothèque googtrans
|
// Chargement de la bibliothèque googtrans
|
||||||
|
|
||||||
// Le multi langue est sélectionné
|
// Le script de traduction est sélectionné
|
||||||
if ( $this->getData(['config','translate','scriptGoogle']) === true
|
if ( $this->getData(['config','translate','scriptGoogle']) === true
|
||||||
AND
|
AND
|
||||||
// et la traduction de la langue courante est automatique
|
// et la traduction de la langue courante est automatique
|
||||||
( isset($_COOKIE['googtrans'])
|
( $this->getInput('ZWII_I18N_SCRIPT') !== ''
|
||||||
AND ( $this->getData(['config','translate', substr($_COOKIE['googtrans'],4,2)]) === 'script'
|
|
||||||
// Ou traduction automatique
|
// Ou traduction automatique
|
||||||
OR $this->getData(['config','translate','autoDetect']) === true )
|
OR $this->getData(['config','translate','autoDetect']) === true
|
||||||
)
|
)
|
||||||
// Cas des pages d'administration
|
// Cas des pages d'administration
|
||||||
// Pas connecté
|
// Pas connecté
|
||||||
@ -2232,6 +2232,9 @@ class core extends common {
|
|||||||
)
|
)
|
||||||
|
|
||||||
) {
|
) {
|
||||||
|
// Paramètre du script
|
||||||
|
setrawcookie("googtrans", '/fr/'. $this->getInput('ZWII_I18N_SCRIPT') , time() + 3600, helper::baseUrl());
|
||||||
|
// Chargement de la librairie
|
||||||
$this->addOutput([
|
$this->addOutput([
|
||||||
'vendor' => array_merge($this->output['vendor'], ['i18n'])
|
'vendor' => array_merge($this->output['vendor'], ['i18n'])
|
||||||
]);
|
]);
|
||||||
@ -2382,8 +2385,8 @@ class layout extends common {
|
|||||||
AND $this->getData(['config','translate','showCredits']) === true
|
AND $this->getData(['config','translate','showCredits']) === true
|
||||||
AND
|
AND
|
||||||
// et la traduction n'est pas manuelle
|
// et la traduction n'est pas manuelle
|
||||||
( isset($_COOKIE['googtrans'])
|
( $this->getInput('ZWII_I18N_SCRIPT')
|
||||||
AND $this->getData(['config','translate', substr($_COOKIE['googtrans'],4,2)]) === 'script'
|
AND $this->getData(['config','translate', $this->getInput('ZWII_I18N_SCRIPT')]) === 'script'
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
@ -3091,12 +3094,12 @@ class layout extends common {
|
|||||||
)
|
)
|
||||||
) {
|
) {
|
||||||
if (
|
if (
|
||||||
(isset($_COOKIE['googtrans'] )
|
|
||||||
AND substr($_COOKIE['googtrans'],4,2) === $key
|
|
||||||
)
|
|
||||||
OR
|
|
||||||
(isset($_COOKIE['ZWII_I18N_SITE'] )
|
(isset($_COOKIE['ZWII_I18N_SITE'] )
|
||||||
AND $_COOKIE['ZWII_I18N_SITE'] === $key
|
AND $_COOKIE['ZWII_I18N_SITE'] === $key
|
||||||
|
)
|
||||||
|
OR
|
||||||
|
( isset($_COOKIE['ZWII_I18N_SCRIPT'])
|
||||||
|
AND $_COOKIE['ZWII_I18N_SCRIPT'] === $key
|
||||||
) ) {
|
) ) {
|
||||||
$select = ' id="i18nFlagSelected" ';
|
$select = ' id="i18nFlagSelected" ';
|
||||||
} else {
|
} else {
|
||||||
|
@ -732,7 +732,7 @@ li .menuSideChild {
|
|||||||
}
|
}
|
||||||
|
|
||||||
#i18nFlagSelected {
|
#i18nFlagSelected {
|
||||||
width: 90%;
|
width: 100%;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -89,7 +89,7 @@ class translate extends common {
|
|||||||
if($this->isPost()) {
|
if($this->isPost()) {
|
||||||
// Désactivation du script Google
|
// Désactivation du script Google
|
||||||
if ($this->getInput('translateScriptGoogle', helper::FILTER_BOOLEAN) === false) {
|
if ($this->getInput('translateScriptGoogle', helper::FILTER_BOOLEAN) === false) {
|
||||||
setrawcookie('googtrans', '/fr/fr', time() + 3600, helper::baseUrl());
|
setrawcookie('googtrans', '/fr/fr', time() + 3600, helper::baseUrl(false,false));
|
||||||
$_SESSION['googtrans'] = '/fr/fr';
|
$_SESSION['googtrans'] = '/fr/fr';
|
||||||
}
|
}
|
||||||
$script = $this->getInput('translateScriptGoogle', helper::FILTER_BOOLEAN);
|
$script = $this->getInput('translateScriptGoogle', helper::FILTER_BOOLEAN);
|
||||||
@ -182,26 +182,20 @@ class translate extends common {
|
|||||||
* Fonction utilisée par le noyau
|
* Fonction utilisée par le noyau
|
||||||
*/
|
*/
|
||||||
public function language() {
|
public function language() {
|
||||||
// Sélection et désélection de la langue active
|
|
||||||
if ( $this->getUrl(2) !== substr($_COOKIE['googtrans'],4,2))
|
// Activation du drapeau
|
||||||
{
|
if ( $this->getInput('ZWII_I18N_' . strtoupper($this->getUrl(3))) !== $this->getUrl(2) ) {
|
||||||
// Transmettre le choix au noyau
|
// Nettoyer et stocker le choix de l'utilisateur
|
||||||
if ($this->getUrl(3) === 'script') {
|
|
||||||
setrawcookie("googtrans", '/fr/'. $this->getUrl(2), time() + 3600, helper::baseUrl());
|
|
||||||
helper::deleteCookie('ZWII_I18N_SITE');
|
helper::deleteCookie('ZWII_I18N_SITE');
|
||||||
} elseif ($this->getUrl(3) === 'site') {
|
helper::deleteCookie('ZWII_I18N_SCRIPT');
|
||||||
setcookie('ZWII_I18N_SITE', $this->getUrl(2), time() + 3600, helper::baseUrl(false, false) , '', helper::isHttps(), true);
|
// Sélectionner
|
||||||
setrawcookie("googtrans", '/fr/fr', time() + 3600, helper::baseUrl());
|
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 {
|
} else {
|
||||||
// Langue du navigateur par défaut si dispo
|
setcookie('ZWII_I18N_SITE' , 'fr', time() + 3600, helper::baseUrl(false, false) , '', helper::isHttps(), true);
|
||||||
helper::deleteCookie('ZWII_I18N_SITE');
|
helper::deleteCookie('ZWII_I18N_SCRIPT');
|
||||||
if (!empty($_SERVER['HTTP_ACCEPT_LANGUAGE']) ) {
|
|
||||||
setrawcookie("googtrans", '/fr/'. substr( $_SERVER["HTTP_ACCEPT_LANGUAGE"],0,2 ), time() + 3600, helper::baseUrl());
|
|
||||||
} else {
|
|
||||||
setrawcookie("googtrans", '/fr/fr', time() + 3600, helper::baseUrl());
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Valeurs en sortie
|
// Valeurs en sortie
|
||||||
$this->addOutput([
|
$this->addOutput([
|
||||||
'redirect' => helper::baseUrl()
|
'redirect' => helper::baseUrl()
|
||||||
|
Loading…
Reference in New Issue
Block a user