hmm im not sure if this will work but you could try in your element: App:import('Helper', Html');
$html = new html(); does html helper work in other parts of your element outside the function? i usually have no problems at all using $html->link() within an element function. On Aug 11, 10:47 pm, Josh <joshs.silver...@gmail.com> wrote: > 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 -~----------~----~----~----~------~----~------~--~---