Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Bonjour,
Pourquoi ne peut-on pas faire de <?php include ("../header.phtml"); ?> dans les vues ?
Ne serait-ce pas plus simple ?
Y'a t'il un moyen de le faire ?
Merci
Dernière modification par dug (26-10-2007 18:48:23)
Hors ligne
encore une fois ../ ne corresponds pas au répertoire parent de celui contenant le script. mais au répertoire parant du script chargé par apache
http://monserveur/monsite/monchemin/page.php
page.php
<?php include 'view/vue.php';
vue.php
<?php include '../header.phtml'
ICI le ../ n'es pas
monsite/monchemin/ le parent de monsite/monchemin/view/
mais
monsite/ le parent de monsite/monchemin/
car le ../ prend pour référence
http://monserveur/monsite/monchemin/page.php
pour obtenir le répétoire du fichier dans lequel on se trouve il faut utiliser
dirname(__FILE__) le parent est alors dirname(dirname(__FILE__))
ainsi ou qu'il soit dans le code cela fait référence au dossier parent du fichier qui contient cette instruction.
A+JYT
Hors ligne
Bien compris, mais alors comment ça se fait que l'on peut inclure des templates du répertoire de la vue de la façon suivante :
<?php include ("header.phtml"); ?>
? Peut être que c'est une question stupide... Dans tous les cas, merci
Hors ligne
dans ce cas là c'est le includePath qui entre en jeu il me semble et ZF mets le dossier de script courant dans l'includePath.
une façon de s'en sortir est d'utiliser le paramètre baseUrl défini par ZF qui donne la racine de l'application je ne sais plus quel objet la détient mais il me semble que c'est $this->_request il suffit de le donner à la vue et alors tu peux définir tes chement en te servant de cette variable.
A+JYT
Hors ligne
Ok,
Sinon on peut faire un :
$this->view->scriptPath = $this->view->getScriptPath();
Mais ça retourne un warning sans argument...
Alors j'ai défini une constante sur le répertoire des scripts. Est-ce une bonne solution ?
Merci sekaijin
Hors ligne
je ne suis pas trop pour un chemin définit en dur dans le code car si tu installe ton appli dans un autre dossier il te faudra fouiller le code pour changer
une solution peut être de mettre ce gendre de chose dans un fichier ini
A+JYT
Hors ligne