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]>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;
>>    }
>>
>> }
>>
>

Reply via email to