1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46
|
/**
* Le plugin récupère les actions de blocks existants
* et les ajoute à la pile d'actionStack en lui envoyant des paramètres
* comme la position dans le layout.
*/
class Ez_Controller_Plugin_Block extends Zend_Controller_Plugin_Abstract
{
public $stack;
public function routeStartup() {
$this->stack = Zend_Controller_Action_HelperBroker::getStaticHelper('actionStack');
// On récupère les blocks dans la base
$blocks = $this->tableBlocks->getAllBlocks()->toArray();
$blocks = array_reverse($blocks);
foreach ($blocks as $block) {
if ($block['active'] == 1) {
$this->stack->actionToStack($block['action'], $block['controller'],
$block['module'], array('segment' => $block['segment'],
'title' => $block['title'])
);
}
}
}
}
class LoginController extends Zend_Controller_Action
{
.../...
public function blockauthAction()
{
$auth = Zend_Auth::getInstance();
$this->view->title = $this->_request->getParam('title');
// on récupère la position passé en param par actionstack $this->_helper->viewRenderer->setResponseSegment($this->_request->getParam('segment'));
if ($auth->hasIdentity()) {
$this->view->identity = $auth->getIdentity();
$this->renderScript('login/welcome.phtml');
} else {
$this->renderScript('login/loginForm.phtml');
}
}
} |
Partager