@James - The code I have up there should produce the error. Throw the $this-> object reference in front of the html->link() to get the reference to a non-object error
@Martin - Are you sure you can do that with an object? I think Global can only be applied to variables, no? I'll try it out of curiosity. @Grigri - Ultimately, a helper makes most sense, I agree. I'll be able to extend it with the Html class and reference the whole object from within the function. Thanks for all the help. On Aug 12, 7:51 am, grigri <[email protected]> wrote: > Hi Josh, > > With that sort of code, you'd be better off putting it in your own > helper. That helper can load its own helpers, so doing links wouldn't > be a problem. > > This > thread:http://groups.google.com/group/cake-php/browse_thread/thread/f3a8243e... > deals with this approach, but for radio boxes not links; the principle > is the same though. > > Cheers > grigri > > On Aug 12, 12:02 am, Josh <[email protected]> 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 [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/cake-php?hl=en -~----------~----~----~----~------~----~------~--~---
