Menu et user

This commit is contained in:
Deltacms 2022-11-22 08:40:39 +01:00
parent a6b109be62
commit e989bc9f1d
7 changed files with 95 additions and 27 deletions

View File

@ -6,9 +6,11 @@
- Adaptation des modules de page à ce nouveau groupe avec des actions autorisées limitées, - Adaptation des modules de page à ce nouveau groupe avec des actions autorisées limitées,
- Nouvelle option dans l'édition d'une page, permissions : sélection du groupe requis pour modifier la page, - Nouvelle option dans l'édition d'une page, permissions : sélection du groupe requis pour modifier la page,
- Modules Gallery et Slider, sélection du dossier : seuls les dossiers incluant au moins une image sont proposés et exclusion de certains dossiers - Modules Gallery et Slider, sélection du dossier : seuls les dossiers incluant au moins une image sont proposés et exclusion de certains dossiers
- Affichage du menu : modifications de l'ordre pages, icônes login ou membre, drapeaux suivant l'alignement du contenu ou en menu burger
- Nettoyage : suppression de fichiers inutiles (2.5Mo), - Nettoyage : suppression de fichiers inutiles (2.5Mo),
- Corrections : - Corrections :
- Affichage du sous-menu avec un alignement du contenu à droite : il y avait un décalage du site quand les pages situées à la droite du menu possédaient des pages enfants. - Affichage du sous-menu avec un alignement du contenu à droite : il y avait un décalage du site quand les pages situées à la droite du menu possédaient des pages enfants.
- Affichage du menu : quand le menu comprenait de nombreux items certains pouvaient être masqués dans une fenêtre de taille moyenne.
## Version 4.3.08 de Deltacms ## Version 4.3.08 de Deltacms
- Modifications : - Modifications :

View File

@ -549,4 +549,18 @@ $(document).ready(function(){
}); });
}); });
/*
* Largeur du sous-menu égale à la largeur de l'onglet parent sauf en petit écran
*/
$(window).on("resize", function() {
if( $(window).width() > 768 ){
$.each(parentPage, function(index, value) {
$('.navSub .'+value).css('width', $('.'+value).css('width'));
});
}
}).trigger("resize");
}); });

View File

