Partage
  • Partager sur Facebook
  • Partager sur Twitter

Bug de liens hypertexte et d’espacement :'(

Sujet résolu
    7 février 2020 à 14:48:23

    x

    AbcAbc6 a écrit:

    En fait il faut faire une réel condition en PHP sur ton menu, le principe est d’afficher une class spécifique que si on est sur la page courante.

    Je pense qu’il existe plusieurs possibilité pour ce faire (Mehddii corrige-moi si tu as une solution plus simple.)

    Fichier menu.php

    <?php
    // récupération du nom du fichier courant
    $file = basename($_SERVER['PHP_SELF']);
    $pos = strrpos($file, '.');
    $pageCourante =  substr($file, 0, $pos);
    ?>
    <ul class="navig">
             <li class="navig-accueil <?php echo ($pageCourante === 'index')? 'current' : ''  ?>"><a href="index.php">Accueil</a></li>
             <li class="navig-equipe <?php echo ($pageCourante === 'equipe')? 'current' : ''  ?>"><a href="equipe.php"> équipe</a></li>
             <li class="navig-produit <?php echo ($pageCourante === 'produit')? 'current' : ''  ?>"><a href="produit.php"> Produit</a></li>
             <li class="navig-parcour <?php echo ($pageCourante === 'parcour')? 'current' : ''  ?>"><a href="parcour.php"> Parcours</a></li>
    </ul>


    Dans ta CSS ajoute

        .current a:hover {
            background: rgba(0,115,150,0.75);
        }

    Bonjour,

    Pour le code PHP que tu m’as donné, j’ai un peu honte car je ne le comprends pas alors que j’ai suivi le cours PHP (la partie PHP car pour la partie sur les bases de données, (MYSQL) je n’ai pas pu à cause de PHP MyAdmin qui ne fonctionnait pas) donc si tu pourrais me l’expliquer ?



    • Partager sur Facebook
    • Partager sur Twitter
      7 février 2020 à 15:33:27

      Bonjour,

      Ce n'est pas bien compliquer, si tu as les bases comme tu dis

      Tout d'abord on va récupérer le nom du fichier :

      Ligne 1 : Il a récupérer le nom du fichier en cours d’exécution : index.php par exemple (il le met dans la variable $file)

      Ligne 2 / 3 : Il enlève le .php à la fin pour laisser que index grâce aux divers fonctions de php (Je t'invite à aller lire la doc de chacun d'entre elle et de faire tes propres test de ton coté)

      Lignes suivantes : Toujours très simple : Dans les <li> il met une class nommée navig-accueil suivit d'une condition php

      Qu'est ce que cette condition ? Ca s'appelle du ternaire, c'est un raccourci pour éviter de faire un if/else

      Donc il dit : echo current (la class current pour l'utiliser au niveau du css) si $pageCourante (Que l'on a récupérer et donc qui est index) est égale à 'index' sinon (les deux points : ) tu n'affiche rien (la chaîne vide '')

       Ce qui fait que si $pageCourante est égale à index ce qui est le cas ici, alors il rajouter un current dans la class et donc elle sera utilisé par le css automatiquement, sinon bah il mettra une chaîne vide à la place

      Je t'invite à check la doc de $_SERVER ici et voir les différentes options possibles

      -------------------------------------------------- Autre solution (Utiliser REQUEST_URI)

      Ici ce que je vais fait, c'est récupérer l'url et par rapport à elle, je mettrai la class current ou pas dépendant de l'url

      Tout d'abord j'utilise la fonction $_SERVER[] avec l'option REQUEST_URI

      $monUrl = $_SERVER['REQUEST_URI'];

      Donc si ton url est : http://monsite.com/index.php

      Alors $monUrl sera égale à index.php ou /index.php je sais plus, je t'invite à faire ton test de ton coté ..

      Puis au niveau des li je vais mettre les conditions, j'utiliserai une ternaire car c'est plus pratique et je te conseille de t'y habituer dès maintenant :

      <ul class="navig">
               <li class="navig-accueil <?php echo ($monUrl === 'index.php')? 'current' : ''  ?>"><a href="index.php">Accueil</a></li>
               <li class="navig-equipe <?php echo ($monUrl === 'equipe.php')? 'current' : ''  ?>"><a href="equipe.php"> équipe</a></li>
      
      <!-- etc etc .. -->

      voilà, donc le plus important c'est de faire te test de ton coté pour mieux comprendre le fonctionnement de chaque méthode et ainsi choisir celle qui te convient

      -
      Edité par Mehddii 7 février 2020 à 15:42:52

      • Partager sur Facebook
      • Partager sur Twitter

      Postez votre code et vos msg d'erreurs - "ça marche pas" n'est pas un message d'erreur ...

        7 février 2020 à 17:18:54

        Merci, merci, merci, je vais fermée le sujet car j'ai finis, (oui enfin), je remercie du temps que vous avez passez a m'aider, tout le site fonctionne.

        Merci a vous deux de m'avoir aidée :D.

        Je ne vais pas utiliser la structure MVC je pense.

        Si vous voulez voir le site finis (même si je pense qu'un site n'est jamais finis)

        Merci !

        • Partager sur Facebook
        • Partager sur Twitter

        Bug de liens hypertexte et d’espacement :'(

        × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
        • Editeur
        • Markdown