Leftmenu caché par défaut, possible?

Hello les Dolibarriens!

Ptite question pour rendre le travail sur un petit écran plus zen…
Est-ce possible de faire que le leftmenu soit caché par défaut?
J’utilise le thème MD et le gestionnaire de menu auguria menu.
J’aimerais que dès qu’on charge une page ou sous-page, le leftmenu soit caché par défaut.
Dans le fichier /core/menus/standard/eldy_menu.php
J’ai trouvé ces lignes (90 - 109)

	if (GETPOSTISSET("leftmenu")) {
		// On sauve en session le menu principal choisi
		$leftmenu = GETPOST("leftmenu", 'aZ09');
		$_SESSION["leftmenu"] = $leftmenu;

		if ($_SESSION["leftmenuopened"] == $leftmenu) {	// To collapse
			//$leftmenu="";
			$_SESSION["leftmenuopened"] = "";
		} else {
			$_SESSION["leftmenuopened"] = $leftmenu;
		}
	} else {
		// On va le chercher en session si non defini par le lien
		$leftmenu = isset($_SESSION["leftmenu"]) ? $_SESSION["leftmenu"] : '';
	}
	if (!empty($forceleftmenu)) {
		$leftmenu = $forceleftmenu;
	}

Croyez-vous qu’en faisant un changement ici j’arrive à mes fins?
Merci d’avance :wink:

1 « J'aime »

Bonjour,
essayez de passer en affichage « mobile » et hop plus de menu gauche …

aaahhh merci pour l’astuce mais, en tout cas sur firefox, meme sur affichage mobile, on voit encore le leftmenu.
Je prefererais une solution de code ou custom css pour arranger cela.

Ha ???

ci dessous un firefox en affichage mobile : pas de left menu

Et sinon via du CSS ça doit se faire sans pb oui, depuis peu il est possible de faire un custom CSS via l’admin (contrib que j’ai faite il y a quelques mois, ça doit être dans la 17.0.2 je pense) :slight_smile:

ha ben non, ça arrivera dans la 18 alors :frowning:

Bonjour Eric,
Effectivement mais si je passe à l’affichage mobile, j’ai un tout petit écran (voir espace en noir) alors que le but est de profiter de tout l’espace.


Et avec le thème md, navigateur firefox et le menu manager auguria, le panel gauche reste ouvert.
Si je le ferme et je change de page, il s’affiche à nouveau.
J’ai le plugin pour ajouter les CSS personnalisés et peux agir à ce niveau là en attendant qu’il fasse partie du core.
Du coup, je crois qu’il suffit juste de modifier quelque part dans le code l’état par défaut du menu leftpanel pour qu’il soit par défaut fermé?

Dans l’inspecteur de CSS, je vois 2 déclarations concernant .side-nav :
.side-nav, .login_block {
transition: left 0.5s ease;
}

ET

.side-nav {
background: var(–colorbackvmenu1);
border-right: 1px solid rgba(0,0,0,0.2);
box-shadow: 3px 0 6px -2px #eee;
bottom: 0;
color: #333;
display: block;
font-family: « RobotoDraft »,« Roboto »,sans-serif;
left: 0;
position: fixed;
top: 50px;
z-index: 90;
– -webkit-transform: translateZ(0); –
– -moz-transform: translateZ(0); –
– -ms-transform: translateZ(0); –
– -o-transform: translateZ(0); –
– transform: translateZ(0); –
– -webkit-transform-style: preserve-3d; –
– -moz-transform-style: preserve-3d; –
– -ms-transform-style: preserve-3d; –
– -o-transform-style: preserve-3d; –
transform-style: preserve-3d;
– -webkit-transition-delay: 0.1s; –
– -moz-transition-delay: 0.1s; –
– transition-delay: 0.1s; –
– -webkit-transition-duration: 0.2s; –
– -moz-transition-duration: 0.2s; –
– transition-duration: 0.2s; –
– -webkit-transition-property: -webkit-transform; –
– -moz-transition-property: -moz-transform; –
– transition-property: transform; –
– -webkit-transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); –
– -moz-transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); –
– transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); –
– -webkit-overflow-scrolling: touch; –
overflow-x: hidden;
overflow-y: auto;
}

Sachant que les lignes que j’ai commenté avec des – au début et la fin apparaissent grisées.

