Attribut "active" au menu

Bonjour à tous !

Je viens vers vous afin de savoir si il est possible de rendre actif le lien "home" lorsque qu'aucun des liens du menu est actif ? En gros, imaginons que nous sommes sur un article d'une catégorie non-présente dans le menu ; peut-on alors rendre l'élément cat-home actif ?

En vous remerciant d'avance pour vos réponses.

Réponses

  • StéphaneStéphane Member, Former PluXml Project Manager
    Salut

    comment utilises-tu l'appel de la fonction catList.
    C'est pour savoir comment sont renseignés les paramètres de la fonction dans le cas de ton thème

    (même si je doute pouvoir donner une réponse positive à ta question)

    Consultant PluXml

    Ancien responsable du projet (2010 à 2018)

  • aruhunoaruhuno Member
    avril 2015 modifié
    Hum, suis pas sûr de comprendre, mais voilà mon menu :
    <div id="menu">
    	<ul>
    		<li class="maintitle"><a href="<?php $plxShow->urlRewrite() ?>">inios</a></li>
    		<?php
    			$plxShow->catList($plxShow->getLang('HOME'),'<li class="#cat_id"><a href="#cat_url" class="#cat_status" title="">#cat_name</a></li>');
    			$plxShow->staticList('','<li class="#static_id"><a href="#static_url" class="#static_status" title="">#static_name</a></li>');
    		?>
    	</ul>
    </div>
    
  • StéphaneStéphane Member, Former PluXml Project Manager
    Merci. en fait je voulais savoir si le 1er parametre de catList était renseigné car c'est lui qui conditionne cat-home
    dans ton cas oui
    $plxShow->catList($plxShow->getLang('HOME'), ...);
    

    Consultant PluXml

    Ancien responsable du projet (2010 à 2018)

  • StéphaneStéphane Member, Former PluXml Project Manager
    Salut

    Alors j'ai ça a te proposer en espérant que ça réponde à ta demande

    1) créer un dossier catList dans le dossier plugins de PluXml de manière à avoir /plugins/catList
    2) créer dans /plugins/catList un fichier infos.xml et copie dedans le code suivant
    <?xml version="1.0" encoding="UTF-8"?>
    <document>
    	<title><![CDATA[catList]]></title>
    	<author><![CDATA[Stéphane F.]]></author>
    	<version>1.0</version>
    	<date>21/04/2015</date>
    	<site>http://pluxopolis.net</site>
    	<description><![CDATA[Modification du comportement de la fonction plxShow::catList]]></description>
    	<requirements></requirements>
    </document>
    

    3) créer dans /plugins/catList un fichier catList.php et copie dedans le code suivant
    <?php
    class catList extends plxPlugin {
    
    	public function __construct($default_lang) {
    		parent::__construct($default_lang);
    		$this->addHook('plxShowLastCatList', 'plxShowLastCatList');
    	}
    
    	public function plxShowLastCatList() {
    		echo '<?php
    			$active=false;
    			if($this->catId()=="home" OR ($this->plxMotor->mode=="categorie" AND $this->plxMotor->aCats[$this->plxMotor->cible]["menu"]=="non")) {
    				$active = true;
    			}
    			if($extra != "") {
    				$name = str_replace("#cat_id","cat-home",$format);
    				$name = str_replace("#cat_url",$this->plxMotor->urlRewrite(),$name);
    				$name = str_replace("#cat_name",plxUtils::strCheck($extra),$name);
    				$name = str_replace("#cat_status",($active?"active":"noactive"), $name);
    				$name = str_replace("#art_nb","",$name);
    				echo $name;
    			}
    			$extra="";
    		?>';
    	}
    
    }
    ?>
    

    4) active le plugin catList qui devrait apparaître dans la liste de tes plugins inactifs

    ça devrait faire maintenant ce que tu veux
    (attention de bien sauvegarder les fichiers au format UTF-8 (sans bom) si tu utilises notepad++ par exemple)

    Consultant PluXml

    Ancien responsable du projet (2010 à 2018)

  • Bonjour,

    Je viens d'essayer et non, ça ne change rien ><
    J'espère m'être bien exprimer, mais dans le doute, imaginons que je suis sur cette page, je voudrait que "Accueil" soit en "class='active'".

    Voilou, merci de ton aide !
  • StéphaneStéphane Member, Former PluXml Project Manager
    C'est ça le problème je ne comprends pas bien dans quel cas tu veux que Accueil soit avec active

    Consultant PluXml

    Ancien responsable du projet (2010 à 2018)

  • Je présume que le désir est d'avoir la classe activée dans le CSS pour que le style lui donne sa "surbrillance" par exemple comme dans le thème démo http://chorale.shost.ca/index.php?article39/premium qui colore l'item de menu actif. Je ne pense pas que ça nécessite le plugin mentionné.

    Désolé si j'enfonce mon pied dans ma bouche. Je n'ai pas mes outils sous la main.
Connectez-vous ou Inscrivez-vous pour répondre.