Partage
  • Partager sur Facebook
  • Partager sur Twitter

Même design de menu mais liens différents

Sujet résolu
    16 août 2018 à 22:35:28

    Bonsoir à toutes et à tous,

    Je suis en train de créer un site web. J'ai une idée précise de mon site et j'aurais aimé avoir un menu commun à plusieurs pages ( même design, mêmes rubriques...) mais dont les rubriques ont des liens différents pour les pages qui ont ce menu. 

    Chaque page aurait le même menu d'un point de vue "physique/visuel", MAIS lorsque j'appuie sur une rubrique du menu, j'arrive sur une autre page en lien avec la page sur laquelle j'étais. 

    Un exemple ( pas de rapport avec mon site, c'est juste pour illustrer ce que je dis ) : 

    Imaginons que je fasse un site sur les animaux. Pour chaque animal, il y a un menu avec comme rubriques : Description, Régime alimentaire, Photos, Localisation.

    Chaque animal aura ce même menu avec ces mêmes rubriques. Si je m'intéresse au Chien, il faut que lorsque je clique sur Photos , j'arrive sur la page "Photos De chien", mais si je regarde le Lion, si j'appuie sur Photos, j'arrive sur une page avec des photos de Lions. 

    ( J'aurais pu faire le même exemple avec des fruits ou des personnes, c'est juste pour montrer )

    Le même menu est commun à tous les animaux mais les rubriques pour chaque animal mènent à des pages différentes.

    Je sais que je pourrais faire des copier/coller de mon menu et juste modifier les liens pour chaque animal. Mais si je décide de changer le design du menu, je n'ai pas envie de devoir le faire pour chaque animal/fruits/personnes.

    Etant nouveau dans le monde des sites web, je pense que le PHP pourrait m'aider, mais je ne vois pas du tout comment.

    Je pensais à mettre un fichier CSS commun pour la mise en page et un fichier HTML commun pour le contenu mais qui contient du PHP pour insérer le bon lien à chaque page. Je ne sais pas si c'est possible...

    En espérant une réponse de votre part. 

    -
    Edité par vorgime 16 août 2018 à 22:47:49

    • Partager sur Facebook
    • Partager sur Twitter
      16 août 2018 à 22:55:05

      Salut !

      Merci pour ta réponse rapide ! Mais je ne m'y connais très peu en PHP à vrai dire,vu que je débute... Je sais comment inclure une page dans une autre avec <?php include("...") ?> c'est tout. J'ai lu le livre "Réaliser votre site web avec HTML5 et CSS3" qui parle un peu de PHP mais c'est tout. Tu saurais me montrer un exemple?

      $_GET ça passe par l'url si je me souviens bien, ça ne pose pas de problème de sécurité? Si l'utilisateur modifie l'url?

      Encore merci !  

      • Partager sur Facebook
      • Partager sur Twitter
        16 août 2018 à 23:03:37

        Je te conseil de lire le cour sur le PHP je suis en plein dedans c'est vraiment intéressant !

        C'est assez complexe à expliquer et sur le cour c'est très bien fait ! 

        Mais tu peux sécurisé les $_GET sans problème.

        • Partager sur Facebook
        • Partager sur Twitter
          16 août 2018 à 23:29:13

          Salut,

          effectivement le mieux reste les variables $_GET(). En gros, comme dans ton exemple, si tu es sur une page qui concerne les chiens, l’url pourrait être 

          www.nomdusite.fr/index.php?animal=chien

          Dans ce cas là tu récupères la valeur de « animal » grâce à la variable $_GET[‘animal’].

          Puis dans tes liens, tu as par exemple <a href=‘photos.php?animal=$_GET[‘animal’]’>Photos</a>

          Mais après il faudrait que tu gères tout ça grâce à une BDD, je pense que ça serait beaucoup plus simple, car suite à ça sur la page Photos tu devras récupérer tous les éléments qui correspondent à l’animal demandé.

          J’espère avoir été assez clair, et comme dit ça n’est qu’un exemple, je n’ai pas respecté la bonne façon de faire pour mettre du PHP dans du HTML et rien est sécurisé là, tu devrais d’abord vérifier ce que contient  $_GET(). 

          PS: je suis sur téléphone donc pas de double quote possible :/

          • Partager sur Facebook
          • Partager sur Twitter
            17 août 2018 à 8:01:01

            D'accord merci pour ton aide ! 

            Si je comprends bien, c'est la variable qui va se placer dans l'url et ainsi elle va venir compléter le lien pour mener à la bonne page? C'est bien ça?Par contre, comment on fait pour que ce soit l'utilisateur qui mette la bonne variable?

            (Je pensais pouvoir me passer du php pour construire mon site, mais je pense bien que je vais devoir l'apprendre hahaha)

            Deuxième question : tu parles de base de données, elles me serviraient à quoi? Désolé de ne pas tout comprendre dès le début.

            Troisième question : tu viens de me faire penser à un truc là !

            Imaginons que j'ai un Menu Principal en plus de ce menu. Le Menu principal aurait comme rubrique : Accueil, Animal Domestique, Animal de la savane, Animal exotique. Par exemple l'utilisateur clique sur la rubrique de son choix ( animal Domestique ) et puis choisit son animal ( le chien par exemple ) et il arrive sur la page avec l'autre menu (description, régime alimentaire, photos, localisation ) adapté pour le chien.  

            Je veux que toutes mes pages comportent le menu principal ( plus facile pour passer d'un animal à l'autre ou pour revenir à l'accueil ). Je pensais avoir résolu le problème avec un " php include " mais maintenant, le soucis ce sont les liens relatifs qui changent pour chaque page. Pour revenir à l'accueil, le lien de la rubrique Animal Domestique est différent du lien quand je me trouve sur la page des photos de chiens.  

            A moins de ne tout mettre dans le même dossier ( ce qui n'est pas très joli si on a des centaines d'animaux, et ce n'est pas organisé ), je ne vois pas comment faire? Des solutions?


            • Partager sur Facebook
            • Partager sur Twitter
              17 août 2018 à 11:20:37

              Oui exactement, la variable qui concerne l'animal se place dans l'URL. L'utilisateur n'a rien à faire pour mettre la variable dans l'URL. Je te donne un exemple concret en espérant pouvoir t'aider à bien comprendre comment faire.

              La page d'accueil de ton site index.php comporte une liste de tous les animaux disponibles, s'il clique sur un élément de cette liste, le nom de l'animal est passé dans l'URL. Ce lien serait comme ça:

              <a href="animaux.php?animal=chien">Chien</a>

              En cliquant dessus tu te retrouves sur la page indiquée par le href. Et là, dans un cas comme ça, le mieux serait une base de données car une fois le nom de l'animal récupéré, tu rechercherai dans la BDD tous les éléments qui correspondent à cet animal. Je peux me tromper mais pour gérer quelque chose comme tu me dis, je ne vois pas vraiment d'autre solution. 

              Je te conseille donc de lire le cours concernant le PHP sur OpenClassrooms, tu y apprendras tout ce dont tu as besoin. :) 

              Pour ton dernier problème, encore une fois j'espère ne pas me tromper, mais dans ton include, tu peux mettre la constante __DIR__ qui te ramène à la racine de ton dossier. 

              En espérant t'avoir aiguillé :)

              • Partager sur Facebook
              • Partager sur Twitter
                17 août 2018 à 15:19:12

                Merci beaucoup !

                Par contre, pour la racine de mon dossier, c'est juste le dossier "parent"? Ou ça peut être un dossier plus haut dans l'arborescence? Car si c'est juste dossier au dessus, il faudrait plusieurs  _ _ DIR _ _ pour certaines pages et un seul pour d'autres non? 

                • Partager sur Facebook
                • Partager sur Twitter
                  17 août 2018 à 18:10:09

                  __DIR__ te ramènera vers le dossier de base, là où te dossiers sont
                  • Partager sur Facebook
                  • Partager sur Twitter
                    18 août 2018 à 6:35:17

                    D'accord merci.

                    J'ai commencé le cours sur le PHP pour éviter de poser des questions débiles sur le sujet. Pour l'instant ça ressemble pas mal au C. 

                    Si j'ai des questions par la suite, je reviendrais ici.

                    • Partager sur Facebook
                    • Partager sur Twitter
                      19 août 2018 à 16:03:15

                      Re salut ! 

                      Voilà, j'ai lu le livre sur le PHP ( la fin était plus compliquée que le début ). 

                       J'ai 3 points à éclaircir avec vous si vous voulez bien. Après ça, je pense que je serais en mesure de terminer mon site web.

                      1er POINT :

                      Comme vous me l'aviez conseillé, je pense bien que le $_GET() est la meilleure option pour moi.

                      Petit récapitulatif pour voir si je suis sur le bon chemin. Dites moi si je me trompe !

                      Pour reprendre mon exemple avec les animaux, j'aurai donc 2 paramètres : le premier qui décrit la rubrique à laquelle appartient l'animal ( Animal Domestique, Animal de la Savane... ) et le deuxième, le nom de l'animal ( Chien, Lion... ). Au préalable, je crée la page ...AnimalDomestique/Chien par exemple. Je récupère donc ces 2 paramètres sur cette page et je les utilises pour les placer dans les liens du menu comportant Description, Régime Alimentaire, Photos, Localisation. Si je cliques sur Photos j'arriverais sur la page avec des photos de Chien.

                      Ainsi, j'ai le même menu pour tous les animaux de toutes les catégories mais avec les liens différents comme je voulais. C'est bien ça?

                      2ème POINT :

                      Concernant mon deuxième problème (qui était l'utilisation d'un "include" pour avoir le menu principal sur toutes les pages mais dont les liens changent) : Tu m'as conseillé d'utiliser _ _DIR_ _ , j'ai fait des recherches dessus mais la "racine" me pose problème haha. Je ne sais pas à quoi elle correspond dans mon cas. Mon site est sur une carte SD intitulée "NO NAME" avec d'autres documents dessus qui n'ont rien à voir avec le site . Le chemin c'est donc NO NAME/ PHP/www/NomDeMonSite/ ("dossier contenant index.php ,  MenuPrincipal.php , Footer.php , Header.php....." )

                      Ma racine ce serait  NO NAME? ou plutôt www? NomDeMonSite? ou le dernier dossier?    (Désolé mais je ne connais pas bien la terminologie)

                      J'ai aussi vu qu'on pouvait écrire un lien directement par rapport à la racine ( dès que je la connaitrai ^^ ) en utilisant un " / ". Cela se passe comment?

                      3ème POINT :

                      Pour l'utilisation d'une BDD, tu pensais l'utiliser comment? Par exemple, dans Description. Si j'avais Taille, Poids, Couleur.... tu automatiserais le remplissage de ces critères avec une table dans la BBD? On sait mettre des images dans une BBD?

                      Voilà, ce sera tout pour ce message. Merci pour votre aide !!!   

                      • Partager sur Facebook
                      • Partager sur Twitter
                        20 août 2018 à 20:27:15

                        Je fais un petit UP en espérant avoir une réponse ;) 

                        Bonne soirée à vous :) 

                        • Partager sur Facebook
                        • Partager sur Twitter
                          20 août 2018 à 23:08:21

                          Pour ce qui est du $_GET oui c'est bien ça, du coup tu pourras récupérer tout ça dynamiquement et avoir des liens différents ;)

                          Ce que je te conseille pour __DIR__ c'est de faire un 

                          var_dump(__DIR__);

                          pour voir ce que ça comporte, de ce fait tu pourras adapter à tes liens et tes include par exemple.

                          L'utilisation de la BDD te permettrait d'y mettre les infos concernant les animaux dans les tables, et ainsi de les récupérer dynamiquement sur les pages concernées grâce à un SELECT.


                          Et oui, tu peux, enfin pas directement dans la BDD, tu y stockes uniquement le nom de l'image sous forme de chaîne de caractère, et tes images sont stockées dans un dossier img par exemple. Je te mets une video en lien pour que tu comprennes le principe: https://www.youtube.com/watch?v=lDZLZAdr1is

                          En espérant encore une fois t'avoir aidé :) 

                          • Partager sur Facebook
                          • Partager sur Twitter
                            21 août 2018 à 17:00:56

                            Merci beaucoup!!! 

                            Je crois que je suis bon pour terminer mon site!!! Merci à toi ;) 

                            • Partager sur Facebook
                            • Partager sur Twitter
                              21 août 2018 à 21:41:23

                              Encore une fois, je t’en prie, ça a été un plaisir :)
                              • Partager sur Facebook
                              • Partager sur Twitter

                              Même design de menu mais liens différents

                              × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                              × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                              • Editeur
                              • Markdown