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({
mouseenter: function () {
$(".helpDisplayContent").slideDown();
},
mouseleave: function () {
$(".helpDisplayContent").slideUp();
$(".helpDisplayContent").slideToggle();
},
click: function () {
$(".helpDisplayContent").slideToggle();
}
});
/**
* Active le système d'aide interne
*
*/
$(".helpDisplayButton").on({
mouseenter: function () {
$(".helpDisplayContent").slideDown();
},
mouseleave: function () {
$(".helpDisplayContent").slideUp();
}
});
/**
* Remove ID Facebook from URL

View File

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

View File

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

View File

@ -18,7 +18,7 @@ class translate extends common {
public static $actions = [
/*'config' => self::GROUP_MODERATOR,*/
'index' => self::GROUP_ADMIN,
'advanced' => self::GROUP_ADMIN,
'copy' => self::GROUP_ADMIN,
'language' => self::GROUP_VISITOR
];
@ -28,39 +28,46 @@ class translate extends common {
public static $languagesInstalled = [];
// Liste des langues cibles
public static $languagesTarget = [];
// Activation du bouton de copie
public static $siteTranslate = true;
/**
* Configuration avancée des langues
*/
public function advanced() {
public function copy() {
// Soumission du formulaire
if ($this->isPost()) {
// Initialisation
$success = false;
$copyFrom = $this->getInput('translateFormAdvancedSource');
$toCreate = $this->getInput('translateFormAdvancedTarget');
// Création du dossier
if (is_dir(self::DATA_DIR . $toCreate) === false ) { // Si le dossier est déjà créé
$success = mkdir (self::DATA_DIR . $toCreate);
$copyFrom = $this->getInput('translateFormCopySource');
$toCreate = $this->getInput('translateFormCopyTarget');
if ($copyFrom !== $toCreate) {
// Création du dossier
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 {
$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.";
$success = false;
$notification = 'Les langues doivent être différentes.';
}
// Valeurs en sortie
$this->addOutput([
'notification' => $notification,
'title' => 'Gestion avancée',
'title' => 'Utilitaire de copie',
'view' => 'index',
'state' => $success
]);
@ -76,8 +83,8 @@ class translate extends common {
// Valeurs en sortie
$this->addOutput([
'title' => 'Gestion avancée',
'view' => 'advanced'
'title' => 'Utilitaire de copie',
'view' => 'copy'
]);
}
@ -154,7 +161,7 @@ class translate extends common {
'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) {
if ($this->getData(['config','i18n',$key]) === 'site') {
self::$translateOptions [$key] = [
@ -163,6 +170,7 @@ class translate extends common {
'site' => 'Traduction rédigée',
'delete' => 'Supprimer la traduction'
];
self::$siteTranslate = $key !== 'fr' ? false : true;
} else {
self::$translateOptions [$key] = [
'none' => 'Drapeau masqué',

View File

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

View File

@ -10,9 +10,10 @@
</div>
<div class="col3 offset5">
<?php echo template::button('configAdvancedButton', [
'href' => helper::baseUrl() . 'translate/advanced',
'value' => 'Gestion avancée',
'href' => helper::baseUrl() . 'translate/copy',
'value' => 'Utilitaire de copie',
'ico' => 'cog-alt',
'disabled' => $module::$siteTranslate
]); ?>
</div>
<div class="col2">
@ -126,13 +127,12 @@
</div>
<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>La traduction automatique offre deux possibilités, la détection automatique de la langue du navigateur même celle-ci n'est pas
<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
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>
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.
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>
<p>Quand un drapeau est masqué, la traduction est effacée, pensez à sauvegarder.</p>
<p>Afficher le drapeau français pour revenir à la traduction dans la langue originale.</p>
La traduction automatique est réalisée à partir du site en version française.</p>
<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 possible de copier les pages et les modules d'une langue vers une autre à l'aide de l'utilitaire de copie.
Quand un drapeau est masqué, la traduction est effacée, pensez à sauvegarder.
Afficher le drapeau français pour revenir à la traduction dans la langue originale.</p>
</div>
<?php echo template::formClose(); ?>