Précédent   Forum des professionnels en informatique > PHP > Bibliothèques et frameworks > Templates > Smarty
Smarty Forum d'entraide sur le moteur de templates Smarty. Avant de poster -> FAQ Smarty et Cours Smarty
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 10/10/2006, 17h30   #1
Membre du Club
 
Avatar de Jarodd
 
Inscription : août 2005
Messages : 258
Détails du profil
Informations forums :
Inscription : août 2005
Messages : 258
Points : 63
Points : 63
Par défaut Contrôler la hiérarchie des fichiers

Bonjour à tous,

Je poste dans PHP mais je ne sais pas si je fais bien...

Voilà le problème : je suis en train de me familiariser avec Smarty. Tout fonctionne bien, sauf lorsqu'il y a un niveau dans l'arborescence de mon site. Petit schéma pour essayer de me faire bien comprendre :

|_ racine du site
|_ index.php
|_ blabla.php
|_ cache
|_ config
____|__ setup.php (*)
|_ libs (idem)
|_ templates (idem)
____|__ index.tpl
____|__ blabla.tpl
|_ templates_c (idem)
|_ mon_dossier
____|__ mon_fichier.php


* setup.php charge la librairie Smarty, définit les dossiers Smarty, et définit les classes

Imaginons que setup.php soit inclus dans index.php (require('./configs/setup.php');). Tout fonctionne. Maintenant je fais pareil avec mon_fichier.php : require('./../configs/setup.php'); Là, pas moyen d'inclure setup.php.

N'importe quel fichier présent dans un répertoire (qui n'est pas à la racine donc), ne peut pas inclure les fichiers de configuration. J'ai tout essayé, laisser le même chemin relatif, mettre un chemin absolu, jouer avec les ../ pour changer de répertoire,... Rien n'y fait. Je me sens un peu c** d'être bloqué depuis plusieurs jours sur une histoire d'arborescence. J'ai bien sûr la solution de mettre tous mes fichiers php à la racine, mais je préfère que tout soit bien classé sinon ca devient rapidement le foutoir

J'espère que j'ai été assez clair, j'essayerai de donner plus d'infos si nécessaire. Pour le moment je dév uniquement en local donc rien n'est accessible.

Merci d'avance pour votre aide.

Jarodd
Jarodd est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/10/2006, 17h33   #2
Expert Confirmé
 
Avatar de titoumimi
 
Inscription : décembre 2003
Messages : 3 717
Détails du profil
Informations personnelles :
Âge : 31

Informations forums :
Inscription : décembre 2003
Messages : 3 717
Points : 3 082
Points : 3 082
le problème quand tu fait un include, c'est que tout les paths sont relatifs à celui du fichier appelant

pour régler ce problème, tu peux jouer avec

ini_set("include_path", "../");

en mettant le chemin qui t'arrange, et ainsi avoir la même config partout
__________________
Globalement inoffensif
Merci de respecter les règles du forum.
Aucune question technique par MP !
_______________________________________________________________________
La rubrique Ruby / Rails recrute. Contactez moi !
_______________________________________________________________________
Cours Ruby et Ruby on Rails (RoR) - FAQ Ruby / Rails - Livres Ruby / Rails
Ajax facile avec Ruby on Rails, Prototype, script.aculo.us et les RJS
Tutoriaux HTML/CSS et PHP
titoumimi est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/10/2006, 20h02   #3
Membre du Club
 
Avatar de Jarodd
 
Inscription : août 2005
Messages : 258
Détails du profil
Informations forums :
Inscription : août 2005
Messages : 258
Points : 63
Points : 63
Merci pour ton aide.

Mais sur Php.net, la définition précise que cela change une valeur de configuration. Je me demande donc où placer ce ini_set() ? J'ai essayé au début du fichier php qui posait problème, mais je n'ai pas réussi. En fait je ne comprend pas bien la valeur qu'il faut mettre : ../ correspond à la racine du site ? Cela fonctionne comme une constante ?
Jarodd est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/10/2006, 00h05   #4
Membre du Club
 
Avatar de Jarodd
 
Inscription : août 2005
Messages : 258
Détails du profil
Informations forums :
Inscription : août 2005
Messages : 258
Points : 63
Points : 63
Help je m'en sors pas...
Jarodd est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/10/2006, 08h08   #5
Expert Confirmé
 
Avatar de titoumimi
 
Inscription : décembre 2003
Messages : 3 717
Détails du profil
Informations personnelles :
Âge : 31

Informations forums :
Inscription : décembre 2003
Messages : 3 717
Points : 3 082
Points : 3 082
en fait, l'idée est la suivante :

depuis index.php, qui est à la racine de ton site, tu va ajouter ça avant ton require :

Code :
ini_set("include_path", "./");
dans mon_fichier.php, qui est un niveau plus bas dans l'arbo, tu va ajouter ça :

Code :
ini_set("include_path", "../");
il ne te reste plus qu'à faire to require suivant le path qu'il a depuis la racine, tout le monde devrait retrouver ses petits
__________________
Globalement inoffensif
Merci de respecter les règles du forum.
Aucune question technique par MP !
_______________________________________________________________________
La rubrique Ruby / Rails recrute. Contactez moi !
_______________________________________________________________________
Cours Ruby et Ruby on Rails (RoR) - FAQ Ruby / Rails - Livres Ruby / Rails
Ajax facile avec Ruby on Rails, Prototype, script.aculo.us et les RJS
Tutoriaux HTML/CSS et PHP
titoumimi est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 06h11.


 
 
 
 
Partenaires

Hébergement Web