The helpers are set and work fine. However, $html->link() does not work when called within a function in the view.
As for where the logic is written: this is an element that appears in all admin tools throughout the site. requestAction() would allow me to put some of the logic in the controller, however since this is an array used only for constructing a menu, I don't really see any advantage to that. On Aug 11, 7:15 pm, JamesF <usaexportexpe...@gmail.com> wrote: > if your controller is set up with var $helpers = array('html') ; you > should be fine..that error is just telling you that cake can't find > HtmlHelper...is there a reason you are executing that logic in your > view and not the controller? > > On Aug 11, 7:02 pm, Josh <joshs.silver...@gmail.com> wrote: > > > > > Hi, > > > I have the contents of a tree menu stored in a multi-dimensional > > array. The number of dimensions is not fixed, so to turn the array > > into a menu in the View file, I have set up a recurring function. This > > works fine except that I can't call the $html->link() from the > > function. > > > Fatal error: Call to a member function link() on a non-object in... > > > Any ideas? Is there a way to make the link() function global as you do > > a variable? There are some obvious work-arounds such as writing the > > anchor tag without the html helper, or turning the link array into a > > simpler two dimensional array where I can then iterate the link() > > function. However, I am wonder how I might specifically address the > > question of making the html->link() function available to a function > > within a view file. > > > I have a feeling this is either going to be a simple declaration or > > not worth the trouble. Thanks in advance. > > > Here is my code: > > > //array of links > > ////key: link title > > ////value: link location or sub-array > > $linkTree = array( > > 'User Management' => array( > > 'Permissions' => array( > > 'Set Permissions' => '/tools/setPermissions', > > 'Update ACOS' => '/tools/updateacl', > > 'View/Edit Groups' => '/admin/groups' > > ), > > 'User Settings' => '/tools/userSettings', > > 'Users' => array( > > 'List' => '/admin/users', > > 'Add User' => '/admin/users/add' > > ) > > ) > > ); > > > //output menu function > > function outputMenu ($array, $level) { > > global $levelMarker; > > > foreach ($array as $key => $value) { > > if (is_array($value)) { > > echo $level . $key; > > echo '<br>'; > > outputMenu($value, $level . $levelMarker); > > } else { > > echo $html->link("$level$key", $value); > > echo '<br>'; > > } > > } > > echo "<br>"; > > } > > > //output menu settings > > $levelMarker = '-'; > > $level = ''; > > $linkTreeSimple = array(); > > > //output menu > > outputMenu($linkTree, $level); --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "CakePHP" group. To post to this group, send email to cake-php@googlegroups.com To unsubscribe from this group, send email to cake-php+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/cake-php?hl=en -~----------~----~----~----~------~----~------~--~---