Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Pages: 1
Salut,
Je viens de me mettre à l'utilisation des plugins et je me posais quelques petites questions. Tout d'abord, voici mes quelques fichiers :
./index.php (bootstrap) :
<?php set_include_path('.' . PATH_SEPARATOR . './library' . PATH_SEPARATOR . './application/default/models/' . PATH_SEPARATOR . './application/admin/models/' . PATH_SEPARATOR . get_include_path()); // ... Zend_Loader::loadClass('Zend_Controller_Plugin_Abstract'); require_once('./application/default/controllers/plugins/myplugin.php'); $router = new Zend_Controller_Router_Rewrite(); $router->addRoute( "default", new Zend_Controller_Router_Route( "/:language/:modules/:controller/:action/*", array( "language" => "fr", "modules" => "default", "controller" => "index", "action" => "index" ) ) ); $frontController = Zend_Controller_Front::getInstance(); $frontController->throwExceptions(true) ->setRouter($router) ->addModuleDirectory("./application") ->registerPlugin(new MyPlugin()) ->dispatch();
./application/default/controllers/plugins/myplugin.php (le plugin lui-même) :
<?php class MyPlugin extends Zend_Controller_Plugin_Abstract { public function preDispatch(Zend_Controller_Request_Abstract $request) { $viewRenderer = Zend_Controller_Action_HelperBroker::getStaticHelper('viewRenderer'); $viewRenderer->initView(); $viewRenderer->view->headLink()->appendStylesheet("css/styles.css", 'screen, print'); $viewRenderer->view->headScript()->appendFile("js/main.js"); $viewRenderer->view->assign("stats", 15); return; } }
Et dans une de mes vues :
<html> <head> <?php echo $this->headLink(); ?> <?php echo $this->headScript(); ?> </head> <body> <p>Stats : <?php echo $this->stats; ?></p> </body> </html>
Déjà, je me demandais s'il n'existait un moyen permettant d'éviter de devoir inclure "manuellement" chaque plugin que je créerais dans le répertoire "application/default/controllers/plugins". Donc de supprimer cette ligne du bootstrap :
require_once('./application/default/controllers/plugins/myplugin.php');
Ensuite, n'y aurait-il pas un moyen plus simple de passer des valeurs du plugin à ma vue (sans utiliser le viewRenderer) ?
Voilà, je pense que c'est tout. Merci d'avance pour vos réponses
Dernière modification par acharrex (22-06-2008 12:24:39)
Hors ligne
Salut,
je crois que tu as la solution à ta question ici
A+
Hors ligne
Salut,
Merci je me suis justement inspiré de ce topic pour en arriver là. Mais maintenant je me demandais s'il existait une meilleure solution.
Hors ligne
Pages: 1