-- agatone <[EMAIL PROTECTED]> wrote
(on Thursday, 23 August 2007, 09:58 AM -0700):
> Since I wanna have header, footer, menu includes etc. and I notice quite few
> problems and posts around it.
> I found that view script can be included nicely inside other view script
> (can say news) with <?php echo $this->render('index/header.phtml') ?>
>
> This is quite what i need(not completly), because i can also assign some
> variables that are in header.phtml directly from current running action -
> listAction.
>
> I made also controller _Include_HeaderController with one action Index which
> should assign all that common variables inside header.phtml (if user is
> logged - his name, date etc.)
>
> But now i don't know how to run that header controller action inside my news
> action so it would normaly assign view variables.
Don't do this. Use an action helper or a preDispatch() plugin instead to
do the injection. For instance, you could have an action helper like
this one:
class My_Helper_Header extends Zend_Controller_Action_Helper_Abstract
{
public function preDispatch()
{
$this->direct();
}
public function direct()
{
$view =
Zend_Controller_Action_HelperBroker::getStaticHelper('viewRenderer')->view;
$view->header_meta = '...';
$view->header_css = '...';
// etc.
}
}
Then, in your bootstrap:
Zend_Controller_Action_HelperBroker::addHelper(new My_Helper_Header());
The point being, this will do it automatically for you, and doesn't
require dispatching another controller action.
> Maybe it's wrong approach - but what i wanna achive is to somehow run
> certain VIEW script with certain controller action.
That can be done already; the ViewRenderer, which is on by default,
automatically renders the view script <controller>/<action>.phtml.
BTW, what you're trying to do will be addressed for 1.1.0 with the
addition of placeholders and layout support.
--
Matthew Weier O'Phinney
PHP Developer | [EMAIL PROTECTED]
Zend - The PHP Company | http://www.zend.com/