Bug installation
Drapeau de langue affiché sur un site non multilangue
Effacement de la langue de site active
This commit is contained in:
Fred Tempez 2022-10-26 15:53:26 +02:00
parent 1b00e853e3
commit 4e84e4fb38
9 changed files with 78 additions and 52 deletions

View File

@ -49,7 +49,7 @@ class common
// Numéro de version // Numéro de version
const ZWII_UPDATE_URL = 'https://forge.chapril.org/ZwiiCMS-Team/update/raw/branch/master/'; const ZWII_UPDATE_URL = 'https://forge.chapril.org/ZwiiCMS-Team/update/raw/branch/master/';
const ZWII_VERSION = '12.0.00-dev017'; const ZWII_VERSION = '12.0.00-dev018';
const ZWII_UPDATE_CHANNEL = "test"; const ZWII_UPDATE_CHANNEL = "test";
public static $actions = []; public static $actions = [];
@ -1680,7 +1680,6 @@ class common
file_exists(self::FILE_DIR . 'source/' . $faviconDark) file_exists(self::FILE_DIR . 'source/' . $faviconDark)
) { ) {
echo '<link rel="shortcut icon" media="(prefers-color-scheme:dark)" href="' . helper::baseUrl(false) . self::FILE_DIR . 'source/' . $faviconDark . '">'; echo '<link rel="shortcut icon" media="(prefers-color-scheme:dark)" href="' . helper::baseUrl(false) . self::FILE_DIR . 'source/' . $faviconDark . '">';
//echo '<script src="https://unpkg.com/favicon-switcher@1.2.2/dist/index.js" crossorigin="anonymous" type="application/javascript"></script>';
echo '<script src="' . helper::baseUrl(false) . 'core/vendor/favicon-switcher/favicon-switcher.js" crossorigin="anonymous"></script>'; echo '<script src="' . helper::baseUrl(false) . 'core/vendor/favicon-switcher/favicon-switcher.js" crossorigin="anonymous"></script>';
} }
} }
@ -1738,7 +1737,18 @@ class common
} }
// Retourne les items du menu // Retourne les items du menu
echo '<ul class="navMain" id="menuLeft">' . $itemsLeft . '</ul><ul class="navMain" id="menuRight">' . $itemsRight; echo '<ul class="navMain" id="menuLeft">' . $itemsLeft . '</ul><ul class="navMain" id="menuRight">' . $itemsRight;
echo $this->showi18n(); // Drapeau les langues des langues selon l'existance des dossiers
foreach (self::$languages as $key => $value) {
if ( is_dir(self::DATA_DIR . $key) ) {
$t [] = $this->showi18n($key);
}
}
// Pas de drapeau si la langu eest unique
if (count ($t) > 1 ) {
foreach($t as $key) {
echo $key;
}
}
echo '</ul>'; echo '</ul>';
} }
@ -2308,27 +2318,26 @@ class common
/** /**
* Affiche le cadre avec les drapeaux sélectionnés * Affiche le cadre avec les drapeaux sélectionnés
*/ */
public function showi18n() public function showi18n($lang)
{ {
foreach (self::$languages as $key => $value) { if (
is_dir(self::DATA_DIR . $lang)
) {
if ( if (
is_dir(self::DATA_DIR . $key) (isset($_COOKIE['ZWII_CONTENT'])
and $_COOKIE['ZWII_CONTENT'] === $lang
)
) { ) {
if ( $select = ' class="i18nFlagSelected" ';
(isset($_COOKIE['ZWII_CONTENT']) } else {
and $_COOKIE['ZWII_CONTENT'] === $key $select = ' class="i18nFlag" ';
)
) {
$select = ' class="i18nFlagSelected" ';
} else {
$select = ' class="i18nFlag" ';
}
echo '<li>';
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>';
} }
$items = '<li>';
$items .= '<a href="' . helper::baseUrl() . 'translate/content/' . $lang . '"><img ' . $select . ' alt="' . self::$languages[$lang] . '" src="' . helper::baseUrl(false) . 'core/vendor/i18n/png/' . $lang . '.png"/></a>';
$items .= '</li>';
} }
return $items;
} }
} }
@ -2464,6 +2473,9 @@ class core extends common
$fontFile = $gf ? '<link rel="preconnect" href="https://fonts.googleapis.com"><link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>' . $fontFile $fontFile = $gf ? '<link rel="preconnect" href="https://fonts.googleapis.com"><link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>' . $fontFile
: $fontFile; : $fontFile;
// Enregistre la personnalisation // Enregistre la personnalisation
if (!is_dir(self::DATA_DIR . 'fonts')) {
mkdir(self::DATA_DIR . 'fonts');
}
file_put_contents(self::DATA_DIR . 'fonts/fonts.html', $fontFile); file_put_contents(self::DATA_DIR . 'fonts/fonts.html', $fontFile);
/** /**
@ -2885,7 +2897,7 @@ class core extends common
// Accès concurrent stocke la page visitée // Accès concurrent stocke la page visitée
if ( if (
$this->getUser('password') === $this->getInput('ZWII_USER_PASSWORD') $this->getUser('password') === $this->getInput('ZWII_USER_PASSWORD')
and $this->getUser('id') && $this->getUser('id')
) { ) {
$this->setData(['user', $this->getUser('id'), 'accessUrl', $this->getUrl()]); $this->setData(['user', $this->getUser('id'), 'accessUrl', $this->getUrl()]);
$this->setData(['user', $this->getUser('id'), 'accessTimer', time()]); $this->setData(['user', $this->getUser('id'), 'accessTimer', time()]);

View File

@ -920,7 +920,10 @@ if ($this->getData(['core', 'dataVersion']) < 12000) {
} }
// Langue de l'interface // Langue de l'interface
$this->deleteData(['config', 'i18n']); $this->deleteData(['config', 'i18n']);
$this->setData(['user', $this->getUser('id'), 'language', 'fr_FR']); // Pas à l'installation
if ($this->getUser('id')) {
$this->setData(['user', $this->getUser('id'), 'language', 'fr_FR']);
}
// Mise à jour // Mise à jour
$this->setData(['core', 'dataVersion', 12000]); $this->setData(['core', 'dataVersion', 12000]);
} }

View File

@ -132,7 +132,8 @@ class install extends common
'pseudo' => 'Admin', 'pseudo' => 'Admin',
'signature' => 1, 'signature' => 1,
'mail' => $userMail, 'mail' => $userMail,
'password' => $this->getInput('installPassword', helper::FILTER_PASSWORD, true) 'password' => $this->getInput('installPassword', helper::FILTER_PASSWORD, true),
'language' => self::$i18nUI
] ]
]); ]);

View File

@ -306,11 +306,10 @@
"Gestion": "Administrar", "Gestion": "Administrar",
"Administration": "Administración", "Administration": "Administración",
"Langues": "Idiomas", "Langues": "Idiomas",
"Traductions de l'interface": "Idiomas interfaz", "Langues de l'interface": "Idiomas interfaz",
"Éditer les dialogues": "Editar los diálogos", "Éditer les dialogues": "Editar los diálogos",
"Traductions installées": "Idiomas instalados", "Langues du site": "Idiomas instalados",
"Traduction supprimée": "Traducción eliminada", "Traduction supprimée": "Traducción eliminada",
"Traductions du site": "Idiomas sitio",
"Langue de l'administration": "Idioma de la administración", "Langue de l'administration": "Idioma de la administración",
"Langues installées": "Idiomas instalados", "Langues installées": "Idiomas instalados",
"Dans quelle langue utiliserez-vous Zwii ?": "¿En qué idioma usará Zwii?", "Dans quelle langue utiliserez-vous Zwii ?": "¿En qué idioma usará Zwii?",
@ -489,5 +488,7 @@
"Interface": "Interfaz", "Interface": "Interfaz",
"Importer dans": "Importar a", "Importer dans": "Importar a",
"Archive ZIP": "Archivo ZIP", "Archive ZIP": "Archivo ZIP",
"Archive": "Archivo" "Archive": "Archivo",
"Langue par défaut": "Idioma predeterminado",
"Langue du site sélectionnée": "Idioma del sitio web seleccionado"
} }

View File

@ -305,13 +305,12 @@
"Gestion": "", "Gestion": "",
"Administration": "", "Administration": "",
"Langues": "", "Langues": "",
"Traductions de l'interface": "", "Langues de l'interface": "",
"Éditer les dialogues": "", "Éditer les dialogues": "",
"Traductions installées": "", "Langues installées": "",
"Traductions du site": "", "Langues du site": "",
"Interface": "", "Interface": "",
"Langue de l'administration": "", "Langue de l'administration": "",
"Langues installées": "",
"Dans quelle langue utiliserez-vous Zwii ?": "", "Dans quelle langue utiliserez-vous Zwii ?": "",
"Maintenance": "", "Maintenance": "",
"Scripts externes": "", "Scripts externes": "",
@ -486,5 +485,7 @@
"Menu accessoire": "", "Menu accessoire": "",
"Activer": "", "Activer": "",
"Importer dans": "", "Importer dans": "",
"Archive": "" "Archive": "",
"Langue par défaut": "",
"Langue du site sélectionnée": ""
} }

View File

@ -129,21 +129,27 @@ 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)) {
if (self::$i18nUI === $key) {
$message = helper::translate('Langue par défaut');
} elseif (isset($_COOKIE['ZWII_CONTENT']) && $_COOKIE['ZWII_CONTENT'] === $key) {
$message = helper::translate('Langue du site sélectionnée');
} else {
$message = '';
}
self::$languagesInstalled[] = [ self::$languagesInstalled[] = [
template::flag($key, '20 %'), template::flag($key, '20 %'),
$value . ' (' . $key . ')', $value . ' (' . $key . ')',
self::$i18nUI === $key ? helper::translate('Interface') : '', $message,
'',
template::button('translateContentLanguageEdit' . $key, [ template::button('translateContentLanguageEdit' . $key, [
'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('translateContentLanguageDelete' . $key, [ template::button('translateContentLanguageDelete' . $key, [
'class' => 'translateDelete buttonRed' . (self::$i18nUI === $key ? ' disabled' : ''), 'class' => 'translateDelete buttonRed' . ($message ? ' disabled' : ''),
'href' => helper::baseUrl() . $this->getUrl(0) . '/delete/' . $key . '/' . $_SESSION['csrf'], 'href' => helper::baseUrl() . $this->getUrl(0) . '/delete/' . $key . '/' . $_SESSION['csrf'],
'value' => template::ico('trash'), 'value' => template::ico('trash'),
'help' => 'Supprimer' 'help' => 'Supprimer',
]) ])
]; ];
} }
@ -445,9 +451,10 @@ class translate extends common
public function delete() public function delete()
{ {
// Jeton incorrect ou URl avec le code langue incorrecte // Jeton incorrect ou URl avec le code langue incorrecte
$lang = $this->getUrl(2);
if ( if (
$this->getUrl(3) !== $_SESSION['csrf'] $this->getUrl(3) !== $_SESSION['csrf']
|| !array_key_exists($this->getUrl(2), self::$languages) || !array_key_exists($lang, self::$languages)
) { ) {
// Valeurs en sortie // Valeurs en sortie
$this->addOutput([ $this->addOutput([
@ -456,10 +463,9 @@ class translate extends common
'notification' => helper::translate('Action interdite') 'notification' => helper::translate('Action interdite')
]); ]);
} }
// Effacement d'une langue installée // Effacement d'une langue installée
if (is_dir(self::DATA_DIR . $this->getUrl(2)) === true) { if (is_dir(self::DATA_DIR . $lang) === true) {
$success = $this->removeDir(self::DATA_DIR . $this->getUrl(2)); $success = $this->removeDir(self::DATA_DIR . $lang);
} }
// Valeurs en sortie // Valeurs en sortie
$this->addOutput([ $this->addOutput([

View File

@ -36,11 +36,11 @@
<div class="tab"> <div class="tab">
<?php echo template::button('translateContentButton', [ <?php echo template::button('translateContentButton', [
'value' => 'Traductions du site', 'value' => 'Langues du site',
'class' => 'buttonTab' 'class' => 'buttonTab'
]); ?> ]); ?>
<?php echo template::button('translateUiButton', [ <?php echo template::button('translateUiButton', [
'value' => 'Traductions de l\'interface', 'value' => 'Langues de l\'interface',
'class' => 'buttonTab' 'class' => 'buttonTab'
]); ?> ]); ?>
</div> </div>
@ -58,7 +58,7 @@
<div class="row"> <div class="row">
<div class="col12"> <div class="col12">
<?php if ($module::$languagesInstalled) : ?> <?php if ($module::$languagesInstalled) : ?>
<?php echo template::table([1, 3, 2, 4, 1, 1], $module::$languagesInstalled, ['Langues', '', '', '', '', '']); ?> <?php echo template::table([1, 3, 6, 1, 1], $module::$languagesInstalled, ['Langues', '', '', '', '']); ?>
<?php endif; ?> <?php endif; ?>
</div> </div>
</div> </div>

View File

@ -130,7 +130,7 @@
"Supprimer le module": "Eliminar módulo", "Supprimer le module": "Eliminar módulo",
"Sauvegarder le module dans le gestionnaire de fichiers": "Guardar módulo en el administrador de archivos", "Sauvegarder le module dans le gestionnaire de fichiers": "Guardar módulo en el administrador de archivos",
"Sauvegarder et télécharger le module": "Guardar y descargar módulo", "Sauvegarder et télécharger le module": "Guardar y descargar módulo",
"Sauvegarder les données du module dans le gestionnaire de fichiers": "Guardar de los datos del módulo en el administrador de archivos", "Sauvegarder les données du module dans le gestionnaire de fichiers": "Guardar de los datos del módulo en el administrador de archivos",
"'Sauvegarder et télécharger les données du module": "Guardar y descargar de los datos del módulo", "'Sauvegarder et télécharger les données du module": "Guardar y descargar de los datos del módulo",
"Installer depuis le catalogue en ligne": "Instalar desde el archivo en línea", "Installer depuis le catalogue en ligne": "Instalar desde el archivo en línea",
"Installer depuis une archive": "Instalar desde un archivo", "Installer depuis une archive": "Instalar desde un archivo",
@ -306,11 +306,10 @@
"Gestion": "Administrar", "Gestion": "Administrar",
"Administration": "Administración", "Administration": "Administración",
"Langues": "Idiomas", "Langues": "Idiomas",
"Traductions de l'interface": "Idiomas interfaz", "Langues de l'interface": "Idiomas interfaz",
"Éditer les dialogues": "Editar los diálogos", "Éditer les dialogues": "Editar los diálogos",
"Traductions installées": "Idiomas instalados", "Langues du site": "Idiomas instalados",
"Traduction supprimée": "Traducción eliminada", "Traduction supprimée": "Traducción eliminada",
"Traductions du site": "Idiomas sitio",
"Langue de l'administration": "Idioma de la administración", "Langue de l'administration": "Idioma de la administración",
"Langues installées": "Idiomas instalados", "Langues installées": "Idiomas instalados",
"Dans quelle langue utiliserez-vous Zwii ?": "¿En qué idioma usará Zwii?", "Dans quelle langue utiliserez-vous Zwii ?": "¿En qué idioma usará Zwii?",
@ -489,5 +488,7 @@
"Interface": "Interfaz", "Interface": "Interfaz",
"Importer dans": "Importar a", "Importer dans": "Importar a",
"Archive ZIP": "Archivo ZIP", "Archive ZIP": "Archivo ZIP",
"Archive": "Archivo" "Archive": "Archivo",
"Langue par défaut": "Idioma predeterminado",
"Langue du site sélectionnée": "Idioma del sitio web seleccionado"
} }

View File

@ -305,13 +305,12 @@
"Gestion": "", "Gestion": "",
"Administration": "", "Administration": "",
"Langues": "", "Langues": "",
"Traductions de l'interface": "", "Langues de l'interface": "",
"Éditer les dialogues": "", "Éditer les dialogues": "",
"Traductions installées": "", "Langues installées": "",
"Traductions du site": "", "Langues du site": "",
"Interface": "", "Interface": "",
"Langue de l'administration": "", "Langue de l'administration": "",
"Langues installées": "",
"Dans quelle langue utiliserez-vous Zwii ?": "", "Dans quelle langue utiliserez-vous Zwii ?": "",
"Maintenance": "", "Maintenance": "",
"Scripts externes": "", "Scripts externes": "",
@ -486,5 +485,7 @@
"Menu accessoire": "", "Menu accessoire": "",
"Activer": "", "Activer": "",
"Importer dans": "", "Importer dans": "",
"Archive": "" "Archive": "",
"Langue par défaut": "",
"Langue du site sélectionnée": ""
} }