2009-07-29 9 views
3

Vous devez promettre de ne pas rire, mais ma situation est la suivante:Lancement d'une vue personnalisée à partir d'un modèle personnalisé. Zend_possible?

Au lieu d'utiliser les partiels et aides et autres outils similaires que nous utilisons déjà, nous voulons utiliser une vue personnalisée en dehors de tous les cadres et les frontières de la réelle application. Fondamentalement, nous avons besoin à ce stade de charger du HTML propre dans une variable sur une certaine réaction d'un modèle. C'est l'affaire des singes et peut être fait par pratiquement n'importe qui sans utiliser un clavier. Le problème est que les pages HTML que nous voulons créer sont supposées être assez étendues et sont un trainwreck à debug/maintain/expand en raison de l'inate "return $ arrlglllgll;" approche. Pour faire un script lisse et humain, nous aimerions beaucoup utiliser le style .phtml avec html propre mélangé avec des injections php sans réellement le rendant.

Est-ce possible et comment?

Je me bats actuellement avec

$mailView = new Zend_View(); 
$mailView->setScriptPath('/Templates'); 
echo($mailView->render('test.php')); 
die; 

Où test.php est un fichier que j'ai essayé d'atteindre avec tous les moyens et corelations imaginables, mais a finalement échoué à chaque fois en raison de

exception 'Zend_View_Exception' with message 'script 'test.php' not found in path (\library\Extras\Controller\Action\Helpers\)' in \library\Zend\View\Abstract.php:875 
Stack trace: blablabla 

Le chargement d'une vue personnalisée à partir d'un contrôleur est simple, il suffit de fournir le chemin relatif et le réglage, mais il semble que je ne trouve rien si je tire depuis une bibliothèque. Aucun conseil?

+0

est '/ templates' votre réelle, chemin absolu? Essayez de vider le contenu de '$ view-> getScriptPaths()' avant le rendu, et ajoutez cette sortie à votre question. – jason

+0

Array ( [0] => \ Templates \ ) Fondamentalement, c'est exactement ce que je l'ai défini, plus un slash. Et je n'ai aucun problème à appeler la vue depuis le contrôleur avec '../applications/views/scripts/controller/test.php'. – John

Répondre

2

Au cas où quelqu'un se demande, cela est beaucoup plus facile que je ne pensais jamais que ce soit ...

// Set the view 
$layout = new Zend_Layout(); 
$view = $layout->getView(); 

// Send inherited custom parameters 
$view->params = $params; 

Vous pouvez ainsi utiliser la vue $ en vue réelle et charger un $ view-> aide comme vous voulez.

Pour enregistrer vue rendu, le type ...

$savingParameter = $view->render('controller/subfolder/' . $page . '.phtml'); 

TADAA

Questions connexes