10.2.dev39 barre de membre simple dans footer

This commit is contained in:
Fred Tempez 2020-06-18 13:16:34 +02:00
parent 663842d8d0
commit f4e890f8e7
5 changed files with 85 additions and 55 deletions

View File

@ -39,7 +39,7 @@ class common {
const ACCESS_TIMER = 1800; const ACCESS_TIMER = 1800;
// Numéro de version // Numéro de version
const ZWII_VERSION = '10.2.00.dev38'; const ZWII_VERSION = '10.2.00.dev39';
const ZWII_UPDATE_CHANNEL = "v10"; const ZWII_UPDATE_CHANNEL = "v10";
public static $actions = []; public static $actions = [];
@ -1314,19 +1314,23 @@ class common {
} }
// Version 10.2.00 // Version 10.2.00
if ($this->getData(['core', 'dataVersion']) < 10200) { if ($this->getData(['core', 'dataVersion']) < 10200) {
$this->deleteData(['admin','colorButtonText']); $this->deleteData(['admin','colorButtonText']);
$this->setData(['config', 'connect', 'attempt',999]); $this->setData(['config', 'connect', 'attempt',999]);
$this->setData(['config', 'connect', 'timeout',0]); $this->setData(['config', 'connect', 'timeout',0]);
$this->setData(['config', 'connect', 'log',false]); $this->setData(['config', 'connect', 'log',false]);
// Remettre à zéro le thème pour la génération du CSS du blog // Remettre à zéro le thème pour la génération du CSS du blog
if (file_exists(self::DATA_DIR . 'theme.css')) { if (file_exists(self::DATA_DIR . 'theme.css')) {
unlink(self::DATA_DIR . 'theme.css'); unlink(self::DATA_DIR . 'theme.css');
} }
// Créer les en-têtes du journal // Créer les en-têtes du journal
$d = 'Date;Heure;Id;Action' . PHP_EOL; $d = 'Date;Heure;Id;Action' . PHP_EOL;
file_put_contents(self::DATA_DIR . 'journal.log',$d); file_put_contents(self::DATA_DIR . 'journal.log',$d);
// Init préservation htaccess // Init préservation htaccess
$this->setData(['config','autoUpdateHtaccess',false]); $this->setData(['config','autoUpdateHtaccess',false]);
// Options de barre de membre simple
$this->setData(['theme','menu','memberBar',true]);
$this->setData(['theme','footer','displayMemberAccount',false]);
$this->setData(['theme','footer','displayMemberLogout',false]);
$this->setData(['core', 'dataVersion', 10200]); $this->setData(['core', 'dataVersion', 10200]);
} }
} }
@ -2121,6 +2125,18 @@ class layout extends common {
strip_tags(str_replace('/', '_', $this->getUrl())) . strip_tags(str_replace('/', '_', $this->getUrl())) .
'" data-tippy-content="Connexion à l\'administration" rel="nofollow">Connexion</a></span>'; '" data-tippy-content="Connexion à l\'administration" rel="nofollow">Connexion</a></span>';
} }
// Affichage de la barre de membre simple
if ( $this->getUser('group') === self::GROUP_MEMBER
&& ( $this->getData(['theme','footer','displayMemberBar']) === true
|| $this->getData(['theme','menu','memberBar']) === false
)
) {
$items .= '<span id="footerDisplayMemberAccount"';
$items .= $this->getData(['theme','footer','displaymemberAccount']) === false ? ' class="displayNone"' : '';
$items .= '><wbr>&nbsp;|<a href="' . helper::baseUrl() . 'user/edit/' . $this->getUser('id'). '/' . $_SESSION['csrf'] . '" data-tippy-content="Gérer mon compte" >' . template::ico('user', 'all') . '</a>';
$items .= '<wbr><a id="barLogout" href="' . helper::baseUrl() . 'user/logout" data-tippy-content="Me déconnecter">' . template::ico('logout','left') . '</a>';
$items .= '</span>';
}
// Fermeture du bloc copyright // Fermeture du bloc copyright
$items .= '</span></div>'; $items .= '</span></div>';
echo $items; echo $items;
@ -2331,8 +2347,10 @@ class layout extends common {
'">Connexion</a></li>'; '">Connexion</a></li>';
} }
// Commandes pour les membres simples // Commandes pour les membres simples
if($this->getUser('group') == self::GROUP_MEMBER) { if($this->getUser('group') == self::GROUP_MEMBER
$items .= '<li><a href="' . helper::baseUrl() . 'user/edit/' . $this->getUser('id'). '/' . $_SESSION['csrf'] . '" data-tippy-content="Configurer mon compte">' . template::ico('user', 'right') . '</a></li>'; && $this->getData(['theme','menu','memberBar']) === true
) {
$items .= '<li><a href="' . helper::baseUrl() . 'user/edit/' . $this->getUser('id'). '/' . $_SESSION['csrf'] . '" data-tippy-content="Gérer mon compte">' . template::ico('user', 'right') . '</a></li>';
$items .= '<li><a id="barLogout" href="' . helper::baseUrl() . 'user/logout" data-tippy-content="Me déconnecter">' . template::ico('logout') . '</a></li>'; $items .= '<li><a id="barLogout" href="' . helper::baseUrl() . 'user/logout" data-tippy-content="Me déconnecter">' . template::ico('logout') . '</a></li>';
} }
// Retourne les items du menu // Retourne les items du menu

