0 votes

zend one controller many views

Lorsque j'ai créé mon site Web, il ne gérait qu'une seule interface, mais j'ai maintenant besoin de gérer plusieurs interfaces.

Je peux détecter quel site envoyer pour chaque requête et isoler chaque site des autres, mais tous les sites ont les mêmes vues.

Existe-t-il un moyen de rendre des vues différentes à partir du même contrôleur ?

Je pense à quelque chose comme :

application
            controller
            model
            site_1_view
            site_2_view

Est-ce possible ?

0voto

ArneRie Points 9722
$this->view->render('script.phtml'); 

devrait fonctionner.

0voto

takeshin Points 16579

Ou :

public function myAction() 
{
    return $this->otherAction();
}

public function otherAction() 
{

}

0voto

SMka Points 2721

Ajouter un nouveau chemin scripts à la vue Pile LIFO

0voto

robertbasic Points 3433

Juste une idée : détecter quel site est actuellement consulté, et ensuite dire à Zend_View d'utiliser les scripts pour ce site spécifique en configurant $view->setScriptPath(/path/to/site1/scripts/);

Edit : Je peux me tromper sur ce point, mais le meilleur endroit pour définir cela serait un plugin de contrôleur dans la section preDispatch car à ce moment-là, vous saurez quel module/contrôleur/action a été demandé, mais pas encore distribué : http://framework.zend.com/manual/en/zend.controller.plugins.html

0voto

shereifhawary Points 194

C'était très simple - j'ai découvert que je pouvais définir le chemin de la base de vue dans mon constructeur :

$this->view->setBasePath("../application/site_1_view/views");

Ainsi, en public/index.php Je détecte l'URL, je la place dans la session, je détecte le nom dans ma base de données, puis j'utilise le nom pour définir le chemin de base :

$this->view->setBasePath("../application/".$siteName."/views");

La structure de l'application est donc maintenant :

 application
            controllers
            model
            site_1_view
                         views
                                scripts
                                         controllerName
                                                        ActionName 

            site_2_view
                         views
                                scripts
                                         controllerName
                                                        ActionName

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X