forked from ZwiiCMS-Team/ZwiiCMS
12100 Fix bug lors de l"édition d'une locale d'un site non activé
This commit is contained in:
parent
51b8d909c7
commit
3ec95e1776
@ -64,7 +64,8 @@ class translate extends common
|
|||||||
$lang = $this->getUrl(2);
|
$lang = $this->getUrl(2);
|
||||||
// Jeton incorrect ou URl avec le code langue incorrecte
|
// Jeton incorrect ou URl avec le code langue incorrecte
|
||||||
if (
|
if (
|
||||||
$this->getUrl(3) !== $_SESSION['csrf']
|
$this->getUrl(3) !== $_SESSION['csrf'] &&
|
||||||
|
array_key_exists($lang, self::$languages) == false
|
||||||
) {
|
) {
|
||||||
// Valeurs en sortie
|
// Valeurs en sortie
|
||||||
$this->addOutput([
|
$this->addOutput([
|
||||||
@ -80,7 +81,7 @@ class translate extends common
|
|||||||
$response = file_put_contents(self::I18N_DIR . $lang . '.json', json_encode($response, JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES | JSON_PRETTY_PRINT));
|
$response = file_put_contents(self::I18N_DIR . $lang . '.json', json_encode($response, JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES | JSON_PRETTY_PRINT));
|
||||||
// Mettre à jour le descripteur
|
// Mettre à jour le descripteur
|
||||||
$enumsStore = json_decode(helper::getUrlContents(common::ZWII_UI_URL . 'languages.json'), true);
|
$enumsStore = json_decode(helper::getUrlContents(common::ZWII_UI_URL . 'languages.json'), true);
|
||||||
$enums = $this->getData(['languages']);
|
$enums = $this->getUiLanguages();
|
||||||
$enums = array_merge($enums, [
|
$enums = array_merge($enums, [
|
||||||
$lang => $enumsStore[$lang]
|
$lang => $enumsStore[$lang]
|
||||||
]);
|
]);
|
||||||
@ -181,12 +182,13 @@ class translate extends common
|
|||||||
template::flag($key, '20 %') . ' ' . $value . ' (' . $key . ')',
|
template::flag($key, '20 %') . ' ' . $value . ' (' . $key . ')',
|
||||||
$messageLocale,
|
$messageLocale,
|
||||||
template::button('translateContentLanguageLocaleEdit' . $key, [
|
template::button('translateContentLanguageLocaleEdit' . $key, [
|
||||||
|
'class' => file_exists(self::DATA_DIR . $key . '/locale.json') ? '' : ' disabled',
|
||||||
'href' => helper::baseUrl() . $this->getUrl(0) . '/locale/' . $key,
|
'href' => helper::baseUrl() . $this->getUrl(0) . '/locale/' . $key,
|
||||||
'value' => template::ico('pencil'),
|
'value' => template::ico('pencil'),
|
||||||
'help' => 'Éditer'
|
'help' => 'Éditer'
|
||||||
]),
|
]),
|
||||||
template::button('translateContentLanguageLocaleDelete' . $key, [
|
template::button('translateContentLanguageLocaleDelete' . $key, [
|
||||||
'class' => 'translateDeleteLocale buttonRed' . ($messageLocale ? ' disabled' : ''),
|
'class' => ' buttonRed' . ($messageLocale ? ' disabled' : ''),
|
||||||
'href' => helper::baseUrl() . $this->getUrl(0) . '/delete/locale/' . $key . '/' . $_SESSION['csrf'],
|
'href' => helper::baseUrl() . $this->getUrl(0) . '/delete/locale/' . $key . '/' . $_SESSION['csrf'],
|
||||||
'value' => template::ico('trash'),
|
'value' => template::ico('trash'),
|
||||||
'help' => 'Supprimer',
|
'help' => 'Supprimer',
|
||||||
@ -289,7 +291,6 @@ class translate extends common
|
|||||||
if (!file_exists(self::DATA_DIR . $lang)) {
|
if (!file_exists(self::DATA_DIR . $lang)) {
|
||||||
mkdir(self::DATA_DIR . $lang, 0755);
|
mkdir(self::DATA_DIR . $lang, 0755);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Valeurs en sortie
|
// Valeurs en sortie
|
||||||
$this->addOutput([
|
$this->addOutput([
|
||||||
'redirect' => helper::baseUrl() . 'translate',
|
'redirect' => helper::baseUrl() . 'translate',
|
||||||
@ -322,8 +323,9 @@ class translate extends common
|
|||||||
public function locale()
|
public function locale()
|
||||||
{
|
{
|
||||||
// Jeton incorrect ou URl avec le code langue incorrecte
|
// Jeton incorrect ou URl avec le code langue incorrecte
|
||||||
|
$lang = $this->getUrl(2);
|
||||||
if (
|
if (
|
||||||
!array_key_exists($this->getUrl(2), self::$languages)
|
array_key_exists($lang, self::$languages) === false
|
||||||
) {
|
) {
|
||||||
// Valeurs en sortie
|
// Valeurs en sortie
|
||||||
$this->addOutput([
|
$this->addOutput([
|
||||||
@ -362,12 +364,12 @@ class translate extends common
|
|||||||
];
|
];
|
||||||
|
|
||||||
// Sauvegarde hors méthodes si la langue n'est pas celle de l'UI
|
// Sauvegarde hors méthodes si la langue n'est pas celle de l'UI
|
||||||
if ($this->getUrl(2) === self::$i18nUI) {
|
if ($lang === self::$i18nUI) {
|
||||||
// Enregistrer les données par lecture directe du formulaire
|
// Enregistrer les données par lecture directe du formulaire
|
||||||
$this->setData(['locale', $data['locale']]);
|
$this->setData(['locale', $data['locale']]);
|
||||||
} else {
|
} else {
|
||||||
// Sauver sur le disque
|
// Sauver sur le disque
|
||||||
file_put_contents(self::DATA_DIR . $this->getUrl(2) . '/locale.json', json_encode($data, JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES | JSON_PRETTY_PRINT), LOCK_EX);
|
file_put_contents(self::DATA_DIR . $lang . '/locale.json', json_encode($data, JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES | JSON_PRETTY_PRINT), LOCK_EX);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Valeurs en sortie
|
// Valeurs en sortie
|
||||||
@ -381,25 +383,12 @@ class translate extends common
|
|||||||
// Préparation de l'affichage du formulaire
|
// Préparation de l'affichage du formulaire
|
||||||
//-----------------------------------------
|
//-----------------------------------------
|
||||||
|
|
||||||
// Récupération des locales de la langue sélectionnée
|
|
||||||
|
|
||||||
// Vérifier la conformité de l'URL
|
|
||||||
if (!array_key_exists($this->getUrl(2), self::$languages)) {
|
|
||||||
// Bidouillage de l'URL, on sort
|
|
||||||
// Valeurs en sortie
|
|
||||||
$this->addOutput([
|
|
||||||
'redirect' => helper::baseUrl() . 'translate',
|
|
||||||
'notification' => helper::translate('Erreur d\'URL'),
|
|
||||||
'state' => false
|
|
||||||
]);
|
|
||||||
}
|
|
||||||
//Lecture des données pour transmission au formulaire
|
|
||||||
// La locale est-elle celle de la langue de l'UI ?
|
// La locale est-elle celle de la langue de l'UI ?
|
||||||
if ($this->getUrl(2) === self::$i18nUI) {
|
if ($lang === self::$i18nUI) {
|
||||||
self::$locales[$this->getUrl(2)]['locale'] = $this->getData(['locale']);
|
self::$locales[$lang]['locale'] = $this->getData(['locale']);
|
||||||
} else {
|
} else {
|
||||||
// Lire les locales sans passer par les méthodes
|
// Lire les locales sans passer par les méthodes
|
||||||
self::$locales[$this->getUrl(2)] = json_decode(file_get_contents(self::DATA_DIR . $this->getUrl(2) . '/locale.json'), true);
|
self::$locales[$lang] = json_decode(file_get_contents(self::DATA_DIR . $lang . '/locale.json'), true);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Générer la liste des pages disponibles
|
// Générer la liste des pages disponibles
|
||||||
@ -426,7 +415,7 @@ class translate extends common
|
|||||||
|
|
||||||
// Valeurs en sortie
|
// Valeurs en sortie
|
||||||
$this->addOutput([
|
$this->addOutput([
|
||||||
'title' => helper::translate('Paramètres de la localisation') . ' ' . template::flag($this->getUrl(2), '20 %'),
|
'title' => helper::translate('Paramètres de la localisation') . ' ' . template::flag($lang, '20 %'),
|
||||||
'view' => 'locale'
|
'view' => 'locale'
|
||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
@ -439,7 +428,7 @@ class translate extends common
|
|||||||
$lang = $this->getUrl(2);
|
$lang = $this->getUrl(2);
|
||||||
// Jeton incorrect ou URl avec le code langue incorrecte
|
// Jeton incorrect ou URl avec le code langue incorrecte
|
||||||
if (
|
if (
|
||||||
!array_key_exists($lang, self::$languages)
|
array_key_exists($lang, self::$languages) === false
|
||||||
) {
|
) {
|
||||||
// Valeurs en sortie
|
// Valeurs en sortie
|
||||||
$this->addOutput([
|
$this->addOutput([
|
||||||
@ -527,7 +516,7 @@ class translate extends common
|
|||||||
$lang = $this->getUrl(3);
|
$lang = $this->getUrl(3);
|
||||||
if (
|
if (
|
||||||
$this->getUrl(4) !== $_SESSION['csrf']
|
$this->getUrl(4) !== $_SESSION['csrf']
|
||||||
|| !array_key_exists($lang, self::$languages)
|
|| array_key_exists($lang, self::$languages) === false
|
||||||
) {
|
) {
|
||||||
// Valeurs en sortie
|
// Valeurs en sortie
|
||||||
$this->addOutput([
|
$this->addOutput([
|
||||||
|
Loading…
x
Reference in New Issue
Block a user