View File

@ -375,7 +375,8 @@ class theme extends common {
'displaySiteMap' => $this->getInput('themefooterDisplaySiteMap', helper::FILTER_BOOLEAN), 'displaySiteMap' => $this->getInput('themefooterDisplaySiteMap', helper::FILTER_BOOLEAN),
'displayCopyright' => $this->getInput('themefooterDisplayCopyright', helper::FILTER_BOOLEAN), 'displayCopyright' => $this->getInput('themefooterDisplayCopyright', helper::FILTER_BOOLEAN),
'displayLegal' => $this->getInput('themeFooterDisplayLegal', helper::FILTER_BOOLEAN), 'displayLegal' => $this->getInput('themeFooterDisplayLegal', helper::FILTER_BOOLEAN),
'displaySearch' => $this->getInput('themeFooterDisplaySearch', helper::FILTER_BOOLEAN), 'displaySearch' => $this->getInput('themeFooterDisplaySearch', helper::FILTER_BOOLEAN),
'displayMemberBar'=> $this->getInput('themeFooterDisplayMemberBar', helper::FILTER_BOOLEAN),
'template' => $this->getInput('themeFooterTemplate') 'template' => $this->getInput('themeFooterTemplate')
]]); ]]);
// Valeurs en sortie // Valeurs en sortie
@ -504,7 +505,8 @@ class theme extends common {
'activeColor' => $this->getInput('themeMenuActiveColor'), 'activeColor' => $this->getInput('themeMenuActiveColor'),
'activeTextColor' => $this->getInput('themeMenuActiveTextColor'), 'activeTextColor' => $this->getInput('themeMenuActiveTextColor'),
'radius' => $this->getInput('themeMenuRadius'), 'radius' => $this->getInput('themeMenuRadius'),
'burgerTitle' => $this->getInput('themeMenuBurgerTitle', helper::FILTER_BOOLEAN) 'burgerTitle' => $this->getInput('themeMenuBurgerTitle', helper::FILTER_BOOLEAN),
'memberBar' => $this->getInput('themeMenuMemberBar', helper::FILTER_BOOLEAN)
]]); ]]);
// Valeurs en sortie // Valeurs en sortie
$this->addOutput([ $this->addOutput([

View File

@ -57,6 +57,12 @@
'help' => (bool) empty($this->getData(['config', 'legalPageId'])) ? 'Pour activer cette option, sélectionnez la page contenant les mentions légales dans la gestion du site' : '' 'help' => (bool) empty($this->getData(['config', 'legalPageId'])) ? 'Pour activer cette option, sélectionnez la page contenant les mentions légales dans la gestion du site' : ''
]); ?> ]); ?>
</div> </div>
<div class="row">
<?php echo template::checkbox('themeFooterDisplayMemberBar', true, 'Barre des membres', [
'checked' => $this->getData(['theme', 'footer', 'displayMemberBar']),
'help' => 'Affiche les icônes de gestion du compte et de déconnexion. Uniquement pour les membres simples une fois connectés.'
]); ?>
</div>
</div> </div>
<div class="col6"> <div class="col6">
<div class="row"> <div class="row">
@ -65,19 +71,16 @@
'help' => 'Un plan du site permet un meilleur référencement.' 'help' => 'Un plan du site permet un meilleur référencement.'
]); ?> ]); ?>
</div> </div>
<div class="row">
<?php echo template::checkbox('themeFooterDisplaySearch', true, 'Rechercher', [
'checked' => $this->getData(['theme', 'footer', 'displaySearch'])
]); ?>
</div>
<div class="row"> <div class="row">
<?php echo template::checkbox('themeFooterLoginLink', true, 'Lien de connexion', [ <?php echo template::checkbox('themeFooterLoginLink', true, 'Lien de connexion', [
'checked' => $this->getData(['theme', 'footer', 'loginLink']) 'checked' => $this->getData(['theme', 'footer', 'loginLink'])
]); ?> ]); ?>
</div> </div>
<div class="row">
<?php echo template::checkbox('themeFooterDisplaySearch', true, 'Rechercher', [
'checked' => $this->getData(['theme', 'footer', 'displaySearch']),
]); ?>
</div>
</div>
<div class="col12">
<em>Le paramétrage des mentions légales s'effectue dans la configuration du site.</em>
</div> </div>
</div> </div>
</div> </div>
@ -110,7 +113,7 @@
<div class="col3"> <div class="col3">
<?php echo template::select('themeFooterFontSize', $module::$footerFontSizes, [ <?php echo template::select('themeFooterFontSize', $module::$footerFontSizes, [
'label' => 'Taille', 'label' => 'Taille',
'help' => 'Proportionnelle à celle définie dans le site.', 'help' => 'Proportionnelle à celle définie dans le site.',
'selected' => $this->getData(['theme', 'footer', 'fontSize']) 'selected' => $this->getData(['theme', 'footer', 'fontSize'])
]); ?> ]); ?>
</div> </div>
@ -136,7 +139,7 @@
<h4>Configuration</h4> <h4>Configuration</h4>
<div class="row"> <div class="row">
<div class="col4"> <div class="col4">
<?php $footerBlockPosition = is_null($this->getData(['theme', 'footer', 'template'])) ? $module::$footerblocks[3] : $module::$footerblocks [$this->getData(['theme', 'footer', 'template'])] ;?> <?php $footerBlockPosition = is_null($this->getData(['theme', 'footer', 'template'])) ? $module::$footerblocks[3] : $module::$footerblocks [$this->getData(['theme', 'footer', 'template'])] ;?>
<?php echo template::select('themeFooterTemplate', $module::$footerTemplate, [ <?php echo template::select('themeFooterTemplate', $module::$footerTemplate, [
'label' => 'Disposition', 'label' => 'Disposition',
@ -199,13 +202,13 @@
'checked' => $this->getData(['theme', 'footer', 'margin']) 'checked' => $this->getData(['theme', 'footer', 'margin'])
]); ?> ]); ?>
</div> </div>
</div> </div>
<div class="col6"> <div class="col6">
<div id="themeFooterPositionFixed" class="displayNone"> <div id="themeFooterPositionFixed" class="displayNone">
<?php echo template::checkbox('themeFooterFixed', true, 'Pied de page fixe', [ <?php echo template::checkbox('themeFooterFixed', true, 'Pied de page fixe', [
'checked' => $this->getData(['theme', 'footer', 'fixed']) 'checked' => $this->getData(['theme', 'footer', 'fixed'])
]); ?> ]); ?>
</div> </div>
</div> </div>
</div> </div>
</div> </div>

