[10.0.10.dev] petites corrections gestion des langues (bloquage supp fr ; détermination langue déjà installée)
This commit is contained in:
parent
8197cf4686
commit
4b3790fb39
@ -35,7 +35,7 @@ class common {
|
|||||||
const TEMP_DIR = 'site/tmp/';
|
const TEMP_DIR = 'site/tmp/';
|
||||||
|
|
||||||
// Numéro de version
|
// Numéro de version
|
||||||
const ZWII_VERSION = '10.0.09.dev';
|
const ZWII_VERSION = '10.0.10.dev';
|
||||||
|
|
||||||
public static $actions = [];
|
public static $actions = [];
|
||||||
public static $coreModuleIds = [
|
public static $coreModuleIds = [
|
||||||
@ -817,14 +817,17 @@ class common {
|
|||||||
/**
|
/**
|
||||||
* Retourne la liste les langues installées
|
* Retourne la liste les langues installées
|
||||||
* @return array liste de dossiers
|
* @return array liste de dossiers
|
||||||
* @param bool true la première contient une indication de sélection - false la liste est neutre
|
* @param bool $emptyline true la première contient une indication de sélection - false la liste est neutre
|
||||||
|
* @param bool $noFr true retourne une liste sans le français (pour l'effacement)
|
||||||
* @return array liste des pages installées sous la forme "fr" -> "Français"
|
* @return array liste des pages installées sous la forme "fr" -> "Français"
|
||||||
* La fonction vérifie l'existence du dossier et des deux fichiers de configuration
|
* La fonction vérifie l'existence du dossier et des deux fichiers de configuration
|
||||||
*/
|
*/
|
||||||
public function i18nInstalled ($emptyLine = false) {
|
public function i18nInstalled ($emptyLine = false, $noFr = false) {
|
||||||
$listLanguages = $emptyLine === true ? [''=>'Sélectionner'] : [];
|
$listLanguages = $emptyLine === true ? [''=>'Sélectionner'] : [];
|
||||||
$tempData = array_diff(scandir(self::DATA_DIR), array('..', '.'));
|
$tempData = array_diff(scandir(self::DATA_DIR), array('..', '.'));
|
||||||
foreach ($tempData as $item) {
|
foreach ($tempData as $item) {
|
||||||
|
// Exclure le fr
|
||||||
|
if ($noFr && $item === 'fr') {continue;}
|
||||||
if (is_dir(self::DATA_DIR . $item) === true) {
|
if (is_dir(self::DATA_DIR . $item) === true) {
|
||||||
if (is_file(self::DATA_DIR . $item . '/' . 'page.json') === true &&
|
if (is_file(self::DATA_DIR . $item . '/' . 'page.json') === true &&
|
||||||
is_file(self::DATA_DIR . $item . '/' . 'module.json') === true ) {
|
is_file(self::DATA_DIR . $item . '/' . 'module.json') === true ) {
|
||||||
@ -2426,7 +2429,7 @@ class layout extends common {
|
|||||||
if (sizeof($this->i18nInstalled()) > 1) {
|
if (sizeof($this->i18nInstalled()) > 1) {
|
||||||
foreach ($this->i18nInstalled() as $itemKey => $item) {
|
foreach ($this->i18nInstalled() as $itemKey => $item) {
|
||||||
$items .= '<li><form method="POST" action="' . helper::baseUrl() . 'i18n/lang" id="barFormSelectLanguage">';
|
$items .= '<li><form method="POST" action="' . helper::baseUrl() . 'i18n/lang" id="barFormSelectLanguage">';
|
||||||
$items .= '<input type="image" alt="'.$itemKey.'" class="flag" name="'.$itemKey.'" src="' . helper::baseUrl() .'core/vendor/icon-flags/svg/'. $itemKey .'.svg" data-tippy-content="'. $item .'" />';
|
$items .= '<input type="image" alt="'.$itemKey.'" class="flag" name="'.$itemKey.'" src="' . helper::baseUrl(false) .'core/vendor/icon-flags/svg/'. $itemKey .'.svg" data-tippy-content="'. $item .'" />';
|
||||||
$items .= '</form></li>';
|
$items .= '</form></li>';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -40,10 +40,14 @@ class i18n extends common {
|
|||||||
if (!empty ($create)) {
|
if (!empty ($create)) {
|
||||||
// Mode création de langue
|
// Mode création de langue
|
||||||
// La langue est déja créée ?
|
// La langue est déja créée ?
|
||||||
if (is_dir(self::DATA_DIR . $create) === false) {
|
if (in_array($create,$this->i18nInstalled()) === false) {
|
||||||
$copyFrom = $copyFrom === '' ? 'core/module/i18n/ressource/' : self::DATA_DIR . $copyFrom . '/';
|
$copyFrom = $copyFrom === '' ? 'core/module/i18n/ressource/' : self::DATA_DIR . $copyFrom . '/';
|
||||||
// Créer le dossier
|
// Créer le dossier
|
||||||
$success ['create'] = mkdir (self::DATA_DIR . $create);
|
if (is_dir(self::DATA_DIR . $create) === false ) {
|
||||||
|
$success ['create'] = mkdir (self::DATA_DIR . $create);
|
||||||
|
} else {
|
||||||
|
$success ['create'] = true;
|
||||||
|
}
|
||||||
// Copier les données par défaut
|
// Copier les données par défaut
|
||||||
$success ['create'] = (copy ($copyFrom . 'module.json', self::DATA_DIR . $create . '/module.json') === true && $success ['create'] === true) ? true : false;
|
$success ['create'] = (copy ($copyFrom . 'module.json', self::DATA_DIR . $create . '/module.json') === true && $success ['create'] === true) ? true : false;
|
||||||
$success ['create'] = (copy ($copyFrom . 'page.json', self::DATA_DIR . $create . '/page.json') === true && $success ['create'] === true) ? true : false;
|
$success ['create'] = (copy ($copyFrom . 'page.json', self::DATA_DIR . $create . '/page.json') === true && $success ['create'] === true) ? true : false;
|
||||||
@ -53,19 +57,19 @@ class i18n extends common {
|
|||||||
}
|
}
|
||||||
// Mode effacement
|
// Mode effacement
|
||||||
if (!empty ($remove)) {
|
if (!empty ($remove)) {
|
||||||
// La langue est celle par défaut : effacement bloqué
|
|
||||||
|
|
||||||
// Une notification existe déjà, insérer un séparateur
|
// Une notification existe déjà, insérer un séparateur
|
||||||
if ($notification) {
|
if ($notification) {
|
||||||
$notification .= ' | ';
|
$notification .= ' | ';
|
||||||
}
|
}
|
||||||
if ( $remove !== $this->getData(['i18n','frontend'])) {
|
// Suppression impossible langue actuelle ou fr
|
||||||
|
if ( $remove !== $this->geti18n()) {
|
||||||
// Le dossier existe ?
|
// Le dossier existe ?
|
||||||
if (is_dir(self::DATA_DIR . $remove) === true) {
|
if (is_dir(self::DATA_DIR . $remove) === true) {
|
||||||
$success ['remove'] = unlink (self::DATA_DIR . $remove . '/module.json');
|
$success ['remove'] = unlink (self::DATA_DIR . $remove . '/module.json');
|
||||||
$success ['remove'] = (unlink (self::DATA_DIR . $remove . '/page.json') && $success ['remove'] === true) ? true : false ;
|
$success ['remove'] = (unlink (self::DATA_DIR . $remove . '/page.json') && $success ['remove'] === true) ? true : false ;
|
||||||
$success ['remove'] = (rmdir (self::DATA_DIR . $remove) === true && $success ['remove'] === true) ? true : false ;;
|
$success ['remove'] = (rmdir (self::DATA_DIR . $remove) === true && $success ['remove'] === true) ? true : false ;;
|
||||||
}
|
}
|
||||||
// Valeurs en sortie
|
// Valeurs en sortie
|
||||||
$notification .= $success['remove'] === true ? self::$i18nList[$remove] .' effacée' : self::$i18nList[$remove] . ' n\'existe pas' ;
|
$notification .= $success['remove'] === true ? self::$i18nList[$remove] .' effacée' : self::$i18nList[$remove] . ' n\'existe pas' ;
|
||||||
} else {
|
} else {
|
||||||
|
@ -43,7 +43,7 @@
|
|||||||
<div class="block">
|
<div class="block">
|
||||||
<h4>Supprimer une localisation</h4>
|
<h4>Supprimer une localisation</h4>
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<?php echo template::select('i18nLanguageRemove', $this->i18nInstalled(true), [
|
<?php echo template::select('i18nLanguageRemove', $this->i18nInstalled(true, true), [
|
||||||
'label' => 'Localisations installées',
|
'label' => 'Localisations installées',
|
||||||
'help' => 'La suppression d\'une langue entraîne l\'effacement des pages et des modules',
|
'help' => 'La suppression d\'une langue entraîne l\'effacement des pages et des modules',
|
||||||
'selected' => -1
|
'selected' => -1
|
||||||
|
Loading…
x
Reference in New Issue
Block a user