Mettre une classe sur les rubriques du menu

Salut à tous,

Ceux qui suivent les post du forum vont surement remarquer que cette question a déjà été posé, je l'ai trouvé en faisant une recherche, mais malheureusement la solution proposée ne fonctionne pas avec la version 4.1...

Je cherche donc à appliquer une classe ou un id sur les <li> de mon menu de manière à y placer une image.

Je fais appel à une âme charitable pour m'éclairer un peu! Merci d'avance et bon mois d'août à tous !

Réponses

  • Je ne suis pas sur d'avoir compris ta question : en fait tu voudrait mettre des images à la place des points par défauts dans ta sidebar.
    Exemple chez moi, mes catégories sont affichées avec une petite flèche en GIF devant.

    J'ai donc dans ma feuille de style :
    #sidebar .block ul li
    { 
    	padding-left: 18px; 
    	background: url(images/arrow.gif) no-repeat 0px 3px; 
    }
    
    et dans mon sidebar :
    <div class="block">
    	<h3>Catégories</h3>
    	<ul>
    		<?php $plxShow->catList('','#cat_name (#art_nb)'); ?>			
    	</ul>
    </div>
    
  • NS-shnallaNS-shnalla Member
    août 2009 modifié
    En fait, mettre une image en arriere plan d'un élément ne me pause pas de soucis. En fait j'aimerais pouvoir générer un nom d'id sur chaque <li> comme ceci (par exemple) :
    <li id="rub1"><a xxxxx></a></li>
    <li id="rub2"><a xxxxx></a></li>
    <li id="rub3"><a xxxxx></a></li>
    
    et ainsi de suite... !
  • StéphaneStéphane Member, Former PluXml Project Manager
    Salut NS-shnalla

    Pour ajouter un id aux balises <li> il faut modifier le code des fonctions catList et staticList dans la classe plxShow. il n'y pas d'autres alternatives.

    Je peux te donner les modifs à reporter dans ces fonctions si cela t'interresse, mais par la suite cela posera des soucis avec les futurs version de pluxml lors des mises à jour.


    Stéphane

    Consultant PluXml

    Ancien responsable du projet (2010 à 2018)

  • hello, merci pour ta réponse;

    Je veux bien le code pour modifier mon menu. En ce qui concerne les futures mises à jour, j'aviserais lorsque la situation se présentera.
    Merci d'avance.
  • StéphaneStéphane Member, Former PluXml Project Manager
    Voilà le code à remplacer dans le fichier class.plx.show.php
    function catList($extra='', $format='#cat_name') {
    
    		# Si on a la variable extra, on affiche un lien vers la page d'accueil (avec $extra comme nom)
    		if($extra != '') {
    			$title = htmlspecialchars($this->plxMotor->aConf['title'],ENT_QUOTES,PLX_CHARSET);
    			if($this->plxMotor->mode == 'home' AND $this->plxMotor->cible == '')
    				echo '<li class="active"><a href="./" title="'.$title.'">'.$extra.'</a></li>';
    			elseif($this->plxMotor->mode == 'article' AND $this->plxMotor->plxRecord_arts->f('categorie') == 'home')
    				echo '<li id="cat-home" class="active"><a href="./" title="'.$title.'">'.$extra.'</a></li>';
    			else
    				echo '<li id="cat-home"><a href="./" title="'.$title.'">'.$extra.'</a></li>';
    		}
    		# On verifie qu'il y a des categories
    		if($this->plxMotor->aCats) {
    			foreach($this->plxMotor->aCats as $k=>$v) {
    				if($v['articles'] > 0) { # On a des articles
    					$v['name'] = htmlspecialchars($v['name'],ENT_QUOTES,PLX_CHARSET);
    					# On modifie nos motifs
    					$name = str_replace('#cat_id',intval($k),$format);
    					$name = str_replace('#cat_name',$v['name'],$name);
    					$name = str_replace('#art_nb',$v['articles'],$name);
    					# Ok
    					$url = './?categorie'.intval($k).'/'.$v['url'];
    					if($this->plxMotor->mode == 'categorie' AND $this->plxMotor->cible == $k)
    						echo '<li class="active"><a href="'.$url.'" title="'.$v['name'].'">'.$name.'</a></li>';
    					elseif($this->plxMotor->mode == 'article' AND $this->plxMotor->plxRecord_arts->f('categorie') == $k)
    						echo '<li id="cat-'.intval($k).'" class="active"><a href="'.$url.'" title="'.$v['name'].'">'.$name.'</a></li>';
    					else
    						echo '<li id="cat-'.intval($k).'"><a href="'.$url.'" title="'.$v['name'].'">'.$name.'</a></li>';
    				}
    			} # Fin du while
    		}
    	}
    
    function staticList($extra='') {
    	
    		# Si on a la variable extra, on affiche un lien vers la page d'accueil
    		if($extra != '') {
    			$title = htmlspecialchars($this->plxMotor->aConf['title'],ENT_QUOTES,PLX_CHARSET);
    			if($this->plxMotor->mode == 'home' AND $this->plxMotor->cible == '')
    				echo '<li id="static-home" class="active"><a href="./" title="'.$title.'">'.$extra.'</a></li>';
    			else
    				echo '<li id="static-home"><a href="./" title="'.$title.'">'.$extra.'</a></li>';
    		}
    		# On verifie qu'il y a des pages statiques
    		if($this->plxMotor->aStats) {
    			foreach($this->plxMotor->aStats as $k=>$v) {
    				if($v['readable'] == 1 AND $v['active'] == 1) { # La page existe bien et elle est active
    					$name = htmlspecialchars($v['name'],ENT_QUOTES,PLX_CHARSET);
    					$url = './?static'.intval($k).'/'.$v['url'];
    					if($this->plxMotor->mode == 'static' AND $this->plxMotor->cible == $k)
    						echo '<li id="static-'.intval($k).'" class="active"><a href="'.$url.'" title="'.$name.'">'.$name.'</a></li>';
    					else
    						echo '<li id="static-'.intval($k).'"><a href="'.$url.'" title="'.$name.'">'.$name.'</a></li>';
    				}
    			} # Fin du while
    		}
    	}
    
    Stéphane.

    Consultant PluXml

    Ancien responsable du projet (2010 à 2018)

  • Pardonnez mon absence! Merci beaucoup pour le code, je fais effectuer la modification de suite!

    Ne serait-il pas interessant d'intégrer dans l'admin un système pour permettre d'ajouter facilement une classe sur les boutons du menu ? Ou peut être une sorte de plug-in pour l'admin, car ce genre de fonction ne concernera forcément pas tout le monde...

    Bref, merci encore.
  • StéphaneStéphane Member, Former PluXml Project Manager
    Bonjour

    les balises id pour les menus seront en natif sur la 4.2. Tout est en prêt !

    Stéphane

    Consultant PluXml

    Ancien responsable du projet (2010 à 2018)

  • Superbe initiative pour les graphistes, merci !
Connectez-vous ou Inscrivez-vous pour répondre.