I have this layout file called menuAdmin.
I wish to, each time a given controller and a given action is active, to show the “li” element with a specific class.
So, I have the following on my menuAdmin.php :
<li <?php echo ($this->controller == "d" && $this->action == "a") ? "class='selectedMenuItem'" : ''; ?>><a href="<?php echo $this->url(array("controller"=>"d","action"=>"a.d"))?>">Aaaa Dddd</a></li>
I get nothing with this, and if I dump:
var_dump($this->controller); and var_dump($this->action); I get NULL NULL
- So I believe Zend don’t trigger those at that point.
Question:
How can I accomplish such a task? Should I follow this path? If so, how will my menuAdmin layout know about what controller and action is in place?
Update:
menuAdmin.php is a layout file, inside Layouts folder on Zend structure.
This is a large application and the structure in place is already like this – using layout files as menus where this is just one of them.
So $this->controller and $this->action only work inside the controller, OR if I explicitly pass it to the view. On this case, however, I would like to call it on the layout. Why there? Because by doing so, I can make one change and allow that change to be replicated all over the views that use this layout.
Regarding the above clarifications, could your answers change ?
Update 2:
I don’t know if this is relevant or not but, all this menuadmin layout is called from a main layout file “layouts/main.php” and there we have: <?php echo $this->render("menuadmin.php"); ?>
Thanks again
Depending on what
menuAdmin.phpis you can get the controller and action in a variety of ways.If your file is a controller you can do one of the following, they all do the same thing
Ideally you should use
Zend_Navigationto do this though.