View File

@ -13,7 +13,7 @@
$(document).ready(function(){ $(document).ready(function(){
// Menu fixe à afficher // Menu fixe à afficher
if($("#themeMenuPosition").val() === 'top') { if($("#themeMenuPosition").val() === 'top') {
$("#themeMenuPositionFixed").slideDown(); $("#themeMenuPositionFixed").slideDown();
} }
else { else {
$("#themeMenuPositionFixed").slideUp(function() { $("#themeMenuPositionFixed").slideUp(function() {
@ -23,7 +23,7 @@ $(document).ready(function(){
// Option de menu à afficher // Option de menu à afficher
if($("#themeMenuPosition").val() === 'site-first' || $(this).val() === 'site-second') { if($("#themeMenuPosition").val() === 'site-first' || $(this).val() === 'site-second') {
$("#themeMenuPositionOptions").slideDown(); $("#themeMenuPositionOptions").slideDown();
} }
else { else {
$("#themeMenuPositionOptions").slideUp(function() { $("#themeMenuPositionOptions").slideUp(function() {
@ -42,7 +42,7 @@ $("input, select").on("change", function() {
var menuFont = $("#themeMenuFont").val(); var menuFont = $("#themeMenuFont").val();
var css = "@import url('https://fonts.googleapis.com/css?family=" + menuFont + "');"; var css = "@import url('https://fonts.googleapis.com/css?family=" + menuFont + "');";
var colors = core.colorVariants($("#themeMenuBackgroundColor").val()); var colors = core.colorVariants($("#themeMenuBackgroundColor").val());
// Couleurs du menu // Couleurs du menu
css += "nav,nav a{background-color:" + colors.normal + "}"; css += "nav,nav a{background-color:" + colors.normal + "}";
css += "nav a,#toggle span,nav a:hover{color:" + $("#themeMenuTextColor").val() + "}"; css += "nav a,#toggle span,nav a:hover{color:" + $("#themeMenuTextColor").val() + "}";
css += "nav a:hover{background-color:" + colors.darken + "}"; css += "nav a:hover{background-color:" + colors.darken + "}";
@ -50,7 +50,7 @@ $("input, select").on("change", function() {
css += "nav a:hover{background-color:" + colors.veryDarken + ";color:" + $('#themeMenuActiveTextColor').val() + ";}"; css += "nav a:hover{background-color:" + colors.veryDarken + ";color:" + $('#themeMenuActiveTextColor').val() + ";}";
} else { } else {
css += "nav a:hover{background-color:" + $("#themeMenuActiveColor").val() + ";color:" + $('#themeMenuActiveTextColor').val() + ";}"; css += "nav a:hover{background-color:" + $("#themeMenuActiveColor").val() + ";color:" + $('#themeMenuActiveTextColor').val() + ";}";
} }
// Taille, hauteur, épaisseur et capitalisation de caractères du menu // Taille, hauteur, épaisseur et capitalisation de caractères du menu
css += "#toggle span,#menu a{padding:" + $("#themeMenuHeight").val() + ";font-family:'" + menuFont.replace(/\+/g, " ") + "',sans-serif;font-weight:" + $("#themeMenuFontWeight").val() + ";font-size:" + $("#themeMenuFontSize").val() + ";text-transform:" + $("#themeMenuTextTransform").val() + "}"; css += "#toggle span,#menu a{padding:" + $("#themeMenuHeight").val() + ";font-family:'" + menuFont.replace(/\+/g, " ") + "',sans-serif;font-weight:" + $("#themeMenuFontWeight").val() + ";font-size:" + $("#themeMenuFontSize").val() + ";text-transform:" + $("#themeMenuTextTransform").val() + "}";
// Alignement du menu // Alignement du menu
@ -105,7 +105,7 @@ $("input, select").on("change", function() {
$("#menu").removeClass('container-large'); $("#menu").removeClass('container-large');
$("nav").removeAttr('id'); $("nav").removeAttr('id');
$("#menu").addClass('container'); $("#menu").addClass('container');
break; break;
case 'body-second': case 'body-second':
if(<?php echo json_encode($this->getData(['theme', 'header', 'position']) === 'body'); ?>) { if(<?php echo json_encode($this->getData(['theme', 'header', 'position']) === 'body'); ?>) {
$("nav").show().insertAfter("header"); $("nav").show().insertAfter("header");
@ -123,7 +123,7 @@ $("input, select").on("change", function() {
break; break;
case 'site': case 'site':
$("nav").show().prependTo("#site"); $("nav").show().prependTo("#site");
break; break;
} }
}); });
// //
@ -140,7 +140,7 @@ $("#themeMenuLoginLink").on("change", function() {
// Affiche / Cache les options de la position // Affiche / Cache les options de la position
$("#themeMenuPosition").on("change", function() { $("#themeMenuPosition").on("change", function() {
if($(this).val() === 'site-first' || $(this).val() === 'site-second') { if($(this).val() === 'site-first' || $(this).val() === 'site-second') {
$("#themeMenuPositionOptions").slideDown(); $("#themeMenuPositionOptions").slideDown();
} }
else { else {
$("#themeMenuPositionOptions").slideUp(function() { $("#themeMenuPositionOptions").slideUp(function() {
@ -152,7 +152,7 @@ $("#themeMenuPosition").on("change", function() {
// Affiche / Cache les options du menu fixe // Affiche / Cache les options du menu fixe
$("#themeMenuPosition").on("change", function() { $("#themeMenuPosition").on("change", function() {
if($(this).val() === 'top') { if($(this).val() === 'top') {
$("#themeMenuPositionFixed").slideDown(); $("#themeMenuPositionFixed").slideDown();
} }
else { else {
$("#themeMenuPositionFixed").slideUp(function() { $("#themeMenuPositionFixed").slideUp(function() {
@ -165,7 +165,7 @@ $("#themeMenuPosition").on("change", function() {
$("#themeMenuActiveColorAuto").on("change", function() { $("#themeMenuActiveColorAuto").on("change", function() {
if ($(this).is(':checked') ) { if ($(this).is(':checked') ) {
$("#themeMenuActiveColorWrapper").slideUp(); $("#themeMenuActiveColorWrapper").slideUp();
} else { } else {
$("#themeMenuActiveColorWrapper").slideDown(); $("#themeMenuActiveColorWrapper").slideDown();
} }
}).trigger("change"); }).trigger("change");

View File

@ -20,19 +20,19 @@
<div class="col6"> <div class="col6">
<?php echo template::text('themeMenuTextColor', [ <?php echo template::text('themeMenuTextColor', [
'class' => 'colorPicker', 'class' => 'colorPicker',
'help' => 'Le curseur horizontal règle le niveau de transparence.', 'help' => 'Le curseur horizontal règle le niveau de transparence.',
'label' => 'Texte', 'label' => 'Texte',
'value' => $this->getData(['theme', 'menu', 'textColor']) 'value' => $this->getData(['theme', 'menu', 'textColor'])
]); ?> ]); ?>
</div> </div>
<div class="col6"> <div class="col6">
<?php echo template::text('themeMenuBackgroundColor', [ <?php echo template::text('themeMenuBackgroundColor', [
'class' => 'colorPicker', 'class' => 'colorPicker',
'help' => 'Le curseur horizontal règle le niveau de transparence.', 'help' => 'Le curseur horizontal règle le niveau de transparence.',
'label' => 'Fond', 'label' => 'Fond',
'value' => $this->getData(['theme', 'menu', 'backgroundColor']) 'value' => $this->getData(['theme', 'menu', 'backgroundColor'])
]); ?> ]); ?>
</div> </div>
</div> </div>
</div> </div>
</div> </div>
@ -40,31 +40,31 @@
<div class="row"> <div class="row">
<div class="col12"> <div class="col12">
<div class="block"> <div class="block">
<h4>Page active</h4> <h4>Page active</h4>
<div class="row"> <div class="row">
<div class="col4"> <div class="col4">
<?php echo template::text('themeMenuActiveTextColor', [ <?php echo template::text('themeMenuActiveTextColor', [
'class' => 'colorPicker', 'class' => 'colorPicker',
'help' => 'Le curseur horizontal règle le niveau de transparence.', 'help' => 'Le curseur horizontal règle le niveau de transparence.',
'label' => 'Texte', 'label' => 'Texte',
'value' => $this->getData(['theme', 'menu', 'activeTextColor']) 'value' => $this->getData(['theme', 'menu', 'activeTextColor'])
]); ?> ]); ?>
</div> </div>
<div class="col4 verticalAlignBottom"> <div class="col4 verticalAlignBottom">
<?php <?php
echo template::checkbox('themeMenuActiveColorAuto', true, 'Couleur du fond automatique', [ echo template::checkbox('themeMenuActiveColorAuto', true, 'Couleur du fond automatique', [
'checked' => $this->getData(['theme', 'menu', 'activeColorAuto']), 'checked' => $this->getData(['theme', 'menu', 'activeColorAuto']),
'help' => 'La couleur de fond de la page active peut être définie automatique ou selon une couleur définie, comme par exemple celle de fond des pages.' 'help' => 'La couleur de fond de la page active peut être définie automatique ou selon une couleur définie, comme par exemple celle de fond des pages.'
]); ?> ]); ?>
</div> </div>
<div class="col4"> <div class="col4">
<?php echo template::text('themeMenuActiveColor', [ <?php echo template::text('themeMenuActiveColor', [
'class' => 'colorPicker', 'class' => 'colorPicker',
'help' => 'Couleur de fond de la page sélectionnée dans le menu.<br>Le curseur horizontal règle le niveau de transparence.', 'help' => 'Couleur de fond de la page sélectionnée dans le menu.<br>Le curseur horizontal règle le niveau de transparence.',
'label' => 'Fond', 'label' => 'Fond',
'value' => $this->getData(['theme', 'menu', 'activeColor']) 'value' => $this->getData(['theme', 'menu', 'activeColor'])
]); ?> ]); ?>
</div> </div>
</div> </div>
</div> </div>
</div> </div>
@ -84,7 +84,7 @@
<div class="col6"> <div class="col6">
<?php echo template::select('themeMenuFontSize', $module::$menuFontSizes, [ <?php echo template::select('themeMenuFontSize', $module::$menuFontSizes, [
'label' => 'Taille', 'label' => 'Taille',
'help' => 'Proportionnelle à celle définie dans le site', 'help' => 'Proportionnelle à celle définie dans le site',
'selected' => $this->getData(['theme', 'menu', 'fontSize']) 'selected' => $this->getData(['theme', 'menu', 'fontSize'])
]); ?> ]); ?>
</div> </div>
@ -168,18 +168,25 @@
<div class="block"> <div class="block">
<h4>Contenus</h4> <h4>Contenus</h4>
<div class="row"> <div class="row">
<div class="col6"> <div class="col4">
<?php echo template::checkbox('themeMenuLoginLink', true, 'Lien de connexion', [ <?php echo template::checkbox('themeMenuLoginLink', true, 'Lien de connexion', [
'checked' => $this->getData(['theme', 'menu', 'loginLink']) 'checked' => $this->getData(['theme', 'menu', 'loginLink']),
'help' => 'L\'activation de cette option n\'est pas recommandée'
]); ?> ]); ?>
</div> </div>
<div class="col6"> <div class="col4">
<?php echo template::checkbox('themeMenuMemberBar', true, 'Barre de membre', [
'checked' => $this->getData(['theme', 'menu', 'memberBar']),
'help' => 'Icônes de gestion de compte et de déconnexion. Uniquement pour les membres connectés'
]); ?>
</div>
<div class="col4">
<?php echo template::checkbox('themeMenuBurgerTitle', true, 'Titre du site dans le menu réduit', [ <?php echo template::checkbox('themeMenuBurgerTitle', true, 'Titre du site dans le menu réduit', [
'checked' => $this->getData(['theme', 'menu', 'burgerTitle']), 'checked' => $this->getData(['theme', 'menu', 'burgerTitle']),
'help' => 'Le menu burger remplace le menu complet lorsque la largeur de l\'écran n\'est pas suffisante.' 'help' => 'Le menu burger remplace le menu complet lorsque la largeur de l\'écran n\'est pas suffisante.'
]); ?> ]); ?>
</div> </div>
</div> </div>
</div> </div>
</div> </div>
</div> </div>