The question becomes what do you want to hide/show navigation based on?
Is it based on where you currently are in an application (which
controller/action/module?)
Or is it based on who you are? User/Group information? If its the
latter, I would probably implement the Role & Resource_Interfaces on my
models, and do the acl checks.
You could also do some kind of view iteration of the navigation object
and then pass data into a custom built ACL, I would be interested to see
if that kind of solution had merit.
-ralph
J DeBord wrote:
Ahh, I did not realize there was a Zend_View_Helper_Navigation. Thus
when I instantiate my Acl class it in the bootstrap it loads
Zend_View_Helper_Navigation from the library/Zend folder, while in my
layout script it is loading from my application/views/helpers folder.
Since I prefix my custom view helpers with Zend_View_Helper and throw
them into the /helpers directory, it works in the view, but in the
bootstrap, only the library/Zend folder is being searched.
How should I get around this? Or would it just be best to rename /my/
Navigation view helper?
Also, and perhpas more importantly, how can an Acl class even know about
what is in the application/views/helpers folder??? Hmm.
Nice catch Ralph. Thanks.
J
On Tue, Jul 14, 2009 at 5:41 PM, Ralph Schindler
<[email protected] <mailto:[email protected]>> wrote:
Hmm, are you sure that you are loading the correct object? Where is
this code located? I notice that it implements
Zend_Acl_Resource_Interface, but there is already a class called
Zend_View_Helper_Navigation being loaded by the framework already right?
Where is your custom code being stored?
-ralph
J DeBord wrote:
I'm experimenting with Zend_Acl and even though what I am doing
may not be the best way to go about hiding/displaying
navigation, the error message below does not appear to be correct:*
Catchable fatal error*: Argument 1 passed to Zend_Acl::add()
must implement interface Zend_Acl_Resource_Interface, instance
of Zend_View_Helper_Navigation given
As you can see, Zend_View_Helper_Navigation does indeed
implement Zend_Acl_Resource_Interface
What do you guys think?
<?php
class Zend_View_Helper_Navigation extends
Zend_View_Helper_Abstract implements Zend_Acl_Resource_Interface {
protected $resourceId = 'navigation';
public function navigation() {
return $this->view->partial('navigation.phtml',
array());
}
/**
* (non-PHPdoc)
* @see
library/Zend/Acl/Resource/Zend_Acl_Resource_Interface#getResourceId()
*/
public function getResourceId() {
return $this->_resourceId;
}
}