Des pistes?
Merci pour votre réactivité!

Bonjour,

discussion intéressante, regardez peut être ce module Gestionnaire de menu qui fait ce que vous demandez et même un peu plus je pense :wink:
@+

Bonjour,
Merci pour votre réponse mais vu le petit détail… j’ai juste pas envie d’acheter un module pour ça
Je suis sûre que ça doit être un petit tweak CSS mais trouve pas encore

1 « J'aime »

Bonjour :slight_smile:

en utilisant les outils de débogage d’une page, on a facilement ce comportement…

il vous reste à implémenter un petit bouton et une action javascript qui fait le changement de display : block ou none…

Bonne continuation

Bonsoir,
Je reviens à mon post…
Merci pour la suggestion du display: none mais ce n’est pas la solution. Mettre un display none en CSS cache le menu mais laisse son espace en blanc.
ça ne le met pas en mode fermé par défaut.
Quelque chose quelque part fait qu’à chaque fois que la page se charge, ce menu s’ouvre par défaut.
J’ai beau chercher, je n’arrive pas à faire que ce menu reste fermé et qu’on puisse l’afficher en cliquant dessus…
Il doit avoir un paramètre quelque part qu’on peut inverser…? un comportement?
Quelque part dans
…/core/menus/standard/eldy.lib.php

A la ligne 65 il y a
// Show/Hide vertical menu. The hamburger icon for .menuhider action.
if ($mode != ‹ jmobile › && $mode != ‹ topnb › && $usemenuhider && empty($conf->global->MAIN_OPTIMIZEFORTEXTBROWSER)) {
$showmode = 0;
$classname = ‹ class=« tmenu menuhider nohover » ›;
$idsel = ‹ menu ›;

	$menu->add('#', (getDolGlobalInt('THEME_TOPMENU_DISABLE_IMAGE') == 0 ? '<span class="fa fa-bars"></span>' : ''), 0, $showmode, $atarget, "xxx", '', 0, $id, $idsel, $classname);
}

$menu_arr = array();

Ou dans
…/core/menus/standard/eldy_menu.php
A partir de la ligne 77 on trouve:
// Read now mainmenu and leftmenu that define which menu to show
if (GETPOSTISSET(« mainmenu »)) {
// On sauve en session le menu principal choisi
$mainmenu = GETPOST(« mainmenu », ‹ aZ09 ›);
$_SESSION[« mainmenu »] = $mainmenu;
$_SESSION[« leftmenuopened »] = «  »;
} else {
// On va le chercher en session si non defini par le lien
$mainmenu = isset($_SESSION[« mainmenu »]) ? $_SESSION[« mainmenu »] : ‹  ›;
}
if (!empty($forcemainmenu)) {
$mainmenu = $forcemainmenu;
}

	if (GETPOSTISSET("leftmenu")) {
		// On sauve en session le menu principal choisi
		$leftmenu = GETPOST("leftmenu", 'aZ09');
		$_SESSION["leftmenu"] = $leftmenu;

		if ($_SESSION["leftmenuopened"] == $leftmenu) {	// To collapse
			//$leftmenu="";
			$_SESSION["leftmenuopened"] = "";
		} else {
			$_SESSION["leftmenuopened"] = $leftmenu;
		}
	} else {
		// On va le chercher en session si non defini par le lien
		$leftmenu = isset($_SESSION["leftmenu"]) ? $_SESSION["leftmenu"] : '';
	}
	if (!empty($forceleftmenu)) {
		$leftmenu = $forceleftmenu;
	}

	require_once DOL_DOCUMENT_ROOT.'/core/class/menubase.class.php';
	$tabMenu = array();
	$menuArbo = new Menubase($this->db, 'eldy');
	$menuArbo->menuLoad($mainmenu, $leftmenu, $this->type_user, 'eldy', $tabMenu);
	$this->tabMenu = $tabMenu;
	//var_dump($tabMenu);

	//if ($forcemainmenu == 'all') { var_dump($this->tabMenu); exit; }
}

Allez… des pistes?

Bonjour

Dans ta classe MenuManager :

image

Fred

Ouh là là. Fred, merci!!
Vais essayer et te redis!!

Salut @crealibre,
Est-ce que tu as réussi à trouver ?
Je serai intéressé par la réponse aussi.

Merci !