Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Bonjour,
ca fait un moment que je galère : je cherche a changer le répertoire des layout :
le repertoire qui contient les layout est :
/applications/layouts
j'ai bien fait un $layout....startMvc etc...
et quand j'echo le layout->getLayoutPath() j'ai bien le bon repertoire qui s'affiche seulement j'ai une erreur :
Message: script 'index/header.phtml' not found in path (..\application\views\scripts\)
on dirait que le layoutpath paramatré n'est pas pris en compte.
Y'a un truc a faire de spécial dans le controlleur?
Merci
Hors ligne
le layout c'est ton template principal.
Les templates de vues sont par défaut dans views/scripts/
Hors ligne
Bonjour et merci pour ta réponse,
cependant voila mon arborescence :
-application
-------------layouts
---------------------{layouts contient tout ce qui est en fait "statique" genre le header)
-------------views
--------------------{views contiendra les dossiers scripts pour les vues des controlleurs des actions etc....)
C'est possible de faire ca ?
Merci
Hors ligne
oui c'est possible
Hors ligne
Zend_Layout::startMvc(array('layoutPath' => DIR_ROOT.'/application/layouts'));
Hors ligne
Bonjour, en effet j'ai mis dans mon index (qui se trouve dans RACINE/html/index.php:
$layout =Zend_Layout::startMvc($config->layout);
dans mon fichier config j'ai :
layout.layout = template layout.contentKey = contenu layout.layoutPath = "../application/layouts";
et j'ai l'erreur suivante :
Message: script 'index/header.phtml' not found in path (..\application\views\scripts\)
en gros il me prend pas en compte les parametres que je lui spécifie pourtant quand je fait des getLayout() et getLayoutPath(), il m'affiche bien le bon parametre......
Hors ligne
Un template de vue est le template associée à ton action.
Par défaut, le chemin vers ce template est views/scripts/<controller>/<action>.phtml
Le layoutPath n'est pas le répertoire qui va contenir tes templates de vue, mais ton layout. Le layout c'est le template principal.
Si tu veux avoir un fichier spécifique pour ton header, tu peux utiliser la méthode "render":
dans ton layout :
<?php echo $this->render('/parts/header.phtml'); ?>
ton fichier sera dans layouts/parts/header.phtml.
Si une action est en charge de l'affiche du header (ce qui semble être ton cas)
class IndexController ...
public function headerAction()...
ton template de vue sera dans /views/scripts/index/header.phtml (il ne sera pas dans le layoutPath et c'est normal)
Hors ligne