système d'aide + utilitaire de copie de langues

This commit is contained in:
Fred Tempez 2021-05-05 15:36:05 +02:00
parent ec91858263
commit 03eaed72a1
7 changed files with 57 additions and 62 deletions

View File

@ -481,26 +481,13 @@ $(document).ready(function(){
$(".helpDisplayButton").on({ $(".helpDisplayButton").on({
mouseenter: function () { mouseenter: function () {
$(".helpDisplayContent").slideDown(); $(".helpDisplayContent").slideToggle();
}, },
mouseleave: function () { click: function () {
$(".helpDisplayContent").slideUp(); $(".helpDisplayContent").slideToggle();
} }
}); });
/**
* Active le système d'aide interne
*
*/
$(".helpDisplayButton").on({
mouseenter: function () {
$(".helpDisplayContent").slideDown();
},
mouseleave: function () {
$(".helpDisplayContent").slideUp();
}
});
/** /**
* Remove ID Facebook from URL * Remove ID Facebook from URL

View File

@ -1056,6 +1056,7 @@ footer #footerSocials .zwiico-github:hover {
user-select: none; user-select: none;
} }
/* Lightbox */ /* Lightbox */
.lightbox { .lightbox {
background: #FFF; background: #FFF;
@ -1730,12 +1731,12 @@ th.col12 {
display: none; display: none;
position: fixed; position: fixed;
width: 100%; width: 100%;
bottom: 15px; top: 60px;
padding: 2px 10px; padding: 2px 10px;
margin-left: -20px; margin-left: -20px;
-webkit-box-shadow: 5px 5px 11px 0px #222222; -webkit-box-shadow: 5px 5px 11px 0px #222222;
box-shadow: 5px 5px 11px 0px #222222; box-shadow: 5px 5px 11px 0px #222222;
border-radius: 5px; border-radius: 10px;
background-color:#333; background-color:#333;
color: white; color: white;
z-index: 30; z-index: 30;

View File

@ -39,14 +39,13 @@ class init extends common {
'showCredits' => false, 'showCredits' => false,
'autoDetect' => false, 'autoDetect' => false,
'admin' => false, 'admin' => false,
'fr' => true, 'fr' => false,
'de' => true, 'de' => false,
'en' => true, 'en' => false,
'es' => false, 'es' => false,
'it' => false, 'it' => false,
'nl' => false, 'nl' => false,
'pt' => false 'pt' => false
], ],
], ],
'core' => [ 'core' => [

View File

@ -18,7 +18,7 @@ class translate extends common {
public static $actions = [ public static $actions = [
/*'config' => self::GROUP_MODERATOR,*/ /*'config' => self::GROUP_MODERATOR,*/
'index' => self::GROUP_ADMIN, 'index' => self::GROUP_ADMIN,
'advanced' => self::GROUP_ADMIN, 'copy' => self::GROUP_ADMIN,
'language' => self::GROUP_VISITOR 'language' => self::GROUP_VISITOR
]; ];
@ -28,39 +28,46 @@ class translate extends common {
public static $languagesInstalled = []; public static $languagesInstalled = [];
// Liste des langues cibles // Liste des langues cibles
public static $languagesTarget = []; public static $languagesTarget = [];
// Activation du bouton de copie
public static $siteTranslate = true;
/** /**
* Configuration avancée des langues * Configuration avancée des langues
*/ */
public function advanced() { public function copy() {
// Soumission du formulaire // Soumission du formulaire
if ($this->isPost()) { if ($this->isPost()) {
// Initialisation // Initialisation
$success = false; $success = false;
$copyFrom = $this->getInput('translateFormAdvancedSource'); $copyFrom = $this->getInput('translateFormCopySource');
$toCreate = $this->getInput('translateFormAdvancedTarget'); $toCreate = $this->getInput('translateFormCopyTarget');
// Création du dossier if ($copyFrom !== $toCreate) {
if (is_dir(self::DATA_DIR . $toCreate) === false ) { // Si le dossier est déjà créé // Création du dossier
$success = mkdir (self::DATA_DIR . $toCreate); if (is_dir(self::DATA_DIR . $toCreate) === false ) { // Si le dossier est déjà créé
$success = mkdir (self::DATA_DIR . $toCreate);
} else {
$success = true;
}
// Copier les données par défaut avec gestion des erreurs
$success = (copy (self::DATA_DIR . $copyFrom . '/locale.json', self::DATA_DIR . $toCreate . '/locale.json') === true && $success === true) ? true : false;
$success = (copy (self::DATA_DIR . $copyFrom . '/module.json', self::DATA_DIR . $toCreate . '/module.json') === true && $success === true) ? true : false;
$success = (copy (self::DATA_DIR . $copyFrom . '/page.json', self::DATA_DIR . $toCreate . '/page.json') === true && $success === true) ? true : false;
// Enregistrer la langue
if ($success) {
$this->setData(['config', 'i18n', $toCreate, 'site' ]);
$notification = 'Données ' . self::$i18nList[$copyFrom] . ' copiées vers ' . self::$i18nList[$toCreate];
} else {
$notification = "Quelque chose n\'a pas fonctionné, vérifiez les permissions.";
}
} else { } else {
$success = true; $success = false;
} $notification = 'Les langues doivent être différentes.';
// Copier les données par défaut avec gestion des erreurs
$success = (copy (self::DATA_DIR . $copyFrom . '/locale.json', self::DATA_DIR . $toCreate . '/locale.json') === true && $success === true) ? true : false;
$success = (copy (self::DATA_DIR . $copyFrom . '/module.json', self::DATA_DIR . $toCreate . '/module.json') === true && $success === true) ? true : false;
$success = (copy (self::DATA_DIR . $copyFrom . '/page.json', self::DATA_DIR . $toCreate . '/page.json') === true && $success === true) ? true : false;
// Enregistrer la langue
if ($success) {
$this->setData(['config', 'i18n', $toCreate, 'site' ]);
$notification = 'Données ' . self::$i18nList[$copyFrom] . ' copiées vers ' . self::$i18nList[$toCreate];
} else {
$notification = "Quelque chose n\'a pas fonctionné, vérifiez les permissions.";
} }
// Valeurs en sortie // Valeurs en sortie
$this->addOutput([ $this->addOutput([
'notification' => $notification, 'notification' => $notification,
'title' => 'Gestion avancée', 'title' => 'Utilitaire de copie',
'view' => 'index', 'view' => 'index',
'state' => $success 'state' => $success
]); ]);
@ -76,8 +83,8 @@ class translate extends common {
// Valeurs en sortie // Valeurs en sortie
$this->addOutput([ $this->addOutput([
'title' => 'Gestion avancée', 'title' => 'Utilitaire de copie',
'view' => 'advanced' 'view' => 'copy'
]); ]);
} }
@ -154,7 +161,7 @@ class translate extends common {
'state' => true 'state' => true
]); ]);
} }
// Modification de option de suppression de la langue installée. // Modification des options de suppression de la langue installée.
foreach (self::$i18nList as $key => $value) { foreach (self::$i18nList as $key => $value) {
if ($this->getData(['config','i18n',$key]) === 'site') { if ($this->getData(['config','i18n',$key]) === 'site') {
self::$translateOptions [$key] = [ self::$translateOptions [$key] = [
@ -163,6 +170,7 @@ class translate extends common {
'site' => 'Traduction rédigée', 'site' => 'Traduction rédigée',
'delete' => 'Supprimer la traduction' 'delete' => 'Supprimer la traduction'
]; ];
self::$siteTranslate = $key !== 'fr' ? false : true;
} else { } else {
self::$translateOptions [$key] = [ self::$translateOptions [$key] = [
'none' => 'Drapeau masqué', 'none' => 'Drapeau masqué',

View File

@ -1,7 +1,7 @@
<?php echo template::formOpen('translateFormAdvanced'); ?> <?php echo template::formOpen('translateFormCopy'); ?>
<div class="row"> <div class="row">
<div class="col2"> <div class="col2">
<?php echo template::button('translateFormAdvancedBack', [ <?php echo template::button('translateFormCopyBack', [
'class' => 'buttonGrey', 'class' => 'buttonGrey',
'href' => helper::baseUrl() . 'translate', 'href' => helper::baseUrl() . 'translate',
'ico' => 'left', 'ico' => 'left',
@ -9,21 +9,21 @@
]); ?> ]); ?>
</div> </div>
<div class="col2 offset8"> <div class="col2 offset8">
<?php echo template::submit('translateFormAdvancedSubmit'); ?> <?php echo template::submit('translateFormCopySubmit'); ?>
</div> </div>
</div> </div>
<div class="row"> <div class="row">
<div class="col12"> <div class="col12">
<div class="block"> <div class="block">
<h4>Copie de contenu</h4> <h4>Copie de site (traductions rédigées)</h4>
<div class="row"> <div class="row">
<div class="col6"> <div class="col6">
<?php echo template::select('translateFormAdvancedSource', $module::$languagesInstalled, [ <?php echo template::select('translateFormCopySource', $module::$languagesInstalled, [
'label' => 'Copier les pages et les modules de' 'label' => 'Pages et les modules de'
]); ?> ]); ?>
</div> </div>
<div class="col6"> <div class="col6">
<?php echo template::select('translateFormAdvancedTarget', $module::$languagesTarget, [ <?php echo template::select('translateFormCopyTarget', $module::$languagesTarget, [
'label' => 'Vers' 'label' => 'Vers'
]); ?> ]); ?>
</div> </div>

View File

@ -10,9 +10,10 @@
</div> </div>
<div class="col3 offset5"> <div class="col3 offset5">
<?php echo template::button('configAdvancedButton', [ <?php echo template::button('configAdvancedButton', [
'href' => helper::baseUrl() . 'translate/advanced', 'href' => helper::baseUrl() . 'translate/copy',
'value' => 'Gestion avancée', 'value' => 'Utilitaire de copie',
'ico' => 'cog-alt', 'ico' => 'cog-alt',
'disabled' => $module::$siteTranslate
]); ?> ]); ?>
</div> </div>
<div class="col2"> <div class="col2">
@ -126,13 +127,12 @@
</div> </div>
<div class="col10 helpDisplayContent"> <div class="col10 helpDisplayContent">
<p>Vous avez le choix entre une traduction automatique réalisée avec le script Google Traduction ou une traduction rédigée.</p> <p>Vous avez le choix entre une traduction automatique réalisée avec le script Google Traduction ou une traduction rédigée. La traduction automatique offre deux possibilités, la détection automatique de la langue du navigateur même celle-ci n'est pas
<p>La traduction automatique offre deux possibilités, la détection automatique de la langue du navigateur même celle-ci n'est pas
matérialisée par un drapeau. Le clic sur un drapeau forcera la traduction dans cette langue, pour cela sélectionnez le drapeau puis l'option de "Traduction automatique". matérialisée par un drapeau. Le clic sur un drapeau forcera la traduction dans cette langue, pour cela sélectionnez le drapeau puis l'option de "Traduction automatique".
</p> La traduction automatique est réalisée à partir du site en version française.</p>
Si vous sélectionnez l'option "Traduction rédigée", seule la page d'accueil est générée, vous rédigez le site dans la langue sélectionnée. <p>Avec l'option "Traduction rédigée", une nouveau sité est généré, seule la page d'accueil est crée, il faut alors rédiger les pages dans la langue sélectionnée.
Il est cependant possible de copier les pages et les modules d'une langue vers une autre en cliquant sur le bouton de gestion avancée.</p> Il est possible de copier les pages et les modules d'une langue vers une autre à l'aide de l'utilitaire de copie.
<p>Quand un drapeau est masqué, la traduction est effacée, pensez à sauvegarder.</p> Quand un drapeau est masqué, la traduction est effacée, pensez à sauvegarder.
<p>Afficher le drapeau français pour revenir à la traduction dans la langue originale.</p> Afficher le drapeau français pour revenir à la traduction dans la langue originale.</p>
</div> </div>
<?php echo template::formClose(); ?> <?php echo template::formClose(); ?>