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
-~----------~----~----~----~------~----~------~--~---

Reply via email to