système d'include

Eléphant du PHP | 206 Messages

20 févr. 2007, 16:57

Hello,

Cette fois ci, c'est encore une méthode que je cherche.

Actuellement mes fichiers à inclure sont dans un dossier includes et sur chaque page, je met en haut
<?php 
include("../includes/haut.php");
include("../includes/en_tete.php");
include("../includes/barre_menu.php");
include("../includes/menu.php");
 ?>
 
..

Surtout que ceux sont surtout des parties de mon design qui sont inclus. Alors quand les pages affichés sont dans des dossiers comme membres et veulent inclure ses pages (ci-dessus) il faut qu'il y est les images dnas le dossier.

Enfin bref un peu le bazare.

Alors j'aimerais connaitre la technique que vous utilisez :)

Merci d'avance

Eléphanteau du PHP | 15 Messages

20 févr. 2007, 17:14

Si j'ai bien compris tu cherches à remplacer tes includes qui correspondent à l'aspect graphique de ton site?

Le but étant je suppose de différencier la mise en page de l'aspect dynamique. Si c'est le cas les moteurs de template sont faits pour toi.

J'utilise pour ma part le moteur de PhpBB, dérivé de phplib dont l'utilisation est relativemetn aisée. Tu trouveras d'autres outils tels que smarty qui nécessite pour ce dernier l'apprentissage d'un langage qui lui est propre.

Pour plus d'informations je t'invite à consulter :
http://phpcodeur.net/articles/php/templates

A défaut si ce n'est pas ce que tu cherches, pourrais tu reformuler la question je te prie? J'avoue que j'ai du mal à comprendre ce que tu recherches.
L'égalité entre les hommes est une règle qui ne compte que des exceptions

Eléphant du PHP | 136 Messages

20 févr. 2007, 17:20

je pense qu'il cherche à faire une entete commune à toutes ses pages à l'aide des includes
ces includes se trouvent alors hors du chemin d'origine et les graphiques associés doivent être présents dans le même dossierque la page appelée.
solution: mettre les éléments graphiques dans chaque dossier.
ou si le niveau de hiérarchie des dossiers est constant par rapport à la racine il est possible de créer un dossier ../graphiques/mes éléments et que les includes fassent appel à ce dossier.
L'informatique apporte des solutions à des problèmes qui ne se posaient pas avant qu'elle existe.

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

20 févr. 2007, 17:23

Chuis pas très familiarisé avec les templates, du coup personnellement je me contente d'utiliser des chemins absolus depuis la racine du site, ou bien je défini une variable qui m'indique le niveau d'arbo à parcourir pour retrouver mes fichiers :)
<?php  
$path = '../';
include($path . "includes/haut.php"); 
include($path . "includes/en_tete.php"); 
include($path . "includes/barre_menu.php"); 
include($path . "includes/menu.php"); 

// Et dans les fichiers inclus 
echo '<img src="'.$path . ".'images/img.jpg" ... />';

?>
Mais comme ca m'énerve assez vite d'oublier de changer le $path à chaque fois que je plonge dans un sous dossier, j'utilise quand même plus souvent le chemin absolu ;)
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Eléphant du PHP | 206 Messages

20 févr. 2007, 17:46

Comme la plutot bien résumé Dominic, les includes que j'ai mis en exemple, sont constantes (elle sons sur toutes les pages.


| => MEMBRES
RAcine | => ADMINS
- index
- inscription
- includes 1
- include 2

- IMAGES
- Design.css


MEMBRES et ADMINS sont des dossiers comportant chacuns des pages qui appeleront tous des includes (de même pour les pages qui sont a la racine)
Actuellement mes includes se trouvent aussi à la racine. (include 1 & include 2).

problème Quand j'appelle mes includes d'une page qui est à la racine aucun problème par contre si je les appelle du page appartenant à un des 2 dossiers, il faut que Design.css et le dossier IMAGES soit lui aussi dans le dossier (ADMIN ou MEMBRES).

Vous me direz une copie du dossier IMAGES et c'est ok.
Mais je oulais savoir comment gérez vous vos includes afin que j'utilise la "bonne méthode (du moins la plus adapté) avant que mon site ne prenne de l'ampleur). Car je me vois mal changer l'en-tete de 200pages d'ici quelques mois.

Merci d'avance, et si je suis pas clair n'hésitez pas je m'expliquerais cette fois avec 2 exemples et codes concrets.

Eléphant du PHP | 136 Messages

20 févr. 2007, 18:41

la solution de Ryle est la bonne
tu mets tes images dans le dossier IMAGES
et dans chacun des fichiers appartenant au dossier includes tu utilises
le chemin absolu et non relatif
$path="http://www.monsite.com/IMAGES/";
et comme tu fais comme indiqué par Ryle
L'informatique apporte des solutions à des problèmes qui ne se posaient pas avant qu'elle existe.