Problème de liens pour les pages

Résolu/Fermé
maxime_B Messages postés 788 Date d'inscription mardi 14 juin 2005 Statut Membre Dernière intervention 15 juin 2010 - 17 juin 2006 à 21:03
maxime_B Messages postés 788 Date d'inscription mardi 14 juin 2005 Statut Membre Dernière intervention 15 juin 2010 - 22 juin 2006 à 18:50
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 mardi 14 juin 2005 Statut Membre Dernière intervention 15 juin 2010 55
17 juin 2006 à 23:47
...
0
crabs Messages postés 908 Date d'inscription lundi 18 avril 2005 Statut Membre Dernière intervention 3 août 2008 507
17 juin 2006 à 23:54
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 mardi 14 juin 2005 Statut Membre Dernière intervention 15 juin 2010 55
18 juin 2006 à 00:01
merci je vais y jeter un coup d'oeil... ;)
0
maxime_B Messages postés 788 Date d'inscription mardi 14 juin 2005 Statut Membre Dernière intervention 15 juin 2010 55
20 juin 2006 à 13:29
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 mardi 14 juin 2005 Statut Membre Dernière intervention 15 juin 2010 55
20 juin 2006 à 21:18
je vais encore essayer ce soir...
0
maxime_B Messages postés 788 Date d'inscription mardi 14 juin 2005 Statut Membre Dernière intervention 15 juin 2010 55
20 juin 2006 à 21:34
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 lundi 18 avril 2005 Statut Membre Dernière intervention 3 août 2008 507
20 juin 2006 à 22:23
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 mardi 14 juin 2005 Statut Membre Dernière intervention 15 juin 2010 55
21 juin 2006 à 13:34
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 lundi 18 avril 2005 Statut Membre Dernière intervention 3 août 2008 507
21 juin 2006 à 16:59
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 mardi 14 juin 2005 Statut Membre Dernière intervention 15 juin 2010 55
22 juin 2006 à 18:50
ah ok maintenant j'aicomprit
à la prochaine
+
;)
0