2009-08-07 7 views
0

Je crée une application de portail client à l'aide de ZF. Et le portail doit fonctionner pour différentes marques d'entreprise. J'ai donc besoin d'utiliser le même code/contrôleur/etc, mais de changer dynamiquement le répertoire de vue en fonction du nom d'hôte.Définition dynamique du répertoire de vue

En ce moment, ma structure de répertoire de vue ressemble à quelque chose comme ceci:

/application/views/scripts/brand1/ 
/application/views/scripts/brand1/index/index.phtml 
/application/views/scripts/brand1/error/error.phtml 
/application/views/scripts/brand2/ 
/application/views/scripts/brand2/index/index.phtml 
/application/views/scripts/brand2/error/error.phtml 
/application/views/scripts/brand3/ 
/application/views/scripts/brand3/index/index.phtml 
/application/views/scripts/brand3/error/error.phtml 
and so on. 

J'utilise la fonction dans bootstrap.php comme si

protected function _initView() 
{ 
    $view = new Zend_View(); 
    $view->doctype('XHTML1_STRICT'); 
    $view->env = APPLICATION_ENV; 
    $view->addScriptPath(APPLICATION_PATH . '/views/scripts/brand1'); 
    $view->addHelperPath(APPLICATION_PATH . '/views/helpers'); 

    ... 
} 

addScriptPath() Cependant, lorsque cela est exécuté, il cherche toutes les vues en utilisant /views/scripts/brand1/(action).phtml au lieu de chercher des vues en utilisant le bon schéma /view/scripts/brand1/(controller)/(action).phtml

tl; dr est-il possible de choisir dynamiquement le répertoire view et de le faire fonctionner comme le comportement par défaut /views/scripts/(controller)/(action).phtml?

Répondre

1

Je savais que je trouverais la réponse après avoir posté ici. Au cas où quelqu'un d'autre rencontre le même problème, la solution a été utilisée:

$view->setBasePath(APPLICATION_PATH . '/views/brand1'); 

Et puis modifier la structure de répertoire:

/application/views/brand1/scripts/... 
Questions connexes