@ -1612,14 +1612,24 @@ class common {
// Met en forme les items du menu // Met en forme les items du menu
$itemsLeft = ''; $itemsLeft = '';
$currentPageId = $this->getData(['page', $this->getUrl(0)]) ? $this->getUrl(0) : $this->getUrl(2); $currentPageId = $this->getData(['page', $this->getUrl(0)]) ? $this->getUrl(0) : $this->getUrl(2);
?> <script> var parentPage=[]; </script>
<?php
foreach($this->getHierarchy() as $parentPageId => $childrenPageIds) { foreach($this->getHierarchy() as $parentPageId => $childrenPageIds) {
// Passer les entrées masquées // Passer les entrées masquées
// Propriétés de l'item // Propriétés de l'item
$active = ($parentPageId === $currentPageId OR in_array($currentPageId, $childrenPageIds)) ? 'active ' : ''; $active = ($parentPageId === $currentPageId OR in_array($currentPageId, $childrenPageIds)) ? 'active ' : '';
$targetBlank = $this->getData(['page', $parentPageId, 'targetBlank']) ? ' target="_blank"' : ''; $targetBlank = $this->getData(['page', $parentPageId, 'targetBlank']) ? ' target="_blank"' : '';
// Si c'est une page parent, on passe son id à core.js.php pour adampter la largeur du sous-menu à la largeur de l'onglet de la page parent
if( $childrenPageIds !== [] ){ ?>
<script> parentPage.push('<?php echo $parentPageId; ?>'); </script>
<?php }
// Mise en page de l'item // Mise en page de l'item
$itemsLeft .= '<li>'; $itemsLeft .= '<li>';
if ( ( $this->getData(['page',$parentPageId,'disable']) === true if ( ( $this->getData(['page',$parentPageId,'disable']) === true
AND $this->getUser('password') !== $this->getInput('DELTA_USER_PASSWORD') AND $this->getUser('password') !== $this->getInput('DELTA_USER_PASSWORD')
) OR ( ) OR (
@ -1762,6 +1772,8 @@ class common {
} }
// Lien de connexion // Lien de connexion
$itemsRight = ''; $itemsRight = '';
$space1Menu = '<li id="menuSpace"> </li>';
$space2Menu = '<li id="menuSpace"> </li>';
if( if(
( (
$this->getData(['theme', 'menu', 'loginLink']) $this->getData(['theme', 'menu', 'loginLink'])
@ -1770,7 +1782,7 @@ class common {
OR $this->getUrl(0) === 'theme' OR $this->getUrl(0) === 'theme'
) { ) {
$itemsRight .= '<li id="menuLoginLink" ' . $itemsRight .= '<li id="menuLoginLink" ' .
($this->getUrl(0) === 'theme' ? 'class="displayNone"' : '') . ($this->getUrl(0) === 'theme' ? 'class="displayNone"' : 'class="smallScreenInline"') .
'><a href="' . helper::baseUrl() . 'user/login/' . '><a href="' . helper::baseUrl() . 'user/login/' .
strip_tags(str_replace('/', '_', $this->getUrl())) . strip_tags(str_replace('/', '_', $this->getUrl())) .
'">' . template::ico('login') .'</a></li>'; '">' . template::ico('login') .'</a></li>';
@ -1785,12 +1797,32 @@ class common {
$itemsRight .= '<li><a href="' . helper::baseUrl() . 'user/edit/' . $this->getUser('id'). '/' . $_SESSION['csrf'] . '" data-tippy-content="'.$text['core']['showmenu'][1].'">' . template::ico('user', 'right') . '</a></li>'; $itemsRight .= '<li><a href="' . helper::baseUrl() . 'user/edit/' . $this->getUser('id'). '/' . $_SESSION['csrf'] . '" data-tippy-content="'.$text['core']['showmenu'][1].'">' . template::ico('user', 'right') . '</a></li>';
$itemsRight .= '<li><a id="barLogout" href="' . helper::baseUrl() . 'user/logout" data-tippy-content="'.$text['core']['showmenu'][2].'">' . template::ico('logout') . '</a></li>'; $itemsRight .= '<li><a id="barLogout" href="' . helper::baseUrl() . 'user/logout" data-tippy-content="'.$text['core']['showmenu'][2].'">' . template::ico('logout') . '</a></li>';
} }
// Retourne les items du menu // Retourne les items du menu suivant l'alignement du contenu
echo '<ul class="navMain" id="menuLeft">' . $itemsLeft . '</ul><ul class="navMain" id="menuRight">' . $itemsRight;
// Les drapeaux d'abord en petit écran
echo '<ul class="smallScreenFlags">';
if($this->getData(['config', 'i18n', 'enable']) === true) { if($this->getData(['config', 'i18n', 'enable']) === true) {
echo $this->showi18n(); echo $this->showi18n();
} }
echo '</ul>'; echo '</ul>';
if( $this->getData(['theme', 'menu', 'textAlign']) === 'right'){
if( $itemsRight === '') $space1Menu ='';
echo '<ul class="navMain" id="menuLeft">' . $itemsLeft . $space1Menu . $itemsRight ;
if($this->getData(['config', 'i18n', 'enable']) === true) {
if( $itemsRight === '') echo $space2Menu;
echo $this->showi18n();
}
}
else{
if( $itemsRight === '') $space1Menu ='';
echo '<ul class="navMain" id="menuLeft">' . $itemsRight . $space1Menu . $itemsLeft ;
if($this->getData(['config', 'i18n', 'enable']) === true) {
echo $space2Menu;
echo $this->showi18n();
}
}
echo '</ul>';
} }
/** /**
@ -2183,7 +2215,7 @@ class common {
$select = ' class="i18nFlag flag" '; $select = ' class="i18nFlag flag" ';
} }
echo '<li>'; echo '<li class="smallScreenInline">';
echo '<a href="' . helper::baseUrl() . 'translate/i18n/' . $key . '/' . $this->getData(['config', 'i18n',$key]) . '/' . $this->getUrl(0) . '"><img ' . $select . ' alt="' . $value . '" src="' . helper::baseUrl(false) . 'core/vendor/i18n/png/' . $key . '.png"/></a>'; echo '<a href="' . helper::baseUrl() . 'translate/i18n/' . $key . '/' . $this->getData(['config', 'i18n',$key]) . '/' . $this->getUrl(0) . '"><img ' . $select . ' alt="' . $value . '" src="' . helper::baseUrl(false) . 'core/vendor/i18n/png/' . $key . '.png"/></a>';
echo '</li>'; echo '</li>';
} }

View File

@ -566,18 +566,18 @@ nav ul {
nav li { nav li {
display: inline-block; display: inline-block;
position: relative; position: relative;
max-width: 25vmin; /*max-width: 30vmin;*/
} }
@media screen and (max-width: 768px) { @media screen and (max-width: 768px) {
nav li { nav li {
max-width: 50vmin; /*max-width: 50vmin;*/
} } } }
nav li ul { nav li ul {
display: block; display: block;
position: absolute; position: absolute;
width: inherit; /*width: inherit;*/
z-index: -1; z-index: -1;
opacity: 0; opacity: 0;
transition: .3s ease-out; transition: .3s ease-out;
@ -589,6 +589,10 @@ nav li ul li {
text-align: left; text-align: left;
} }
nav .navSub a{
text-align: left;
}
nav li:hover ul { nav li:hover ul {
z-index: 8; z-index: 8;
opacity: 1; opacity: 1;
@ -605,6 +609,7 @@ nav a:hover {
/* Barre de menu */ /* Barre de menu */
/*
#menuLeft { #menuLeft {
display: inline-flex; display: inline-flex;
} }
@ -613,8 +618,13 @@ nav a:hover {
display: inline-flex ; display: inline-flex ;
float: right; float: right;
} }
*/
/* fin barre de menu */ /* fin barre de menu */
#menuSpace {
width: 80px;
}
nav::after { nav::after {
content: " "; content: " ";
clear: both; clear: both;
@ -628,6 +638,9 @@ nav::before {
} }
@media screen and (min-width: 769px) { @media screen and (min-width: 769px) {
.smallScreenFlags{
display : none;
}
nav #menu { nav #menu {
display: block; display: block;
} }
@ -667,7 +680,7 @@ nav::before {
opacity: 1; opacity: 1;
position: static; position: static;
min-width: inherit; min-width: inherit;
width: auto; padding-left: 20px;
} }
/* Taille du menu hamburger */ /* Taille du menu hamburger */
@ -734,17 +747,25 @@ li .menuSideChild {
*/ */
@media screen and (max-width:1024px){ @media screen and (max-width:768px){
.smallScreenFlags{
display : inline-block;
position: relative;
left : 10px;
}
.smallScreenInline{
display: inline-block;
}
.i18nFlag { .i18nFlag {
width: 100%; width: 25px;
padding: 5px; margin-left: 5px;
} }
.i18nFlagSelected { .i18nFlagSelected {
width: 130%; width: 30px;
padding: 5px; margin-left: 5px;
} }
} }

View File

@ -136,12 +136,12 @@ $text['core_user']['login'][4] = 'Only an administrator can log in during mainte
$text['core_user']['login'][5] = 'Successful connection'; $text['core_user']['login'][5] = 'Successful connection';
$text['core_user']['login'][6] = 'Welcome '; $text['core_user']['login'][6] = 'Welcome ';
$text['core_user']['login'][7] = 'Incorrect captcha, username or password'; $text['core_user']['login'][7] = 'Incorrect captcha, username or password';
$text['core_user']['login'][8] = 'Password error'; //$text['core_user']['login'][8] = 'Password error';
$text['core_user']['login'][9] = 'Captcha error'; //$text['core_user']['login'][9] = 'Captcha error';
$text['core_user']['login'][10] = 'Account locked '; $text['core_user']['login'][10] = 'Account locked ';
$text['core_user']['login'][11] = 'Connection'; $text['core_user']['login'][11] = 'Connection';
$text['core_user']['login'][12] = ''; //$text['core_user']['login'][12] = '';
$text['core_user']['login'][13] = ' Fill in the Captcha '; //$text['core_user']['login'][13] = ' Fill in the Captcha ';
$text['core_user']['logout'][0] = 'Successfully disconnected'; $text['core_user']['logout'][0] = 'Successfully disconnected';
$text['core_user']['reset'][0] = 'Incorrect'; $text['core_user']['reset'][0] = 'Incorrect';
$text['core_user']['reset'][1] = 'New password registered'; $text['core_user']['reset'][1] = 'New password registered';

View File

@ -136,12 +136,12 @@ $text['core_user']['login'][4] = 'Seul un administrateur peut se connecter lors
$text['core_user']['login'][5] = 'Connexion réussie'; $text['core_user']['login'][5] = 'Connexion réussie';
$text['core_user']['login'][6] = 'Bienvenue '; $text['core_user']['login'][6] = 'Bienvenue ';
$text['core_user']['login'][7] = 'Captcha, identifiant ou mot de passe incorrects'; $text['core_user']['login'][7] = 'Captcha, identifiant ou mot de passe incorrects';
$text['core_user']['login'][8] = 'Erreur de mot de passe'; //$text['core_user']['login'][8] = 'Erreur de mot de passe';
$text['core_user']['login'][9] = 'Erreur de captcha'; //$text['core_user']['login'][9] = 'Erreur de captcha';
$text['core_user']['login'][10] = 'Accès bloqué '; $text['core_user']['login'][10] = 'Accès bloqué ';
$text['core_user']['login'][11] = 'Connexion'; $text['core_user']['login'][11] = 'Connexion';
$text['core_user']['login'][12] = ''; //$text['core_user']['login'][12] = '';
$text['core_user']['login'][13] = ' Renseignez le Captcha '; //$text['core_user']['login'][13] = ' Renseignez le Captcha ';
$text['core_user']['logout'][0] = 'Déconnexion réussie'; $text['core_user']['logout'][0] = 'Déconnexion réussie';
$text['core_user']['reset'][0] = 'Incorrect'; $text['core_user']['reset'][0] = 'Incorrect';
$text['core_user']['reset'][1] = 'Nouveau mot de passe enregistré'; $text['core_user']['reset'][1] = 'Nouveau mot de passe enregistré';

View File

@ -524,11 +524,10 @@ class user extends common {
'state' => true 'state' => true
]); ]);
} }
// Sinon notification d'échec // Sinon notification d'échec et captcha addition
} else { } else {
$notification = $text['core_user']['login'][7]; $notification = $text['core_user']['login'][7];
if( $detectBot = 'bot' ) $notification = $text['core_user']['login'][13]; $_SESSION['humanBot']='bot';
$logStatus = $captcha === true ? $text['core_user']['login'][8] : $text['core_user']['login'][9];
// Cas 1 le nombre de connexions est inférieur aux tentatives autorisées : incrément compteur d'échec // Cas 1 le nombre de connexions est inférieur aux tentatives autorisées : incrément compteur d'échec
if ($this->getData(['user',$userId,'connectFail']) < $this->getData(['config', 'connect', 'attempt'])) { if ($this->getData(['user',$userId,'connectFail']) < $this->getData(['config', 'connect', 'attempt'])) {
$this->setData(['user',$userId,'connectFail',$this->getdata(['user',$userId,'connectFail']) + 1 ]); $this->setData(['user',$userId,'connectFail',$this->getdata(['user',$userId,'connectFail']) + 1 ]);