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