menus avec pages statiques.

chrisschriss Member
avril 2014 modifié dans Entraide
Bonjour,
peut-on avoir un menu standard (avec pages statiques et pages catégories) mais aussi un deuxième menu avec seulement la page 'home' et la page statique 'contact' ?
Avec la page 'home' pas de problème, j'ai exclu les pages catégories indésirables(pour ce menu), mais pour la page contact, créée avec le plugin PlxMyContact... je n'y arrive pas, à moins de l'écrire en dure.
Plus clairement peut-on exclure ou inclure des pages statiques sans passer par la page admin.?
J'espère que mon explication est clair :)

Merci à vous !!

1396554806.jpg

Réponses

  • Bonjour,

    je connait cette page.... Mais je n,ai pas trouvé la solution... 8.(
  • avec la fonction staticList tu ne peux pas exclure/inclure des pages comme la fonction catList.

    tu peux trouver quelque chose dans ce code : http://www.samare.net/article23/menu-listant-les-statics-classes-par-groupe
  • chrisschriss Member
    avril 2014 modifié
    Cela me parait bien compliqué pour juste afficher `home' et 'Contact' comme sur l'image de mon 1er message.

    Mais je continu à chercher.
  • cpalocpalo Member
    Bonjour

    Et pourquoi tu ne veux pas écrire ce menu en "dur" puisqu'il n'y a que trois pages bien précises?
  • ... surtout que les pages home/contact n'ont pas des url si dynamique que ça ...
  • Bon matin,

    @cpalo... il est écrit en dur actuellement.... mais je sèche pour la class="active" ou "noactive". :(
  • Voilà j'ai trouvé une solution à mon problème,
    1. Sur chaque page PHP, déclarer une variable comme ceci:

    <?php $nav_en_cours = 'rubrique1'; ?>

    2. Dans le fichier PHP qui contient votre menu, le code du menu devra ressembler à ceci:

    <ul id="navigation">
    <li<?php if ($nav_en_cours == 'rubrique1') {echo ' id="en-cours"';} ?>><a href="/rub1/">Rubrique 1</a></li>
    <li<?php if ($nav_en_cours == 'rubrique2') {echo ' id="en-cours"';} ?>><a href="/rub2/">Rubrique 2</a></li>
    </ul>

    Rentrer dans les détails demanderait un tutoriel complet. Retenez juste que réussir ce genre de chose vous demandera une connaissance correcte des bases les plus élémentaires de PHP, et que copier-coller ce dernier exemple ne vous servira à rien si vous n'en avez pas compris le principe à la première ou deuxième lecture.

    solution trouvé sur Alsacréation:
    http://www.alsacreations.com/astuce/lire/28-styles-lien-page-en-cours.html
  • [== PHP ==]
    if($plxShow->mode()=="home") ...
    if($plxShow->mode()=="contact") ...
    
  • Super, encore plus simple et j'ai exactement ce que je veux !!

    Merci!!
  • cpalocpalo Member
    avril 2014 modifié
    Bonjour,

    Dans mon menu il n'y avait que le changement de couleur au niveau du survol, mais pas au niveau de l'état active.
    La solution trouvée par danielsan tu l'appliques comment concretement ?

    ligne par ligne pour chaque élément du menu du genre :
    [== PHP ==]
    if($plxShow->mode()=="catégorie1")
               $plxShow->catList('','<li id="menu_#cat_id" class="active">',$cat); 
    

    Le menu que j'utilise:
    [== PHP ==]
     <?php
                    $menu = array('003', '004'); 
                    foreach($menu as $cat) {
                        $plxShow->catList('','<li id="menu_#cat_id" class="#cat_status">',$cat);
                        echo "\n";
                        $plxShow->catList('','<a href="#cat_url" title="#cat_name">#cat_name</a>',$cat); 
                        echo "\n";                
                            echo "<ul>\n";
                                $nb_item = 2; 
                                $plxShow->lastArtList('<li class="#art_status"><a href="#art_url" title="#art_title">#art_title</a></li>',$nb_item, $cat);
                                $nb_ArtCat = $plxShow->plxMotor->nbArticles('(?:[0-9]|home|,)*(?:'.$cat.')(?:[0-9]|home|,)*', '[0-9]{3}', '', 'before'); 
                                if($nb_item<$nb_ArtCat){ // si le nombre d'articles de la catégorie est supérieur à $nb_item, on affiche un lien "Voir tous les articles"
                                $plxShow->catList('','<li id="menu_#cat_id"><a href="#cat_url" title="Voir tous les articles de la cat&eacute;gorie #cat_name">Voir tous les articles</a></li>',$cat);
                                }else{}
                        echo "\n";
                            echo "</ul>\n";                    
                        echo "</li>\n";
                    }
                    ?>       
                
                    <li><a href="<?php $plxShow->urlRewrite('?static1/about') ?>" title="A propos">A propos</a></li>
                    <li ><a href="<?php $plxShow->urlRewrite('?contact') ?>" title="Me contacter">Me contacter</a></li>
    

    Cordialement
  • Salut,

    lorsque quelque chose ne fonctionne pas vis à vis d'une fonction de plxShow,
    veuillez s'il vous plait consulter le wiki, toutes les réponses y sont !
    Je l'utilise très régulièrement.
    En allant sur la page de la fonction mode,
    tu peux voir que cette fonction ne peut retourner qu'un certains nombres de paramètres définis et limités.

    Tu peux voir un exemple d'utilisation du mode et id sur l'astuce "Attribuez automatiquement un identifiant et une class au body"

    Cordialement,
    @+
  • cpalocpalo Member
    avril 2014 modifié
    Bonsoir

    C'est ce que je commence à faire de plus en plus...et ce qui me permet de temps à autre à trouver une astuce comme par exemple:
    http://forum.pluxml.org/viewtopic.php?id=3099 #7
    et d'essayer de comprendre tes codes qui m'ont bien aidé.

    Mais là justement je ne voie pas trop le :
    [== Indéfini ==]
    if($plxShow->mode()=="contact") ...
    
    par rapport à ce qui est écrit dans le wiki,
    et alors que dans ton exemple (cf le lien) je vois bien l'utilisation.

    Bon we
  • il y a les modes de PluXml et ceux créés éventuellement par les plugins, dont plxMyContact qui crée le mode "contact"
  • cpalocpalo Member
    Bonjour

    Merci pour l'info car j'avais zappé que les plugins pouvaient créer des modes.

    Bon dimanche
  • Vous pouvez regarder également la source du code de pluxml. C'est très très instructif et suffisamment commenté pour comprendre...
Connectez-vous ou Inscrivez-vous pour répondre.