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

        }


Reply via email to