Re: [fw-general] ActionStack and _forward()
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.
Re: [fw-general] ActionStack and _forward()
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.
Re: [fw-general] ActionStack and _forward()
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/ -- View this message in context: http://www.nabble.com/ActionStack-and-_forward%28%29-tp20469986p20487267.html Sent from the Zend Framework mailing list archive at Nabble.com.