Problème de liens pour les pages

Résolu
maxime_B Messages postés 788 Date d'inscription   Statut Membre Dernière intervention   -  
maxime_B Messages postés 788 Date d'inscription   Statut Membre Dernière intervention   -
bonjour,
je suis en train d'essayer de créer un site web,mais j'ai quelques problèmes avec les liens du menu(qui s'applique partout, car c'est un include).
Il y a tous mes fichiers et avec ça il y a des sous-dossiers. Le problème est que, comme le menu est le même partout, les liens ne sont pas bons. Comment je pourrais arranger ça?
Merci pour votre (future) aide...

10 réponses

maxime_B Messages postés 788 Date d'inscription   Statut Membre Dernière intervention   55
 
...
0
crabs Messages postés 908 Date d'inscription   Statut Membre Dernière intervention   507
 
Salut,

Si tu fais du PHP :
Un principe que j'ai mis en place sur mon site, avec plusieurs niveau de dossier
et le meme haut de page, bas de page et menu quelque soit le dossier.
Initialement j'avais un fichier menu qui ne contenait que du html. Je l'ai écrit
en php en utilsant la syntaxe heredoc et j'ai préfixé tout mes liens de menu
avec une variable RACINE. Chaque lien est ainsi ecrit en relative depuis cette
racine.
Chaque script defini la possition de la racine du site avant d'inclure le menu.
Cette variable sert par ailleurs à retrouver la loclisation du fichier menu.
Allez un petit exemple : le fichier menu.php qui est dans le dossier LIB à la
racine du site (menu horizontal):
<?php
echo <<<MENU
  <div class="menu_principal">
    <a href="$RACINE/index.php">Accueil</a>
    <a href="$RACINE/TEA/">Truc &amp; Astuces</a>
    <a href="$RACINE/FORUM">Forum</a>
  </div>
MENU;

Dans le fichier index.php à la racine du site :
$RACINE="." ;
// au moment de l'affichage du MENU
include( $RACINE."/LIB/menu.php" ) ;

Et par exemple dans le dossier TEA/LINUX :
$RACINE = "../.." ;
// au moment de l'affichage du MENU
include( $RACINE."/LIB/menu.php" ) ;

L'avantage de la variable $RACINE, c'est qu'elle peut aussi servir lors
de l'écriture des url des images ou tout autre ressources nécessitant une
url relative.

Tu peux aussi utiliser les liens absolu dans les urls de tes menus, mais
c'est la galère pour passer du site en test au site publié : il faut modifier le
fichier menu.php.

Un lien pour le heredoc :
http://www.manuelphp.com/php/language.types.string.syntax.heredoc.php
A+, crabs
0
maxime_B Messages postés 788 Date d'inscription   Statut Membre Dernière intervention   55
 
merci je vais y jeter un coup d'oeil... ;)
0
maxime_B Messages postés 788 Date d'inscription   Statut Membre Dernière intervention   55
 
euh je vois ce que tu vx dire mais je n'y arrive pas....:(
pourtant j'ai fait comme tu as dit, enfin je crois...
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
maxime_B Messages postés 788 Date d'inscription   Statut Membre Dernière intervention   55
 
je vais encore essayer ce soir...
0
maxime_B Messages postés 788 Date d'inscription   Statut Membre Dernière intervention   55
 
c peut-être une question idiote..mais comment tu connais:
$RACINE = "../.." ;

si tu savais me dire qund il faut mettre "." ../..", etc et à quoi ça revient stp
par exemple pr un dossier "admin" ou se trouverait la page "administration.php"

.....
0
crabs Messages postés 908 Date d'inscription   Statut Membre Dernière intervention   507
 
Salut,
La valeur de racine est déterminée par le position du script par rapport au
dossier racine de ton site, le nombre de dossier "à remonter" pour arriver
à la racine.
www.toto.com/index.php
       +------- TOTO (dossier)
                         +----- toto.php
                         +----- titi.php
                         +IMAGES (dossier)
                                    +----- photo.php

Pour le fichier index.php : RACINE='.' => 0 dossier à remonter
pour toto.php et titi.php : RACINE= '..' => 1 dossier à remonter
pour photo.php : RACINE="../.." => 2 dossier à remonter
Donc l'écriture des tes liens (forme relative) dans ton menu.php deviendrait :
<a href="$RACINE/index.php">Accueil</a>
<a href="$RACINE/TOTO/toto.php">Toto</a>
<a href="$RACINE/TOTO/titi.php">Titi</a>
<a href="$RACINE/TOTO/IMAGES/photo.php">Photo</a>

Et cela quelque soit le dossier où est situé menu, puisque tu fais un
include.

A+, crabs
0
maxime_B Messages postés 788 Date d'inscription   Statut Membre Dernière intervention   55
 
ok merci, je crois avoir comprit..mais j'ai une dernière petite question...
Quand on fait un include avec une page genre peid de page:
<div id="pied_de_page">
<p>Copyright crée X 2006, tous droits réservés</p>
</div>

</body>

</html>

comment je dois insérer la $RACINE, car ici, il n'y a pas vraiment de lien...??
j'ai réussi avec la bannière, mais là dedans, il y avait un lien (celui qui met le css)..
0
crabs Messages postés 908 Date d'inscription   Statut Membre Dernière intervention   507
 
Salut,
Imaginons que tu ais mis tes entêtes , tes pieds de page et ton menu dans
le dossier COMMUN à la racine de ton site.
Tous les scripts définissent $RACINE avant l'inclusion du menu avec la
fonction php include.
include( $RACINE.'/COMMUN/menu.php' );

Même idée pour l'inclusion du pied, tu ajoutes l'intruction suivante là où tu
veux que ton pied de page s'affiche :
include( $RACINE.'/COMMUN/pied.html' );

A+, crabs
0
maxime_B Messages postés 788 Date d'inscription   Statut Membre Dernière intervention   55
 
ah ok maintenant j'aicomprit
à la prochaine
+
;)
0