You could store something in Zend_Registry, or Zend_Cache (and then wrap the
init logic in an if statement)?


T

On Sun, Nov 16, 2008 at 09:43, drj201 <[EMAIL PROTECTED]> wrote:

>
>
> Goran Juric wrote:
> >
> >
> >
> > drj201 wrote:
> >>
> >> Hi all,
> >>
> >> Ive been following the method outlined here to add Controller specific
> >> navigation menus to my layout view:
> >>
> >> http://teethgrinder.co.uk/perm.php?a=Zend-Framework-Menus-Navigation
> >>
> >> Firstly, what is your view on this approach? Adding an actionStack call
> >> to every controller seems long winded especially if the majority use a
> >> standard menu i.e. defaultmenuAction in the NavController.
> >>
> >> Also using this method I am encountering a problem with the use of
> >> _forward() in my actions.
> >>
> >> When calling a _forward from one action to another within the same
> >> controller the menu action is added to the actionStack twice (once for
> >> initial init() and then for each forward). How would you propose I stop
> >> this easily? Is there a way of detecting if the actionStack currently
> has
> >> the call to the action in the NavController and thus doesnt add it
> again?
> >> Back to my original question... is there a better way entirely?
> >>
> >> Thanks for your help.
> >>
> >> David
> >>
> >
> >
> > Why don't you use a view helper for this task? You can define and pass
> > controller specific actions in the init() method of the controller and
> > display them in a view.
> >
> > Regards,
> >
> > Goran Juric
> > http://gogs.info/
> >
>
> Thanks for your reply. Im not sure I follow your suggestion? What are you
> proposing with the use of a view helper?
>
> Im trying to follow the example from the Zend_Layout documentation that
> states:
>
> ------------
>
> "As an example, let's say your code first hits
> FooController::indexAction(),
> which renders some content to the default response segment, and then
> forwards to NavController::menuAction(), which renders content to the 'nav'
> response segment. Finally, you forward to CommentController::fetchAction()
> and fetch some comments, but render those to the default response segment
> as
> well (which appends content to that segment). Your view script could then
> render each separately:
>
> <body>
>    <!-- renders /nav/menu -->
>    <div id="nav"><?= $this->layout()->nav ?></div>
>
>    <!-- renders /foo/index + /comment/fetch -->
>    <div id="content"><?= $this->layout()->content ?></div>
> </body>
>
> This feature is particularly useful when used in conjunction with the
> ActionStack action helper and plugin, which you can use to setup a stack of
> actions through which to loop, and thus create widgetized pages. "
>
> ------------
>
> I have this working based on an example here:
>
> http://teethgrinder.co.uk/perm.php?a=Zend-Framework-Menus-Navigation
>
> The problem is that when using a _forward() to another action within the
> same controller the init() gets called every forward thus resulting in the
> $this->_helper->actionStack('menu', 'navigation') getting called every
> time.
> This means the navigation menuAction gets rendered a number of times when
> obviously it only wants to render once...
>
> So ultimately how can I detect if the current controller init() has been
> called as the result of  a _forward() and thus then not add the menuAction
> to the stack...?
>
> Also if there is a better simplified way of doing this i'd be enlightened
> to
> know!
>
> Thanks,
>
> David
>
>
>
>
> --
> View this message in context:
> http://www.nabble.com/ActionStack-and-_forward%28%29-tp20469986p20520241.html
>  Sent from the Zend Framework mailing list archive at Nabble.com.
>
>

Reply via email to