Issue found, I was just mistaking to rendering. Instead of echo $this->navigation($container)->menu();
you must use echo $this->navigation()->menu($container); so pass the container object as menu method parameter. Hope it helps Sergio Rinaudo From: [email protected] To: [email protected]; [email protected] Date: Thu, 21 May 2009 22:34:24 +0200 Subject: RE: [fw-general] Concept of Zend Framework Hi, I get a similar error. I've done an action helper that build the container for all my menu. $view->topMenu = $this->_helper->menu('top'); $view->headerMenu = $this->_helper->menu('header'); Then, I pass the containers to the view script echo $this->navigation($this->topMenu)->menu(); echo $this->navigation($this->headerMenu)->menu(); and I get the first one twice. If I do the dump of the data on the view script Zend_Debug::dump($this->topMenu->toArray()); Zend_Debug::dump($this->headerMenu->toArray()); I get the correct data of my containers. I suppose there is an issue in the navigation view helper, did you fix it? Sergio Rinaudo Date: Thu, 21 May 2009 18:54:12 +0200 From: [email protected] To: [email protected] Subject: Re: [fw-general] Concept of Zend Framework Hello, Great tips. Now I feel I am getting started here. I have now setup a $pages array in Bootstratp _initViewHelpers What I want to do know is to make several different containers available to the layout, I do this by: $container = new Zend_Navigation($pages); $right = $container->findBy('id', 'right', true); $view->right = $container->setPages($right); $container = new Zend_Navigation($pages); $bottom = $container->findBy('id', 'bottom', true); $view->bottom = $container->setPages($bottom); When I render this in layout.phtml, each one of them works fine <?= $this->navigation($this->right); ?> or <?= $this->navigation($this->bottom); ?> But when I try to render both (in different places) the last one is rendered twice.. Is there are simple explanation for this? Regards, Joakim Sergio Rinaudo wrote: Hi, I advice you to start from here: http://akrabat.com/zend-framework-tutorial/ If you have to create a class named 'My_Navigation_Page', you must save it at library/My/Navigation/Page.php, where library is the same directory where your Zend Framework dir is saved. - library -- Zend -- My ( you can call it as you like ) -- ThirdParty ( for example ) The second part of your code, this $page = Zend_Navigation_Page::factory(array( 'type' => 'My_Navigation_Page', 'label' => 'My custom page', 'foo_bar' => 'foo bar' )); can be used where you need it, for example in a controller or inside an action helper. A 'page' object is used to be added to a container object, then, from a controller, you can assign the container to the view $this->view->mymenu = $container; After this, from your view script, you can use the property you created and pass it to the navigation view helper: <?php echo $this->navigation($this->mymenu)->menu();?> This is not the best explaination you can have, but I advice you again to go to the link at the beginning of this message and download the pdf. Bye! Sergio Rinaudo Date: Wed, 20 May 2009 22:36:32 +0200 From: [email protected] To: [email protected] Subject: [fw-general] Concept of Zend Framework Hi all, A really simple question for you guys. In my effort to learn the framework I run into a lot of examples of the different components. For example, when reading about the zend_navigation I see the following, ----------------- Example 37.9. Creating a custom page type using the page factory To create a custom page type using the factory, use the option type to specify a class name to instantiate. class My_Navigation_Page extends Zend_Navigation_Page { protected $_fooBar = 'ok'; public function setFooBar($fooBar) { $this->_fooBar = $fooBar; } } $page = Zend_Navigation_Page::factory(array( 'type' => 'My_Navigation_Page', 'label' => 'My custom page', 'foo_bar' => 'foo bar' )); ---------------- How do I know where in the project structure this class/file should be created? All examples are like this and I don't in any case understand where to create things. Regards, Joakim Chiamate gratis da PC a PC? Provale da Messenger! Scrivi, parla e gioca con i tuoi amici! Scarica Messenger 2009! _________________________________________________________________ Resta in contatto con gli amici, comunica con Messenger! http://messenger.it/cominciaAcomunicare.aspx
